11 #ifndef COUENNE_DOMAIN_HPP
12 #define COUENNE_DOMAIN_HPP
Define a point in the solution space and the bounds around it.
CouNumber * ub_
upper bound
int dimension_
dimension of point
void resize(int newdim)
resize domain point (for extending into higher space)
CouNumber * lb()
return current lower bound vector
CouNumber & ub(register int index)
return current upper bound
CouNumber * x_
current value of variables
CouNumber * ub()
return current upper bound vector
bool copied_
true if data has been copied (so we own it, and have to delete it upon destruction)
DomainPoint & operator=(const DomainPoint &src)
assignment operator
CouNumber & x(register int index)
return current variable
int size() const
return current size
bool isNlp_
true if this point comes from an NLP solver (and is thus nlp feasible)
int Dimension()
return dimension_
DomainPoint(const DomainPoint &src)
copy constructor
CouNumber * x()
return current variable vector
DomainPoint(int dim, CouNumber *x, CouNumber *lb, CouNumber *ub, bool copy=true)
constructor
CouNumber * lb_
lower bound
bool & isNlp()
true if this point is the nlp solution
CouNumber & lb(register int index)
return current lower bound
DomainPoint(int dim=0, const CouNumber *x=NULL, const CouNumber *lb=NULL, const CouNumber *ub=NULL, bool copy=true)
constructor
Define a dynamic point+bounds, with a way to save and restore previous points+bounds through a LIFO s...
CouNumber & x(register int index)
current variable
void pop()
restore previous point
std::stack< DomainPoint * > domStack_
stack of saved points
Domain(const Domain &src)
copy constructor
CouNumber * x()
return current variable vector
void push(const OsiSolverInterface *si, OsiCuts *cs=NULL, bool copy=true)
save current point and start using another – retrieve information from solver interface and from prev...
CouNumber * lb()
return current lower bound vector
CouNumber & lb(register int index)
current lower bound
CouNumber * ub()
return current upper bound vector
DomainPoint * point_
current point
DomainPoint * current()
return current point
void push(int dim, const CouNumber *x, const CouNumber *lb, const CouNumber *ub, bool copy=true)
save current point and start using another
Domain()
basic constructor
void push(const DomainPoint &dp, bool copy=true)
save current point and start using another
void push(int dim, CouNumber *x, CouNumber *lb, CouNumber *ub, bool copy=true)
save current point and start using another
CouNumber & ub(register int index)
current upper bound
general include file for different compilers
double CouNumber
main number type in Couenne