type_expr.h
Go to the documentation of this file.
53 SCIP_EXPRCURV_LINEAR = SCIP_EXPRCURV_CONVEX | SCIP_EXPRCURV_CONCAVE/**< linear = convex and concave */
62 SCIP_MONOTONE_CONST = SCIP_MONOTONE_INC | SCIP_MONOTONE_DEC /**< constant = increasing and decreasing */
68 typedef struct SCIP_Expr_OwnerData SCIP_EXPR_OWNERDATA; /**< data stored by expression owner (e.g., conshdlr, nlp) in expression */
74 * That is, the callback is also called on expressions that only store this callback, but no ownerdata.
76 * Note, that the children of the expression have already been released when this callback is called.
105 * This callback is called when evaluating the activity of an expression, e.g., SCIPevalActivity().
106 * The callback should ensure that activity is updated, if required, by calling SCIPsetActivity().
107 * The callback can use the activitytag in the expression to recognize whether it needs to become active.
125 * \param[out] ownerdata buffer to store ownerdata that shall be stored in expression (can be NULL, initialized to NULL)
126 * \param[out] ownerfree buffer to store function to be called to free ownerdata when expression is freed (can be NULL, initialized to NULL)
127 * \param[out] ownerprint buffer to store function to be called to print ownerdata (can be NULL, initialized to NULL)
128 * \param[out] ownerevalactivity buffer to store function to be called to evaluate activity (can be NULL, initialized to NULL)
129 * \param[in] ownercreatedata data that has been passed on by future owner of expression that can be used to create ownerdata
144 * Implements a relaxation scheme for variable bounds and translates between different infinity values.
145 * Returns an interval that contains the current variable bounds, but might be (slightly) larger.
163 * \param[out] targetexpr pointer to store the mapped expression, or NULL if expression shall be copied; initialized to NULL
183 typedef struct SCIP_ExprhdlrData SCIP_EXPRHDLRDATA; /**< expression handler data, e.g., SCIP parameter values */
185 /** the maximal number of estimates an expression handler can return in the INITESTIMATES callback */
264 * when the expression is visited the first time, before each child of the expression is visited,
265 * after each child of the expression has been visited, and when the iterator leaves the expression
314 * That is, the method shall return TRUE in success and requirements on the curvature for each child
315 * which will suffice for this expression to be convex (or concave, or linear, as specified by caller)
317 * It can return "unknown" for a child's curvature if its curvature does not matter (though that's
354 * The method checks whether an expression evaluates always to an integral value in a feasible solution.
446 * 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$
456 * where \f$ u \f$ is the direction and \f$ D_u c_i \f$ is the directional derivative of the i-th child,
476 * The method computes the total derivative, w.r.t. its children, of the partial derivative of expr w.r.t. childidx.
479 * 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$
487 * \sum_{i = 1}^n \frac{\partial^2 \text{expr}}{\partial c_i} \partial c_{\text{childidx}} D_u c_i,
490 * where \f$ u \f$ is the direction and \f$ D_u c_i \f$ is the directional derivative of the i-th child,
493 * Thus, if \f$ n = 1 \f$ (i.e. if expr represents an univariate operator), the method should return
545 * The callback shall indicate in branchcand[i] whether branching on the i-th child would improve
546 * the estimator. It can be assumed that branchcand[i] has been initialized to TRUE for all children.
610 * If no simplification is possible, then shall set *simplifiedexpr to expr and capture *simplifiedexpr.
640 * \param[in,out] childrenbounds array to store computed bounds for children, initialized with current activity
641 * \param[out] infeasible buffer to store whether a children bounds were propagated to an empty interval
667 #define SCIP_EXPRITER_ENTEREXPR 1u /**< an expression is visited the first time (before any of its children are visited) */
670 #define SCIP_EXPRITER_LEAVEEXPR 8u /**< an expression is to be left (all of its children have been processed) */
671 #define SCIP_EXPRITER_ALLSTAGES (SCIP_EXPRITER_ENTEREXPR | SCIP_EXPRITER_VISITINGCHILD | SCIP_EXPRITER_VISITEDCHILD | SCIP_EXPRITER_LEAVEEXPR)
694 typedef struct SCIP_ExprIterData SCIP_EXPRITERDATA; /**< expression iterator data of a specific expression */
703 #define SCIP_EXPRPRINT_EXPRSTRING 0x1u /**< print the math. function that the expression represents (e.g., "c0+c1") */
713 #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:59
Definition: type_expr.h:52
Definition: type_expr.h:689
Definition: struct_expr.h:34
Definition: type_expr.h:53
Definition: type_expr.h:61
Definition: type_expr.h:677
Definition: type_expr.h:62
Definition: type_expr.h:690
interval arithmetics for provable bounds
Definition: type_expr.h:51
Definition: type_expr.h:691
type definitions for SCIP's main datastructure
Definition: type_expr.h:50
type definitions for problem variables
Definition: struct_expr.h:193
Definition: struct_expr.h:95
type definitions for branch and bound tree
type definitions for storing primal CIP solutions
Definition: type_expr.h:60
common defines and data types used in all packages of SCIP