43#ifndef SCIP_TYPE_EXPR_H_
44#define SCIP_TYPE_EXPR_H_
95#define SCIP_DECL_EXPR_OWNERFREE(x) SCIP_RETCODE x(\
98 SCIP_EXPR_OWNERDATA** ownerdata)
109#define SCIP_DECL_EXPR_OWNERPRINT(x) SCIP_RETCODE x(\
113 SCIP_EXPR_OWNERDATA* ownerdata)
125#define SCIP_DECL_EXPR_OWNEREVALACTIVITY(x) SCIP_RETCODE x(\
128 SCIP_EXPR_OWNERDATA* ownerdata)
143#define SCIP_DECL_EXPR_OWNERCREATE(x) SCIP_RETCODE x(\
146 SCIP_EXPR_OWNERDATA** ownerdata, \
147 SCIP_DECL_EXPR_OWNERFREE((**ownerfree)), \
148 SCIP_DECL_EXPR_OWNERPRINT((**ownerprint)), \
149 SCIP_DECL_EXPR_OWNEREVALACTIVITY((**ownerevalactivity)), \
150 void* ownercreatedata)
163#define SCIP_DECL_EXPR_INTEVALVAR(x) SCIP_INTERVAL x (\
166 void* intevalvardata \
182#define SCIP_DECL_EXPR_MAPEXPR(x) SCIP_RETCODE x (\
184 SCIP_EXPR** targetexpr, \
186 SCIP_EXPR* sourceexpr, \
187 SCIP_DECL_EXPR_OWNERCREATE((*ownercreate)), \
188 void* ownercreatedata, \
198#define SCIP_EXPR_MAXINITESTIMATES 10
210#define SCIP_DECL_EXPRCOPYHDLR(x) SCIP_RETCODE x (\
212 SCIP_EXPRHDLR* sourceexprhdlr)
224#define SCIP_DECL_EXPRFREEHDLR(x) SCIP_RETCODE x (\
226 SCIP_EXPRHDLR* exprhdlr, \
227 SCIP_EXPRHDLRDATA** exprhdlrdata)
249#define SCIP_DECL_EXPRCOPYDATA(x) SCIP_RETCODE x (\
251 SCIP_EXPRHDLR* targetexprhdlr, \
252 SCIP_EXPRDATA** targetexprdata, \
254 SCIP_EXPR* sourceexpr)
268#define SCIP_DECL_EXPRFREEDATA(x) SCIP_RETCODE x (\
289#define SCIP_DECL_EXPRPRINT(x) SCIP_RETCODE x (\
292 SCIP_EXPRITER_STAGE stage, \
294 unsigned int parentprecedence, \
312#define SCIP_DECL_EXPRPARSE(x) SCIP_RETCODE x (\
314 SCIP_EXPRHDLR* exprhdlr, \
315 const char* string, \
316 const char** endstring, \
318 SCIP_Bool* success, \
319 SCIP_DECL_EXPR_OWNERCREATE((*ownercreate)), \
320 void* ownercreatedata)
340#define SCIP_DECL_EXPRCURVATURE(x) SCIP_RETCODE x (\
343 SCIP_EXPRCURV exprcurvature, \
344 SCIP_Bool* success, \
345 SCIP_EXPRCURV* childcurv)
358#define SCIP_DECL_EXPRMONOTONICITY(x) SCIP_RETCODE x (\
362 SCIP_MONOTONE* result)
375#define SCIP_DECL_EXPRINTEGRALITY(x) SCIP_RETCODE x (\
378 SCIP_Bool* isintegral)
391#define SCIP_DECL_EXPRHASH(x) SCIP_RETCODE x (\
394 unsigned int* hashkey, \
395 unsigned int* childrenhashes)
410#define SCIP_DECL_EXPRCOMPARE(x) int x (\
426#define SCIP_DECL_EXPREVAL(x) SCIP_RETCODE x (\
449#define SCIP_DECL_EXPRBWDIFF(x) SCIP_RETCODE x (\
480#define SCIP_DECL_EXPRFWDIFF(x) SCIP_RETCODE x (\
520#define SCIP_DECL_EXPRBWFWDIFF(x) SCIP_RETCODE x (\
539#define SCIP_DECL_EXPRINTEVAL(x) SCIP_RETCODE x (\
542 SCIP_INTERVAL* interval, \
543 SCIP_DECL_EXPR_INTEVALVAR((*intevalvar)), \
544 void* intevalvardata)
575#define SCIP_DECL_EXPRESTIMATE(x) SCIP_RETCODE x (\
578 SCIP_INTERVAL* localbounds, \
579 SCIP_INTERVAL* globalbounds, \
580 SCIP_Real* refpoint, \
581 SCIP_Bool overestimate, \
582 SCIP_Real targetvalue, \
584 SCIP_Real* constant, \
585 SCIP_Bool* islocal, \
586 SCIP_Bool* success, \
587 SCIP_Bool* branchcand)
608#define SCIP_DECL_EXPRINITESTIMATES(x) SCIP_RETCODE x ( \
611 SCIP_INTERVAL* bounds, \
612 SCIP_Bool overestimate, \
613 SCIP_Real* coefs[SCIP_EXPR_MAXINITESTIMATES], \
614 SCIP_Real constant[SCIP_EXPR_MAXINITESTIMATES], \
632#define SCIP_DECL_EXPRSIMPLIFY(x) SCIP_RETCODE x (\
635 SCIP_EXPR** simplifiedexpr, \
636 SCIP_DECL_EXPR_OWNERCREATE((*ownercreate)), \
637 void* ownercreatedata)
657#define SCIP_DECL_EXPRREVERSEPROP(x) SCIP_RETCODE x (\
660 SCIP_INTERVAL bounds, \
661 SCIP_INTERVAL* childrenbounds, \
662 SCIP_Bool* infeasible)
672#define SCIP_DECL_EXPRGETSYMDATA(x) SCIP_RETCODE x (\
675 SYM_EXPRDATA** symdata)
689#define SCIP_EXPRITER_MAXNACTIVE 5
692#define SCIP_EXPRITER_ENTEREXPR 1u
693#define SCIP_EXPRITER_VISITINGCHILD 2u
694#define SCIP_EXPRITER_VISITEDCHILD 4u
695#define SCIP_EXPRITER_LEAVEEXPR 8u
696#define SCIP_EXPRITER_ALLSTAGES (SCIP_EXPRITER_ENTEREXPR | SCIP_EXPRITER_VISITINGCHILD | SCIP_EXPRITER_VISITEDCHILD | SCIP_EXPRITER_LEAVEEXPR)
728#define SCIP_EXPRPRINT_EXPRSTRING 0x1u
729#define SCIP_EXPRPRINT_EXPRHDLR 0x2u
730#define SCIP_EXPRPRINT_NUSES 0x4u
731#define SCIP_EXPRPRINT_EVALVALUE 0x8u
732#define SCIP_EXPRPRINT_EVALTAG 0x18u
733#define SCIP_EXPRPRINT_ACTIVITY 0x20u
734#define SCIP_EXPRPRINT_ACTIVITYTAG 0x60u
735#define SCIP_EXPRPRINT_OWNER 0x80u
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
struct SCIP_ExprhdlrData SCIP_EXPRHDLRDATA
struct SCIP_ExprData SCIP_EXPRDATA
struct SCIP_ExprIterData SCIP_EXPRITERDATA
struct SCIP_Expr_OwnerData SCIP_EXPR_OWNERDATA
unsigned int SCIP_EXPRPRINT_WHAT
@ SCIP_EXPRITER_RTOPOLOGIC
struct SCIP_ExprPrintData SCIP_EXPRPRINTDATA
unsigned int SCIP_EXPRITER_STAGE
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