CppAD: A C++ Algorithmic Differentiation Package  20171217
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
CppAD::atomic_base< Base > Class Template Reference
Inheritance diagram for CppAD::atomic_base< Base >:
anonymous_namespace{eigen_cholesky.hpp}::atomic_eigen_cholesky< Base > anonymous_namespace{eigen_mat_inv.hpp}::atomic_eigen_mat_inv< Base > anonymous_namespace{eigen_mat_mul.hpp}::atomic_eigen_mat_mul< Base > CppAD::checkpoint< Base > CppAD::old_atomic< Base > CppAD::user_atomic< Base >

Classes

struct  work_struct
 temporary work space used by member functions, declared here to avoid More...
 

Public Types

enum  option_enum { pack_sparsity_enum, bool_sparsity_enum, set_sparsity_enum }
 

Public Member Functions

const std::string & afun_name (void) const
 Name corresponding to a base_atomic object. More...
 
void allocate_work (size_t thread)
 allocates work_ for a specified thread More...
 
 atomic_base (void)
 Base class for atomic_user functions. More...
 
 atomic_base (const std::string &name, option_enum sparsity=bool_sparsity_enum)
 Constructor. More...
 
virtual bool for_sparse_hes (const vector< bool > &vx, const vector< bool > &r, const vector< bool > &s, vector< std::set< size_t > > &h, const vector< Base > &x)
 Link, after case split, from for_hes_sweep to atomic_base. More...
 
virtual bool for_sparse_hes (const vector< bool > &vx, const vector< bool > &r, const vector< bool > &s, vector< bool > &h, const vector< Base > &x)
 
virtual bool for_sparse_hes (const vector< bool > &vx, const vector< bool > &r, const vector< bool > &s, vectorBool &h, const vector< Base > &x)
 
virtual bool for_sparse_hes (const vector< bool > &vx, const vector< bool > &r, const vector< bool > &s, vector< std::set< size_t > > &h)
 
virtual bool for_sparse_hes (const vector< bool > &vx, const vector< bool > &r, const vector< bool > &s, vector< bool > &h)
 
virtual bool for_sparse_hes (const vector< bool > &vx, const vector< bool > &r, const vector< bool > &s, vectorBool &h)
 
template<class InternalSparsity >
void for_sparse_hes (const vector< Base > &x, const vector< size_t > &x_index, const vector< size_t > &y_index, const InternalSparsity &for_jac_sparsity, const InternalSparsity &rev_jac_sparsity, InternalSparsity &for_hes_sparsity)
 Link, before case split, from for_hes_sweep to atomic_base. More...
 
virtual bool for_sparse_jac (size_t q, const vector< std::set< size_t > > &r, vector< std::set< size_t > > &s, const vector< Base > &x)
 Link, after case split, from for_jac_sweep to atomic_base. More...
 
virtual bool for_sparse_jac (size_t q, const vector< bool > &r, vector< bool > &s, const vector< Base > &x)
 
virtual bool for_sparse_jac (size_t q, const vectorBool &r, vectorBool &s, const vector< Base > &x)
 
virtual bool for_sparse_jac (size_t q, const vector< std::set< size_t > > &r, vector< std::set< size_t > > &s)
 
virtual bool for_sparse_jac (size_t q, const vector< bool > &r, vector< bool > &s)
 
virtual bool for_sparse_jac (size_t q, const vectorBool &r, vectorBool &s)
 
template<class InternalSparsity >
void for_sparse_jac (const vector< Base > &x, const vector< size_t > &x_index, const vector< size_t > &y_index, InternalSparsity &var_sparsity)
 Link, before case split, from for_jac_sweep to atomic_base. More...
 
virtual bool forward (size_t p, size_t q, const vector< bool > &vx, vector< bool > &vy, const vector< Base > &tx, vector< Base > &ty)
 Link from atomic_base to forward mode. More...
 
void free_work (size_t thread)
 frees work_ for a specified thread More...
 
template<class ADVector >
void operator() (const ADVector &ax, ADVector &ay, size_t id=0)
 Implement the user call to afun(ax, ay) and old_atomic call to afun(ax, ay, id). More...
 
void option (enum option_enum option_value)
 
