single_tape_data< global_tape > Struct Template Reference

CPP API: ad::internal::blob_tape< AD_TAPE_REAL, AD_ADJOINT_REAL >::single_tape_data< global_tape > Struct Template Reference
ad::internal::blob_tape< AD_TAPE_REAL, AD_ADJOINT_REAL >::single_tape_data< global_tape > Struct Template Reference

#include <ad.hpp>

Inheritance diagram for ad::internal::blob_tape< AD_TAPE_REAL, AD_ADJOINT_REAL >::single_tape_data< global_tape >:
Collaboration diagram for ad::internal::blob_tape< AD_TAPE_REAL, AD_ADJOINT_REAL >::single_tape_data< global_tape >:

Public Types

typedef AD_TAPE_CLASS DATA_TAPE_TYPE
 
typedef AD_ADJOINT_REAL DERIVATIVE_T
 
typedef const AD_TAPE_INTTAPE_INDEX_TYPE
 

Public Member Functions

AD_ADJOINT_REAL & _adjoint () const
 
AD_ADJOINT_REAL & _derivative ()
 
const AD_ADJOINT_REAL & _derivative () const
 
int _edgecount () const
 
bool _is_registered () const
 
void _set_tape (AD_TAPE_CLASS *T)
 
AD_TAPE_INT_tape_index ()
 
const AD_TAPE_INT_tape_index () const
 
void clear ()
 
void register_variable (AD_TAPE_INT new_tape_index, AD_TAPE_CLASS *tape)
 
 single_tape_data ()
 

Static Public Member Functions

static AD_TAPE_CLASS_tape ()
 
template<class AD_INTERMEDIATE , class AD_ACTIVE_TYPE >
static void handle (const AD_INTERMEDIATE &vneu, AD_ACTIVE_TYPE &target)
 

Public Attributes

AD_TAPE_INT _tape_index_
 

Additional Inherited Members

- Static Protected Member Functions inherited from ad::internal::blob_tape< AD_TAPE_REAL, AD_ADJOINT_REAL >::handler_base
template<class DATA_HANDLER_1 >
static int _get_edge_count (const ad::internal::active_type< AD_TAPE_REAL, DATA_HANDLER_1 > &x)
 
template<class A1_T1 , class A1_T2 , class A1_OP >
static int _get_edge_count (const ad::internal::binary_intermediate_aa< AD_TAPE_REAL, A1_T1, A1_T2, A1_OP > &x)
 
template<class A1_T1 , class A1_OP >
static int _get_edge_count (const ad::internal::binary_intermediate_ap< AD_TAPE_REAL, A1_T1, A1_OP > &x)
 
template<class A1_T2 , class A1_OP >
static int _get_edge_count (const ad::internal::binary_intermediate_pa< AD_TAPE_REAL, A1_T2, A1_OP > &x)
 
template<class A1_T , class A1_OP >
static int _get_edge_count (const ad::internal::unary_intermediate< AD_TAPE_REAL, A1_T, A1_OP > &x)
 

Member Typedef Documentation

◆ DATA_TAPE_TYPE

template<class AD_TAPE_REAL , class AD_ADJOINT_REAL = AD_TAPE_REAL>
template<AD_TAPE_CLASS *& global_tape>
typedef AD_TAPE_CLASS ad::internal::blob_tape< AD_TAPE_REAL, AD_ADJOINT_REAL >::single_tape_data< global_tape >::DATA_TAPE_TYPE

◆ DERIVATIVE_T

template<class AD_TAPE_REAL , class AD_ADJOINT_REAL = AD_TAPE_REAL>
template<AD_TAPE_CLASS *& global_tape>
typedef AD_ADJOINT_REAL ad::internal::blob_tape< AD_TAPE_REAL, AD_ADJOINT_REAL >::single_tape_data< global_tape >::DERIVATIVE_T

◆ TAPE_INDEX_TYPE

template<class AD_TAPE_REAL , class AD_ADJOINT_REAL = AD_TAPE_REAL>
template<AD_TAPE_CLASS *& global_tape>
typedef const AD_TAPE_INT& ad::internal::blob_tape< AD_TAPE_REAL, AD_ADJOINT_REAL >::single_tape_data< global_tape >::TAPE_INDEX_TYPE

Constructor & Destructor Documentation

◆ single_tape_data()

template<class AD_TAPE_REAL , class AD_ADJOINT_REAL = AD_TAPE_REAL>
template<AD_TAPE_CLASS *& global_tape>
ad::internal::blob_tape< AD_TAPE_REAL, AD_ADJOINT_REAL >::single_tape_data< global_tape >::single_tape_data ( )
inline

Member Function Documentation

◆ _adjoint()

template<class AD_TAPE_REAL , class AD_ADJOINT_REAL = AD_TAPE_REAL>
template<AD_TAPE_CLASS *& global_tape>
AD_ADJOINT_REAL& ad::internal::blob_tape< AD_TAPE_REAL, AD_ADJOINT_REAL >::single_tape_data< global_tape >::_adjoint ( ) const
inline

