Scippy

SCIP

Solving Constraint Integer Programs

expr_erf.c File Reference

Detailed Description

handler for Gaussian error function expressions

Author
Benjamin Mueller

Definition in file expr_erf.c.

#include "scip/expr_erf.h"
#include "scip/expr_value.h"

Go to the source code of this file.

Macros

#define EXPRHDLR_NAME   "erf"
 
#define EXPRHDLR_DESC   "Gaussian error function"
 
#define EXPRHDLR_PRECEDENCE   79000
 
#define EXPRHDLR_HASHKEY   SCIPcalcFibHash(131071.0)
 

Functions

static SCIP_Real errorf (SCIP_Real x)
 
static SCIP_DECL_EXPRCOPYHDLR (copyhdlrErf)
 
static SCIP_DECL_EXPRSIMPLIFY (simplifyErf)
 
static SCIP_DECL_EXPRPARSE (parseErf)
 
static SCIP_DECL_EXPREVAL (evalErf)
 
static SCIP_DECL_EXPRBWDIFF (bwdiffErf)
 
static SCIP_DECL_EXPRINTEVAL (intevalErf)
 
static SCIP_DECL_EXPRHASH (hashErf)
 
static SCIP_DECL_EXPRCURVATURE (curvatureErf)
 
static SCIP_DECL_EXPRMONOTONICITY (monotonicityErf)
 
static SCIP_DECL_EXPRINTEGRALITY (integralityErf)
 
SCIP_RETCODE SCIPcreateExprErf (SCIP *scip, SCIP_EXPR **expr, SCIP_EXPR *child, SCIP_DECL_EXPR_OWNERCREATE((*ownercreate)), void *ownercreatedata)
 
SCIP_Bool SCIPisExprErf (SCIP *scip, SCIP_EXPR *expr)
 
SCIP_RETCODE SCIPincludeExprhdlrErf (SCIP *scip)
 

Macro Definition Documentation

◆ EXPRHDLR_NAME

#define EXPRHDLR_NAME   "erf"

Definition at line 36 of file expr_erf.c.

◆ EXPRHDLR_DESC

#define EXPRHDLR_DESC   "Gaussian error function"

Definition at line 37 of file expr_erf.c.

◆ EXPRHDLR_PRECEDENCE

#define EXPRHDLR_PRECEDENCE   79000

Definition at line 38 of file expr_erf.c.

◆ EXPRHDLR_HASHKEY

#define EXPRHDLR_HASHKEY   SCIPcalcFibHash(131071.0)

Definition at line 39 of file expr_erf.c.

Function Documentation

◆ errorf()

static SCIP_Real errorf ( SCIP_Real  x)
static

evaluates the Gaussian error function at a given point

Parameters
xpoint to evaluate

Definition at line 51 of file expr_erf.c.

References REALABS, SCIP_Real, x, and y.

Referenced by SCIP_DECL_EXPREVAL(), SCIP_DECL_EXPRINTEVAL(), and SCIP_DECL_EXPRSIMPLIFY().

◆ SCIP_DECL_EXPRCOPYHDLR()

static SCIP_DECL_EXPRCOPYHDLR ( copyhdlrErf  )
static

expression handler copy callback

Definition at line 74 of file expr_erf.c.

References SCIP_CALL, SCIP_OKAY, and SCIPincludeExprhdlrErf().

◆ SCIP_DECL_EXPRSIMPLIFY()

static SCIP_DECL_EXPRSIMPLIFY ( simplifyErf  )
static

◆ SCIP_DECL_EXPRPARSE()

static SCIP_DECL_EXPRPARSE ( parseErf  )
static

expression parse callback

Definition at line 113 of file expr_erf.c.

References NULL, SCIP_CALL, SCIP_OKAY, SCIPcreateExprErf(), SCIPparseExpr(), SCIPreleaseExpr(), and TRUE.

◆ SCIP_DECL_EXPREVAL()

static SCIP_DECL_EXPREVAL ( evalErf  )
static

expression (point-) evaluation callback

Definition at line 137 of file expr_erf.c.

