#ifndef YAP_PACKAGES_CLPBN_HORUS_HISTOGRAM_H_ #define YAP_PACKAGES_CLPBN_HORUS_HISTOGRAM_H_ #include <vector> #include <ostream> #include "Horus.h" typedef std::vector<unsigned> 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<Histogram> getHistograms (unsigned, unsigned); static unsigned nrHistograms (unsigned, unsigned); static size_t findIndex ( const Histogram&, const std::vector<Histogram>&); static std::vector<double> 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_