nlhdlr_bilinear.h
Go to the documentation of this file.
22 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
48 * This nonlinear handler detects and collects bilinear terms and provides specialized propagation and estimation functionality.
59 /** returns an array of nonlinear handler expressions data of expressions that have been detected by the bilinear nonlinear handler */
65 /** returns the total number of expressions that have been detected by the bilinear nonlinear handler */
71 /** 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$ */
93 SCIP_Bool* success /**< buffer to set to FALSE if linearization has failed due to large numbers */
107 SCIP_Bool overestimate, /**< whether to compute an overestimator instead of an underestimator */
111 SCIP_Bool* success /**< buffer to set to FALSE if linearization has failed due to large numbers */
114 /** computes coefficients of linearization of a bilinear term in a reference point when given a linear inequality
117 * @note the formulas are extracted from "Convex envelopes of bivariate functions through the solution of KKT systems"
130 SCIP_Bool overestimate, /**< whether to compute an overestimator instead of an underestimator */
134 SCIP_Real* RESTRICT lincoefx, /**< buffer to store coefficient of first variable in linearization */
135 SCIP_Real* RESTRICT lincoefy, /**< buffer to store coefficient of second variable in linearization */
140 /** computes coefficients of linearization of a bilinear term in a reference point when given two linear inequalities
143 * @note the formulas are extracted from "Convex envelopes of bivariate functions through the solution of KKT systems"
156 SCIP_Bool overestimate, /**< whether to compute an overestimator instead of an underestimator */
163 SCIP_Real* RESTRICT lincoefx, /**< buffer to store coefficient of first variable in linearization */
164 SCIP_Real* RESTRICT lincoefy, /**< buffer to store coefficient of second variable in linearization */
Definition: struct_scip.h:59
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:2184
Definition: struct_nlhdlr.h:34
Definition: struct_expr.h:95
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:1752
SCIP_EXPR ** SCIPgetExprsBilinear(SCIP_NLHDLR *nlhdlr)
Definition: nlhdlr_bilinear.c:1518
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:1550
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:1705
SCIP_RETCODE SCIPincludeNlhdlrBilinear(SCIP *scip)
Definition: nlhdlr_bilinear.c:1461
int SCIPgetNExprsBilinear(SCIP_NLHDLR *nlhdlr)
Definition: nlhdlr_bilinear.c:1534
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:1960
public functions of nonlinear handlers of nonlinear constraints
Definition: objbenders.h:33
SCIP_NLHDLREXPRDATA ** SCIPgetExprsdataBilinear(SCIP_NLHDLR *nlhdlr)
SCIP callable library.