#ifndef YAP_PACKAGES_CLPBN_HORUS_HISTOGRAM_H_ #define YAP_PACKAGES_CLPBN_HORUS_HISTOGRAM_H_ #include #include #include "Horus.h" typedef std::vector Histogram; namespace Horus { class HistogramSet { public: HistogramSet (unsigned, unsigned); void nextHistogram(); unsigned operator[] (size_t idx) const; unsigned nrHistograms() const; void reset(); static std::vector getHistograms (unsigned, unsigned); static unsigned nrHistograms (unsigned, unsigned); static size_t findIndex ( const Histogram&, const std::vector&); static std::vector getNumAssigns (unsigned, unsigned); private: unsigned maxCount (size_t) const; void clearAfter (size_t); friend std::ostream& operator<< (std::ostream&, const HistogramSet&); unsigned size_; Histogram hist_; DISALLOW_COPY_AND_ASSIGN (HistogramSet); }; } // namespace Horus #endif // YAP_PACKAGES_CLPBN_HORUS_HISTOGRAM_H_