17 using namespace Couenne;
26 for (
int i=
nVars (); i--;)
29 for (std::vector <exprVar *>::iterator i =
variables_.begin ();
32 if (((*i) -> Type () ==
AUX)
33 && ((*i) -> Multiplicity () > 0)
34 && ((*i) -> Image () -> Linearity () >
LINEAR)) {
38 if (!(infeasObj -> Reference ()))
44 std::set <int> deplist;
48 if ((*i) -> Image () -> DepList (deplist,
STOP_AT_AUX) == 0)
52 for (std::set <int>::iterator
j = deplist.begin ();
j != deplist.end (); ++
j) {
55 int ind = (*i) -> Index ();
56 if (obj.find (ind) == obj.end ())
Cut Generator for linear convexifications.
int nVars() const
Total number of variables.
OsiObject for auxiliary variables $w=f(x)$.
std::vector< std::set< int > > dependence_
inverse dependence structure: for each variable x give set of auxiliary variables (or better...
std::vector< CouenneObject * > objects_
vector of pointer to CouenneObjects.
A class to have all elements necessary to setup a branch-and-bound.
std::vector< exprVar * > variables_
Variables (original, auxiliary, and defined)
JnlstPtr jnlst_
SmartPointer to the Journalist.
void fillDependence(Bonmin::BabSetupBase *base, CouenneCutGenerator *=NULL)
fill dependence_ structure