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)
377#define SCIP_DECL_EXPRINTEGRALITY(x) SCIP_RETCODE x (\
380 SCIP_IMPLINTTYPE* integrality)
393#define SCIP_DECL_EXPRHASH(x) SCIP_RETCODE x (\
396 unsigned int* hashkey, \
397 unsigned int* childrenhashes)
412#define SCIP_DECL_EXPRCOMPARE(x) int x (\
428#define SCIP_DECL_EXPREVAL(x) SCIP_RETCODE x (\
451#define SCIP_DECL_EXPRBWDIFF(x) SCIP_RETCODE x (\
482#define SCIP_DECL_EXPRFWDIFF(x) SCIP_RETCODE x (\
522#define SCIP_DECL_EXPRBWFWDIFF(x) SCIP_RETCODE x (\
541#define SCIP_DECL_EXPRINTEVAL(x) SCIP_RETCODE x (\
544 SCIP_INTERVAL* interval, \
545 SCIP_DECL_EXPR_INTEVALVAR((*intevalvar)), \
546 void* intevalvardata)
577#define SCIP_DECL_EXPRESTIMATE(x) SCIP_RETCODE x (\
580 SCIP_INTERVAL* localbounds, \
581 SCIP_INTERVAL* globalbounds, \
582 SCIP_Real* refpoint, \
583 SCIP_Bool overestimate, \
584 SCIP_Real targetvalue, \
586 SCIP_Real* constant, \
587 SCIP_Bool* islocal, \
588 SCIP_Bool* success, \
589 SCIP_Bool* branchcand)
610#define SCIP_DECL_EXPRINITESTIMATES(x) SCIP_RETCODE x ( \
613 SCIP_INTERVAL* bounds, \
614 SCIP_Bool overestimate, \
615 SCIP_Real* coefs[SCIP_EXPR_MAXINITESTIMATES], \
616 SCIP_Real constant[SCIP_EXPR_MAXINITESTIMATES], \
634#define SCIP_DECL_EXPRSIMPLIFY(x) SCIP_RETCODE x (\
637 SCIP_EXPR** simplifiedexpr, \
638 SCIP_DECL_EXPR_OWNERCREATE((*ownercreate)), \
639 void* ownercreatedata)
659#define SCIP_DECL_EXPRREVERSEPROP(x) SCIP_RETCODE x (\
662 SCIP_INTERVAL bounds, \
663 SCIP_INTERVAL* childrenbounds, \
664 SCIP_Bool* infeasible)
674#define SCIP_DECL_EXPRGETSYMDATA(x) SCIP_RETCODE x (\
677 SYM_EXPRDATA** symdata)
691#define SCIP_EXPRITER_MAXNACTIVE 5
694#define SCIP_EXPRITER_ENTEREXPR 1u
695#define SCIP_EXPRITER_VISITINGCHILD 2u
696#define SCIP_EXPRITER_VISITEDCHILD 4u
697#define SCIP_EXPRITER_LEAVEEXPR 8u
698#define SCIP_EXPRITER_ALLSTAGES (SCIP_EXPRITER_ENTEREXPR | SCIP_EXPRITER_VISITINGCHILD | SCIP_EXPRITER_VISITEDCHILD | SCIP_EXPRITER_LEAVEEXPR)
730#define SCIP_EXPRPRINT_EXPRSTRING 0x1u
731#define SCIP_EXPRPRINT_EXPRHDLR 0x2u
732#define SCIP_EXPRPRINT_NUSES 0x4u
733#define SCIP_EXPRPRINT_EVALVALUE 0x8u
734#define SCIP_EXPRPRINT_EVALTAG 0x18u
735#define SCIP_EXPRPRINT_ACTIVITY 0x20u
736#define SCIP_EXPRPRINT_ACTIVITYTAG 0x60u
737#define SCIP_EXPRPRINT_OWNER 0x80u
740#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_Expr SCIP_EXPR
struct SCIP_ExprIter SCIP_EXPRITER
struct SCIP_ExprhdlrData SCIP_EXPRHDLRDATA
struct SCIP_ExprData SCIP_EXPRDATA
struct SCIP_ExprIterData SCIP_EXPRITERDATA
struct SCIP_Expr_OwnerData SCIP_EXPR_OWNERDATA
struct SCIP_Exprhdlr SCIP_EXPRHDLR
unsigned int SCIP_EXPRPRINT_WHAT
@ SCIP_EXPRITER_RTOPOLOGIC
struct SYM_ExprData SYM_EXPRDATA
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