/home/coin/SVN-release/OS-2.4.2/Couenne/src/branch/CouenneThreeWayBranchObj.hpp

Go to the documentation of this file.
00001 /* $Id: CouenneThreeWayBranchObj.hpp 560 2011-04-17 10:01:15Z stefan $
00002  *
00003  * Name:    CouenneThreeWayBranchObj.hpp
00004  * Authors: Pierre Bonami, IBM Corp.
00005  *          Pietro Belotti, Carnegie Mellon University
00006  * Purpose: Three way branching object for auxiliary variables
00007  *
00008  * (C) Carnegie-Mellon University, 2006-10.
00009  * This file is licensed under the Eclipse Public License (EPL)
00010  */
00011 
00012 #ifndef COUENNETHREEWAYBRANCHOBJ_HPP
00013 #define COUENNETHREEWAYBRANCHOBJ_HPP
00014 
00015 #include "OsiBranchingObject.hpp"
00016 
00017 #include "CouenneExprAux.hpp"
00018 #include "CouenneObject.hpp"
00019 
00020 namespace Couenne {
00021 
00027 
00028 class CouenneThreeWayBranchObj: public OsiBranchingObject {
00029 
00030 public:
00031 
00033   CouenneThreeWayBranchObj (JnlstPtr jnlst,
00034                             expression *, 
00035                             CouNumber,
00036                             CouNumber, 
00037                             int  = THREE_CENTER
00038                             //bool = false
00039                             );
00040 
00042   CouenneThreeWayBranchObj (const CouenneThreeWayBranchObj &src):
00043     OsiBranchingObject (src),
00044     brVar_ (src.brVar_),
00045     lcrop_ (src.lcrop_),
00046     rcrop_ (src.rcrop_),
00047     firstBranch_ (src.firstBranch_),
00048     jnlst_ (src.jnlst_){}
00049 
00051   virtual OsiBranchingObject * clone () const
00052   {return new CouenneThreeWayBranchObj (*this);}
00053 
00060   virtual double branch (OsiSolverInterface * solver = NULL);
00061 
00062 protected:
00063 
00067   expression *brVar_;
00068 
00069   CouNumber lcrop_;  
00070   CouNumber rcrop_;  
00071 
00073   int firstBranch_;
00074 
00076   //  bool integer_;
00077 
00079   JnlstPtr jnlst_;
00080 };
00081 
00082 }
00083 
00084 #endif

Generated on Wed Nov 30 03:03:58 2011 by  doxygen 1.4.7