CouenneThreeWayBranchObj.hpp

Go to the documentation of this file.
00001 /* $Id: CouenneThreeWayBranchObj.hpp 141 2009-06-03 04:19:19Z pbelotti $ */
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. 
00009  * This file is licensed under the Common Public License (CPL)
00010  */
00011 
00012 #ifndef COUENNETHREEWAYBRANCHOBJ_HPP
00013 #define COUENNETHREEWAYBRANCHOBJ_HPP
00014 
00015 #include "CoinFinite.hpp"
00016 #include "OsiBranchingObject.hpp"
00017 
00018 #include "exprAux.hpp"
00019 #include "CouenneObject.hpp"
00020 
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 #endif

Generated on Wed Jan 20 03:03:55 2010 for Couenne by  doxygen 1.4.7