◆ _derivative() [1/2]

template<class AD_TAPE_REAL , class AD_ADJOINT_REAL = AD_TAPE_REAL>
template<AD_TAPE_CLASS *& global_tape>
AD_ADJOINT_REAL& ad::internal::blob_tape< AD_TAPE_REAL, AD_ADJOINT_REAL >::single_tape_data< global_tape >::_derivative ( )
inline

◆ _derivative() [2/2]

template<class AD_TAPE_REAL , class AD_ADJOINT_REAL = AD_TAPE_REAL>
template<AD_TAPE_CLASS *& global_tape>
const AD_ADJOINT_REAL& ad::internal::blob_tape< AD_TAPE_REAL, AD_ADJOINT_REAL >::single_tape_data< global_tape >::_derivative ( ) const
inline

◆ _edgecount()

template<class AD_TAPE_REAL , class AD_ADJOINT_REAL = AD_TAPE_REAL>
template<AD_TAPE_CLASS *& global_tape>
int ad::internal::blob_tape< AD_TAPE_REAL, AD_ADJOINT_REAL >::single_tape_data< global_tape >::_edgecount ( ) const
inline

◆ _is_registered()

template<class AD_TAPE_REAL , class AD_ADJOINT_REAL = AD_TAPE_REAL>
template<AD_TAPE_CLASS *& global_tape>
bool ad::internal::blob_tape< AD_TAPE_REAL, AD_ADJOINT_REAL >::single_tape_data< global_tape >::_is_registered ( ) const
inline

◆ _set_tape()

template<class AD_TAPE_REAL , class AD_ADJOINT_REAL = AD_TAPE_REAL>
template<AD_TAPE_CLASS *& global_tape>
void ad::internal::blob_tape< AD_TAPE_REAL, AD_ADJOINT_REAL >::single_tape_data< global_tape >::_set_tape ( AD_TAPE_CLASS T)
inline

◆ _tape()

template<class AD_TAPE_REAL , class AD_ADJOINT_REAL = AD_TAPE_REAL>
template<AD_TAPE_CLASS *& global_tape>
static AD_TAPE_CLASS* ad::internal::blob_tape< AD_TAPE_REAL, AD_ADJOINT_REAL >::single_tape_data< global_tape >::_tape ( )
inlinestatic

◆ _tape_index() [1/2]

template<class AD_TAPE_REAL , class AD_ADJOINT_REAL = AD_TAPE_REAL>
template<AD_TAPE_CLASS *& global_tape>
AD_TAPE_INT& ad::internal::blob_tape< AD_TAPE_REAL, AD_ADJOINT_REAL >::single_tape_data< global_tape >::_tape_index ( )
inline

◆ _tape_index() [2/2]

template<class AD_TAPE_REAL , class AD_ADJOINT_REAL = AD_TAPE_REAL>
template<AD_TAPE_CLASS *& global_tape>
const AD_TAPE_INT& ad::internal::blob_tape< AD_TAPE_REAL, AD_ADJOINT_REAL >::single_tape_data< global_tape >::_tape_index ( ) const
inline

◆ clear()

template<class AD_TAPE_REAL , class AD_ADJOINT_REAL = AD_TAPE_REAL>
template<AD_TAPE_CLASS *& global_tape>
void ad::internal::blob_tape< AD_TAPE_REAL, AD_ADJOINT_REAL >::single_tape_data< global_tape >::clear ( )
inline

◆ handle()

template<class AD_TAPE_REAL , class AD_ADJOINT_REAL = AD_TAPE_REAL>
template<AD_TAPE_CLASS *& global_tape>
template<class AD_INTERMEDIATE , class AD_ACTIVE_TYPE >
static void ad::internal::blob_tape< AD_TAPE_REAL, AD_ADJOINT_REAL >::single_tape_data< global_tape >::handle ( const AD_INTERMEDIATE &  vneu,
AD_ACTIVE_TYPE &  target 
)
inlinestatic

◆ register_variable()

template<class AD_TAPE_REAL , class AD_ADJOINT_REAL = AD_TAPE_REAL>
template<AD_TAPE_CLASS *& global_tape>
void ad::internal::blob_tape< AD_TAPE_REAL, AD_ADJOINT_REAL >::single_tape_data< global_tape >::register_variable ( AD_TAPE_INT  new_tape_index,
AD_TAPE_CLASS tape 
)
inline

Member Data Documentation

◆ _tape_index_

template<class AD_TAPE_REAL , class AD_ADJOINT_REAL = AD_TAPE_REAL>
template<AD_TAPE_CLASS *& global_tape>
AD_TAPE_INT ad::internal::blob_tape< AD_TAPE_REAL, AD_ADJOINT_REAL >::single_tape_data< global_tape >::_tape_index_