00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef COUENNECOMPLOBJECT_HPP
00012 #define COUENNECOMPLOBJECT_HPP
00013
00014 #include "CouenneObject.hpp"
00015
00016 namespace Couenne {
00017
00021
00022 class CouenneComplObject: public CouenneObject {
00023
00024 public:
00025
00027 CouenneComplObject (CouenneCutGenerator *c,
00028 CouenneProblem *p,
00029 exprVar *ref, Bonmin::BabSetupBase *base, JnlstPtr jnlst,
00030 int sign);
00031
00033 CouenneComplObject (exprVar *ref, Bonmin::BabSetupBase *base, JnlstPtr jnlst,
00034 int sign);
00035
00037 ~CouenneComplObject () {}
00038
00040 CouenneComplObject (const CouenneComplObject &src);
00041
00043 virtual CouenneObject * clone () const
00044 {return new CouenneComplObject (*this);}
00045
00048 virtual double infeasibility (const OsiBranchingInformation *info, int &way) const;
00049
00052 virtual double checkInfeasibility (const OsiBranchingInformation * info) const;
00053
00056 virtual OsiBranchingObject *createBranch (OsiSolverInterface*,
00057 const OsiBranchingInformation*,
00058 int way) const;
00059 private:
00060
00064 int sign_;
00065
00066 };
00067
00068 }
00069
00070 #endif