References errorf(), NULL, SCIP_INVALID, SCIP_OKAY, SCIPexprGetChildren(), SCIPexprGetData(), SCIPexprGetEvalValue(), and SCIPexprGetNChildren().

◆ SCIP_DECL_EXPRBWDIFF()

static SCIP_DECL_EXPRBWDIFF ( bwdiffErf  )
static

expression derivative evaluation callback

Definition at line 151 of file expr_erf.c.

References NULL, SCIP_OKAY, SCIPABORT, and SCIPerrorMessage.

◆ SCIP_DECL_EXPRINTEVAL()

◆ SCIP_DECL_EXPRHASH()

static SCIP_DECL_EXPRHASH ( hashErf  )
static

erf hash callback

Definition at line 190 of file expr_erf.c.

References EXPRHDLR_HASHKEY, NULL, SCIP_OKAY, and SCIPexprGetNChildren().

◆ SCIP_DECL_EXPRCURVATURE()

static SCIP_DECL_EXPRCURVATURE ( curvatureErf  )
static

expression curvature detection callback

Definition at line 206 of file expr_erf.c.

References FALSE, NULL, SCIP_EXPRCURV_CONVEX, SCIP_OKAY, and TRUE.

◆ SCIP_DECL_EXPRMONOTONICITY()

static SCIP_DECL_EXPRMONOTONICITY ( monotonicityErf  )
static

expression monotonicity detection callback

Definition at line 228 of file expr_erf.c.

References NULL, SCIP_MONOTONE_INC, and SCIP_OKAY.

◆ SCIP_DECL_EXPRINTEGRALITY()

static SCIP_DECL_EXPRINTEGRALITY ( integralityErf  )
static

expression integrality detection callback

Definition at line 241 of file expr_erf.c.

References FALSE, NULL, and SCIP_OKAY.

◆ SCIPcreateExprErf()

SCIP_RETCODE SCIPcreateExprErf ( SCIP scip,
SCIP_EXPR **  expr,
SCIP_EXPR child,
SCIP_DECL_EXPR_OWNERCREATE((*ownercreate))  ,
void *  ownercreatedata 
)

creates an erf expression

Attention
The implementation of erf expressions is incomplete. They are not usable for most use cases so far.
Parameters
scipSCIP data structure
exprpointer where to store expression
childchild expression
ownercreatedatadata to pass to ownercreate

Definition at line 257 of file expr_erf.c.

References EXPRHDLR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIP_PLUGINNOTFOUND, SCIPABORT, SCIPcreateExpr(), SCIPerrorMessage, and SCIPfindExprhdlr().

Referenced by readExpression(), and SCIP_DECL_EXPRPARSE().

◆ SCIPisExprErf()

SCIP_Bool SCIPisExprErf ( SCIP scip,
SCIP_EXPR expr 
)

indicates whether expression is of erf-type

Parameters
scipSCIP data structure
exprexpression

Definition at line 285 of file expr_erf.c.

References EXPRHDLR_NAME, NULL, SCIPexprGetHdlr(), and SCIPexprhdlrGetName().

◆ SCIPincludeExprhdlrErf()

SCIP_RETCODE SCIPincludeExprhdlrErf ( SCIP scip)

creates the handler for erf expressions and includes it into SCIP

Attention
The implementation of this expression handler is incomplete. It is not usable for most use cases so far.
Parameters
scipSCIP data structure

Definition at line 300 of file expr_erf.c.

References EXPRHDLR_DESC, EXPRHDLR_NAME, EXPRHDLR_PRECEDENCE, NULL, SCIP_CALL, SCIP_OKAY, SCIPexprhdlrSetCopyFreeHdlr(), SCIPexprhdlrSetCurvature(), SCIPexprhdlrSetDiff(), SCIPexprhdlrSetHash(), SCIPexprhdlrSetIntegrality(), SCIPexprhdlrSetIntEval(), SCIPexprhdlrSetMonotonicity(), SCIPexprhdlrSetParse(), SCIPexprhdlrSetSimplify(), and SCIPincludeExprhdlr().

Referenced by SCIP_DECL_EXPRCOPYHDLR().