00001 /* $Id: CouenneComplObject.hpp 155 2009-06-16 20:19:39Z pbelotti $ 00002 * 00003 * Name: CouenneComplObject.hpp 00004 * Authors: Pietro Belotti, Lehigh University 00005 * Purpose: Branching object for complementarity constraints 00006 * 00007 * (C) Carnegie-Mellon University, 2008. 00008 * This file is licensed under the Common Public License (CPL) 00009 */ 00010 00011 #ifndef COUENNECOMPLOBJECT_HPP 00012 #define COUENNECOMPLOBJECT_HPP 00013 00014 #include "CouenneObject.hpp" 00015 00019 00020 class CouenneComplObject: public CouenneObject { 00021 00022 public: 00023 00025 CouenneComplObject (CouenneProblem *p, 00026 exprVar *ref, Bonmin::BabSetupBase *base, JnlstPtr jnlst); 00027 00029 CouenneComplObject (exprVar *ref, Bonmin::BabSetupBase *base, JnlstPtr jnlst); 00030 00032 ~CouenneComplObject () {} 00033 00035 CouenneComplObject (const CouenneObject &src); 00036 00038 virtual OsiObject * clone () const 00039 {return new CouenneComplObject (*this);} 00040 00043 virtual double infeasibility (const OsiBranchingInformation *info, int &way) const; 00044 00047 virtual double checkInfeasibility (const OsiBranchingInformation * info) const; 00048 00051 virtual OsiBranchingObject *createBranch (OsiSolverInterface*, 00052 const OsiBranchingInformation*, int) const; 00053 }; 00054 00055 #endif