00001 /************************************************************************** 00002 * Copyright (c) 2007 Clifford Conley Owens III * 00003 * * 00004 * This file is part of Biorithm. * 00005 * * 00006 * Biorithm is free software: you can redistribute it and/or modify * 00007 * it under the terms of the GNU General Public License as published by * 00008 * the Free Software Foundation, either version 3 of the License, or * 00009 * (at your option) any later version. * 00010 * * 00011 * Biorithm is distributed in the hope that it will be useful, * 00012 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 00013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 00014 * GNU General Public License for more details. * 00015 * * 00016 * You should have received a copy of the GNU General Public License * 00017 * along with Biorithm. If not, see <http://www.gnu.org/licenses/>. * 00018 * * 00019 **************************************************************************/ 00020 00031 #ifndef EVALUATOR_H 00032 #define EVALUATOR_H 00033 00034 // ---------------------------- Internal Headers ---------------------------- // 00035 00036 #include "BinaryMatrix.h" 00037 00044 class Evaluator 00045 { 00046 protected: 00047 // The truth matrix 00048 BinaryMatrix* bm; 00049 00050 public: 00052 // The constructor // 00053 // // 00054 // --------------------------- Parameters --------------------------- // 00055 // BinaryMatrix* bm // 00056 // The truth matrix // 00058 Evaluator(BinaryMatrix* bm = NULL) 00059 { 00060 setBinaryMatrix(bm); 00061 } 00062 00064 // The destructor // 00066 virtual ~Evaluator() 00067 { 00068 00069 } 00070 00072 // The = operator // 00073 // // 00074 // --------------------------- Parameters --------------------------- // 00075 // const Evaluator& rhs // 00076 // The right hand side // 00077 // // 00078 // ----------------------------- Return ----------------------------- // 00079 // A copy of the Evaluator // 00081 virtual Evaluator& operator =(const Evaluator& rhs) 00082 { 00083 bm = rhs.bm; 00084 return *this; 00085 } 00086 00088 // Sets the binary matrix // 00089 // // 00090 // --------------------------- Parameters --------------------------- // 00091 // BinaryMatrix* bm // 00092 // The binary matrix // 00094 virtual void setBinaryMatrix(BinaryMatrix* bm) 00095 { 00096 this->bm = bm; 00097 } 00098 00099 virtual unsigned int getUpperBound(const vector<unsigned int>& counts) 00100 const = 0; 00101 virtual unsigned int getUpperBound() const = 0; 00102 }; 00103 00104 #endif