diff options
Diffstat (limited to 'newstructure/thirdparty/linux/include/coin/CbcFeasibilityBase.hpp')
-rw-r--r-- | newstructure/thirdparty/linux/include/coin/CbcFeasibilityBase.hpp | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/newstructure/thirdparty/linux/include/coin/CbcFeasibilityBase.hpp b/newstructure/thirdparty/linux/include/coin/CbcFeasibilityBase.hpp new file mode 100644 index 0000000..fe8181f --- /dev/null +++ b/newstructure/thirdparty/linux/include/coin/CbcFeasibilityBase.hpp @@ -0,0 +1,56 @@ +/* $Id: CbcFeasibilityBase.hpp 1573 2011-01-05 01:12:36Z lou $ */ +// Copyright (C) 2005, International Business Machines +// Corporation and others. All Rights Reserved. +// This code is licensed under the terms of the Eclipse Public License (EPL). + +#ifndef CbcFeasibilityBase_H +#define CbcFeasibilityBase_H + + +//############################################################################# +/* There are cases where the user wants to control how CBC sees the problems feasibility. + The user may want to examine the problem and say : + a) The default looks OK + b) Pretend this problem is Integer feasible + c) Pretend this problem is infeasible even though it looks feasible + + This simple class allows user to do that. + +*/ + +class CbcModel; +class CbcFeasibilityBase { +public: + // Default Constructor + CbcFeasibilityBase () {} + + /** + On input mode: + 0 - called after a solve but before any cuts + -1 - called after strong branching + Returns : + 0 - no opinion + -1 pretend infeasible + 1 pretend integer solution + */ + virtual int feasible(CbcModel * , int ) { + return 0; + } + + virtual ~CbcFeasibilityBase() {} + + // Copy constructor + CbcFeasibilityBase ( const CbcFeasibilityBase & ) {} + + // Assignment operator + CbcFeasibilityBase & operator=( const CbcFeasibilityBase& ) { + return *this; + } + + /// Clone + virtual CbcFeasibilityBase * clone() const { + return new CbcFeasibilityBase(*this); + } +}; +#endif + |