11#ifndef RooFit_Detail_Algorithms_h
12#define RooFit_Detail_Algorithms_h
22void cartesianProduct(std::vector<std::vector<T>> &out, std::vector<std::vector<T>> &in)
25 typename std::vector<T>::const_iterator begin;
26 typename std::vector<T>::const_iterator end;
27 typename std::vector<T>::const_iterator me;
30 std::vector<Digits> vd;
31 vd.reserve(in.size());
33 for (
auto it = in.begin(); it != in.end(); ++it) {
34 Digits
d = {(*it).begin(), (*it).end(), (*it).begin()};
40 for (
auto it = vd.begin(); it != vd.end(); ++it) {
41 result.push_back(*(it->me));
45 for (
auto it = vd.begin();;) {
47 if (it->me == it->end) {
48 if (it + 1 == vd.end()) {
63template <
typename Iterator>
66 if ((first == last) || (first == k) || (last == k)) {
69 Iterator itr1 = first;
79 while (first != itr1) {
80 if (*--itr1 < *itr2) {
88 rotate(itr1, j, last);
93 rotate(k, itr2, last);
97 rotate(first, k, last);
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t result
void cartesianProduct(std::vector< std::vector< T > > &out, std::vector< std::vector< T > > &in)
bool nextCombination(const Iterator first, Iterator k, const Iterator last)
The namespace RooFit contains mostly switches that change the behaviour of functions of PDFs (or othe...