CppAD: A C++ Algorithmic Differentiation Package
20130102
|
Class used to hold function objects. More...
Public Member Functions | |
ADFun (const ADFun &g) | |
copy constructor | |
ADFun (void) | |
default constructor | |
void | operator= (const ADFun &f) |
ADFun assignment operator. | |
template<typename ADvector > | |
ADFun (const ADvector &x, const ADvector &y) | |
sequence constructor | |
~ADFun (void) | |
destructor | |
template<typename ADvector > | |
void | Dependent (const ADvector &y) |
deprecated: assign a new operation sequence | |
template<typename ADvector > | |
void | Dependent (const ADvector &x, const ADvector &y) |
assign a new operation sequence | |
template<typename VectorBase > | |
VectorBase | Forward (size_t p, const VectorBase &x, std::ostream &s=std::cout) |
forward mode sweep | |
template<typename VectorBase > | |
VectorBase | Reverse (size_t p, const VectorBase &v) |
reverse mode sweep | |
template<typename VectorSet > | |
VectorSet | ForSparseJac (size_t q, const VectorSet &r) |
User API for Jacobian sparsity patterns using forward mode. | |
template<typename VectorSet > | |
VectorSet | RevSparseJac (size_t q, const VectorSet &s) |
User API for Jacobian sparsity patterns using reverse mode. | |
template<typename VectorSet > | |
VectorSet | RevSparseHes (size_t q, const VectorSet &s) |
User API for Hessian sparsity patterns using reverse mode. | |
size_t | size_forward_bool (void) const |
amount of memeory used for Jacobain sparsity pattern | |
void | size_forward_bool (size_t zero) |
free memeory used for Jacobain sparsity pattern | |
size_t | size_forward_set (void) const |
total number of elements used for Jacobian sparsity pattern | |
void | size_forward_set (size_t zero) |
free memeory used for Jacobain sparsity pattern | |
size_t | size_op (void) const |
number of operators in the operation sequence | |
size_t | size_op_arg (void) const |
number of operator arguments in the operation sequence | |
size_t | size_op_seq (void) const |
amount of memory required for the operation sequence | |
size_t | size_par (void) const |
number of parameters in the operation sequence | |
size_t | size_taylor (void) const |
number of taylor_ coefficients currently calculated (per variable) | |
size_t | size_text (void) const |
number of characters in the operation sequence | |
size_t | size_var (void) const |
number of variables in opertion sequence | |
size_t | size_VecAD (void) const |
number of VecAD indices in the operation sequence | |
void | capacity_taylor (size_t per_var) |
set number of coefficients currently allocated (per variable) | |
size_t | Domain (void) const |
number of independent variables | |
size_t | Range (void) const |
number of dependent variables | |
bool | Parameter (size_t i) |
is variable a parameter | |
size_t | CompareChange (void) const |
in not NDEBUG case, number of comparison operations that change | |
template<typename VectorBase > | |
VectorBase | Jacobian (const VectorBase &x) |
calculate entire Jacobian | |
template<typename VectorBase > | |
VectorBase | Hessian (const VectorBase &x, const VectorBase &w) |
calculate Hessian for one component of f | |
template<typename VectorBase > | |
VectorBase | Hessian (const VectorBase &x, size_t i) |
template<typename VectorBase > | |
VectorBase | ForOne (const VectorBase &x, size_t j) |
forward mode calculation of partial w.r.t one domain component | |
template<typename VectorBase > | |
VectorBase | RevOne (const VectorBase &x, size_t i) |
reverse mode calculation of derivative of one range component | |
template<typename VectorBase , typename VectorSize_t > | |
VectorBase | ForTwo (const VectorBase &x, const VectorSize_t &J, const VectorSize_t &K) |
forward mode calculation of a subset of second order partials | |
template<typename VectorBase , typename VectorSize_t > | |
VectorBase | RevTwo (const VectorBase &x, const VectorSize_t &I, const VectorSize_t &J) |
reverse mode calculation of a subset of second order partials | |
template<typename VectorBase > | |
VectorBase | SparseJacobian (const VectorBase &x) |
calculate sparse Jacobians | |
template<typename VectorBase , typename VectorSet > | |
VectorBase | SparseJacobian (const VectorBase &x, const VectorSet &p) |
Compute a sparse Jacobian. | |
template<class VectorBase , class VectorSet , class VectorSize > | |
size_t | SparseJacobianForward (const VectorBase &x, const VectorSet &p, const VectorSize &r, const VectorSize &c, VectorBase &jac, sparse_jacobian_work &work) |
Compute user specified subset of a sparse Jacobian using forward mode. | |
template<class VectorBase , class VectorSet , class VectorSize > | |
size_t | SparseJacobianReverse (const VectorBase &x, const VectorSet &p, const VectorSize &r, const VectorSize &c, VectorBase &jac, sparse_jacobian_work &work) |
Compute user specified subset of a sparse Jacobian using forward mode. | |
template<typename VectorBase > | |
VectorBase | SparseHessian (const VectorBase &x, const VectorBase &w) |
calculate sparse Hessians | |
template<typename VectorBase , typename VectorBool > | |
VectorBase | SparseHessian (const VectorBase &x, const VectorBase &w, const VectorBool &p) |
template<class VectorBase , class VectorSet , class VectorSize > | |
size_t | SparseHessian (const VectorBase &x, const VectorBase &w, const VectorSet &p, const VectorSize &r, const VectorSize &c, VectorBase &hes, sparse_hessian_work &work) |
Compute user specified subset of a sparse Hessian. | |
void | optimize (void) |
Optimize a player object operation sequence. | |
size_t | Size (void) const |
deprecated: number of variables in opertion sequence | |
size_t | Order (void) const |
deprecated: # taylor_ coefficients currently stored (per variable) | |
size_t | Memory (void) const |
Deprecated: amount of memory for this object Note that an approximation is used for the std::set<size_t> memory. | |
size_t | taylor_size (void) const |
deprecated: # taylor_ coefficients stored (per variable) | |
bool | use_VecAD (void) const |
deprecated: Does this AD operation sequence use | |
template<typename Vector > | |
Vector | ForOne (const Vector &x, size_t j) |
template<typename Vector > | |
Vector | Forward (size_t p, const Vector &x_p, std::ostream &s) |
Compute arbitrary order forward mode Taylor coefficieints. | |
template<typename VectorAD > | |
ADFun (const VectorAD &x, const VectorAD &y) | |
ADFun constructor from an operation sequence. | |
template<typename Vector > | |
Vector | Hessian (const Vector &x, size_t l) |
template<typename Vector > | |
Vector | Hessian (const Vector &x, const Vector &w) |
template<typename Vector > | |
Vector | Jacobian (const Vector &x) |
template<typename Vector > | |
Vector | RevOne (const Vector &x, size_t i) |
template<class VectorBase , class VectorSet > | |
VectorBase | SparseHessian (const VectorBase &x, const VectorBase &w, const VectorSet &p) |
Compute a sparse Hessian. | |
Private Member Functions | |
template<typename ADvector > | |
void | Dependent (ADTape< Base > *tape, const ADvector &y) |
change the operation sequence corresponding to this object | |
template<class VectorSet > | |
void | ForSparseJacCase (bool set_type, size_t q, const VectorSet &r, VectorSet &s) |
Private helper function for ForSparseJac(q, r). | |
template<class VectorSet > | |
void | ForSparseJacCase (const std::set< size_t > &set_type, size_t q, const VectorSet &r, VectorSet &s) |
Private helper function for ForSparseJac(q, r) . | |
template<class VectorSet > | |
void | RevSparseJacCase (bool set_type, size_t p, const VectorSet &s, VectorSet &r) |
Private helper function for RevSparseJac(p, s) . | |
template<class VectorSet > | |
void | RevSparseJacCase (const std::set< size_t > &set_type, size_t p, const VectorSet &s, VectorSet &r) |
Private helper function for RevSparseJac(p, s) . | |
template<class VectorSet > | |
void | RevSparseHesCase (bool set_type, size_t q, const VectorSet &s, VectorSet &h) |
Private helper function for RevSparseHes(q, s). | |
template<class VectorSet > | |
void | RevSparseHesCase (const std::set< size_t > &set_type, size_t q, const VectorSet &s, VectorSet &h) |
Private helper function for RevSparseHes(q, s). | |
template<class VectorBase , class VectorSet > | |
size_t | SparseJacobianFor (const VectorBase &x, VectorSet &p_transpose, VectorBase &jac, sparse_jacobian_work &work) |
Private helper function forward mode cases. | |
template<class VectorBase , class VectorSet > | |
size_t | SparseJacobianRev (const VectorBase &x, VectorSet &p, VectorBase &jac, sparse_jacobian_work &work) |
Private helper function for reverse mode cases. | |
template<class VectorBase , class VectorSet > | |
size_t | SparseJacobianCase (bool set_type, const VectorBase &x, const VectorSet &p, VectorBase &jac, sparse_jacobian_work &work) |
template<class VectorBase , class VectorSet > | |
size_t | SparseJacobianCase (const std::set< size_t > &set_type, const VectorBase &x, const VectorSet &p, VectorBase &jac, sparse_jacobian_work &work) |
template<class VectorBase , class VectorSet > | |
void | SparseJacobianCase (bool set_type, const VectorBase &x, const VectorSet &p, VectorBase &jac) |
template<class VectorBase , class VectorSet > | |
void | SparseJacobianCase (const std::set< size_t > &set_type, const VectorBase &x, const VectorSet &p, VectorBase &jac) |
template<class VectorBase , class VectorSet > | |
size_t | SparseHessianCompute (const VectorBase &x, const VectorBase &w, VectorSet &sparsity, VectorBase &hes, sparse_hessian_work &work) |
Private helper function that does computation for all Sparse Hessian cases. | |
template<class VectorBase , class VectorSet > | |
size_t | SparseHessianCase (bool set_type, const VectorBase &x, const VectorBase &w, const VectorSet &p, VectorBase &hes, sparse_hessian_work &work) |
Private helper function for vector of bool sparsity pattern cases. | |
template<class VectorBase , class VectorSet > | |
size_t | SparseHessianCase (const std::set< size_t > &set_type, const VectorBase &x, const VectorBase &w, const VectorSet &p, VectorBase &hes, sparse_hessian_work &work) |
Private helper function for vector of std::set<size_t> sparsity pattern cases. | |
template<class VectorBase , class VectorSet > | |
void | SparseHessianCase (bool set_type, const VectorBase &x, const VectorBase &w, const VectorSet &p, VectorBase &hes) |
Private helper function for SparseHessian(x, w, p). | |
template<class VectorBase , class VectorSet > | |
void | SparseHessianCase (const std::set< size_t > &set_type, const VectorBase &x, const VectorBase &w, const VectorSet &p, VectorBase &hes) |
Private helper function for SparseHessian(x, w, p). | |
Private Attributes | |
size_t | compare_change_ |
debug checking number of comparision operations that changed | |
size_t | taylor_per_var_ |
number of taylor_ coefficieint per variable (currently stored) | |
size_t | taylor_col_dim_ |
number of columns currently allocated for taylor_ array | |
size_t | total_num_var_ |
number of rows (variables) in the recording (play_) | |
CppAD::vector< size_t > | ind_taddr_ |
tape address for the independent variables | |
CppAD::vector< size_t > | dep_taddr_ |
tape address and parameter flag for the dependent variables | |
CppAD::vector< bool > | dep_parameter_ |
which dependent variables are actually parameters | |
player< Base > | play_ |
the operation sequence corresponding to this object | |
pod_vector< Base > | taylor_ |
results of the forward mode calculations | |
sparse_pack | for_jac_sparse_pack_ |
Packed results of the forward mode Jacobian sparsity calculations. for_jac_sparse_pack_.n_set() != 0 implies other sparsity results are empty. | |
CPPAD_INTERNAL_SPARSE_SET | for_jac_sparse_set_ |
Set results of the forward mode Jacobian sparsity calculations for_jac_sparse_set_.n_set() != 0 implies for_sparse_pack_ is empty. |
Class used to hold function objects.
Base | A function object has a recording of AD<Base> operations. It does it calculations using Base operations. |
Definition at line 76 of file ad_fun.hpp.