// $Id: CbcGeneral.hpp 1902 2013-04-10 16:58:16Z stefan $ // Copyright (C) 2002, International Business Machines // Corporation and others. All Rights Reserved. // This code is licensed under the terms of the Eclipse Public License (EPL). // Edwin 11/10/2009-- carved out of CbcBranchActual #ifndef CbcGeneral_H #define CbcGeneral_H #include "CbcBranchBase.hpp" /** Define a catch all class. This will create a list of subproblems */ class CbcGeneral : public CbcObject { public: // Default Constructor CbcGeneral (); /** Useful constructor Just needs to point to model. */ CbcGeneral (CbcModel * model); // Copy constructor CbcGeneral ( const CbcGeneral &); /// Clone virtual CbcObject * clone() const = 0; // Assignment operator CbcGeneral & operator=( const CbcGeneral& rhs); // Destructor ~CbcGeneral (); /// Infeasibility - large is 0.5 virtual double infeasibility(const OsiBranchingInformation * info, int &preferredWay) const; using CbcObject::feasibleRegion ; /// This looks at solution and sets bounds to contain solution virtual void feasibleRegion() = 0; /// Creates a branching object virtual CbcBranchingObject * createCbcBranch(OsiSolverInterface * solver, const OsiBranchingInformation * info, int way) ; /// Redoes data when sequence numbers change virtual void redoSequenceEtc(CbcModel * model, int numberColumns, const int * originalColumns) = 0; protected: /// data }; #endif