|
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.