virtual bool rev_sparse_hes (const vector< bool > &vx, const vector< bool > &s, vector< bool > &t, size_t q, const vector< std::set< size_t > > &r, const vector< std::set< size_t > > &u, vector< std::set< size_t > > &v, const vector< Base > &x)
 Link from reverse Hessian sparsity sweep to base_atomic. More...
 
virtual bool rev_sparse_hes (const vector< bool > &vx, const vector< bool > &s, vector< bool > &t, size_t q, const vector< bool > &r, const vector< bool > &u, vector< bool > &v, const vector< Base > &x)
 
virtual bool rev_sparse_hes (const vector< bool > &vx, const vector< bool > &s, vector< bool > &t, size_t q, const vectorBool &r, const vectorBool &u, vectorBool &v, const vector< Base > &x)
 
virtual bool rev_sparse_hes (const vector< bool > &vx, const vector< bool > &s, vector< bool > &t, size_t q, const vector< std::set< size_t > > &r, const vector< std::set< size_t > > &u, vector< std::set< size_t > > &v)
 
virtual bool rev_sparse_hes (const vector< bool > &vx, const vector< bool > &s, vector< bool > &t, size_t q, const vector< bool > &r, const vector< bool > &u, vector< bool > &v)
 
virtual bool rev_sparse_hes (const vector< bool > &vx, const vector< bool > &s, vector< bool > &t, size_t q, const vectorBool &r, const vectorBool &u, vectorBool &v)
 
template<class InternalSparsity >
void rev_sparse_hes (const vector< Base > &x, const vector< size_t > &x_index, const vector< size_t > &y_index, const InternalSparsity &for_jac_sparsity, bool *rev_jac_flag, InternalSparsity &rev_hes_sparsity)
 Link, before case split, from rev_hes_sweep to atomic_base. More...
 
virtual bool rev_sparse_jac (size_t q, const vector< std::set< size_t > > &rt, vector< std::set< size_t > > &st, const vector< Base > &x)
 Link, after case split, from rev_jac_sweep to atomic_base. More...
 
virtual bool rev_sparse_jac (size_t q, const vector< bool > &rt, vector< bool > &st, const vector< Base > &x)
 
virtual bool rev_sparse_jac (size_t q, const vectorBool &rt, vectorBool &st, const vector< Base > &x)
 
virtual bool rev_sparse_jac (size_t q, const vector< std::set< size_t > > &rt, vector< std::set< size_t > > &st)
 
virtual bool rev_sparse_jac (size_t q, const vector< bool > &rt, vector< bool > &st)
 
virtual bool rev_sparse_jac (size_t q, const vectorBool &rt, vectorBool &st)
 
template<class InternalSparsity >
void rev_sparse_jac (const vector< Base > &x, const vector< size_t > &x_index, const vector< size_t > &y_index, InternalSparsity &var_sparsity)
 Link, before case split, from rev_jac_sweep to atomic_base. More...
 
virtual bool reverse (size_t q, const vector< Base > &tx, const vector< Base > &ty, vector< Base > &px, const vector< Base > &py)
 Link from reverse mode sweep to users routine. More...
 
virtual void set_old (size_t id)
 Set value of id (used by deprecated old_atomic class) More...
 
option_enum sparsity (void) const
 current sparsity setting More...
 
virtual ~atomic_base (void)
 destructor informs CppAD that this atomic function with this index has dropped out of scope by setting its pointer to null More...
 

Static Public Member Functions

static const std::string & class_name (size_t index)
 atomic_base function name corresponding to a certain index More...
 
static atomic_baseclass_object (size_t index)
 atomic_base function object corresponding to a certain index More...
 
static void clear (void)
 Free all thread_alloc static memory held by atomic_base (avoids reallocations). More...
 

Static Private Member Functions

static std::vector< std::string > & class_name (void)
 List of names for each object in this class. More...
 
static std::vector
< atomic_base * > & 
class_object (void)
 List of all the object in this class. More...
 

Private Attributes

const size_t index_
 index of this object in class_object More...
 
option_enum sparsity_
 sparsity pattern this object is currently using (set by constructor and option member functions) More...
 
work_structwork_ [CPPAD_MAX_NUM_THREADS]
 

Detailed Description

template<class Base>
class CppAD::atomic_base< Base >

Definition at line 28 of file atomic_base.hpp.


The documentation for this class was generated from the following file: