11 #ifndef COUENNE_EXPRBMUL_H
12 #define COUENNE_EXPRBMUL_H
16 #include "CoinHelperFunctions.hpp"
17 #include "CoinFinite.hpp"
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;
enum pos printPos() const
print position (PRE, INSIDE, POST)
std::string printOp() const
print operator
CouNumber operator()()
function for the evaluation of the expression
class to compute lower bound of a product based on the bounds of both factors
pos
position where the operator should be printed when printing the expression
expression * clone(Domain *d=NULL) const
cloning method
void fint fint fint real * a
enum pos printPos() const
print position (PRE, INSIDE, POST)
CouNumber safeProd(register CouNumber a, register CouNumber b)
product that avoids NaN's
std::string printOp() const
print operator
expression ** clonearglist(Domain *d=NULL) const
clone argument list (for use with clone method)
exprLBMul(expression **al, int n)
Constructors, destructor.
CouNumber operator()()
function for the evaluation of the expression
expression ** arglist_
argument list is an array of pointers to other expressions
double CouNumber
main number type in Couenne
int nargs_
number of arguments (cardinality of arglist)
general n-ary operator-type expression: requires argument list.
class to compute upper bound of a product based on the bounds of both factors
exprUBMul(expression **al, int n)
Constructors, destructor.
expression * clone(Domain *d=NULL) const
cloning method
Define a dynamic point+bounds, with a way to save and restore previous points+bounds through a LIFO s...