nlhdlr_bilinear.h
Go to the documentation of this file.
31 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
57 * This nonlinear handler detects and collects bilinear terms and provides specialized propagation and estimation functionality.
68 /** returns an array of nonlinear handler expressions data of expressions that have been detected by the bilinear nonlinear handler */
74 /** returns the total number of expressions that have been detected by the bilinear nonlinear handler */
80 /** adds a globally valid inequality of the form \f$\text{xcoef}\cdot x \leq \text{ycoef} \cdot y + \text{constant}\f$ to a product expression of the form \f$x\cdot y\f$ */
102 SCIP_Bool* success /**< buffer to set to FALSE if linearization has failed due to large numbers */
116 SCIP_Bool overestimate, /**< whether to compute an overestimator instead of an underestimator */
120 SCIP_Bool* success /**< buffer to set to FALSE if linearization has failed due to large numbers */
123 /** computes coefficients of linearization of a bilinear term in a reference point when given a linear inequality
126 * @note the formulas are extracted from "Convex envelopes of bivariate functions through the solution of KKT systems"
139 SCIP_Bool overestimate, /**< whether to compute an overestimator instead of an underestimator */
143 SCIP_Real* RESTRICT lincoefx, /**< buffer to store coefficient of first variable in linearization */
144 SCIP_Real* RESTRICT lincoefy, /**< buffer to store coefficient of second variable in linearization */
149 /** computes coefficients of linearization of a bilinear term in a reference point when given two linear inequalities
152 * @note the formulas are extracted from "Convex envelopes of bivariate functions through the solution of KKT systems"
165 SCIP_Bool overestimate, /**< whether to compute an overestimator instead of an underestimator */
172 SCIP_Real* RESTRICT lincoefx, /**< buffer to store coefficient of first variable in linearization */
173 SCIP_Real* RESTRICT lincoefy, /**< buffer to store coefficient of second variable in linearization */
Definition: struct_scip.h:69
void SCIPcomputeBilinEnvelope2(SCIP *scip, SCIP_Real bilincoef, SCIP_Real lbx, SCIP_Real ubx, SCIP_Real refpointx, SCIP_Real lby, SCIP_Real uby, SCIP_Real refpointy, SCIP_Bool overestimate, SCIP_Real alpha1, SCIP_Real beta1, SCIP_Real gamma1, SCIP_Real alpha2, SCIP_Real beta2, SCIP_Real gamma2, SCIP_Real *RESTRICT lincoefx, SCIP_Real *RESTRICT lincoefy, SCIP_Real *RESTRICT linconstant, SCIP_Bool *RESTRICT success)
Definition: nlhdlr_bilinear.c:2194
Definition: struct_nlhdlr.h:43
Definition: struct_expr.h:105
void SCIPaddBilinMcCormick(SCIP *scip, SCIP_Real bilincoef, SCIP_Real lbx, SCIP_Real ubx, SCIP_Real refpointx, SCIP_Real lby, SCIP_Real uby, SCIP_Real refpointy, SCIP_Bool overestimate, SCIP_Real *lincoefx, SCIP_Real *lincoefy, SCIP_Real *linconstant, SCIP_Bool *success)
Definition: nlhdlr_bilinear.c:1762
SCIP_EXPR ** SCIPgetExprsBilinear(SCIP_NLHDLR *nlhdlr)
Definition: nlhdlr_bilinear.c:1527
SCIP_RETCODE SCIPaddIneqBilinear(SCIP *scip, SCIP_NLHDLR *nlhdlr, SCIP_EXPR *expr, SCIP_Real xcoef, SCIP_Real ycoef, SCIP_Real constant, SCIP_Bool *success)
Definition: nlhdlr_bilinear.c:1559
void SCIPaddBilinLinearization(SCIP *scip, SCIP_Real bilincoef, SCIP_Real refpointx, SCIP_Real refpointy, SCIP_Real *lincoefx, SCIP_Real *lincoefy, SCIP_Real *linconstant, SCIP_Bool *success)
Definition: nlhdlr_bilinear.c:1715
SCIP_RETCODE SCIPincludeNlhdlrBilinear(SCIP *scip)
Definition: nlhdlr_bilinear.c:1470
int SCIPgetNExprsBilinear(SCIP_NLHDLR *nlhdlr)
Definition: nlhdlr_bilinear.c:1543
void SCIPcomputeBilinEnvelope1(SCIP *scip, SCIP_Real bilincoef, SCIP_Real lbx, SCIP_Real ubx, SCIP_Real refpointx, SCIP_Real lby, SCIP_Real uby, SCIP_Real refpointy, SCIP_Bool overestimate, SCIP_Real xcoef, SCIP_Real ycoef, SCIP_Real constant, SCIP_Real *RESTRICT lincoefx, SCIP_Real *RESTRICT lincoefy, SCIP_Real *RESTRICT linconstant, SCIP_Bool *RESTRICT success)
Definition: nlhdlr_bilinear.c:1970
public functions of nonlinear handlers of nonlinear constraints
Definition: objbenders.h:43
SCIP_NLHDLREXPRDATA ** SCIPgetExprsdataBilinear(SCIP_NLHDLR *nlhdlr)
SCIP callable library.