Scippy

SCIP

Solving Constraint Integer Programs

exprinterpret_none.c File Reference

Detailed Description

function definitions for nonexisting expression interpreter to resolve linking references

Author
Stefan Vigerske

Definition in file exprinterpret_none.c.

Go to the source code of this file.

Functions

const char * SCIPexprintGetName (void)
 
const char * SCIPexprintGetDesc (void)
 
SCIP_EXPRINTCAPABILITY SCIPexprintGetCapability (void)
 
SCIP_RETCODE SCIPexprintCreate (BMS_BLKMEM *blkmem, SCIP_EXPRINT **exprint)
 
SCIP_RETCODE SCIPexprintFree (SCIP_EXPRINT **exprint)
 
SCIP_RETCODE SCIPexprintCompile (SCIP_EXPRINT *exprint, SCIP_EXPRTREE *tree)
 
SCIP_EXPRINTCAPABILITY SCIPexprintGetExprtreeCapability (SCIP_EXPRINT *exprint, SCIP_EXPRTREE *tree)
 
SCIP_RETCODE SCIPexprintFreeData (SCIP_EXPRINTDATA **interpreterdata)
 
SCIP_RETCODE SCIPexprintNewParametrization (SCIP_EXPRINT *exprint, SCIP_EXPRTREE *tree)
 
SCIP_RETCODE SCIPexprintEval (SCIP_EXPRINT *exprint, SCIP_EXPRTREE *tree, SCIP_Real *varvals, SCIP_Real *val)
 
SCIP_RETCODE SCIPexprintEvalInt (SCIP_EXPRINT *exprint, SCIP_EXPRTREE *tree, SCIP_Real infinity, SCIP_INTERVAL *varvals, SCIP_INTERVAL *val)
 
SCIP_RETCODE SCIPexprintGrad (SCIP_EXPRINT *exprint, SCIP_EXPRTREE *tree, SCIP_Real *varvals, SCIP_Bool new_varvals, SCIP_Real *val, SCIP_Real *gradient)
 
SCIP_RETCODE SCIPexprintGradInt (SCIP_EXPRINT *exprint, SCIP_EXPRTREE *tree, SCIP_Real infinity, SCIP_INTERVAL *varvals, SCIP_Bool new_varvals, SCIP_INTERVAL *val, SCIP_INTERVAL *gradient)
 
SCIP_RETCODE SCIPexprintHessianSparsityDense (SCIP_EXPRINT *exprint, SCIP_EXPRTREE *tree, SCIP_Real *varvals, SCIP_Bool *sparsity)
 
SCIP_RETCODE SCIPexprintHessianDense (SCIP_EXPRINT *exprint, SCIP_EXPRTREE *tree, SCIP_Real *varvals, SCIP_Bool new_varvals, SCIP_Real *val, SCIP_Real *hessian)
 

Function Documentation

const char* SCIPexprintGetName ( void  )

gets name and version of expression interpreter

Definition at line 33 of file exprinterpret_none.c.

Referenced by SCIP_DECL_CONSINIT(), SCIPcreate(), and SCIPnlpiOracleCreate().

const char* SCIPexprintGetDesc ( void  )

gets descriptive text of expression interpreter

Definition at line 41 of file exprinterpret_none.c.

Referenced by SCIPcreate().

SCIP_EXPRINTCAPABILITY SCIPexprintGetCapability ( void  )

gets capabilities of expression interpreter (using bitflags)

Definition at line 49 of file exprinterpret_none.c.

References SCIP_EXPRINTCAPABILITY_NONE.

Referenced by addIntervalGradientEstimator(), processNlRow(), and SCIP_DECL_NLPISOLVE().

SCIP_RETCODE SCIPexprintCreate ( BMS_BLKMEM blkmem,
SCIP_EXPRINT **  exprint 
)

creates an expression interpreter object

Parameters
blkmemblock memory data structure
exprintbuffer to store pointer to expression interpreter

Definition at line 57 of file exprinterpret_none.c.

References BMSallocMemory, SCIP_ALLOC, SCIP_OKAY, and SCIPdebugMessage.

Referenced by createCoveringProblem(), SCIPincludeConshdlrBivariate(), SCIPincludeConshdlrNonlinear(), and SCIPnlpiOracleCreate().

SCIP_RETCODE SCIPexprintFree ( SCIP_EXPRINT **  exprint)

frees an expression interpreter object

Parameters
exprintexpression interpreter that should be freed

Definition at line 71 of file exprinterpret_none.c.

References BMSfreeMemory, and SCIP_OKAY.

Referenced by createCoveringProblem(), SCIP_DECL_CONSFREE(), and SCIPnlpiOracleFree().

SCIP_EXPRINTCAPABILITY SCIPexprintGetExprtreeCapability ( SCIP_EXPRINT exprint,
SCIP_EXPRTREE tree 
)

gives the capability to evaluate an expression by the expression interpreter

In cases of user-given expressions, higher order derivatives may not be available for the user-expression, even if the expression interpreter could handle these. This method allows to recognize that, e.g., the Hessian for an expression is not available because it contains a user expression that does not provide Hessians.

Parameters
exprintinterpreter data structure
treeexpression tree

Definition at line 97 of file exprinterpret_none.c.

References SCIP_EXPRINTCAPABILITY_NONE.

Referenced by SCIPnlpiOracleGetEvalCapability().

SCIP_RETCODE SCIPexprintFreeData ( SCIP_EXPRINTDATA **  interpreterdata)

frees interpreter data

Parameters
interpreterdatainterpreter data that should freed

Definition at line 106 of file exprinterpret_none.c.

References NULL, and SCIP_OKAY.

Referenced by SCIPexprtreeFreeInterpreterData().

