external_adjoint_object_base< AD_TYPE, AD_TAPE > Class Template Reference

CPP API: ad::helper::external_adjoint_object_base< AD_TYPE, AD_TAPE > Class Template Reference
ad::helper::external_adjoint_object_base< AD_TYPE, AD_TAPE > Class Template Reference

#include <ad.hpp>

Inheritance diagram for ad::helper::external_adjoint_object_base< AD_TYPE, AD_TAPE >:
Collaboration diagram for ad::helper::external_adjoint_object_base< AD_TYPE, AD_TAPE >:

Public Member Functions

bool all_adjoints_read ()
 
bool all_adjoints_written ()
 
void check_tape (const AD_TYPE &x)
 
 external_adjoint_object_base ()
 
 external_adjoint_object_base (const std::pair< int, int > &a)
 
size_t get_number_of_registered_inputs ()
 
size_t get_number_of_registered_outputs ()
 
AD_TYPE::VALUE_TYPE get_output_adjoint ()
 
void get_output_adjoint (std::vector< typename AD_TYPE::VALUE_TYPE > &buffer)
 
void get_output_adjoint (typename AD_TYPE::VALUE_TYPE *buffer, const size_t n)
 
void increment_input_adjoint (const std::vector< typename AD_TYPE::VALUE_TYPE > &adj)
 
void increment_input_adjoint (const typename AD_TYPE::VALUE_TYPE &adj)
 
void increment_input_adjoint (const typename AD_TYPE::VALUE_TYPE *const adj, const int n)
 
AD_TYPE::VALUE_TYPE register_input (const AD_TYPE &x)
 
void register_input (const AD_TYPE *const x, typename AD_TYPE::VALUE_TYPE *values, const int n)
 
std::vector< typename AD_TYPE::VALUE_TYPE > register_input (const std::vector< AD_TYPE > &x)
 
void register_input (const std::vector< AD_TYPE > &x, std::vector< typename AD_TYPE::VALUE_TYPE > &values)
 
void register_output (AD_TYPE *actives, const size_t n)
 
std::vector< AD_TYPE > register_output (const std::vector< typename AD_TYPE::VALUE_TYPE > &pvalues)
 
void register_output (const std::vector< typename AD_TYPE::VALUE_TYPE > &pvalues, std::vector< AD_TYPE > &actives)
 
AD_TYPE register_output (const typename AD_TYPE::VALUE_TYPE &py, AD_TAPE *tape=NULL)
 
void register_output (const typename AD_TYPE::VALUE_TYPE *const pvalues, AD_TYPE *actives, const size_t n)
 
void register_output (std::vector< AD_TYPE > &actives)
 
- Public Member Functions inherited from ad::helper::userdata_object_base< AD_TYPE, AD_TAPE >
virtual double get_memory_size ()
 
template<typename X >
const X & read_data ()
 
 userdata_object_base ()
 
template<typename X >
void write_data (const X &cp)
 
template<typename X >
void write_data (const X *const &cp, const int inc, const int n)
 
template<typename X >
void write_data (const X *const cp, const int n)
 
- Public Member Functions inherited from ad::helper::callback_object_base< AD_TAPE >
 callback_object_base ()
 
AD_TAPE * get_tape ()
 
void set_tape (AD_TAPE *t)
 

Protected Member Functions

 ~external_adjoint_object_base ()
 
- Protected Member Functions inherited from ad::helper::userdata_object_base< AD_TYPE, AD_TAPE >
virtual ~userdata_object_base ()
 
- Protected Member Functions inherited from ad::helper::callback_object_base< AD_TAPE >
virtual ~callback_object_base ()
 

Protected Attributes

std::vector< AD_TAPE_INTinputs
 
AD_TAPE_INT inputs_count
 
std::vector< AD_TAPE_INToutputs
 
AD_TAPE_INT outputs_count
 
- Protected Attributes inherited from ad::helper::callback_object_base< AD_TAPE >
AD_TAPE * registered_tape
 

Constructor & Destructor Documentation

◆ ~external_adjoint_object_base()

template<class AD_TYPE , class AD_TAPE >
ad::helper::external_adjoint_object_base< AD_TYPE, AD_TAPE >::~external_adjoint_object_base ( )
inlineprotected

◆ external_adjoint_object_base() [1/2]

template<class AD_TYPE , class AD_TAPE >
ad::helper::external_adjoint_object_base< AD_TYPE, AD_TAPE >::external_adjoint_object_base ( const std::pair< int, int > &  a)
inline

◆ external_adjoint_object_base() [2/2]

template<class AD_TYPE , class AD_TAPE >
ad::helper::external_adjoint_object_base< AD_TYPE, AD_TAPE >::external_adjoint_object_base ( )
inline

Member Function Documentation

◆ all_adjoints_read()

template<class AD_TYPE , class AD_TAPE >
bool ad::helper::external_adjoint_object_base< AD_TYPE, AD_TAPE >::all_adjoints_read ( )
inline

◆ all_adjoints_written()

template<class AD_TYPE , class AD_TAPE >
bool ad::helper::external_adjoint_object_base< AD_TYPE, AD_TAPE >::all_adjoints_written ( )
inline

◆ check_tape()

template<class AD_TYPE , class AD_TAPE >
void ad::helper::external_adjoint_object_base< AD_TYPE, AD_TAPE >::check_tape ( const AD_TYPE &  x)
inline

◆ get_number_of_registered_inputs()

template<class AD_TYPE , class AD_TAPE >
size_t ad::helper::external_adjoint_object_base< AD_TYPE, AD_TAPE >::get_number_of_registered_inputs ( )
inline

◆ get_number_of_registered_outputs()

