All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
exprinterpret_cppad.cpp File Reference Detailed Descriptionmethods to interpret (evaluate) an expression tree "fast" using CppAD Definition in file exprinterpret_cppad.cpp. #include "scip/def.h" #include "blockmemshell/memory.h" #include "nlpi/pub_expr.h" #include "nlpi/exprinterpret.h" #include <cmath> #include <vector> #include "nlpi/intervalarithext.h" #include <cppad/cppad.hpp> #include <cppad/error_handler.hpp> #include <pthread.h> Go to the source code of this file.
Macro Definition Documentation
Definition at line 60 of file exprinterpret_cppad.cpp.
Definition at line 71 of file exprinterpret_cppad.cpp. Function Documentation
definition of CondExpOp for SCIPInterval (required by CppAD) Definition at line 191 of file exprinterpret_cppad.cpp.
another function that returns whether two intervals are the same (required by CppAD)
Definition at line 208 of file exprinterpret_cppad.cpp.
another function required by CppAD
Definition at line 218 of file exprinterpret_cppad.cpp.
returns whether the interval equals [0,0]
Definition at line 227 of file exprinterpret_cppad.cpp.
returns whether the interval equals [1,1]
Definition at line 236 of file exprinterpret_cppad.cpp.
yet another function that checks whether two intervals are equal
Definition at line 245 of file exprinterpret_cppad.cpp.
greater than zero not defined for intervals
Definition at line 255 of file exprinterpret_cppad.cpp.
greater than or equal zero not defined for intervals
Definition at line 269 of file exprinterpret_cppad.cpp.
less than not defined for intervals
Definition at line 283 of file exprinterpret_cppad.cpp.
less than or equal not defined for intervals
Definition at line 297 of file exprinterpret_cppad.cpp.
conversion to integers not defined for intervals
Definition at line 311 of file exprinterpret_cppad.cpp.
printing of an interval (required by CppAD) Definition at line 325 of file exprinterpret_cppad.cpp.
template<>
specialization of minimum evaluation for real numbers
Definition at line 1228 of file exprinterpret_cppad.cpp.
template<>
specialization of maximum evaluation for real numbers
Definition at line 1258 of file exprinterpret_cppad.cpp. References MAX.
template<>
specialization of square-root operator for numbers We perturb the function a little bit so that it's derivatives are defined in 0.0.
Definition at line 1286 of file exprinterpret_cppad.cpp. References sqrt().
template<>
specialization of absolute value evaluation for intervals Use sqrt(x^2) for now
Definition at line 1310 of file exprinterpret_cppad.cpp. References sqrt().
gets name and version of expression interpreter Definition at line 1732 of file exprinterpret_cppad.cpp.
gets descriptive text of expression interpreter Definition at line 1738 of file exprinterpret_cppad.cpp.
gets capabilities of expression interpreter (using bitflags) Definition at line 1744 of file exprinterpret_cppad.cpp. References SCIP_EXPRINTCAPABILITY_FUNCVALUE, SCIP_EXPRINTCAPABILITY_GRADIENT, SCIP_EXPRINTCAPABILITY_HESSIAN, SCIP_EXPRINTCAPABILITY_INTFUNCVALUE, and SCIP_EXPRINTCAPABILITY_INTGRADIENT.
creates an expression interpreter object
Definition at line 1754 of file exprinterpret_cppad.cpp. References NULL, SCIP_NOMEMORY, and SCIP_OKAY.
frees an expression interpreter object
Definition at line 1771 of file exprinterpret_cppad.cpp.
compiles an expression tree and stores compiled data in expression tree
Definition at line 1784 of file exprinterpret_cppad.cpp. References NULL, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPexprCopyDeep(), SCIPexprFreeDeep(), SCIPexprtreeGetInterpreterData(), SCIPexprtreeGetNVars(), SCIPexprtreeGetRoot(), and SCIPexprtreeSetInterpreterData().
frees interpreter data
Definition at line 1832 of file exprinterpret_cppad.cpp. References NULL, SCIP_OKAY, and SCIPexprFreeDeep().
notify expression interpreter that a new parameterization is used This probably causes retaping by AD algorithms.
Definition at line 1852 of file exprinterpret_cppad.cpp. References NULL, SCIP_OKAY, and SCIPexprtreeGetInterpreterData().
evaluates an expression tree
Definition at line 1871 of file exprinterpret_cppad.cpp. References NULL, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPexprtreeGetInterpreterData(), SCIPexprtreeGetNVars(), SCIPexprtreeGetParamVals(), and SCIPexprtreeGetRoot(). Referenced by SCIPexprintGrad(), SCIPexprintHessianDense(), and SCIPexprintHessianSparsityDense().
evaluates an expression tree on intervals
Definition at line 1933 of file exprinterpret_cppad.cpp. References SCIPInterval::infinity, NULL, SCIP_CALL, SCIP_OKAY, SCIPexprtreeGetInterpreterData(), SCIPexprtreeGetNVars(), SCIPexprtreeGetParamVals(), and SCIPexprtreeGetRoot(). Referenced by SCIPexprintGradInt().
computes value and gradient of an expression tree
Definition at line 1993 of file exprinterpret_cppad.cpp. References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPexprintEval(), SCIPexprtreeGetInterpreterData(), and SCIPexprtreeGetNVars().
computes interval value and interval gradient of an expression tree
Definition at line 2037 of file exprinterpret_cppad.cpp. References NULL, SCIP_CALL, SCIP_OKAY, SCIPexprintEvalInt(), SCIPexprtreeGetInterpreterData(), and SCIPexprtreeGetNVars().
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.
Definition at line 2084 of file exprinterpret_cppad.cpp. References NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPdebugMessage, SCIPexprintEval(), SCIPexprtreeGetInterpreterData(), SCIPexprtreeGetNVars(), and TRUE.
computes value and dense hessian of an expression tree The full hessian is computed (lower left and upper right triangle).
Definition at line 2154 of file exprinterpret_cppad.cpp. References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPexprintEval(), SCIPexprtreeGetInterpreterData(), and SCIPexprtreeGetNVars(). |