logarithm expression handler
Definition in file expr_log.c.
Go to the source code of this file.
Macros | |
#define | EXPRHDLR_NAME "log" |
#define | EXPRHDLR_DESC "natural logarithm expression" |
#define | EXPRHDLR_PRECEDENCE 80000 |
#define | EXPRHDLR_HASHKEY SCIPcalcFibHash(16273.0) |
#define EXPRHDLR_NAME "log" |
Definition at line 41 of file expr_log.c.
#define EXPRHDLR_DESC "natural logarithm expression" |
Definition at line 42 of file expr_log.c.
#define EXPRHDLR_PRECEDENCE 80000 |
Definition at line 43 of file expr_log.c.
#define EXPRHDLR_HASHKEY SCIPcalcFibHash(16273.0) |
Definition at line 44 of file expr_log.c.
|
static |
computes coefficients of secant of a logarithmic term
scip | SCIP data structure |
lb | lower bound on variable |
ub | upper bound on variable |
lincoef | buffer to add coefficient of secant |
linconstant | buffer to add constant of secant |
success | buffer to set to FALSE if secant has failed due to large numbers or unboundedness |
Definition at line 63 of file expr_log.c.
References assert(), FALSE, NULL, REALABS, SCIP_Bool, SCIP_Real, SCIPisEQ(), SCIPisInfinity(), and SCIPisLE().
Referenced by SCIP_DECL_EXPRESTIMATE(), and SCIP_DECL_EXPRINITESTIMATES().
|
static |
computes coefficients of linearization of a logarithmic term in a reference point
scip | SCIP data structure |
refpoint | point for which to compute value of linearization |
isint | whether corresponding variable is a discrete variable, and thus linearization could be moved |
lincoef | buffer to add coefficient of secant |
linconstant | buffer to add constant of secant |
success | buffer to set to FALSE if secant has failed due to large numbers or unboundedness |
Definition at line 114 of file expr_log.c.
References assert(), FALSE, NULL, REALABS, SCIP_Bool, SCIP_Real, SCIPfloor(), SCIPisInfinity(), SCIPisIntegral(), and SCIPisLE().
Referenced by SCIP_DECL_EXPRESTIMATE(), and SCIP_DECL_EXPRINITESTIMATES().
|
static |
simplifies a log expression
Evaluates the logarithm function when its child is a value expression.
TODO: split products ? TODO: log(exp(*)) = *
Definition at line 178 of file expr_log.c.
References assert(), NULL, SCIP_CALL, SCIP_OKAY, SCIPcaptureExpr(), SCIPcreateExprValue(), SCIPexprGetChildren(), SCIPexprGetNChildren(), SCIPgetValueExprValue(), and SCIPisExprValue().
|
static |
expression handler copy callback
Definition at line 212 of file expr_log.c.
References SCIP_CALL, SCIP_OKAY, and SCIPincludeExprhdlrLog().
|
static |
expression handler free callback
Definition at line 221 of file expr_log.c.
References assert(), NULL, SCIP_OKAY, and SCIPfreeBlockMemory.
|
static |
expression data copy callback
Definition at line 233 of file expr_log.c.
References assert(), NULL, SCIP_OKAY, and SCIPexprGetData().
|
static |
expression data free callback
Definition at line 246 of file expr_log.c.
References assert(), NULL, SCIP_OKAY, and SCIPexprSetData().
|
static |
expression parse callback
Definition at line 257 of file expr_log.c.
References assert(), NULL, SCIP_CALL, SCIP_OKAY, SCIPcreateExprLog(), SCIPparseExpr(), SCIPreleaseExpr(), and TRUE.
|
static |
expression point evaluation callback
! [SnippetExprEvalLog]
! [SnippetExprEvalLog]
Definition at line 281 of file expr_log.c.
References assert(), NULL, SCIP_INVALID, SCIP_OKAY, SCIPdebugMsg, SCIPexprGetChildren(), SCIPexprGetData(), SCIPexprGetEvalValue(), and SCIPexprGetNChildren().
|
static |
expression derivative evaluation callback
Definition at line 305 of file expr_log.c.
References assert(), NULL, SCIP_INVALID, SCIP_OKAY, SCIPexprGetChildren(), SCIPexprGetEvalValue(), SCIPexprGetHdlr(), and SCIPexprhdlrGetName().
|
static |
expression interval evaluation callback
Definition at line 325 of file expr_log.c.
References assert(), EXPRHDLR_NAME, SCIP_Interval::inf, NULL, SCIP_CALL, SCIP_INTERVAL_INFINITY, SCIP_OKAY, SCIP_VERBLEVEL_NONE, SCIPexprGetActivity(), SCIPexprGetChildren(), SCIPexprGetData(), SCIPexprGetHdlr(), SCIPexprGetNChildren(), SCIPexprhdlrGetData(), SCIPgetVerbLevel(), SCIPinfoMessage(), SCIPintervalIsEmpty(), SCIPintervalLog(), SCIPintervalSetEmpty(), SCIPprintExpr(), and TRUE.
|
static |
expression estimation callback
Definition at line 368 of file expr_log.c.
References addLogLinearization(), addLogSecant(), assert(), EXPRHDLR_NAME, FALSE, NULL, SCIP_OKAY, SCIP_Real, SCIPexprGetChildren(), SCIPexprGetHdlr(), SCIPexprGetNChildren(), SCIPexprhdlrGetName(), SCIPexprIsIntegral(), SCIPisPositive(), SCIPisZero(), and TRUE.
|
static |
initial estimates callback that provides initial linear estimators for a logarithm expression
Definition at line 424 of file expr_log.c.
References addLogLinearization(), addLogSecant(), assert(), EXPRHDLR_NAME, FALSE, i, MAX, MIN, NULL, SCIP_Bool, SCIP_INVALID, SCIP_OKAY, SCIP_Real, SCIPdebugMsg, SCIPexprGetChildren(), SCIPexprGetHdlr(), SCIPexprGetNChildren(), SCIPexprhdlrGetName(), SCIPexprIsIntegral(), SCIPintervalGetInf(), SCIPintervalGetSup(), SCIPisEQ(), SCIPisGE(), SCIPisInfinity(), SCIPisLE(), and TRUE.
|
static |
expression reverse propagation callback
Definition at line 502 of file expr_log.c.
References assert(), EXPRHDLR_NAME, NULL, SCIP_CALL, SCIP_INTERVAL_INFINITY, SCIP_OKAY, SCIP_VERBLEVEL_NONE, SCIPdebugMsg, SCIPepsilon(), SCIPexprGetHdlr(), SCIPexprGetNChildren(), SCIPexprhdlrGetData(), SCIPgetVerbLevel(), SCIPinfoMessage(), SCIPintervalExp(), SCIPprintExpr(), and TRUE.
|
static |
expression hash callback
Definition at line 545 of file expr_log.c.
References assert(), EXPRHDLR_HASHKEY, NULL, SCIP_OKAY, and SCIPexprGetNChildren().
|
static |
expression curvature detection callback
Definition at line 561 of file expr_log.c.
References assert(), FALSE, NULL, SCIP_EXPRCURV_CONCAVE, SCIP_OKAY, SCIPexprGetNChildren(), and TRUE.
|
static |
expression monotonicity detection callback
Definition at line 582 of file expr_log.c.
References assert(), NULL, result, SCIP_MONOTONE_INC, and SCIP_OKAY.