Couenne
0.2
|
Expression base class. More...
#include <CouenneExpression.hpp>
Public Types | |
enum | auxSign { AUX_UNDEF =-2, AUX_LEQ =-1, AUX_EQ, AUX_GEQ } |
"sign" of the constraint defining an auxiliary. More... | |
Public Member Functions | |
expression () | |
Constructor. More... | |
expression (const expression &e, Domain *d=NULL) | |
Copy constructor. More... | |
virtual | ~expression () |
Destructor. More... | |
virtual expression * | clone (Domain *d=NULL) const |
Cloning method. More... | |
virtual int | Index () const |
Return index of variable (only valid for exprVar and exprAux) More... | |
virtual int | nArgs () const |
return number of arguments (when applicable, that is, with N-ary functions) More... | |
virtual expression ** | ArgList () const |
return arglist (when applicable, that is, with N-ary functions) More... | |
virtual void | ArgList (expression **al) |
set arglist (used in deleting nodes without deleting children) More... | |
virtual expression * | Argument () const |
return argument (when applicable, i.e., with univariate functions) More... | |
virtual expression ** | ArgPtr () |
return pointer to argument (when applicable, i.e., with univariate functions) More... | |
virtual enum nodeType | Type () const |
node type More... | |
virtual expression * | Image () const |
return pointer to corresponding expression (for auxiliary variables only) More... | |
virtual void | Image (expression *image) |
set expression associated with this auxiliary variable (for compatibility with exprAux) More... | |
virtual CouNumber | Value () const |
value (empty) More... | |
virtual const expression * | Original () const |
If this is an exprClone of a exprClone of an expr???, point to the original expr??? instead of an exprClone – improve computing efficiency. More... | |
virtual void | print (std::ostream &s=std::cout, bool=false) const |
print expression to iostream More... | |
virtual CouNumber | operator() ()=0 |
null function for evaluating the expression More... | |
virtual CouNumber | gradientNorm (const double *x) |
return l-2 norm of gradient at given point More... | |
virtual expression * | differentiate (int) |
differentiation More... | |
virtual int | dependsOn (int *ind, int n, enum dig_type type=STOP_AT_AUX) |
dependence on variable set: return cardinality of subset of the set of indices in first argument which occur in expression. More... | |
int | dependsOn (int singleton, enum dig_type type=STOP_AT_AUX) |
version with one index only More... | |
virtual int | DepList (std::set< int > &deplist, enum dig_type type=ORIG_ONLY) |
fill std::set with indices of variables on which this expression depends. More... | |
virtual expression * | simplify () |
simplify expression (useful for derivatives) More... | |
virtual int | Linearity () |
get a measure of "how linear" the expression is (see CouenneTypes.h) More... | |
virtual bool | isDefinedInteger () |
is this expression defined as an integer? More... | |
virtual bool | isInteger () |
is this expression integer? More... | |
virtual void | getBounds (expression *&, expression *&) |
Get lower and upper bound of an expression (if any) More... | |
virtual void | getBounds (CouNumber &, CouNumber &) |
Get lower and upper bound of an expression (if any) – real values. More... | |
virtual exprAux * | standardize (CouenneProblem *p, bool addAux=true) |
Create standard form of this expression, by: More... | |
virtual void | generateCuts (expression *w, OsiCuts &cs, const CouenneCutGenerator *cg, t_chg_bounds *chg=NULL, int wind=-1, CouNumber lb=-COUENNE_INFINITY, CouNumber ub=COUENNE_INFINITY) |
generate convexification cut for constraint w = this More... | |
virtual enum expr_type | code () |
return integer for comparing expressions (used to recognize common expression) More... | |
virtual enum convexity | convexity () const |
either CONVEX, CONCAVE, AFFINE, or NONCONVEX More... | |
virtual int | compare (expression &) |
compare expressions More... | |
virtual int | compare (exprCopy &) |
compare copies of expressions More... | |
virtual int | rank () |
used in rank-based branching variable choice: original variables have rank 1; auxiliary w=f(x) has rank r(w) = r(x)+1; finally, auxiliary w=f(x1,x2...,xk) has rank r(w) = 1+max{r(xi):i=1..k}. More... | |
virtual bool | impliedBound (int, CouNumber *, CouNumber *, t_chg_bounds *, enum auxSign=expression::AUX_EQ) |
does a backward implied bound processing on every expression, including exprSums although already done by Clp (useful when repeated within Couenne). More... | |
virtual int | Multiplicity () |
multiplicity of a variable More... | |
virtual CouNumber | selectBranch (const CouenneObject *obj, const OsiBranchingInformation *info, expression *&var, double *&brpts, double *&brDist, int &way) |
set up branching object by evaluating many branching points for each expression's arguments. More... | |
virtual void | replace (exprVar *, exprVar *) |
replace expression with another More... | |
virtual void | fillDepSet (std::set< DepNode *, compNode > *, DepGraph *) |
update dependence set with index of variables on which this expression depends More... | |
virtual void | linkDomain (Domain *d) |
empty function to update domain pointer More... | |
virtual void | realign (const CouenneProblem *p) |
empty function to redirect variables to proper variable vector More... | |
virtual bool | isBijective () const |
indicating if function is monotonically increasing More... | |
virtual CouNumber | inverse (expression *vardep) const |
compute the inverse function More... | |
virtual void | closestFeasible (expression *varind, expression *vardep, CouNumber &left, CouNumber &right) const |
closest feasible points in function in both directions More... | |
virtual bool | isCuttable (CouenneProblem *problem, int index) const |
can this expression be further linearized or are we on its concave ("bad") side More... | |
virtual bool | isaCopy () const |
return true if this is a copy of something (i.e. an exprCopy) More... | |
virtual expression * | Copy () const |
return copy of this expression (only makes sense in exprCopy) More... | |
Expression base class.
An empty expression class with no type or operator() from which all other expression classes (for constants, variables, and operators) are derived.
Definition at line 48 of file CouenneExpression.hpp.
"sign" of the constraint defining an auxiliary.
If the auxiliary is defined as , then it is LEQ. It is EQ and GEQ, respectively, if it is defined with
and
.
Enumerator | |
---|---|
AUX_UNDEF | |
AUX_LEQ | |
AUX_EQ | |
AUX_GEQ |
Definition at line 55 of file CouenneExpression.hpp.
|
inline |
Constructor.
Definition at line 58 of file CouenneExpression.hpp.
|
inline |
Copy constructor.
Pass pointer to variable vector when generating new problem, whose set of variables is equivalent but may be changed or whose value is independent.
Definition at line 63 of file CouenneExpression.hpp.
|
inlinevirtual |
Destructor.
Definition at line 66 of file CouenneExpression.hpp.
|
inlinevirtual |
Cloning method.
Reimplemented in Couenne::exprUpperBound, Couenne::exprUBMul, Couenne::exprQuad, Couenne::exprUBDiv, Couenne::exprUBCos, Couenne::exprUBSin, Couenne::exprAux, Couenne::exprUBQuad, Couenne::exprVar, Couenne::exprCopy, Couenne::exprGroup, Couenne::exprSin, Couenne::exprLowerBound, Couenne::exprStore, Couenne::exprConst, Couenne::exprLBMul, Couenne::exprPow, Couenne::exprLBDiv, Couenne::exprMin, Couenne::exprInv, Couenne::exprLBQuad, Couenne::exprLBCos, Couenne::exprLBSin, Couenne::exprEvenPow, Couenne::exprClone, Couenne::exprIVar, Couenne::exprMax, Couenne::exprDiv, Couenne::exprOpp, Couenne::exprSum, Couenne::exprAbs, Couenne::exprMul, Couenne::exprOddPow, Couenne::exprSub, Couenne::exprTrilinear, Couenne::exprExp, Couenne::exprLog, Couenne::exprCeil, Couenne::exprCos, and Couenne::exprFloor.
Definition at line 69 of file CouenneExpression.hpp.
Referenced by Couenne::exprOp::clonearglist().
|
inlinevirtual |
Return index of variable (only valid for exprVar and exprAux)
Reimplemented in Couenne::exprCopy, and Couenne::exprVar.
Definition at line 73 of file CouenneExpression.hpp.
Referenced by Couenne::exprCeil::gradientNorm(), Couenne::exprCos::gradientNorm(), Couenne::exprFloor::gradientNorm(), Couenne::exprExp::gradientNorm(), Couenne::exprAbs::gradientNorm(), Couenne::exprOpp::gradientNorm(), Couenne::exprSin::gradientNorm(), Couenne::exprCos::impliedBound(), Couenne::exprSin::impliedBound(), and Couenne::exprQuad::operator()().
|
inlinevirtual |
return number of arguments (when applicable, that is, with N-ary functions)
Reimplemented in Couenne::exprCopy, Couenne::exprOp, and Couenne::exprUnary.
Definition at line 77 of file CouenneExpression.hpp.
|
inlinevirtual |
return arglist (when applicable, that is, with N-ary functions)
Reimplemented in Couenne::exprCopy, and Couenne::exprOp.
Definition at line 81 of file CouenneExpression.hpp.
|
inlinevirtual |
set arglist (used in deleting nodes without deleting children)
Reimplemented in Couenne::exprCopy, and Couenne::exprOp.
Definition at line 85 of file CouenneExpression.hpp.
|
inlinevirtual |
return argument (when applicable, i.e., with univariate functions)
Reimplemented in Couenne::exprCopy, and Couenne::exprUnary.
Definition at line 88 of file CouenneExpression.hpp.
|
inlinevirtual |
return pointer to argument (when applicable, i.e., with univariate functions)
Reimplemented in Couenne::exprCopy, and Couenne::exprUnary.
Definition at line 92 of file CouenneExpression.hpp.
|
inlinevirtual |
node type
Reimplemented in Couenne::exprLowerBound, Couenne::exprUpperBound, Couenne::exprAux, Couenne::exprVar, Couenne::exprUnary, Couenne::exprOp, Couenne::exprCopy, and Couenne::exprConst.
Definition at line 96 of file CouenneExpression.hpp.
References Couenne::EMPTY.
|
inlinevirtual |
return pointer to corresponding expression (for auxiliary variables only)
Reimplemented in Couenne::exprAux, and Couenne::exprCopy.
Definition at line 100 of file CouenneExpression.hpp.
|
inlinevirtual |
set expression associated with this auxiliary variable (for compatibility with exprAux)
Reimplemented in Couenne::exprAux.
Definition at line 105 of file CouenneExpression.hpp.
|
inlinevirtual |
value (empty)
Reimplemented in Couenne::exprCopy, Couenne::exprClone, and Couenne::exprConst.
Definition at line 108 of file CouenneExpression.hpp.
|
inlinevirtual |
If this is an exprClone of a exprClone of an expr???, point to the original expr??? instead of an exprClone – improve computing efficiency.
Only overloaded for exprClones/exprCopy, of course.
Reimplemented in Couenne::exprCopy.
Definition at line 114 of file CouenneExpression.hpp.
|
inlinevirtual |
print expression to iostream
descend into auxiliaries' image?
Reimplemented in Couenne::exprUpperBound, Couenne::exprCopy, Couenne::exprQuad, Couenne::exprAux, Couenne::exprVar, Couenne::exprUBQuad, Couenne::exprOp, Couenne::exprUnary, Couenne::exprGroup, Couenne::exprLowerBound, Couenne::exprClone, Couenne::exprConst, Couenne::exprInv, Couenne::exprLBQuad, Couenne::exprStore, Couenne::exprOpp, and Couenne::exprIVar.
Definition at line 118 of file CouenneExpression.hpp.
|
pure virtual |
null function for evaluating the expression
Implemented in Couenne::exprCopy, Couenne::exprUpperBound, Couenne::exprAux, Couenne::exprQuad, Couenne::exprUBMul, Couenne::exprUBDiv, Couenne::exprUBCos, Couenne::exprUBSin, Couenne::exprVar, Couenne::exprUBQuad, Couenne::exprUnary, Couenne::exprGroup, Couenne::exprLowerBound, Couenne::exprClone, Couenne::exprPow, Couenne::exprConst, Couenne::exprStore, Couenne::exprMin, Couenne::exprLBMul, Couenne::exprLBDiv, Couenne::exprMax, Couenne::exprLBQuad, Couenne::exprDiv, Couenne::exprLBCos, Couenne::exprLBSin, Couenne::exprSum, Couenne::exprEvenPow, Couenne::exprMul, Couenne::exprOddPow, and Couenne::exprSub.
|
inlinevirtual |
return l-2 norm of gradient at given point
Reimplemented in Couenne::exprCopy, Couenne::exprQuad, Couenne::exprVar, Couenne::exprGroup, Couenne::exprSin, Couenne::exprPow, Couenne::exprInv, Couenne::exprDiv, Couenne::exprOpp, Couenne::exprMul, Couenne::exprAbs, Couenne::exprExp, Couenne::exprCeil, Couenne::exprCos, Couenne::exprFloor, Couenne::exprLog, Couenne::exprTrilinear, Couenne::exprBinProd, and Couenne::exprMultiLin.
Definition at line 126 of file CouenneExpression.hpp.
|
virtual |
differentiation
Reimplemented in Couenne::exprCopy, Couenne::exprUpperBound, Couenne::exprQuad, Couenne::exprVar, Couenne::exprGroup, Couenne::exprSin, Couenne::exprLowerBound, Couenne::exprPow, Couenne::exprConst, Couenne::exprMin, Couenne::exprInv, Couenne::exprMax, Couenne::exprOpp, Couenne::exprDiv, Couenne::exprMul, Couenne::exprAbs, Couenne::exprCeil, Couenne::exprCos, Couenne::exprFloor, Couenne::exprSum, Couenne::exprExp, Couenne::exprSub, Couenne::exprLog, Couenne::exprBinProd, and Couenne::exprMultiLin.
|
virtual |
dependence on variable set: return cardinality of subset of the set of indices in first argument which occur in expression.
Reimplemented in Couenne::exprUpperBound, Couenne::exprLowerBound, and Couenne::exprConst.
Referenced by dependsOn().
|
inline |
version with one index only
Definition at line 137 of file CouenneExpression.hpp.
References dependsOn().
|
inlinevirtual |
fill std::set with indices of variables on which this expression depends.
Also deal with expressions that have no variable pointers (exprGroup, exprQuad)
Reimplemented in Couenne::exprQuad, Couenne::exprCopy, Couenne::exprAux, Couenne::exprVar, Couenne::exprOp, Couenne::exprUnary, and Couenne::exprGroup.
Definition at line 143 of file CouenneExpression.hpp.
|
inlinevirtual |
simplify expression (useful for derivatives)
Reimplemented in Couenne::exprCopy, Couenne::exprVar, Couenne::exprAux, Couenne::exprQuad, Couenne::exprOp, Couenne::exprUnary, Couenne::exprGroup, Couenne::exprPow, Couenne::exprMin, Couenne::exprMax, Couenne::exprOpp, Couenne::exprDiv, Couenne::exprMul, Couenne::exprSum, Couenne::exprSub, Couenne::exprBinProd, and Couenne::exprMultiLin.
Definition at line 148 of file CouenneExpression.hpp.
|
inlinevirtual |
get a measure of "how linear" the expression is (see CouenneTypes.h)
Reimplemented in Couenne::exprCopy, Couenne::exprUpperBound, Couenne::exprVar, Couenne::exprAux, Couenne::exprQuad, Couenne::exprOp, Couenne::exprUnary, Couenne::exprGroup, Couenne::exprLowerBound, Couenne::exprPow, Couenne::exprConst, Couenne::exprInv, Couenne::exprOpp, Couenne::exprDiv, Couenne::exprMul, Couenne::exprSum, Couenne::exprSub, Couenne::exprBinProd, and Couenne::exprMultiLin.
Definition at line 152 of file CouenneExpression.hpp.
References Couenne::NONLINEAR.
|
inlinevirtual |
is this expression defined as an integer?
Reimplemented in Couenne::exprCopy, Couenne::exprAux, Couenne::exprVar, and Couenne::exprIVar.
Definition at line 156 of file CouenneExpression.hpp.
References isInteger().
|
inlinevirtual |
is this expression integer?
Reimplemented in Couenne::exprQuad, Couenne::exprAux, Couenne::exprCopy, Couenne::exprVar, Couenne::exprOp, Couenne::exprGroup, Couenne::exprUnary, Couenne::exprConst, Couenne::exprDiv, Couenne::exprOpp, Couenne::exprPow, Couenne::exprAbs, and Couenne::exprIVar.
Definition at line 160 of file CouenneExpression.hpp.
Referenced by isDefinedInteger().
|
virtual |
Get lower and upper bound of an expression (if any)
Reimplemented in Couenne::exprCopy, Couenne::exprVar, Couenne::exprQuad, Couenne::exprGroup, Couenne::exprPow, Couenne::exprSin, Couenne::exprConst, Couenne::exprMin, Couenne::exprInv, Couenne::exprDiv, Couenne::exprMax, Couenne::exprOpp, Couenne::exprSub, Couenne::exprMul, Couenne::exprSum, Couenne::exprAbs, Couenne::exprCeil, Couenne::exprCos, Couenne::exprFloor, Couenne::exprExp, Couenne::exprLog, Couenne::exprEvenPow, Couenne::exprOddPow, Couenne::exprBinProd, Couenne::exprMultiLin, and Couenne::exprTrilinear.
Get lower and upper bound of an expression (if any) – real values.
Reimplemented in Couenne::exprCopy, Couenne::exprVar, Couenne::exprQuad, Couenne::exprGroup, Couenne::exprPow, Couenne::exprConst, Couenne::exprSin, Couenne::exprInv, Couenne::exprDiv, Couenne::exprOpp, Couenne::exprSub, Couenne::exprMul, Couenne::exprSum, Couenne::exprAbs, Couenne::exprCeil, Couenne::exprCos, Couenne::exprFloor, Couenne::exprExp, Couenne::exprLog, Couenne::exprEvenPow, Couenne::exprOddPow, Couenne::exprBinProd, Couenne::exprMultiLin, and Couenne::exprTrilinear.
|
inlinevirtual |
Create standard form of this expression, by:
For the base exprOp class we only do the first part (for argument list components only), and the calling class (Sum, Sub, Mul, Pow, and the like) will do the part for its own object
addAux is true if a new auxiliary variable should be added associated with the standardized expression
Reimplemented in Couenne::exprCopy, Couenne::exprOp, Couenne::exprUnary, Couenne::exprOpp, Couenne::exprPow, Couenne::exprDiv, Couenne::exprSub, Couenne::exprMul, Couenne::exprSum, Couenne::exprEvenPow, Couenne::exprOddPow, Couenne::exprBinProd, and Couenne::exprMultiLin.
Definition at line 181 of file CouenneExpression.hpp.
|
inlinevirtual |
generate convexification cut for constraint w = this
Reimplemented in Couenne::exprCopy, Couenne::exprVar, Couenne::exprQuad, Couenne::exprGroup, Couenne::exprPow, Couenne::exprConst, Couenne::exprSin, Couenne::exprDiv, Couenne::exprInv, Couenne::exprSub, Couenne::exprMul, Couenne::exprOpp, Couenne::exprSum, Couenne::exprAbs, Couenne::exprCeil, Couenne::exprCos, Couenne::exprEvenPow, Couenne::exprFloor, Couenne::exprOddPow, Couenne::exprExp, Couenne::exprBinProd, Couenne::exprMultiLin, Couenne::exprLog, and Couenne::exprTrilinear.
Definition at line 185 of file CouenneExpression.hpp.
|
inlinevirtual |
return integer for comparing expressions (used to recognize common expression)
Reimplemented in Couenne::exprQuad, Couenne::exprCopy, Couenne::exprVar, Couenne::exprUpperBound, Couenne::exprOp, Couenne::exprGroup, Couenne::exprUnary, Couenne::exprPow, Couenne::exprMin, Couenne::exprConst, Couenne::exprSin, Couenne::exprMax, Couenne::exprLowerBound, Couenne::exprDiv, Couenne::exprInv, Couenne::exprSub, Couenne::exprMul, Couenne::exprOpp, Couenne::exprSum, Couenne::exprEvenPow, Couenne::exprOddPow, Couenne::exprAbs, Couenne::exprCeil, Couenne::exprCos, Couenne::exprFloor, Couenne::exprExp, Couenne::exprBinProd, Couenne::exprMultiLin, Couenne::exprLog, and Couenne::exprTrilinear.
Definition at line 193 of file CouenneExpression.hpp.
References Couenne::COU_EXPRESSION.
|
inlinevirtual |
either CONVEX, CONCAVE, AFFINE, or NONCONVEX
Reimplemented in Couenne::exprVar, and Couenne::exprCopy.
Definition at line 197 of file CouenneExpression.hpp.
References Couenne::NONCONVEX.
|
virtual |
compare expressions
Reimplemented in Couenne::exprCopy.
|
virtual |
compare copies of expressions
|
inlinevirtual |
used in rank-based branching variable choice: original variables have rank 1; auxiliary w=f(x) has rank r(w) = r(x)+1; finally, auxiliary w=f(x1,x2...,xk) has rank r(w) = 1+max{r(xi):i=1..k}.
Reimplemented in Couenne::exprQuad, Couenne::exprCopy, Couenne::exprVar, Couenne::exprAux, Couenne::exprOp, Couenne::exprUnary, Couenne::exprGroup, and Couenne::exprConst.
Definition at line 209 of file CouenneExpression.hpp.
|
inlinevirtual |
does a backward implied bound processing on every expression, including exprSums although already done by Clp (useful when repeated within Couenne).
Parameters are the index of the (auxiliary) variable in question and the current lower/upper bound. The method returns true if there has been a change on any bound on the variables on which the expression depends.
Reimplemented in Couenne::exprQuad, Couenne::exprVar, Couenne::exprPow, Couenne::exprSum, Couenne::exprSin, Couenne::exprDiv, Couenne::exprOpp, Couenne::exprInv, Couenne::exprSub, Couenne::exprEvenPow, Couenne::exprOddPow, Couenne::exprAbs, Couenne::exprCeil, Couenne::exprCos, Couenne::exprFloor, Couenne::exprExp, and Couenne::exprLog.
Definition at line 218 of file CouenneExpression.hpp.
|
inlinevirtual |
multiplicity of a variable
Reimplemented in Couenne::exprCopy, and Couenne::exprAux.
Definition at line 222 of file CouenneExpression.hpp.
|
inlinevirtual |
set up branching object by evaluating many branching points for each expression's arguments.
Return estimated improvement in objective function
Reimplemented in Couenne::exprQuad, Couenne::exprCopy, Couenne::exprSin, Couenne::exprPow, Couenne::exprDiv, Couenne::exprInv, Couenne::exprCos, Couenne::exprMul, Couenne::exprEvenPow, Couenne::exprOddPow, Couenne::exprCeil, Couenne::exprFloor, Couenne::exprAbs, Couenne::exprBinProd, Couenne::exprExp, Couenne::exprMultiLin, Couenne::exprLog, and Couenne::exprTrilinear.
Definition at line 228 of file CouenneExpression.hpp.
replace expression with another
Reimplemented in Couenne::exprQuad, Couenne::exprCopy, Couenne::exprOp, Couenne::exprUnary, and Couenne::exprGroup.
Definition at line 238 of file CouenneExpression.hpp.
|
inlinevirtual |
update dependence set with index of variables on which this expression depends
Reimplemented in Couenne::exprQuad, Couenne::exprCopy, Couenne::exprVar, Couenne::exprOp, Couenne::exprUnary, and Couenne::exprGroup.
Definition at line 242 of file CouenneExpression.hpp.
|
inlinevirtual |
empty function to update domain pointer
Reimplemented in Couenne::exprVar, and Couenne::exprAux.
Definition at line 245 of file CouenneExpression.hpp.
|
inlinevirtual |
empty function to redirect variables to proper variable vector
Reimplemented in Couenne::exprQuad, Couenne::exprCopy, Couenne::exprOp, Couenne::exprUnary, and Couenne::exprGroup.
Definition at line 248 of file CouenneExpression.hpp.
|
inlinevirtual |
indicating if function is monotonically increasing
Reimplemented in Couenne::exprCopy, Couenne::exprInv, Couenne::exprExp, and Couenne::exprLog.
Definition at line 251 of file CouenneExpression.hpp.
|
inlinevirtual |
compute the inverse function
Reimplemented in Couenne::exprCopy, Couenne::exprInv, Couenne::exprExp, and Couenne::exprLog.
Definition at line 255 of file CouenneExpression.hpp.
References COUENNE_INFINITY.
|
virtual |
closest feasible points in function in both directions
Reimplemented in Couenne::exprQuad, Couenne::exprCopy, Couenne::exprSin, Couenne::exprPow, Couenne::exprDiv, Couenne::exprCos, Couenne::exprMul, Couenne::exprCeil, Couenne::exprFloor, Couenne::exprAbs, Couenne::exprBinProd, Couenne::exprMultiLin, and Couenne::exprTrilinear.
|
inlinevirtual |
can this expression be further linearized or are we on its concave ("bad") side
Reimplemented in Couenne::exprQuad, Couenne::exprCopy, Couenne::exprSin, Couenne::exprPow, Couenne::exprMul, Couenne::exprDiv, Couenne::exprInv, Couenne::exprCos, Couenne::exprMultiLin, Couenne::exprCeil, Couenne::exprFloor, Couenne::exprBinProd, Couenne::exprAbs, Couenne::exprExp, Couenne::exprLog, Couenne::exprEvenPow, and Couenne::exprOddPow.
Definition at line 264 of file CouenneExpression.hpp.
|
inlinevirtual |
return true if this is a copy of something (i.e. an exprCopy)
Reimplemented in Couenne::exprCopy.
Definition at line 268 of file CouenneExpression.hpp.
|
inlinevirtual |
return copy of this expression (only makes sense in exprCopy)
Reimplemented in Couenne::exprCopy.
Definition at line 272 of file CouenneExpression.hpp.