struct_expr.h
Go to the documentation of this file.
39 unsigned int precedence; /**< precedence of expression operation relative to other expression (used for printing) */
44 SCIP_DECL_EXPRCOPYDATA((*copydata)); /**< data copy callback, or NULL for expressions that have no data */
45 SCIP_DECL_EXPRFREEDATA((*freedata)); /**< data free callback, or NULL for expressions that have no data or which data does not need to be freed */
53 SCIP_DECL_EXPRBWFWDIFF((*bwfwdiff)); /**< backward over forward derivative evaluation callback (can be NULL) */
60 SCIP_DECL_EXPRMONOTONICITY((*monotonicity)); /**< monotonicity detection callback (can be NULL) */
69 SCIP_Longint ndomreds; /**< number of domain reductions found so far by this expression handler */
72 SCIP_Longint nbranchscores; /**< number of times branching scores were added by (or for) this expression handler */
84 int currentchild; /**< child that is currently visited (or will be visited next) by DFS iteration */
91 typedef struct SCIP_QuadExpr_QuadTerm SCIP_QUADEXPR_QUADTERM; /**< a single term associated to a quadratic variable */
111 SCIP_DECL_EXPR_OWNEREVALACTIVITY((*ownerevalactivity)); /**< callback for evaluating activity */
114 SCIP_Real evalvalue; /**< value of expression from last evaluation (corresponding to evaltag) */
115 SCIP_Real derivative; /**< partial derivative of a "root path" w.r.t. this expression (see \ref SCIP_EXPR_DIFF "Differentiation methods") */
116 SCIP_Real dot; /**< directional derivative of this expr (see \ref SCIP_EXPR_DIFF "Differentiation methods") */
117 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") */
118 SCIP_Longint evaltag; /**< tag of point for which the expression has been evaluated last, or 0 */
119 SCIP_Longint difftag; /**< when computing partial derivatives of an expression w.r.t. a variable,
128 SCIP_EXPRCURV curvature; /**< curvature of the expression w.r.t. bounds that have been used in the last curvature detection */
134 SCIP_QUADEXPR* quaddata; /**< representation of expression as a quadratic, if checked and being quadratic */
153 SCIP_Bool allexprsarevars; /**< whether all arguments (linexprs, quadexprterms[.].expr) are variable expressions */
175 SCIP_EXPR* sqrexpr; /**< expression that was found to be the square of expr, or NULL if no square term (sqrcoef==0) */
180 * except for temporary reasons, we assume that the index of var1 is smaller than the index of var2
201 int iterindex; /**< index of iterator data in expressions, or -1 if not using iterator data in expressions */
202 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:1318
Definition: intervalarith.h:44
Definition: struct_expr.h:165
SCIP_DECL_EXPRINITESTIMATES((*initestimates))
SCIP_DECL_EXPRFWDIFF((*fwdiff))
Definition: struct_expr.h:34
SCIP_DECL_EXPRINTEVAL((*inteval))
SCIP_DECL_EXPRINTEGRALITY((*integrality))
Definition: struct_expr.h:182
type definitions for problem statistics
Definition: type_expr.h:677
SCIP_DECL_EXPRFREEHDLR((*freehdlr))
Definition: struct_expr.h:139
SCIP_DECL_EXPREVAL((*eval))
SCIP_DECL_EXPRPARSE((*parse))
SCIP_DECL_EXPRESTIMATE((*estimate))
Definition: struct_misc.h:51
SCIP_DECL_EXPRREVERSEPROP((*reverseprop))
void print(const Container &container, const std::string &prefix="", const std::string &suffix="", std::ostream &os=std::cout, bool negate=false, int prec=6)
Definition: global_functions.h:95
SCIP_DECL_EXPRPRINT((*print))
Definition: struct_expr.h:193
Definition: struct_expr.h:95
SCIP_DECL_EXPRHASH((*hash))
#define SCIP_DECL_EXPR_OWNEREVALACTIVITY(x)
Definition: type_expr.h:113
type definitions for clocks and timing issues
SCIP_DECL_EXPRCOPYDATA((*copydata))
SCIP_DECL_EXPRCURVATURE((*curvature))
SCIP_DECL_EXPRCOMPARE((*compare))
SCIP_DECL_EXPRCOPYHDLR((*copyhdlr))
type and macro definitions related to algebraic expressions
SCIP_DECL_EXPRFREEDATA((*freedata))
SCIP_DECL_EXPRBWFWDIFF((*bwfwdiff))
SCIP_DECL_EXPRMONOTONICITY((*monotonicity))
SCIP_DECL_EXPRBWDIFF((*bwdiff))
Definition: struct_stat.h:50
SCIP_DECL_EXPRSIMPLIFY((*simplify))
Definition: struct_clock.h:55
memory allocation routines