00001 // Copyright (C) 2004, International Business Machines 00002 // Corporation and others. All Rights Reserved. 00003 #ifndef CbcFathom_H 00004 #define CbcFathom_H 00005 00006 class CbcModel; 00007 00008 //############################################################################# 00020 class CbcFathom { 00021 public: 00022 // Default Constructor 00023 CbcFathom (); 00024 00025 // Constructor with model - assumed before cuts 00026 CbcFathom (CbcModel & model); 00027 00028 virtual ~CbcFathom(); 00029 00031 virtual void setModel(CbcModel * model); 00032 00034 virtual CbcFathom * clone() const=0; 00035 00037 virtual void resetModel(CbcModel * model)=0; 00038 00047 virtual int fathom(double *& newSolution)=0; 00048 00049 // Is this method possible 00050 inline bool possible() const 00051 { return possible_;}; 00052 00053 protected: 00054 00056 CbcModel * model_; 00058 bool possible_; 00059 private: 00060 00062 CbcFathom & operator=(const CbcFathom& rhs); 00063 00064 }; 00065 00066 #endif