# CbcFathom.hpp

Go to the documentation of this file.

    00001 /* $Id: CbcFathom.hpp 1573 2011-01-05 01:12:36Z lou $ */
    00002 // Copyright (C) 2004, International Business Machines
    00003 // Corporation and others.  All Rights Reserved.
    00004 // This code is licensed under the terms of the Eclipse Public License (EPL).
    00005
    00006 #ifndef CbcFathom_H
    00007 #define CbcFathom_H
    00008 #include "CbcConfig.h"
    00009
    00010 /*
    00011   This file contains two classes, CbcFathom and CbcOsiSolver. It's unclear why
    00012   they're in the same file. CbcOsiSolver is a base class for CbcLinked.
    00013
    00014   --lh, 071031 --
    00015 */
    00016
    00017
    00018 class CbcModel;
    00019
    00020 //#############################################################################
    00032 class CbcFathom {
    00033 public:
    00034     // Default Constructor
    00035     CbcFathom ();
    00036
    00037     // Constructor with model - assumed before cuts
    00038     CbcFathom (CbcModel & model);
    00039
    00040     virtual ~CbcFathom();
    00041
    00043     virtual void setModel(CbcModel * model);
    00044
    00046     virtual CbcFathom * clone() const = 0;
    00047
    00049     virtual void resetModel(CbcModel * model) = 0;
    00050
    00059     virtual int fathom(double *& newSolution) = 0;
    00060
    00061     // Is this method possible
    00062     inline bool possible() const {
    00063         return possible_;
    00064     }
    00065
    00066 protected:
    00067
    00069     CbcModel * model_;
    00071     bool possible_;
    00072 private:
    00073
    00075     CbcFathom & operator=(const CbcFathom& rhs);
    00076
    00077 };
    00078 #ifdef COIN_HAS_CLP
    00079 #include "OsiClpSolverInterface.hpp"
    00080
    00081 //#############################################################################
    00082
    00090 class CbcOsiSolver : public OsiClpSolverInterface {
    00091
    00092 public:
    00093
    00096
    00097     CbcOsiSolver ();
    00098
    00100     virtual OsiSolverInterface * clone(bool copyData = true) const;
    00101
    00103     CbcOsiSolver (const CbcOsiSolver &);
    00104
    00106     CbcOsiSolver & operator=(const CbcOsiSolver& rhs);
    00107
    00109     virtual ~CbcOsiSolver ();
    00110
    00112
    00113
    00116
    00117     inline void setCbcModel(CbcModel * model) {
    00118         cbcModel_ = model;
    00119     }
    00121     inline CbcModel * cbcModel() const {
    00122         return cbcModel_;
    00123     }
    00125
    00126     //---------------------------------------------------------------------------
    00127
    00128 protected:
    00129
    00130
    00133
    00134     CbcModel * cbcModel_;
    00136 };
    00137 #endif
    00138 #endif
    00139

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines