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