17 using namespace Couenne;
28 for (
int i=0; i<3; i++)
31 for (
int i0 = 0; i0 < 2; i0++)
32 for (
int i1 = 0; i1 < 2; i1++)
33 for (
int i2 = 0; i2 < 2; i2++) {
35 int indexTerm = i0*8 + i1*4 + i2*2;
41 arglistMax [indexTerm] =
new exprCopy (product);
45 arglistMax [indexTerm + 1] =
new exprStore (arglistMax [indexTerm]);
46 arglistMin [indexTerm + 1] =
new exprStore (arglistMin [indexTerm]);
49 lb =
new exprMin (arglistMin, 16);
50 ub =
new exprMax (arglistMax, 16);
62 for (
int i=0; i<3; i++)
68 for (
int i0 = 0; i0 < 2; i0++)
69 for (
int i1 = 0; i1 < 2; i1++)
70 for (
int i2 = 0; i2 < 2; i2++) {
72 register double curbound =
73 (i0 ? ubA [0] : lbA [0]) *
74 (i1 ? ubA [1] : lbA [1]) *
75 (i2 ? ubA [2] : lbA [2]);
77 if (curbound < lb) lb = curbound;
78 if (curbound > ub) ub = curbound;
83 for (
int i=0; i<3; i++)
virtual bool isInteger()
is this expression integer?
virtual void getBounds(expression *&, expression *&)
Get lower and upper bound of an expression (if any)
exprTrilinear(expression **, int)
Constructor.
expression clone (points to another expression)
expression ** arglist_
argument list is an array of pointers to other expressions
double CouNumber
main number type in Couenne
storage class for previously evaluated expressions