11 #ifndef COUENNE_EXPRBMUL_H
12 #define COUENNE_EXPRBMUL_H
21 #define MUL_ZERO 1e-20
22 #define MUL_INF sqrt (COIN_DBL_MAX)
81 (Nd > (nD =
safeProd (n,D))))
return nD;
136 ((ND =
safeProd (N,D)) > nd))
return ND;
const double COIN_DBL_MAX
Define a dynamic point+bounds, with a way to save and restore previous points+bounds through a LIFO s...
class to compute lower bound of a product based on the bounds of both factors
CouNumber operator()()
function for the evaluation of the expression
enum pos printPos() const
print position (PRE, INSIDE, POST)
exprLBMul(expression **al, int n)
Constructors, destructor.
expression * clone(Domain *d=NULL) const
cloning method
std::string printOp() const
print operator
general n-ary operator-type expression: requires argument list.
int nargs_
number of arguments (cardinality of arglist)
expression ** arglist_
argument list is an array of pointers to other expressions
expression ** clonearglist(Domain *d=NULL) const
clone argument list (for use with clone method)
class to compute upper bound of a product based on the bounds of both factors
enum pos printPos() const
print position (PRE, INSIDE, POST)
std::string printOp() const
print operator
CouNumber operator()()
function for the evaluation of the expression
expression * clone(Domain *d=NULL) const
cloning method
exprUBMul(expression **al, int n)
Constructors, destructor.
general include file for different compilers
pos
position where the operator should be printed when printing the expression
double CouNumber
main number type in Couenne
CouNumber safeProd(register CouNumber a, register CouNumber b)
product that avoids NaN's