00001 // Copyright (C) 2005, International Business Machines 00002 // Corporation and others. All Rights Reserved. 00003 #ifndef CbcFeasibilityBase_H 00004 #define CbcFeasibilityBase_H 00005 00006 00007 //############################################################################# 00008 /* There are cases where the user wants to control how CBC sees the problems feasibility. 00009 The user may want to examine the problem and say : 00010 a) The default looks OK 00011 b) Pretend this problem is Integer feasible 00012 c) Pretend this problem is infeasible even though it looks feasible 00013 00014 This simple class allows user to do that. 00015 00016 */ 00017 00018 class CbcModel; 00019 class CbcFeasibilityBase { 00020 public: 00021 // Default Constructor 00022 CbcFeasibilityBase () {} 00023 00033 virtual int feasible(CbcModel * model, int mode) {return 0;} 00034 00035 virtual ~CbcFeasibilityBase() {} 00036 00037 // Copy constructor 00038 CbcFeasibilityBase ( const CbcFeasibilityBase & rhs) 00039 {} 00040 00041 // Assignment operator 00042 CbcFeasibilityBase & operator=( const CbcFeasibilityBase& rhs) 00043 { 00044 return *this; 00045 } 00046 00048 virtual CbcFeasibilityBase * clone() const 00049 { return new CbcFeasibilityBase(*this);} 00050 }; 00051 #endif