struct_expr.h
Go to the documentation of this file.
48 unsigned int precedence; /**< precedence of expression operation relative to other expression (used for printing) */
53 SCIP_DECL_EXPRCOPYDATA((*copydata)); /**< data copy callback, or NULL for expressions that have no data */
54 SCIP_DECL_EXPRFREEDATA((*freedata)); /**< data free callback, or NULL for expressions that have no data or which data does not need to be freed */
62 SCIP_DECL_EXPRBWFWDIFF((*bwfwdiff)); /**< backward over forward derivative evaluation callback (can be NULL) */
69 SCIP_DECL_EXPRMONOTONICITY((*monotonicity)); /**< monotonicity detection callback (can be NULL) */
79 SCIP_Longint ndomreds; /**< number of domain reductions found so far by this expression handler */
82 SCIP_Longint nbranchscores; /**< number of times branching scores were added by (or for) this expression handler */
94 int currentchild; /**< child that is currently visited (or will be visited next) by DFS iteration */
101typedef struct SCIP_QuadExpr_QuadTerm SCIP_QUADEXPR_QUADTERM; /**< a single term associated to a quadratic variable */
121 SCIP_DECL_EXPR_OWNEREVALACTIVITY((*ownerevalactivity)); /**< callback for evaluating activity */
124 SCIP_Real evalvalue; /**< value of expression from last evaluation (corresponding to evaltag) */
125 SCIP_Real derivative; /**< partial derivative of a "root path" w.r.t. this expression (see \ref SCIP_EXPR_DIFF "Differentiation methods") */
126 SCIP_Real dot; /**< directional derivative of this expr (see \ref SCIP_EXPR_DIFF "Differentiation methods") */
127 SCIP_Real bardot; /**< directional derivative of derivative of root (strictly speaking, a path) w.r.t this expr (see \ref SCIP_EXPR_DIFF "Differentiation methods") */
128 SCIP_Longint evaltag; /**< tag of point for which the expression has been evaluated last, or 0 */
129 SCIP_Longint difftag; /**< when computing partial derivatives of an expression w.r.t. a variable,
138 SCIP_EXPRCURV curvature; /**< curvature of the expression w.r.t. bounds that have been used in the last curvature detection */
144 SCIP_QUADEXPR* quaddata; /**< representation of expression as a quadratic, if checked and being quadratic */
163 SCIP_Bool allexprsarevars; /**< whether all arguments (linexprs, quadexprterms[.].expr) are variable expressions */
185 SCIP_EXPR* sqrexpr; /**< expression that was found to be the square of expr, or NULL if no square term (sqrcoef==0) */
190 * except for temporary reasons, we assume that the index of var1 is smaller than the index of var2
211 int iterindex; /**< index of iterator data in expressions, or -1 if not using iterator data in expressions */
212 SCIP_Longint visitedtag; /**< tag to mark and recognize an expression as visited, or 0 if not avoiding multiple visits */
static SCIP_RETCODE eval(SCIP *scip, SCIP_EXPR *expr, SCIP_EXPRINTDATA *exprintdata, const vector< Type > &x, Type &val)
Definition: exprinterpret_cppad.cpp:1334
memory allocation routines
Definition: struct_clock.h:65
Definition: struct_expr.h:204
Definition: struct_expr.h:106
SCIP_DECL_EXPR_OWNERPRINT((*ownerprint))
SCIP_EXPRITERDATA iterdata[SCIP_EXPRITER_MAXNACTIVE]
Definition: struct_expr.h:115
SCIP_DECL_EXPR_OWNEREVALACTIVITY((*ownerevalactivity))
SCIP_DECL_EXPR_OWNERFREE((*ownerfree))
Definition: struct_expr.h:44
SCIP_DECL_EXPRESTIMATE((*estimate))
SCIP_DECL_EXPRSIMPLIFY((*simplify))
SCIP_DECL_EXPRCURVATURE((*curvature))
SCIP_DECL_EXPRBWFWDIFF((*bwfwdiff))
SCIP_DECL_EXPRINTEVAL((*inteval))
SCIP_DECL_EXPRFWDIFF((*fwdiff))
SCIP_DECL_EXPRPARSE((*parse))
SCIP_DECL_EXPREVAL((*eval))
SCIP_DECL_EXPRMONOTONICITY((*monotonicity))
SCIP_DECL_EXPRCOMPARE((*compare))
SCIP_DECL_EXPRPRINT((*print))
SCIP_DECL_EXPRCOPYHDLR((*copyhdlr))
SCIP_DECL_EXPRREVERSEPROP((*reverseprop))
SCIP_DECL_EXPRFREEDATA((*freedata))
SCIP_DECL_EXPRCOPYDATA((*copydata))
SCIP_DECL_EXPRGETSYMDATA((*getsymdata))
SCIP_DECL_EXPRINTEGRALITY((*integrality))
SCIP_DECL_EXPRFREEHDLR((*freehdlr))
SCIP_DECL_EXPRHASH((*hash))
SCIP_DECL_EXPRINITESTIMATES((*initestimates))
SCIP_DECL_EXPRBWDIFF((*bwdiff))
Definition: intervalarith.h:54
Definition: struct_expr.h:193
Definition: struct_expr.h:176
Definition: struct_expr.h:150
Definition: struct_misc.h:61
Definition: struct_stat.h:60
type definitions for clocks and timing issues
type and macro definitions related to algebraic expressions
type definitions for problem statistics
Definition: type_expr.h:703