Public Member Functions | Private Member Functions | List of all members
gtsam::internal::CallRecord< Cols > Struct Template Referenceabstract

#include <CallRecord.h>

Inheritance diagram for gtsam::internal::CallRecord< Cols >:
Inheritance graph
[legend]

Public Member Functions

void print (const std::string &indent) const
 
template<typename Derived >
void reverseAD2 (const Eigen::MatrixBase< Derived > &dFdT, JacobianMap &jacobians) const
 
void reverseAD2 (const Matrix &dFdT, JacobianMap &jacobians) const
 
void startReverseAD2 (JacobianMap &jacobians) const
 
virtual ~CallRecord ()
 

Private Member Functions

virtual void _print (const std::string &indent) const =0
 
virtual void _reverseAD3 (const Matrix &dFdT, JacobianMap &jacobians) const =0
 
virtual void _reverseAD3 (const Eigen::Matrix< double, Eigen::Dynamic, Cols > &dFdT, JacobianMap &jacobians) const =0
 
virtual void _reverseAD3 (const Eigen::Matrix< double, 1, Cols > &dFdT, JacobianMap &jacobians) const =0
 
virtual void _reverseAD3 (const Eigen::Matrix< double, 2, Cols > &dFdT, JacobianMap &jacobians) const =0
 
virtual void _reverseAD3 (const Eigen::Matrix< double, 3, Cols > &dFdT, JacobianMap &jacobians) const =0
 
virtual void _reverseAD3 (const Eigen::Matrix< double, 4, Cols > &dFdT, JacobianMap &jacobians) const =0
 
virtual void _reverseAD3 (const Eigen::Matrix< double, 5, Cols > &dFdT, JacobianMap &jacobians) const =0
 
virtual void _startReverseAD3 (JacobianMap &jacobians) const =0
 

Detailed Description

template<int Cols>
struct gtsam::internal::CallRecord< Cols >

The CallRecord is an abstract base class for any class that stores the Jacobians of applying a function with respect to each of its arguments, as well as an execution trace for each of its arguments.

The complicated structure of this class is to get around the limitations of mixing inheritance (needed so that a trace can keep Record pointers) and templating (needed for efficient matrix multiplication). The "hack" is to implement N differently sized reverse AD methods, and select the appropriate version with the dispatch method reverseAD2 below.

Definition at line 69 of file CallRecord.h.

Constructor & Destructor Documentation

◆ ~CallRecord()

template<int Cols>
virtual gtsam::internal::CallRecord< Cols >::~CallRecord ( )
inlinevirtual

Definition at line 101 of file CallRecord.h.

Member Function Documentation

◆ _print()

template<int Cols>
virtual void gtsam::internal::CallRecord< Cols >::_print ( const std::string &  indent) const
privatepure virtual

◆ _reverseAD3() [1/7]

template<int Cols>
virtual void gtsam::internal::CallRecord< Cols >::_reverseAD3 ( const Matrix dFdT,
JacobianMap jacobians 
) const
privatepure virtual

◆ _reverseAD3() [2/7]

template<int Cols>
virtual void gtsam::internal::CallRecord< Cols >::_reverseAD3 ( const Eigen::Matrix< double, Eigen::Dynamic, Cols > &  dFdT,
JacobianMap jacobians 
) const
privatepure virtual

◆ _reverseAD3() [3/7]

template<int Cols>
virtual void gtsam::internal::CallRecord< Cols >::_reverseAD3 ( const Eigen::Matrix< double, 1, Cols > &  dFdT,
JacobianMap jacobians 
) const
privatepure virtual

◆ _reverseAD3() [4/7]

template<int Cols>
virtual void gtsam::internal::CallRecord< Cols >::_reverseAD3 ( const Eigen::Matrix< double, 2, Cols > &  dFdT,
JacobianMap jacobians 
) const
privatepure virtual

◆ _reverseAD3() [5/7]

template<int Cols>
virtual void gtsam::internal::CallRecord< Cols >::_reverseAD3 ( const Eigen::Matrix< double, 3, Cols > &  dFdT,
JacobianMap jacobians 
) const
privatepure virtual

◆ _reverseAD3() [6/7]

template<int Cols>
virtual void gtsam::internal::CallRecord< Cols >::_reverseAD3 ( const Eigen::Matrix< double, 4, Cols > &  dFdT,
JacobianMap jacobians 
) const
privatepure virtual

◆ _reverseAD3() [7/7]

template<int Cols>
virtual void gtsam::internal::CallRecord< Cols >::_reverseAD3 ( const Eigen::Matrix< double, 5, Cols > &  dFdT,
JacobianMap jacobians 
) const
privatepure virtual

◆ _startReverseAD3()

template<int Cols>
virtual void gtsam::internal::CallRecord< Cols >::_startReverseAD3 ( JacobianMap jacobians) const
privatepure virtual

◆ print()

template<int Cols>
void gtsam::internal::CallRecord< Cols >::print ( const std::string &  indent) const
inline

Definition at line 72 of file CallRecord.h.

◆ reverseAD2() [1/2]

template<int Cols>
template<typename Derived >
void gtsam::internal::CallRecord< Cols >::reverseAD2 ( const Eigen::MatrixBase< Derived > &  dFdT,
JacobianMap jacobians 
) const
inline

Definition at line 90 of file CallRecord.h.

◆ reverseAD2() [2/2]

template<int Cols>
void gtsam::internal::CallRecord< Cols >::reverseAD2 ( const Matrix dFdT,
JacobianMap jacobians 
) const
inline

Definition at line 97 of file CallRecord.h.

◆ startReverseAD2()

template<int Cols>
void gtsam::internal::CallRecord< Cols >::startReverseAD2 ( JacobianMap jacobians) const
inline

Definition at line 81 of file CallRecord.h.


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


gtsam
Author(s):
autogenerated on Tue Jul 4 2023 02:47:15