12 #include "CoinHelperFunctions.hpp"
23 using namespace Couenne;
29 const OsiBranchingInformation *
info)
const {
34 double val = info -> solution_ [index];
37 solver -> setColLower (index, val-
TOL);
38 solver -> setColUpper (index, val+
TOL);
49 if (expr -> Type () ==
UNARY) {
51 index = expr -> Argument () -> Index ();
54 val = info -> solution_ [index];
55 solver -> setColLower (index, val-
TOL);
56 solver -> setColUpper (index, val+
TOL);
61 if (expr -> Type () ==
N_ARY) {
64 int nargs = expr -> nArgs ();
66 for (
register int i=0; i < nargs; i++) {
68 if ((index = args [i] -> Index()) >= 0) {
69 val = info -> solution_ [index];
70 solver -> setColLower (index, val-
TOL);
71 solver -> setColUpper (index, val+
TOL);
86 for (exprGroup::lincoeff::iterator el = lcoe.begin (); el != lcoe.end (); ++el) {
87 int index = el -> first -> Index ();
88 val = info -> solution_ [index];
89 solver -> setColLower (index, val-
TOL);
90 solver -> setColUpper (index, val+
TOL);
102 for (exprQuad::sparseQ::iterator row = q.begin ();
103 row != q.end (); ++row) {
105 int xind = row -> first -> Index ();
107 val = info -> solution_ [xind];
108 solver -> setColLower (xind, val-
TOL);
109 solver -> setColUpper (xind, val+
TOL);
111 for (exprQuad::sparseQcol::iterator col = row -> second.begin ();
112 col != row -> second.end (); ++col) {
114 int yind = col -> first -> Index ();
116 val = info -> solution_ [yind];
117 solver -> setColLower (yind, val-
TOL);
118 solver -> setColUpper (yind, val+
TOL);
class Group, with constant, linear and nonlinear terms:
std::vector< std::pair< exprVar *, sparseQcol > > sparseQ
void fint fint fint real fint real real real real real real real real real fint real fint fint fint real fint fint fint fint * info
exprVar * reference_
The (auxiliary) variable this branching object refers to.
void fint fint fint real fint real real real real real real real real real * e
std::vector< std::pair< exprVar *, CouNumber > > lincoeff
class exprQuad, with constant, linear and quadratic terms
virtual double feasibleRegion(OsiSolverInterface *, const OsiBranchingInformation *) const
fix (one of the) arguments of reference auxiliary variable