template<class AD_TYPE , class AD_TAPE >
size_t ad::helper::external_adjoint_object_base< AD_TYPE, AD_TAPE >::get_number_of_registered_outputs ( )
inline

◆ get_output_adjoint() [1/3]

template<class AD_TYPE , class AD_TAPE >
AD_TYPE::VALUE_TYPE ad::helper::external_adjoint_object_base< AD_TYPE, AD_TAPE >::get_output_adjoint ( )
inline

◆ get_output_adjoint() [2/3]

template<class AD_TYPE , class AD_TAPE >
void ad::helper::external_adjoint_object_base< AD_TYPE, AD_TAPE >::get_output_adjoint ( std::vector< typename AD_TYPE::VALUE_TYPE > &  buffer)
inline

◆ get_output_adjoint() [3/3]

template<class AD_TYPE , class AD_TAPE >
void ad::helper::external_adjoint_object_base< AD_TYPE, AD_TAPE >::get_output_adjoint ( typename AD_TYPE::VALUE_TYPE *  buffer,
const size_t  n 
)
inline

◆ increment_input_adjoint() [1/3]

template<class AD_TYPE , class AD_TAPE >
void ad::helper::external_adjoint_object_base< AD_TYPE, AD_TAPE >::increment_input_adjoint ( const std::vector< typename AD_TYPE::VALUE_TYPE > &  adj)
inline

◆ increment_input_adjoint() [2/3]

template<class AD_TYPE , class AD_TAPE >
void ad::helper::external_adjoint_object_base< AD_TYPE, AD_TAPE >::increment_input_adjoint ( const typename AD_TYPE::VALUE_TYPE &  adj)
inline

◆ increment_input_adjoint() [3/3]

template<class AD_TYPE , class AD_TAPE >
void ad::helper::external_adjoint_object_base< AD_TYPE, AD_TAPE >::increment_input_adjoint ( const typename AD_TYPE::VALUE_TYPE *const  adj,
const int  n 
)
inline

◆ register_input() [1/4]

template<class AD_TYPE , class AD_TAPE >
AD_TYPE::VALUE_TYPE ad::helper::external_adjoint_object_base< AD_TYPE, AD_TAPE >::register_input ( const AD_TYPE &  x)
inline

◆ register_input() [2/4]

template<class AD_TYPE , class AD_TAPE >
void ad::helper::external_adjoint_object_base< AD_TYPE, AD_TAPE >::register_input ( const AD_TYPE *const  x,
typename AD_TYPE::VALUE_TYPE *  values,
const int  n 
)
inline

◆ register_input() [3/4]

template<class AD_TYPE , class AD_TAPE >
std::vector<typename AD_TYPE::VALUE_TYPE> ad::helper::external_adjoint_object_base< AD_TYPE, AD_TAPE >::register_input ( const std::vector< AD_TYPE > &  x)
inline

◆ register_input() [4/4]

template<class AD_TYPE , class AD_TAPE >
void ad::helper::external_adjoint_object_base< AD_TYPE, AD_TAPE >::register_input ( const std::vector< AD_TYPE > &  x,
std::vector< typename AD_TYPE::VALUE_TYPE > &  values 
)
inline

◆ register_output() [1/6]

template<class AD_TYPE , class AD_TAPE >
void ad::helper::external_adjoint_object_base< AD_TYPE, AD_TAPE >::register_output ( AD_TYPE *  actives,
const size_t  n 
)
inline

◆ register_output() [2/6]

template<class AD_TYPE , class AD_TAPE >
std::vector<AD_TYPE> ad::helper::external_adjoint_object_base< AD_TYPE, AD_TAPE >::register_output ( const std::vector< typename AD_TYPE::VALUE_TYPE > &  pvalues)
inline

◆ register_output() [3/6]

template<class AD_TYPE , class AD_TAPE >
void ad::helper::external_adjoint_object_base< AD_TYPE, AD_TAPE >::register_output ( const std::vector< typename AD_TYPE::VALUE_TYPE > &  pvalues,
std::vector< AD_TYPE > &  actives 
)
inline

◆ register_output() [4/6]

template<class AD_TYPE , class AD_TAPE >
AD_TYPE ad::helper::external_adjoint_object_base< AD_TYPE, AD_TAPE >::register_output ( const typename AD_TYPE::VALUE_TYPE &  py,
AD_TAPE *  tape = NULL 
)
inline

◆ register_output() [5/6]

template<class AD_TYPE , class AD_TAPE >
void ad::helper::external_adjoint_object_base< AD_TYPE, AD_TAPE >::register_output ( const typename AD_TYPE::VALUE_TYPE *const  pvalues,
AD_TYPE *  actives,
const size_t  n 
)
inline

◆ register_output() [6/6]

template<class AD_TYPE , class AD_TAPE >
void ad::helper::external_adjoint_object_base< AD_TYPE, AD_TAPE >::register_output ( std::vector< AD_TYPE > &  actives)
inline

Member Data Documentation

◆ inputs

template<class AD_TYPE , class AD_TAPE >
std::vector<AD_TAPE_INT> ad::helper::external_adjoint_object_base< AD_TYPE, AD_TAPE >::inputs
protected

◆ inputs_count

template<class AD_TYPE , class AD_TAPE >
AD_TAPE_INT ad::helper::external_adjoint_object_base< AD_TYPE, AD_TAPE >::inputs_count
protected

◆ outputs

template<class AD_TYPE , class AD_TAPE >
std::vector<AD_TAPE_INT> ad::helper::external_adjoint_object_base< AD_TYPE, AD_TAPE >::outputs
protected

◆ outputs_count

template<class AD_TYPE , class AD_TAPE >
AD_TAPE_INT ad::helper::external_adjoint_object_base< AD_TYPE, AD_TAPE >::outputs_count
protected