CppADCodeGen
HEAD
A C++ Algorithmic Differentiation Package with Source Code Generation
|
Public Member Functions | |
FunctorGenericModel (FunctorGenericModel &&other) noexcept | |
FunctorGenericModel (const FunctorGenericModel &)=delete | |
FunctorGenericModel & | operator= (const FunctorGenericModel &)=delete |
const std::string & | getName () const override |
const std::vector< std::string > & | getAtomicFunctionNames () override |
bool | addAtomicFunction (atomic_base< Base > &atomic) override |
bool | addExternalModel (GenericModel< Base > &atomic) override |
bool | isJacobianSparsityAvailable () override |
std::vector< bool > | JacobianSparsityBool () override |
std::vector< std::set< size_t > > | JacobianSparsitySet () override |
void | JacobianSparsity (std::vector< size_t > &equations, std::vector< size_t > &variables) override |
bool | isHessianSparsityAvailable () override |
std::vector< bool > | HessianSparsityBool () override |
std::vector< std::set< size_t > > | HessianSparsitySet () override |
void | HessianSparsity (std::vector< size_t > &rows, std::vector< size_t > &cols) override |
bool | isEquationHessianSparsityAvailable () override |
std::vector< bool > | HessianSparsityBool (size_t i) override |
std::vector< std::set< size_t > > | HessianSparsitySet (size_t i) override |
void | HessianSparsity (size_t i, std::vector< size_t > &rows, std::vector< size_t > &cols) override |
size_t | Domain () const override |
number of independent variables | |
size_t | Range () const override |
number of dependent variables | |
bool | isForwardZeroAvailable () override |
void | ForwardZero (ArrayView< const Base > x, ArrayView< Base > dep) override |
calculate the dependent values (zero order) | |
void | ForwardZero (const std::vector< const Base *> &x, ArrayView< Base > dep) override |
void | ForwardZero (const CppAD::vector< bool > &vx, CppAD::vector< bool > &vy, ArrayView< const Base > tx, ArrayView< Base > ty) override |
bool | isJacobianAvailable () override |
void | Jacobian (ArrayView< const Base > x, ArrayView< Base > jac) override |
calculate entire Jacobian | |
bool | isHessianAvailable () override |
void | Hessian (ArrayView< const Base > x, ArrayView< const Base > w, ArrayView< Base > hess) override |
calculate Hessian for one component of f | |
bool | isForwardOneAvailable () override |
void | ForwardOne (ArrayView< const Base > tx, ArrayView< Base > ty) override |
bool | isSparseForwardOneAvailable () override |
void | ForwardOne (ArrayView< const Base > x, size_t tx1Nnz, const size_t idx[], const Base tx1[], ArrayView< Base > ty1) override |
bool | isReverseOneAvailable () override |
void | ReverseOne (ArrayView< const Base > tx, ArrayView< const Base > ty, ArrayView< Base > px, ArrayView< const Base > py) override |
bool | isSparseReverseOneAvailable () override |
void | ReverseOne (ArrayView< const Base > x, ArrayView< Base > px, size_t pyNnz, const size_t idx[], const Base py[]) override |
bool | isReverseTwoAvailable () override |
void | ReverseTwo (ArrayView< const Base > tx, ArrayView< const Base > ty, ArrayView< Base > px, ArrayView< const Base > py) override |
bool | isSparseReverseTwoAvailable () override |
void | ReverseTwo (ArrayView< const Base > x, size_t tx1Nnz, const size_t idx[], const Base tx1[], ArrayView< Base > px2, ArrayView< const Base > py2) override |
bool | isSparseJacobianAvailable () override |
void | SparseJacobian (ArrayView< const Base > x, ArrayView< Base > jac) override |
calculate sparse Jacobians | |
void | SparseJacobian (const std::vector< Base > &x, std::vector< Base > &jac, std::vector< size_t > &row, std::vector< size_t > &col) override |
void | SparseJacobian (ArrayView< const Base > x, ArrayView< Base > jac, size_t const **row, size_t const **col) override |
void | SparseJacobian (const std::vector< const Base *> &x, ArrayView< Base > jac, size_t const **row, size_t const **col) override |
bool | isSparseHessianAvailable () override |
void | SparseHessian (ArrayView< const Base > x, ArrayView< const Base > w, ArrayView< Base > hess) override |
calculate sparse Hessians | |
void | SparseHessian (const std::vector< Base > &x, const std::vector< Base > &w, std::vector< Base > &hess, std::vector< size_t > &row, std::vector< size_t > &col) override |
void | SparseHessian (ArrayView< const Base > x, ArrayView< const Base > w, ArrayView< Base > hess, size_t const **row, size_t const **col) override |
void | SparseHessian (const std::vector< const Base *> &x, ArrayView< const Base > w, ArrayView< Base > hess, size_t const **row, size_t const **col) override |
void | setAtomicEvalForwardOne4CppAD (bool evalForwardOne4CppAD) |
bool | isAtomicEvalForwardOne4CppAD () const |
template<typename VectorBase > | |
VectorBase | ForwardZero (const VectorBase &x) |
template<typename VectorBase > | |
void | ForwardZero (const VectorBase &x, VectorBase &dep) |
template<typename VectorBase > | |
VectorBase | Jacobian (const VectorBase &x) |
template<typename VectorBase > | |
void | Jacobian (const VectorBase &x, VectorBase &jac) |
template<typename VectorBase > | |
VectorBase | Hessian (const VectorBase &x, const VectorBase &w) |
template<typename VectorBase > | |
void | Hessian (const VectorBase &x, const VectorBase &w, VectorBase &hess) |
template<typename VectorBase > | |
VectorBase | Hessian (const VectorBase &x, size_t i) |
template<typename VectorBase > | |
VectorBase | ForwardOne (const VectorBase &tx) |
template<typename VectorBase > | |
VectorBase | ReverseOne (const VectorBase &tx, const VectorBase &ty, const VectorBase &py) |
template<typename VectorBase > | |
void | ReverseOne (const VectorBase &tx, const VectorBase &ty, VectorBase &px, const VectorBase &py) |
template<typename VectorBase > | |
VectorBase | ReverseTwo (const VectorBase &tx, const VectorBase &ty, const VectorBase &py) |
template<typename VectorBase > | |
void | ReverseTwo (const VectorBase &tx, const VectorBase &ty, VectorBase &px, const VectorBase &py) |
template<typename VectorBase > | |
VectorBase | SparseJacobian (const VectorBase &x) |
template<typename VectorBase > | |
void | SparseJacobian (const VectorBase &x, VectorBase &jac) |
template<typename VectorBase > | |
VectorBase | SparseHessian (const VectorBase &x, const VectorBase &w) |
template<typename VectorBase > | |
void | SparseHessian (const VectorBase &x, const VectorBase &w, VectorBase &hess) |
virtual CGAtomicGenericModel< Base > & | asAtomic () |
Protected Member Functions | |
FunctorGenericModel (std::string name) | |
virtual void | init () |
virtual void * | loadFunction (const std::string &functionName, bool required=true)=0 |
virtual void | validate () |
virtual void | loadFunctions () |
template<class VectorSet > | |
void | loadSparsity (bool set_type, VectorSet &s, unsigned long nrows, unsigned long ncols, unsigned long const *rows, unsigned long const *cols, unsigned long nnz) |
template<class VectorSet > | |
void | loadSparsity (const std::set< size_t > &set_type, VectorSet &s, unsigned long nrows, unsigned long ncols, unsigned long const *rows, unsigned long const *cols, unsigned long nnz) |
void | createDenseFromSparse (const CppAD::vector< Base > &compressed, unsigned long nrows, unsigned long ncols, unsigned long const *rows, unsigned long const *cols, unsigned long nnz, ArrayView< Base > mat) const |
virtual void | modelLibraryClosed () |
Protected Attributes | |
bool | _isLibraryReady |
const std::string | _name |
the model name | |
size_t | _m |
size_t | _n |
std::vector< const Base * > | _in |
std::vector< const Base * > | _inHess |
std::vector< Base * > | _out |
LangCAtomicFun | _atomicFuncArg |
std::vector< std::string > | _atomicNames |
std::vector< ExternalFunctionWrapper< Base > *> | _atomic |
size_t | _missingAtomicFunctions |
CppAD::vector< Base > | _tx |
CppAD::vector< Base > | _ty |
CppAD::vector< Base > | _px |
CppAD::vector< Base > | _py |
void(* | _zero )(Base const *const *, Base *const *, LangCAtomicFun) |
int(* | _forwardOne )(Base const tx[], Base ty[], LangCAtomicFun) |
int(* | _reverseOne )(Base const tx[], Base const ty[], Base px[], Base const py[], LangCAtomicFun) |
int(* | _reverseTwo )(Base const tx[], Base const ty[], Base px[], Base const py[], LangCAtomicFun) |
void(* | _jacobian )(Base const *const *, Base *const *, LangCAtomicFun) |
void(* | _hessian )(Base const *const *, Base *const *, LangCAtomicFun) |
int(* | _sparseForwardOne )(unsigned long, Base const *const *, Base *const *, LangCAtomicFun) |
int(* | _sparseReverseOne )(unsigned long, Base const *const *, Base *const *, LangCAtomicFun) |
int(* | _sparseReverseTwo )(unsigned long, Base const *const *, Base *const *, LangCAtomicFun) |
void(* | _sparseJacobian )(Base const *const *, Base *const *, LangCAtomicFun) |
void(* | _sparseHessian )(Base const *const *, Base *const *, LangCAtomicFun) |
void(* | _forwardOneSparsity )(unsigned long, unsigned long const **, unsigned long *) |
void(* | _reverseOneSparsity )(unsigned long, unsigned long const **, unsigned long *) |
void(* | _reverseTwoSparsity )(unsigned long, unsigned long const **, unsigned long *) |
void(* | _jacobianSparsity )(unsigned long const **row, unsigned long const **col, unsigned long *nnz) |
void(* | _hessianSparsity )(unsigned long const **row, unsigned long const **col, unsigned long *nnz) |
void(* | _hessianSparsity2 )(unsigned long i, unsigned long const **row, unsigned long const **col, unsigned long *nnz) |
void(* | _atomicFunctions )(const char ***names, unsigned long *n) |
bool | _evalAtomicForwardOne4CppAD |
Static Protected Attributes | |
static constexpr const char * | ERROR_LIBRARY_NOT_READY |
Friends | |
class | AtomicExternalFunctionWrapper< Base > |
A model which can be accessed through function pointers. This class is not thread-safe and it should not be used simultaneously in different threads. Multiple instances of this class for the same model from the same model library object can be used simultaneously in different threads.
Definition at line 147 of file declare_cg.hpp.
|
inlineexplicitprotected |
Creates a new model
name | The model name |
Definition at line 893 of file functor_generic_model.hpp.
|
inlineoverridevirtual |
Defines a CppAD atomic function to be used as an external function by the compiled code. It should match an external function name previously provided to create the source.
atomic | The atomic function. This object must only be deleted after the model. |
Implements CppAD::cg::GenericModel< Base >.
Definition at line 149 of file functor_generic_model.hpp.
|
inlineoverridevirtual |
Defines a generic model to be used as an external function by the compiled code. It should match an external function name previously provided to create the source. This form should be preferred over ::addAtomicFunction whenever possible.
atomic | The generic model. This object must only be deleted after the model. |
Implements CppAD::cg::GenericModel< Base >.
Definition at line 154 of file functor_generic_model.hpp.
|
inlinevirtualinherited |
Provides a wrapper for this compiled model allowing it to be used as an atomic function. The model must not be deleted while the atomic function is in use.
Definition at line 889 of file generic_model.hpp.
|
inlineinherited |
Computes results during a forward mode sweep. Computes the first-order Taylor coefficients for dependent variables relative to a single independent variable. This method can be used during the evaluation of the jacobian when the model is used through a user defined external/atomic AD function.
tx | The Taylor coefficients of the independent variables |
Definition at line 429 of file generic_model.hpp.
Referenced by CppAD::cg::CGAtomicGenericModel< Base >::CGAtomicGenericModel(), and CppAD::cg::GenericModelExternalFunctionWrapper< Base >::forward().
|
inlineoverridevirtual |
Computes results during a forward mode sweep. Computes the first-order Taylor coefficients for dependent variables relative to a single independent variable. This method can be used during the evaluation of the jacobian when the model is used through a user defined external/atomic AD function.
tx | The Taylor coefficients of the independent variables |
ty | The Taylor coefficients of the dependent variables |
Implements CppAD::cg::GenericModel< Base >.
Definition at line 447 of file functor_generic_model.hpp.
|
inlineoverridevirtual |
Computes results during a first-order forward mode sweep, the first-order Taylor coefficients for dependent variables relative to a single independent variable. This method can be used during the evaluation of the jacobian when the model is used through a user defined external/atomic AD function. This method version avoids some data copies and can be more efficient.
x | independent variable vector |
tx1Nnz | the number of non-zeros of the directional derivatives of the independent variables (seed directions) |
idx | the locations of the non-zero values the partial derivatives of the dependent variables (seeds) |
tx1 | the non-zero values of the partial derivatives of the dependent variables (seeds) |
ty1 |
Implements CppAD::cg::GenericModel< Base >.
Definition at line 466 of file functor_generic_model.hpp.
|
inlineinherited |
Evaluates the dependent model variables (zero-order). This method considers that the generic model was prepared with a single array for the independent variables (the default behavior).
x | The independent variable vector |
Definition at line 212 of file generic_model.hpp.
Referenced by CppAD::cg::CGAtomicGenericModel< Base >::CGAtomicGenericModel(), CppAD::cg::GenericModelExternalFunctionWrapper< Base >::forward(), and CppAD::cg::GenericModel< Base >::ForwardZero().
|
inlineinherited |
Evaluates the dependent model variables (zero-order). This method considers that the generic model was prepared using a single array for the independent variables (the default behavior).
x | The independent variable vector |
dep | The dependent variable vector |
Definition at line 245 of file generic_model.hpp.
|
inlineoverridevirtual |
Determines the dependent variable values using a variable number of independent variable arrays. This method can be useful if the generic model was prepared considering that the independent variables are provided by several arrays.
x | Contains the several independent variable vectors |
dep | The values of the dependent variables |
Implements CppAD::cg::GenericModel< Base >.
Definition at line 352 of file functor_generic_model.hpp.
|
inlineoverridevirtual |
Evaluates the dependent model variables (zero-order). This method considers that the generic model was prepared with a single array for the independent variables (the default behavior).
vx | If it is not empty then it provides which independent variables are considered as variables (not parameters) |
vy | If vx and vy are not empty, it identifies which elements of ty are variables |
tx | The independent variable vector |
ty | The dependent variable vector |
Implements CppAD::cg::GenericModel< Base >.
Definition at line 365 of file functor_generic_model.hpp.
|
inlineoverridevirtual |
The names of the atomic functions required by this model. All external/atomic functions must be provided before using this model to compute numerical values.
Implements CppAD::cg::GenericModel< Base >.
Definition at line 145 of file functor_generic_model.hpp.
|
inlineoverridevirtual |
Provides the name for this model.
Implements CppAD::cg::GenericModel< Base >.
Definition at line 141 of file functor_generic_model.hpp.
|
inlineinherited |
Determines the dense weighted sum of the Hessians using dense methods.
\[ hess = \frac{\rm d^2 }{{\rm d} x^2 } \sum_{i} w_i F_i (x) \]
\[ i = 0 , \ldots , m - 1 \]
x | The independent variables |
w | The equation multipliers |
Definition at line 347 of file generic_model.hpp.
Referenced by CppAD::cg::GenericModel< Base >::Hessian().
|
inlineinherited |
Determines the dense weighted sum of the Hessians using dense methods.
\[ hess = \frac{\rm d^2 }{{\rm d} x^2 } \sum_{i} w_i F_i (x) \]
\[ i = 0 , \ldots , m - 1 \]
x | The independent variables |
w | The equation multipliers |
hess | The values of the dense hessian |
Definition at line 366 of file generic_model.hpp.
|
inlineinherited |
Determines the dense Hessian for a given dependent variable using dense methods.
\[ hess = \frac{{\rm d^2} F_i }{{\rm d} x^2 } (x) \]
x | The independent variables |
i | The index of the function/dependent variable |
Definition at line 384 of file generic_model.hpp.
|
inlineoverridevirtual |
Provides the sparsity of the hessian for a dependent variable.
i | The index of the dependent variable |
rows | The sparsity pattern row indices. |
cols | The sparsity pattern column indices. |
Implements CppAD::cg::GenericModel< Base >.
Definition at line 301 of file functor_generic_model.hpp.
|
inlineoverridevirtual |
Provides the sparsity of the hessian for a dependent variable.
i | The index of the dependent variable |
Implements CppAD::cg::GenericModel< Base >.
Definition at line 269 of file functor_generic_model.hpp.
|
inlineoverridevirtual |
Provides the sparsity of the sum of the hessian for each dependent variable.
Implements CppAD::cg::GenericModel< Base >.
Definition at line 233 of file functor_generic_model.hpp.
|
inlineoverridevirtual |
Provides the sparsity of the hessian for a dependent variable.
i | The index of the dependent variable |
Implements CppAD::cg::GenericModel< Base >.
Definition at line 285 of file functor_generic_model.hpp.
|
inlineoverridevirtual |
Determines whether or not the sparsity pattern for the Hessian associated with a dependent variable can be requested.
Implements CppAD::cg::GenericModel< Base >.
Definition at line 265 of file functor_generic_model.hpp.
|
inlineoverridevirtual |
Determines whether or not the first-order forward mode dense methods can be called.
Implements CppAD::cg::GenericModel< Base >.
Definition at line 443 of file functor_generic_model.hpp.
|
inlineoverridevirtual |
Determines whether or not the model evaluation (zero-order forward mode) can be requested.
Implements CppAD::cg::GenericModel< Base >.
Definition at line 329 of file functor_generic_model.hpp.
|
inlineoverridevirtual |
Determines whether or not the dense evaluation of the weighted sum of the Hessians can be requested.
Implements CppAD::cg::GenericModel< Base >.
Definition at line 419 of file functor_generic_model.hpp.
|
inlineoverridevirtual |
Determines whether or not the sparsity pattern for the weighted sum of the Hessians can be requested.
Implements CppAD::cg::GenericModel< Base >.
Definition at line 213 of file functor_generic_model.hpp.
|
inlineoverridevirtual |
Determines whether or not the dense Jacobian evaluation can be requested.
Implements CppAD::cg::GenericModel< Base >.
Definition at line 397 of file functor_generic_model.hpp.
|
inlineoverridevirtual |
Determines whether or not the Jacobian sparsity pattern can be requested.
Implements CppAD::cg::GenericModel< Base >.
Definition at line 160 of file functor_generic_model.hpp.
|
inlineoverridevirtual |
Determines whether or not the first-order reverse mode dense methods can be called.
Implements CppAD::cg::GenericModel< Base >.
Definition at line 504 of file functor_generic_model.hpp.
|
inlineoverridevirtual |
Determines whether or not the second-order reverse mode dense methods can be called.
Implements CppAD::cg::GenericModel< Base >.
Definition at line 570 of file functor_generic_model.hpp.
|
inlineoverridevirtual |
Determines whether or not the first-order forward mode sparse method can be called.
Implements CppAD::cg::GenericModel< Base >.
Definition at line 462 of file functor_generic_model.hpp.
|
inlineoverridevirtual |
Determines whether or not the sparse evaluation of the weighted sum of the Hessians methods can be called.
Implements CppAD::cg::GenericModel< Base >.
Definition at line 759 of file functor_generic_model.hpp.
|
inlineoverridevirtual |
Determines whether or not the sparse Jacobian evaluation methods can be called.
Implements CppAD::cg::GenericModel< Base >.
Definition at line 642 of file functor_generic_model.hpp.
|
inlineoverridevirtual |
Determines whether or not the first-order reverse mode sparse method can be called.
Implements CppAD::cg::GenericModel< Base >.
Definition at line 528 of file functor_generic_model.hpp.
|
inlineoverridevirtual |
Determines whether or not the second-order reverse mode sparse methods can be called.
Implements CppAD::cg::GenericModel< Base >.
Definition at line 596 of file functor_generic_model.hpp.
|
inlineinherited |
Calculates a Jacobian using dense methods and saves it into a dense format:
\[ jac[ i n + j ] = \frac{\partial F_i( x ) }{\partial x_j } \]
\( i = 0 , \ldots , m - 1 \) and \(j = 0 , \ldots , n - 1 \).
x | independent variable vector |
Definition at line 293 of file generic_model.hpp.
Referenced by CppAD::cg::GenericModel< Base >::Jacobian().
|
inlineinherited |
Calculates a Jacobian using dense methods and saves it into a dense format:
\[ jac[ i n + j ] = \frac{\partial F_i( x ) }{\partial x_j } \]
\( i = 0 , \ldots , m - 1 \) and \(j = 0 , \ldots , n - 1 \).
x | independent variable vector |
jac | a dense Jacobian |
Definition at line 310 of file generic_model.hpp.
|
inlineprotectedvirtual |
Prepare the atomic functions argument
Definition at line 964 of file functor_generic_model.hpp.
Referenced by CppAD::cg::FunctorGenericModel< Base >::FunctorGenericModel().
|
inlineoverridevirtual |
Computes results during a reverse mode sweep (adjoints or partial derivatives of independent variables) for the evaluation of the jacobian when the model is used through a user defined external/atomic AD function.
Implements CppAD::cg::GenericModel< Base >.
Definition at line 508 of file functor_generic_model.hpp.
|
inlineinherited |
Computes results during a reverse mode sweep (adjoints or partial derivatives of independent variables) for the evaluation of the jacobian when the model is used through a user defined external/atomic AD function.
Definition at line 511 of file generic_model.hpp.
Referenced by CppAD::cg::CGAtomicGenericModel< Base >::CGAtomicGenericModel(), CppAD::cg::GenericModelExternalFunctionWrapper< Base >::reverse(), and CppAD::cg::GenericModel< Base >::ReverseOne().
|
inlineinherited |
Computes results during a reverse mode sweep (adjoints or partial derivatives of independent variables) for the evaluation of the jacobian when the model is used through a user defined external/atomic AD function.
Definition at line 528 of file generic_model.hpp.
|
inlineoverridevirtual |
Computes results during a reverse mode sweep (adjoints or partial derivatives of independent variables) for the evaluation of the jacobian when the model is used through a user defined external/atomic AD function. This method version avoids some data copies and can be more efficient.
x | independent variable vector |
px | partial derivatives of the independent variables (same size as x) |
pyNnz | the number of non-zeros of the partial derivatives of the dependent variables (weight functionals) |
idx | the locations of the non-zero values the partial derivatives of the dependent variables (weight functionals) |
py | the non-zero values of the partial derivatives of the dependent variables (weight functionals) |
Implements CppAD::cg::GenericModel< Base >.
Definition at line 532 of file functor_generic_model.hpp.
|
inlineoverridevirtual |
Computes second-order results during a reverse mode sweep (p = 2). This method can be used during the evaluation of the hessian when the model is used through a user defined external/atomic AD function.
Implements CppAD::cg::GenericModel< Base >.
Definition at line 574 of file functor_generic_model.hpp.
|
inlineoverridevirtual |
Computes second-order results during a reverse mode sweep (p = 2). This method can be used during the evaluation of the hessian when the model is used through a user defined external AD function. This method version avoids some data copies and can be more efficient.
x | independent variable vector |
tx1Nnz | the number of non-zeros of the first-order Taylor coefficients of the independents |
idx | the locations of the non-zero values of the first-order Taylor coefficients of the independents |
tx1 | the values of the non-zero first-order Taylor coefficients of the independents |
px2 | second-order partials of the independents (should have the same size of x) |
py2 | second-order partials of the dependents (should have the size of the dependent variables) |
Implements CppAD::cg::GenericModel< Base >.
Definition at line 600 of file functor_generic_model.hpp.
|
inlineinherited |
Computes second-order results during a reverse mode sweep (p = 2). This method can be used during the evaluation of the hessian when the model is used through a user defined external/atomic AD function.
Definition at line 602 of file generic_model.hpp.
Referenced by CppAD::cg::CGAtomicGenericModel< Base >::CGAtomicGenericModel(), CppAD::cg::GenericModelExternalFunctionWrapper< Base >::reverse(), and CppAD::cg::GenericModel< Base >::ReverseTwo().
|
inlineinherited |
Computes second-order results during a reverse mode sweep (p = 2). This method can be used during the evaluation of the hessian when the model is used through a user defined external/atomic AD function.
Definition at line 620 of file generic_model.hpp.
|
inlineinherited |
Defines whether or not to evaluate a forward mode of an atomic functions during a reverse sweep so that CppAD checks validate OK. If this model is not used within CppAD then it should be set to false.
evalForwardOne4CppAD | true to perform the forward mode, false to ignore it |
Definition at line 182 of file generic_model.hpp.
|
inlineinherited |
Determines the dense weighted sum of the Hessians using sparse methods.
\[ hess = \frac{\rm d^2 }{{\rm d} x^2 } \sum_{i} w_i F_i (x) \]
\[ i = 0 , \ldots , m - 1 \]
x | The independent variables |
w | The equation multipliers |
Definition at line 795 of file generic_model.hpp.
Referenced by CppAD::cg::GenericModel< Base >::SparseHessian().
|
inlineoverridevirtual |
Determines the sparse weighted sum of the Hessians using a variable number of independent variable arrays.
\[ hess = \frac{\rm d^2 }{{\rm d} x^2 } \sum_{i} w_i F_i (x) \]
\[ i = 0 , \ldots , m - 1 \]
x | The independent variables |
w | The equation multipliers |
hess | The values of the sparse hessian in the order provided by row and col |
row | The row indices of the hessian values |
col | The column indices of the hessian values |
Implements CppAD::cg::GenericModel< Base >.
Definition at line 797 of file functor_generic_model.hpp.
|
inlineinherited |
Determines the dense weighted sum of the Hessians using sparse methods.
\[ hess = \frac{\rm d^2 }{{\rm d} x^2 } \sum_{i} w_i F_i (x) \]
\[ i = 0 , \ldots , m - 1 \]
x | The independent variables |
w | The equation multipliers |
hess | The values of the dense Hessian |
Definition at line 814 of file generic_model.hpp.
|
inlineoverridevirtual |
Determines the sparse weighted sum of the Hessians using a variable number of independent variable arrays.
\[ hess = \frac{\rm d^2 }{{\rm d} x^2 } \sum_{i} w_i F_i (x) \]
\[ i = 0 , \ldots , m - 1 \]
x | The independent variables |
w | The equation multipliers |
hess | The values of the sparse hessian in the order provided by row and col |
row | The row indices of the hessian values |
col | The column indices of the hessian values |
Implements CppAD::cg::GenericModel< Base >.
Definition at line 830 of file functor_generic_model.hpp.
|
inlineoverridevirtual |
Determines the sparse weighted sum of the Hessians using a variable number of independent variable arrays.
\[ hess = \frac{\rm d^2 }{{\rm d} x^2 } \sum_{i} w_i F_i (x) \]
\[ i = 0 , \ldots , m - 1 \]
This method can be useful if the generic model was prepared considering that the independent variables are provided by several arrays.
x | Contains the several independent variable vectors |
w | The equation multipliers |
w_size | The number of equations |
hess | The values of the sparse hessian in the order provided by row and col |
row | The row indices of the hessian values |
col | The column indices of the hessian values |
Implements CppAD::cg::GenericModel< Base >.
Definition at line 859 of file functor_generic_model.hpp.
|
inlineoverridevirtual |
Calculates a Jacobian using sparse methods and saves it into a sparse format.
x | independent variable array (must have n elements) |
jac | The values of the sparse Jacobian in the order provided by row and col (must be allocated with at least the same number of non-zero elements as the Jacobian) |
row | The row indices of the Jacobian values |
col | The column indices of the Jacobian values |
Implements CppAD::cg::GenericModel< Base >.
Definition at line 679 of file functor_generic_model.hpp.
|
inlineinherited |
Calculates a Jacobian using sparse methods and saves it into a dense format:
\[ jac[ i n + j ] = \frac{\partial F_i( x ) }{\partial x_j } \]
\( i = 0 , \ldots , m - 1 \) and \(j = 0 , \ldots , n - 1 \).
x | independent variable vector |
Definition at line 697 of file generic_model.hpp.
Referenced by CppAD::cg::GenericModel< Base >::SparseJacobian().
|
inlineoverridevirtual |
Calculates a Jacobian using sparse methods and saves it into a sparse format.
x | independent variable array (must have n elements) |
jac | The values of the sparse Jacobian in the order provided by row and col (must be allocated with at least the same number of non-zero elements as the Jacobian) |
row | The row indices of the Jacobian values |
col | The column indices of the Jacobian values |
Implements CppAD::cg::GenericModel< Base >.
Definition at line 708 of file functor_generic_model.hpp.
|
inlineinherited |
Calculates a Jacobian using sparse methods and saves it into a dense format:
\[ jac[ i n + j ] = \frac{\partial F_i( x ) }{\partial x_j } \]
\( i = 0 , \ldots , m - 1 \) and \(j = 0 , \ldots , n - 1 \).
x | independent variable vector |
jac | a vector where the dense Jacobian will be placed |
Definition at line 714 of file generic_model.hpp.
|
inlineoverridevirtual |
Determines the sparse Jacobian using a variable number of independent variable arrays. This method can be useful if the generic model was prepared considering that the independent variables are provided by several arrays.
x | Contains the several independent variable vectors |
jac | The values of the sparse Jacobian in the order provided by row and col |
row | The row indices of the Jacobian values |
col | The column indices of the Jacobian values |
Implements CppAD::cg::GenericModel< Base >.
Definition at line 735 of file functor_generic_model.hpp.
|
inlineprotectedvirtual |
Check the data type
Definition at line 932 of file functor_generic_model.hpp.
Referenced by CppAD::cg::FunctorGenericModel< Base >::FunctorGenericModel().
|
staticprotected |
Definition at line 36 of file functor_generic_model.hpp.