43#ifndef SCIP_TYPE_EXPR_H_
44#define SCIP_TYPE_EXPR_H_
92#define SCIP_DECL_EXPR_OWNERFREE(x) SCIP_RETCODE x(\
95 SCIP_EXPR_OWNERDATA** ownerdata)
106#define SCIP_DECL_EXPR_OWNERPRINT(x) SCIP_RETCODE x(\
110 SCIP_EXPR_OWNERDATA* ownerdata)
122#define SCIP_DECL_EXPR_OWNEREVALACTIVITY(x) SCIP_RETCODE x(\
125 SCIP_EXPR_OWNERDATA* ownerdata)
140#define SCIP_DECL_EXPR_OWNERCREATE(x) SCIP_RETCODE x(\
143 SCIP_EXPR_OWNERDATA** ownerdata, \
144 SCIP_DECL_EXPR_OWNERFREE((**ownerfree)), \
145 SCIP_DECL_EXPR_OWNERPRINT((**ownerprint)), \
146 SCIP_DECL_EXPR_OWNEREVALACTIVITY((**ownerevalactivity)), \
147 void* ownercreatedata)
160#define SCIP_DECL_EXPR_INTEVALVAR(x) SCIP_INTERVAL x (\
163 void* intevalvardata \
179#define SCIP_DECL_EXPR_MAPEXPR(x) SCIP_RETCODE x (\
181 SCIP_EXPR** targetexpr, \
183 SCIP_EXPR* sourceexpr, \
184 SCIP_DECL_EXPR_OWNERCREATE((*ownercreate)), \
185 void* ownercreatedata, \
195#define SCIP_EXPR_MAXINITESTIMATES 10
207#define SCIP_DECL_EXPRCOPYHDLR(x) SCIP_RETCODE x (\
209 SCIP_EXPRHDLR* sourceexprhdlr)
221#define SCIP_DECL_EXPRFREEHDLR(x) SCIP_RETCODE x (\
223 SCIP_EXPRHDLR* exprhdlr, \
224 SCIP_EXPRHDLRDATA** exprhdlrdata)
246#define SCIP_DECL_EXPRCOPYDATA(x) SCIP_RETCODE x (\
248 SCIP_EXPRHDLR* targetexprhdlr, \
249 SCIP_EXPRDATA** targetexprdata, \
251 SCIP_EXPR* sourceexpr)
265#define SCIP_DECL_EXPRFREEDATA(x) SCIP_RETCODE x (\
286#define SCIP_DECL_EXPRPRINT(x) SCIP_RETCODE x (\
289 SCIP_EXPRITER_STAGE stage, \
291 unsigned int parentprecedence, \
309#define SCIP_DECL_EXPRPARSE(x) SCIP_RETCODE x (\
311 SCIP_EXPRHDLR* exprhdlr, \
312 const char* string, \
313 const char** endstring, \
315 SCIP_Bool* success, \
316 SCIP_DECL_EXPR_OWNERCREATE((*ownercreate)), \
317 void* ownercreatedata)
337#define SCIP_DECL_EXPRCURVATURE(x) SCIP_RETCODE x (\
340 SCIP_EXPRCURV exprcurvature, \
341 SCIP_Bool* success, \
342 SCIP_EXPRCURV* childcurv)
355#define SCIP_DECL_EXPRMONOTONICITY(x) SCIP_RETCODE x (\
359 SCIP_MONOTONE* result)
372#define SCIP_DECL_EXPRINTEGRALITY(x) SCIP_RETCODE x (\
375 SCIP_Bool* isintegral)
388#define SCIP_DECL_EXPRHASH(x) SCIP_RETCODE x (\
391 unsigned int* hashkey, \
392 unsigned int* childrenhashes)
407#define SCIP_DECL_EXPRCOMPARE(x) int x (\
423#define SCIP_DECL_EXPREVAL(x) SCIP_RETCODE x (\
446#define SCIP_DECL_EXPRBWDIFF(x) SCIP_RETCODE x (\
477#define SCIP_DECL_EXPRFWDIFF(x) SCIP_RETCODE x (\
517#define SCIP_DECL_EXPRBWFWDIFF(x) SCIP_RETCODE x (\
536#define SCIP_DECL_EXPRINTEVAL(x) SCIP_RETCODE x (\
539 SCIP_INTERVAL* interval, \
540 SCIP_DECL_EXPR_INTEVALVAR((*intevalvar)), \
541 void* intevalvardata)
572#define SCIP_DECL_EXPRESTIMATE(x) SCIP_RETCODE x (\
575 SCIP_INTERVAL* localbounds, \
576 SCIP_INTERVAL* globalbounds, \
577 SCIP_Real* refpoint, \
578 SCIP_Bool overestimate, \
579 SCIP_Real targetvalue, \
581 SCIP_Real* constant, \
582 SCIP_Bool* islocal, \
583 SCIP_Bool* success, \
584 SCIP_Bool* branchcand)
605#define SCIP_DECL_EXPRINITESTIMATES(x) SCIP_RETCODE x ( \
608 SCIP_INTERVAL* bounds, \
609 SCIP_Bool overestimate, \
610 SCIP_Real* coefs[SCIP_EXPR_MAXINITESTIMATES], \
611 SCIP_Real constant[SCIP_EXPR_MAXINITESTIMATES], \
629#define SCIP_DECL_EXPRSIMPLIFY(x) SCIP_RETCODE x (\
632 SCIP_EXPR** simplifiedexpr, \
633 SCIP_DECL_EXPR_OWNERCREATE((*ownercreate)), \
634 void* ownercreatedata)
654#define SCIP_DECL_EXPRREVERSEPROP(x) SCIP_RETCODE x (\
657 SCIP_INTERVAL bounds, \
658 SCIP_INTERVAL* childrenbounds, \
659 SCIP_Bool* infeasible)
673#define SCIP_EXPRITER_MAXNACTIVE 5
676#define SCIP_EXPRITER_ENTEREXPR 1u
677#define SCIP_EXPRITER_VISITINGCHILD 2u
678#define SCIP_EXPRITER_VISITEDCHILD 4u
679#define SCIP_EXPRITER_LEAVEEXPR 8u
680#define SCIP_EXPRITER_ALLSTAGES (SCIP_EXPRITER_ENTEREXPR | SCIP_EXPRITER_VISITINGCHILD | SCIP_EXPRITER_VISITEDCHILD | SCIP_EXPRITER_LEAVEEXPR)
712#define SCIP_EXPRPRINT_EXPRSTRING 0x1u
713#define SCIP_EXPRPRINT_EXPRHDLR 0x2u
714#define SCIP_EXPRPRINT_NUSES 0x4u
715#define SCIP_EXPRPRINT_EVALVALUE 0x8u
716#define SCIP_EXPRPRINT_EVALTAG 0x18u
717#define SCIP_EXPRPRINT_ACTIVITY 0x20u
718#define SCIP_EXPRPRINT_ACTIVITYTAG 0x60u
719#define SCIP_EXPRPRINT_OWNER 0x80u
722#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 SCIP's main datastructure
type definitions for storing primal CIP solutions
type definitions for branch and bound tree
type definitions for problem variables