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) {
41 result.push_back(*(it->me));
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) {
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
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
const_iterator begin() const
const_iterator end() const
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...