SCIP_RETCODE SCIPexprintNewParametrization ( SCIP_EXPRINT exprint,
SCIP_EXPRTREE tree 
)

notify expression interpreter that a new parameterization is used this probably causes retaping by AD algorithms

Parameters
exprintinterpreter data structure
treeexpression tree

Definition at line 119 of file exprinterpret_none.c.

References SCIP_OKAY.

Referenced by generateConvexConcaveUnderestimator().

SCIP_RETCODE SCIPexprintEval ( SCIP_EXPRINT exprint,
SCIP_EXPRTREE tree,
SCIP_Real varvals,
SCIP_Real val 
)

evaluates an expression tree

Parameters
exprintinterpreter data structure
treeexpression tree
varvalsvalues of variables
valbuffer to store value

Definition at line 128 of file exprinterpret_none.c.

References SCIP_PLUGINNOTFOUND, and SCIPerrorMessage.

Referenced by addIntervalGradientEstimator(), computeViolation(), evalFunctionValue(), generateConvexConcaveUnderestimator(), generateEstimatingHyperplane(), and SCIPnlpiOracleEvalJacobian().

SCIP_RETCODE SCIPexprintEvalInt ( SCIP_EXPRINT exprint,
SCIP_EXPRTREE tree,
SCIP_Real  infinity,
SCIP_INTERVAL varvals,
SCIP_INTERVAL val 
)

evaluates an expression tree on intervals

Parameters
exprintinterpreter data structure
treeexpression tree
infinityvalue for infinity
varvalsinterval values of variables
valbuffer to store interval value of expression

Definition at line 140 of file exprinterpret_none.c.

References SCIP_PLUGINNOTFOUND, and SCIPerrorMessage.

SCIP_RETCODE SCIPexprintGrad ( SCIP_EXPRINT exprint,
SCIP_EXPRTREE tree,
SCIP_Real varvals,
SCIP_Bool  new_varvals,
SCIP_Real val,
SCIP_Real gradient 
)

computes value and gradient of an expression tree

Parameters
exprintinterpreter data structure
treeexpression tree
varvalsvalues of variables, can be NULL if new_varvals is FALSE
new_varvalshave variable values changed since last call to a point evaluation routine?
valbuffer to store expression value
gradientbuffer to store expression gradient, need to have length at least SCIPexprtreeGetNVars(tree)

Definition at line 153 of file exprinterpret_none.c.

References SCIP_PLUGINNOTFOUND, and SCIPerrorMessage.

Referenced by addLinearization(), computeViolation(), evalFunctionGradient(), generate1ConvexIndefiniteUnderestimatorAtBoundary(), generate1ConvexIndefiniteUnderestimatorInTheInteriorPatternA(), generate1ConvexIndefiniteUnderestimatorInTheInteriorPatternB(), generateConvexConcaveUnderestimator(), generateLinearizationCut(), generateOrthogonal_lx_ly_Underestimator(), generateOrthogonal_lx_uy_Underestimator(), generateUnderestimatorParallelYFacets(), getGradientMaxElement(), lifting(), SCIPnlpiOracleEvalJacobian(), and solveDerivativeEquation().

SCIP_RETCODE SCIPexprintGradInt ( SCIP_EXPRINT exprint,
SCIP_EXPRTREE tree,
SCIP_Real  infinity,
SCIP_INTERVAL varvals,
SCIP_Bool  new_varvals,
SCIP_INTERVAL val,
SCIP_INTERVAL gradient 
)

computes interval value and interval gradient of an expression tree

Parameters
exprintinterpreter data structure
treeexpression tree
infinityvalue for infinity
varvalsinterval values of variables, can be NULL if new_varvals is FALSE
new_varvalshave variable interval values changed since last call to an interval evaluation routine?
valbuffer to store expression interval value
gradientbuffer to store expression interval gradient, need to have length at least SCIPexprtreeGetNVars(tree)

Definition at line 167 of file exprinterpret_none.c.

References SCIP_PLUGINNOTFOUND, and SCIPerrorMessage.

Referenced by addIntervalGradientEstimator().

SCIP_RETCODE SCIPexprintHessianSparsityDense ( SCIP_EXPRINT exprint,
SCIP_EXPRTREE tree,
SCIP_Real varvals,
SCIP_Bool sparsity 
)

gives sparsity pattern of hessian NOTE: this function might be replaced later by something nicer Since the AD code might need to do a forward sweep, you should pass variable values in here.

Parameters
exprintinterpreter data structure
treeexpression tree
varvalsvalues of variables
sparsitybuffer to store sparsity pattern of Hessian, sparsity[i+n*j] indicates whether entry (i,j) is nonzero in the hessian

Definition at line 185 of file exprinterpret_none.c.

References SCIP_PLUGINNOTFOUND, and SCIPerrorMessage.

Referenced by hessLagSparsitySetNzFlagForExprtree(), initSepaData(), and processNlRow().

SCIP_RETCODE SCIPexprintHessianDense ( SCIP_EXPRINT exprint,
SCIP_EXPRTREE tree,
SCIP_Real varvals,
SCIP_Bool  new_varvals,
SCIP_Real val,
SCIP_Real hessian 
)

computes value and dense hessian of an expression tree the full hessian is computed (lower left and upper right triangle)

Parameters
exprintinterpreter data structure
treeexpression tree
varvalsvalues of variables, can be NULL if new_varvals is FALSE
new_varvalshave variable values changed since last call to an evaluation routine?
valbuffer to store function value
hessianbuffer to store hessian values, need to have size at least n*n

Definition at line 199 of file exprinterpret_none.c.

References SCIP_PLUGINNOTFOUND, and SCIPerrorMessage.

Referenced by generate1ConvexIndefiniteUnderestimator(), hessLagAddExprtree(), and solveDerivativeEquation().