Couenne
0.5.8
src
branch
CouenneThreeWayBranchObj.hpp
Go to the documentation of this file.
1
/* $Id: CouenneThreeWayBranchObj.hpp 560 2011-04-17 10:01:15Z stefan $
2
*
3
* Name: CouenneThreeWayBranchObj.hpp
4
* Authors: Pierre Bonami, IBM Corp.
5
* Pietro Belotti, Carnegie Mellon University
6
* Purpose: Three way branching object for auxiliary variables
7
*
8
* (C) Carnegie-Mellon University, 2006-10.
9
* This file is licensed under the Eclipse Public License (EPL)
10
*/
11
12
#ifndef COUENNETHREEWAYBRANCHOBJ_HPP
13
#define COUENNETHREEWAYBRANCHOBJ_HPP
14
15
#include "
OsiBranchingObject.hpp
"
16
17
#include "
CouenneExprAux.hpp
"
18
#include "
CouenneObject.hpp
"
19
20
namespace
Couenne
{
21
27
28
class
CouenneThreeWayBranchObj
:
public
OsiBranchingObject
{
29
30
public
:
31
33
CouenneThreeWayBranchObj
(
JnlstPtr
jnlst,
34
expression
*,
35
CouNumber
,
36
CouNumber
,
37
int
=
THREE_CENTER
38
//bool = false
39
);
40
42
CouenneThreeWayBranchObj
(
const
CouenneThreeWayBranchObj
&src):
43
OsiBranchingObject
(src),
44
brVar_
(src.
brVar_
),
45
lcrop_
(src.
lcrop_
),
46
rcrop_
(src.
rcrop_
),
47
firstBranch_
(src.
firstBranch_
),
48
jnlst_
(src.
jnlst_
){}
49
51
virtual
OsiBranchingObject
*
clone
()
const
52
{
return
new
CouenneThreeWayBranchObj
(*
this
);}
53
60
virtual
double
branch
(
OsiSolverInterface
* solver = NULL);
61
62
protected
:
63
67
expression
*
brVar_
;
68
69
CouNumber
lcrop_
;
70
CouNumber
rcrop_
;
71
73
int
firstBranch_
;
74
76
// bool integer_;
77
79
JnlstPtr
jnlst_
;
80
};
81
82
}
83
84
#endif
Couenne::CouenneThreeWayBranchObj::rcrop_
CouNumber rcrop_
right divider
Definition:
CouenneThreeWayBranchObj.hpp:70
OsiBranchingObject.hpp
Couenne::CouenneThreeWayBranchObj::lcrop_
CouNumber lcrop_
left divider
Definition:
CouenneThreeWayBranchObj.hpp:69
Couenne::CouenneThreeWayBranchObj::jnlst_
JnlstPtr jnlst_
True if the associated variable is integer.
Definition:
CouenneThreeWayBranchObj.hpp:79
Couenne
general include file for different compilers
Definition:
CouenneAggrProbing.hpp:24
Couenne::THREE_CENTER
@ THREE_CENTER
Definition:
CouenneObject.hpp:41
Ipopt::SmartPtr< Ipopt::Journalist >
Couenne::CouNumber
double CouNumber
main number type in Couenne
Definition:
CouenneTypes.hpp:100
Couenne::CouenneThreeWayBranchObj
Spatial, three-way branching object.
Definition:
CouenneThreeWayBranchObj.hpp:28
CouenneExprAux.hpp
OsiSolverInterface
Couenne::CouenneThreeWayBranchObj::brVar_
expression * brVar_
The variable this branching object refers to.
Definition:
CouenneThreeWayBranchObj.hpp:67
Couenne::CouenneThreeWayBranchObj::CouenneThreeWayBranchObj
CouenneThreeWayBranchObj(JnlstPtr jnlst, expression *, CouNumber, CouNumber, int=THREE_CENTER)
Constructor.
Couenne::CouenneThreeWayBranchObj::firstBranch_
int firstBranch_
First branch to be performed: 0 is left, 1 is central, 2 is right.
Definition:
CouenneThreeWayBranchObj.hpp:73
Couenne::CouenneThreeWayBranchObj::clone
virtual OsiBranchingObject * clone() const
Cloning method.
Definition:
CouenneThreeWayBranchObj.hpp:51
Couenne::CouenneThreeWayBranchObj::branch
virtual double branch(OsiSolverInterface *solver=NULL)
Execute the actions required to branch, as specified by the current state of the branching object,...
CouenneObject.hpp
OsiBranchingObject
Couenne::CouenneThreeWayBranchObj::CouenneThreeWayBranchObj
CouenneThreeWayBranchObj(const CouenneThreeWayBranchObj &src)
Copy constructor.
Definition:
CouenneThreeWayBranchObj.hpp:42
Couenne::expression
Expression base class.
Definition:
CouenneExpression.hpp:48
Generated by
1.8.18