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 */
80typedef 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
195typedef 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)
719typedef 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
common defines and data types used in all packages of SCIP
interval arithmetics for provable bounds
Definition: struct_expr.h:204
Definition: struct_expr.h:106
Definition: struct_expr.h:44
Definition: struct_symmetry.h:103
type definitions for return codes for SCIP methods
type definitions for SCIP's main datastructure
type definitions for storing primal CIP solutions
type definitions for branch and bound tree
type definitions for problem variables
Definition: type_expr.h:703