/* $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