CppAD: A C++ Algorithmic Differentiation Package  20130918
CppAD::ADFun< Base > Class Template Reference

Class used to hold function objects. More...

List of all members.

Public Member Functions

 ADFun (const ADFun &g)
 copy constructor
 ADFun (void)
 default constructor
template<typename ADvector >
 ADFun (const ADvector &x, const ADvector &y)
 sequence constructor
template<typename VectorAD >
 ADFun (const VectorAD &x, const VectorAD &y)
 ADFun constructor from an operation sequence.
void capacity_order (size_t c)
 set number of orders and directions currently allocated
void capacity_taylor (size_t per_var)
 Deprecated: set number of orders currently allocated (per variable,direction)
void check_for_nan (bool value)
 set value of check_for_nan_
bool check_for_nan (void) const
size_t CompareChange (void) const
 in not NDEBUG case, number of comparison operations that change
template<typename ADvector >
void Dependent (const ADvector &x, const ADvector &y)
 assign a new operation sequence
template<typename ADvector >
void Dependent (const ADvector &y)
 deprecated: assign a new operation sequence
size_t Domain (void) const
 number of independent variables
template<typename Vector >
Vector ForOne (const Vector &x, size_t j)
template<typename VectorBase >
VectorBase ForOne (const VectorBase &x, size_t j)
 forward mode calculation of partial w.r.t one domain component
template<typename VectorSet >
VectorSet ForSparseJac (size_t q, const VectorSet &r, bool transpose=false)
 User API for Jacobian sparsity patterns using forward mode.
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 Vector >
Vector Forward (size_t q, const Vector &xq, std::ostream &s)
 Arbitrary order, one direction, forward mode Taylor coefficieints.
template<typename VectorBase >
VectorBase Forward (size_t q, const VectorBase &x, std::ostream &s=std::cout)
 forward mode sweep
template<typename Vector >
Vector Hessian (const Vector &x, size_t l)
template<typename Vector >
Vector Hessian (const Vector &x, const Vector &w)
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 Vector >
Vector Jacobian (const Vector &x)
template<typename VectorBase >
VectorBase Jacobian (const VectorBase &x)
 calculate entire Jacobian
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 number_skip (void)
 number of variables in conditional expressions that can be skipped
void operator= (const ADFun &f)
 ADFun assignment operator.
void optimize (void)
 Optimize a player object operation sequence.
size_t Order (void) const
 Deprecated: # taylor_ coefficients currently stored (per variable,direction)
bool Parameter (size_t i)
 is variable a parameter
size_t Range (void) const
 number of dependent variables
template<typename VectorBase >
VectorBase Reverse (size_t p, const VectorBase &v)
 reverse mode sweep
template<typename Vector >
Vector RevOne (const Vector &x, size_t i)
template<typename VectorBase >
VectorBase RevOne (const VectorBase &x, size_t i)
 reverse mode calculation of derivative of one range component
template<typename VectorSet >
VectorSet RevSparseHes (size_t q, const VectorSet &s, bool transpose=false)
 User API for Hessian sparsity patterns using reverse mode.
template<typename VectorSet >
VectorSet RevSparseJac (size_t q, const VectorSet &s, bool transpose=false, bool nz_compare=false)
 User API for Jacobian sparsity patterns using reverse mode.
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
size_t Size (void) const
 Deprecated: number of variables in opertion sequence.
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_order (void) const
 number taylor coefficient orders calculated
size_t size_par (void) const
 number of parameters in the operation sequence
size_t size_taylor (void) const
 Deprecated: # taylor_ coefficient orders calculated (per variable,direction)
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
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.
template<class VectorBase , class VectorSet >
VectorBase SparseHessian (const VectorBase &x, const VectorBase &w, const VectorSet &p)
 Compute a sparse Hessian.
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.
size_t taylor_size (void) const
 Deprecated: # taylor_ coefficient orderss stored (per variable,direction)
bool use_VecAD (void) const
 Deprecated: Does this AD operation sequence use VecAD<Base>::reference operands.
 ~ADFun (void)
 destructor

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, bool transpose, 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, bool transpose, size_t q, const VectorSet &r, VectorSet &s)
 Private helper function for ForSparseJac(q, r).
template<class VectorSet >
void RevSparseHesCase (bool set_type, bool transpose, 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, bool transpose, size_t q, const VectorSet &s, VectorSet &h)
 Private helper function for RevSparseHes(q, s).
template<class VectorSet >
void RevSparseJacCase (bool set_type, bool transpose, bool nz_compare, size_t p, const VectorSet &s, VectorSet &r)
 Private helper function for RevSparseJac(q, r, transpose).
template<class VectorSet >
void RevSparseJacCase (const std::set< size_t > &set_type, bool transpose, bool nz_compare, size_t p, const VectorSet &s, VectorSet &r)
 Private helper function for RevSparseJac(q, r, transpose).
template<class VectorBase , class VectorSet , class VectorSize >
size_t SparseHessianCompute (const VectorBase &x, const VectorBase &w, VectorSet &sparsity, const VectorSize &row, const VectorSize &col, VectorBase &hes, sparse_hessian_work &work)
 Private helper function that does computation for all Sparse Hessian cases.
template<class VectorBase , class VectorSet , class VectorSize >
size_t SparseJacobianFor (const VectorBase &x, VectorSet &p_transpose, const VectorSize &row, const VectorSize &col, VectorBase &jac, sparse_jacobian_work &work)
 Private helper function forward mode cases.
template<class VectorBase , class VectorSet , class VectorSize >
size_t SparseJacobianRev (const VectorBase &x, VectorSet &p, const VectorSize &row, const VectorSize &col, VectorBase &jac, sparse_jacobian_work &work)
 Private helper function for reverse mode cases.

Private Attributes

size_t cap_order_taylor_
 maximum number of orders that will fit in taylor_
bool check_for_nan_
 Check for nan's and report message to user (default value is true).
size_t compare_change_
 debug checking number of comparision operations that changed
pod_vector< bool > cskip_op_
 which operations can be conditionally skipped Set during forward pass of order zero
CppAD::vector< bool > dep_parameter_
 which dependent variables are actually parameters
CppAD::vector< size_t > dep_taddr_
 tape address and parameter flag for the dependent variables
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.
CppAD::vector< size_t > ind_taddr_
 tape address for the independent variables
pod_vector< addr_tload_op_
 Variable on the tape corresponding to each vecad load operation (if zero, the operation corresponds to a parameter).
size_t num_order_taylor_
 number of orders stored in taylor_
size_t num_var_tape_
 number of variables in the recording (play_)
player< Base > play_
 the operation sequence corresponding to this object
pod_vector< Base > taylor_
 results of the forward mode calculations

Detailed Description

template<class Base>
class CppAD::ADFun< Base >

Class used to hold function objects.

Template Parameters:
BaseA function object has a recording of AD<Base> operations. It does it calculations using Base operations.

Definition at line 75 of file ad_fun.hpp.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines