type_expr.h
Go to the documentation of this file.
65 SCIP_EXPRCURV_LINEAR = SCIP_EXPRCURV_CONVEX | SCIP_EXPRCURV_CONCAVE/**< linear = convex and concave */
74 SCIP_MONOTONE_CONST = SCIP_MONOTONE_INC | SCIP_MONOTONE_DEC /**< constant = increasing and decreasing */
80 typedef struct SCIP_Expr_OwnerData SCIP_EXPR_OWNERDATA; /**< data stored by expression owner (e.g., conshdlr, nlp) in expression */
86 * That is, the callback is also called on expressions that only store this callback, but no ownerdata.
88 * Note, that the children of the expression have already been released when this callback is called.
117 * This callback is called when evaluating the activity of an expression, e.g., SCIPevalActivity().
118 * The callback should ensure that activity is updated, if required, by calling SCIPsetActivity().
119 * The callback can use the activitytag in the expression to recognize whether it needs to become active.
137 * \param[out] ownerdata buffer to store ownerdata that shall be stored in expression (can be NULL, initialized to NULL)
138 * \param[out] ownerfree buffer to store function to be called to free ownerdata when expression is freed (can be NULL, initialized to NULL)
139 * \param[out] ownerprint buffer to store function to be called to print ownerdata (can be NULL, initialized to NULL)
140 * \param[out] ownerevalactivity buffer to store function to be called to evaluate activity (can be NULL, initialized to NULL)
141 * \param[in] ownercreatedata data that has been passed on by future owner of expression that can be used to create ownerdata
156 * Implements a relaxation scheme for variable bounds and translates between different infinity values.
157 * Returns an interval that contains the current variable bounds, but might be (slightly) larger.
175 * \param[out] targetexpr pointer to store the mapped expression, or NULL if expression shall be copied; initialized to NULL
195 typedef struct SCIP_ExprhdlrData SCIP_EXPRHDLRDATA; /**< expression handler data, e.g., SCIP parameter values */
197 /** the maximal number of estimates an expression handler can return in the INITESTIMATES callback */
276 * when the expression is visited the first time, before each child of the expression is visited,
277 * after each child of the expression has been visited, and when the iterator leaves the expression
326 * That is, the method shall return TRUE in success and requirements on the curvature for each child
327 * which will suffice for this expression to be convex (or concave, or linear, as specified by caller)
329 * It can return "unknown" for a child's curvature if its curvature does not matter (though that's
366 * The method checks whether an expression evaluates always to an integral value in a feasible solution.
458 * The expr should be interpreted as an operator \f$ \text{expr}(c_1, \ldots, c_n) \f$, where \f$ c_1, \ldots, c_n \f$
468 * where \f$ u \f$ is the direction and \f$ D_u c_i \f$ is the directional derivative of the i-th child,
488 * The method computes the total derivative, w.r.t. its children, of the partial derivative of expr w.r.t. childidx.
491 * The expr should be interpreted as an operator \f$ \text{expr}(c_1, \ldots, c_n) \f$, where \f$ c_1, \ldots, c_n \f$
499 * \sum_{i = 1}^n \frac{\partial^2 \text{expr}}{\partial c_i} \partial c_{\text{childidx}} D_u c_i,
502 * where \f$ u \f$ is the direction and \f$ D_u c_i \f$ is the directional derivative of the i-th child,
505 * Thus, if \f$ n = 1 \f$ (i.e. if expr represents an univariate operator), the method should return
557 * The callback shall indicate in branchcand[i] whether branching on the i-th child would improve
558 * the estimator. It can be assumed that branchcand[i] has been initialized to TRUE for all children.
622 * If no simplification is possible, then shall set *simplifiedexpr to expr and capture *simplifiedexpr.
652 * \param[in,out] childrenbounds array to store computed bounds for children, initialized with current activity
653 * \param[out] infeasible buffer to store whether a children bounds were propagated to an empty interval
692 #define SCIP_EXPRITER_ENTEREXPR 1u /**< an expression is visited the first time (before any of its children are visited) */
695 #define SCIP_EXPRITER_LEAVEEXPR 8u /**< an expression is to be left (all of its children have been processed) */
696 #define SCIP_EXPRITER_ALLSTAGES (SCIP_EXPRITER_ENTEREXPR | SCIP_EXPRITER_VISITINGCHILD | SCIP_EXPRITER_VISITEDCHILD | SCIP_EXPRITER_LEAVEEXPR)
719 typedef struct SCIP_ExprIterData SCIP_EXPRITERDATA; /**< expression iterator data of a specific expression */
728 #define SCIP_EXPRPRINT_EXPRSTRING 0x1u /**< print the math. function that the expression represents (e.g., "c0+c1") */
738 #define SCIP_EXPRPRINT_ALL SCIP_EXPRPRINT_EXPRSTRING | SCIP_EXPRPRINT_EXPRHDLR | SCIP_EXPRPRINT_NUSES | SCIP_EXPRPRINT_EVALTAG | SCIP_EXPRPRINT_ACTIVITYTAG | SCIP_EXPRPRINT_OWNER
Definition: type_expr.h:71
Definition: type_expr.h:64
Definition: type_expr.h:714
Definition: struct_expr.h:43
Definition: struct_symmetry.h:102
Definition: type_expr.h:65
type definitions for return codes for SCIP methods
Definition: type_expr.h:73
Definition: type_expr.h:702
Definition: type_expr.h:74
Definition: type_expr.h:715
interval arithmetics for provable bounds
Definition: type_expr.h:63
Definition: type_expr.h:716
type definitions for SCIP's main datastructure
Definition: type_expr.h:62
type definitions for problem variables
Definition: struct_expr.h:203
Definition: struct_expr.h:105
type definitions for branch and bound tree
type definitions for storing primal CIP solutions
Definition: type_expr.h:72
common defines and data types used in all packages of SCIP