44struct SCIP_ExprhdlrData
46 scip::ObjExprhdlr* objexprhdlr;
71 assert(exprhdlrdata->objexprhdlr->scip_ !=
scip);
73 if( exprhdlrdata->objexprhdlr->iscloneable() )
92 assert((*exprhdlrdata)->objexprhdlr->scip_ ==
scip);
95 SCIP_CALL( (*exprhdlrdata)->objexprhdlr->scip_freehdlr(
scip, exprhdlr, exprhdlrdata) );
98 if( (*exprhdlrdata)->deleteobject )
99 delete (*exprhdlrdata)->objexprhdlr;
102 delete (*exprhdlrdata);
103 *exprhdlrdata =
NULL;
134 SCIP_CALL( exprhdlrdata->objexprhdlr->scip_copydata(targetscip, targetexprhdlr, targetexprdata, sourcescip, sourceexpr) );
150 SCIP_CALL( exprhdlrdata->objexprhdlr->scip_freedata(
scip, expr) );
166 SCIP_CALL( exprhdlrdata->objexprhdlr->scip_simplify(
scip, expr, simplifiedexpr, ownercreate, ownercreatedata) );
182 return exprhdlrdata->objexprhdlr->scip_compare(
scip, expr1, expr2);
196 SCIP_CALL( exprhdlrdata->objexprhdlr->scip_print(
scip, expr, stage, currentchild, parentprecedence, file) );
211 SCIP_CALL( exprhdlrdata->objexprhdlr->scip_parse(
scip, exprhdlr,
string, endstring,
212 expr, success, ownercreate, ownercreatedata) );
228 SCIP_CALL( exprhdlrdata->objexprhdlr->scip_bwdiff(
scip, expr, childidx, val) );
244 SCIP_CALL( exprhdlrdata->objexprhdlr->scip_fwdiff(
scip, expr, dot, direction) );
260 SCIP_CALL( exprhdlrdata->objexprhdlr->scip_bwfwdiff(
scip, expr, childidx, bardot, direction) );
276 SCIP_CALL( exprhdlrdata->objexprhdlr->scip_inteval(
scip, expr, interval, intevalvar, intevalvardata) );
292 SCIP_CALL( exprhdlrdata->objexprhdlr->scip_estimate(
scip, expr, localbounds, globalbounds,
293 refpoint, overestimate, targetvalue, coefs, constant, islocal, success, branchcand) );
309 SCIP_CALL( exprhdlrdata->objexprhdlr->scip_initestimates(
scip, expr, bounds, overestimate,
310 coefs, constant, nreturned) );
326 SCIP_CALL( exprhdlrdata->objexprhdlr->scip_reverseprop(
scip, expr, bounds, childrenbounds, infeasible) );
342 SCIP_CALL( exprhdlrdata->objexprhdlr->scip_hash(
scip, expr, hashkey, childrenhashes) );
358 SCIP_CALL( exprhdlrdata->objexprhdlr->scip_curvature(
scip, expr, exprcurvature, success, childcurv) );
390 SCIP_CALL( exprhdlrdata->objexprhdlr->scip_integrality(
scip, expr, integrality) );
406 SCIP_CALL( exprhdlrdata->objexprhdlr->scip_getsymdata(
scip, expr, symdata) );
434 exprhdlrdata->objexprhdlr = objexprhdlr;
435 exprhdlrdata->deleteobject = deleteobject;
478 if( cexprhdlr !=
NULL )
479 *cexprhdlr = exprhdlr;
494 if( exprhdlr ==
NULL )
500 return exprhdlrdata->objexprhdlr;
515 return exprhdlrdata->objexprhdlr;
C++ wrapper for expression handlers.
const SCIP_Bool scip_has_reverseprop_
const unsigned int scip_precedence_
const SCIP_Bool scip_has_bwdiff_
const SCIP_Bool scip_has_hash_
const SCIP_Bool scip_has_fwdiff_
const SCIP_Bool scip_has_bwfwdiff_
const SCIP_Bool scip_has_compare_
const SCIP_Bool scip_has_parse_
const SCIP_Bool scip_has_curvature_
const SCIP_Bool scip_has_initestimates_
const SCIP_Bool scip_has_integrality_
const SCIP_Bool scip_has_freedata_
const SCIP_Bool scip_has_copydata_
const SCIP_Bool scip_has_estimate_
const SCIP_Bool scip_has_getsymdata_
const SCIP_Bool scip_has_print_
const SCIP_Bool scip_has_simplify_
const SCIP_Bool scip_has_monotonicity_
const SCIP_Bool scip_has_inteval_
void SCIPexprhdlrSetCompare(SCIP_EXPRHDLR *exprhdlr,)
void SCIPexprhdlrSetIntegrality(SCIP_EXPRHDLR *exprhdlr,)
void SCIPexprhdlrSetCurvature(SCIP_EXPRHDLR *exprhdlr,)
void SCIPexprhdlrSetParse(SCIP_EXPRHDLR *exprhdlr,)
SCIP_EXPRHDLRDATA * SCIPexprhdlrGetData(SCIP_EXPRHDLR *exprhdlr)
void SCIPexprhdlrSetIntEval(SCIP_EXPRHDLR *exprhdlr,)
void SCIPexprhdlrSetMonotonicity(SCIP_EXPRHDLR *exprhdlr,)
void SCIPexprhdlrSetReverseProp(SCIP_EXPRHDLR *exprhdlr,)
void SCIPexprhdlrSetHash(SCIP_EXPRHDLR *exprhdlr,)
void SCIPexprhdlrSetGetSymdata(SCIP_EXPRHDLR *exprhdlr,)
SCIP_RETCODE SCIPincludeExprhdlr(SCIP *scip, SCIP_EXPRHDLR **exprhdlr, const char *name, const char *desc, unsigned int precedence, SCIP_DECL_EXPREVAL((*eval)), SCIP_EXPRHDLRDATA *data)
void SCIPexprhdlrSetSimplify(SCIP_EXPRHDLR *exprhdlr,)
void SCIPexprhdlrSetDiff(SCIP_EXPRHDLR *exprhdlr, SCIP_DECL_EXPRBWDIFF((*bwdiff)), SCIP_DECL_EXPRFWDIFF((*fwdiff)),)
void SCIPexprhdlrSetCopyFreeHdlr(SCIP_EXPRHDLR *exprhdlr, SCIP_DECL_EXPRCOPYHDLR((*copyhdlr)),)
void SCIPexprhdlrSetPrint(SCIP_EXPRHDLR *exprhdlr,)
SCIP_EXPRHDLR * SCIPfindExprhdlr(SCIP *scip, const char *name)
void SCIPexprhdlrSetCopyFreeData(SCIP_EXPRHDLR *exprhdlr, SCIP_DECL_EXPRCOPYDATA((*copydata)),)
void SCIPexprhdlrSetEstimate(SCIP_EXPRHDLR *exprhdlr, SCIP_DECL_EXPRINITESTIMATES((*initestimates)),)
SCIP_EXPRHDLR * SCIPexprGetHdlr(SCIP_EXPR *expr)
assert(minobj< SCIPgetCutoffbound(scip))
scip::ObjExprhdlr * SCIPfindObjExprhdlr(SCIP *scip, const char *name)
scip::ObjExprhdlr * SCIPgetObjExprhdlr(SCIP *scip, SCIP_EXPRHDLR *exprhdlr)
SCIP_RETCODE SCIPincludeObjExprhdlr(SCIP *scip, scip::ObjExprhdlr *objexprhdlr, SCIP_Bool deleteobject, SCIP_EXPRHDLR **cexprhdlr)
C++ wrapper for expression handlers.
#define SCIP_DECL_EXPRREVERSEPROP(x)
#define SCIP_DECL_EXPRINITESTIMATES(x)
#define SCIP_DECL_EXPRBWFWDIFF(x)
#define SCIP_DECL_EXPRCURVATURE(x)
struct SCIP_ExprhdlrData SCIP_EXPRHDLRDATA
#define SCIP_DECL_EXPRFREEDATA(x)
#define SCIP_DECL_EXPRPARSE(x)
#define SCIP_DECL_EXPRBWDIFF(x)
#define SCIP_DECL_EXPRINTEVAL(x)
#define SCIP_DECL_EXPRMONOTONICITY(x)
struct SCIP_Exprhdlr SCIP_EXPRHDLR
#define SCIP_DECL_EXPRCOMPARE(x)
#define SCIP_DECL_EXPRSIMPLIFY(x)
#define SCIP_DECL_EXPREVAL(x)
#define SCIP_DECL_EXPRFWDIFF(x)
#define SCIP_DECL_EXPRHASH(x)
#define SCIP_DECL_EXPRCOPYHDLR(x)
#define SCIP_DECL_EXPRPRINT(x)
#define SCIP_DECL_EXPRFREEHDLR(x)
#define SCIP_DECL_EXPRINTEGRALITY(x)
#define SCIP_DECL_EXPRGETSYMDATA(x)
#define SCIP_DECL_EXPRCOPYDATA(x)
#define SCIP_DECL_EXPRESTIMATE(x)
enum SCIP_Retcode SCIP_RETCODE