00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00031 #ifndef BSEVALUATOR_H
00032 #define BSEVALUATOR_H
00033
00034
00035
00036 #include "Evaluator.h"
00037 #include <cmath>
00038 #include <boost/math/special_functions/round.hpp>
00039 using namespace std;
00040
00041 #define DOUBLE_PRECISION 0.001
00042
00048 class BSEvaluator: public Evaluator
00049 {
00050 protected:
00051
00052 double balance;
00053
00054
00055 double support;
00056
00057
00058 unsigned int rsreq;
00059
00060
00061 unsigned int upperBound;
00062
00063 public:
00064 BSEvaluator(float balance = 0.5, float support = 1.0,
00065 BinaryMatrix* bm = NULL);
00066 BSEvaluator(const BSEvaluator& rhs);
00067 virtual ~BSEvaluator();
00068 virtual BSEvaluator& operator =(const BSEvaluator& rhs);
00069 virtual bool badBalance() const;
00070 virtual unsigned int getMinRowset() const;
00071 virtual void setBinaryMatrix(BinaryMatrix* bm);
00072 virtual unsigned int getUpperBound(const vector<unsigned int>& counts)
00073 const;
00074 virtual unsigned int getUpperBound() const;
00075 };
00076
00077 #endif