00001 /* $Id: CouenneComplBranchingObject.hpp 141 2009-06-03 04:19:19Z pbelotti $ */ 00002 /* 00003 * Name: CouenneComplBranchingObject.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 COUENNECOMPLBRANCHINGOBJECT_HPP 00012 #define COUENNECOMPLBRANCHINGOBJECT_HPP 00013 00014 #include "CouenneBranchingObject.hpp" 00015 00022 class CouenneComplBranchingObject: public CouenneBranchingObject { 00023 00024 public: 00025 00027 CouenneComplBranchingObject (OsiSolverInterface *solver, 00028 const OsiObject *originalObject, 00029 JnlstPtr jnlst, 00030 expression *var, 00031 expression *var2, 00032 int way, 00033 CouNumber brpoint, 00034 bool doFBBT, 00035 bool doConvCuts); 00036 00038 CouenneComplBranchingObject (const CouenneComplBranchingObject &src): 00039 CouenneBranchingObject (src), 00040 variable2_ (src.variable2_) {} 00041 00043 virtual OsiBranchingObject *clone () const 00044 {return new CouenneComplBranchingObject (*this);} 00045 00051 virtual double branch (OsiSolverInterface * solver = NULL); 00052 00053 protected: 00054 00057 expression *variable2_; 00058 }; 00059 00060 #endif