Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
gtsam::internal::ExpressionNode< T > Class Template Referenceabstract

#include <Expression.h>

Inheritance diagram for gtsam::internal::ExpressionNode< T >:
Inheritance graph
[legend]

Public Member Functions

virtual void dims (std::map< Key, int > &map) const
 Return dimensions for each argument, as a map. More...
 
virtual std::set< Keykeys () const
 Return keys that play in this expression as a set. More...
 
virtual void print (const std::string &indent="") const =0
 Print. More...
 
virtual T traceExecution (const Values &values, ExecutionTrace< T > &trace, char *traceStorage) const =0
 Construct an execution trace for reverse AD. More...
 
size_t traceSize () const
 
virtual T value (const Values &values) const =0
 Return value. More...
 
virtual ~ExpressionNode ()
 Destructor. More...
 

Protected Member Functions

 ExpressionNode (size_t traceSize=0)
 Constructor, traceSize is size of the execution trace of expression rooted here. More...
 

Protected Attributes

size_t traceSize_
 

Friends

GTSAM_EXPORT friend std::ostream & operator<< (std::ostream &os, const ExpressionNode &node)
 Streaming. More...
 

Detailed Description

template<class T>
class gtsam::internal::ExpressionNode< T >

Expression node. The superclass for objects that do the heavy lifting An Expression<T> has a pointer to an ExpressionNode<T> underneath allowing Expressions to have polymorphic behaviour even though they are passed by value. This is the same way std::function works. http://loki-lib.sourceforge.net/html/a00652.html

Definition at line 40 of file Expression.h.

Constructor & Destructor Documentation

◆ ExpressionNode()

template<class T >
gtsam::internal::ExpressionNode< T >::ExpressionNode ( size_t  traceSize = 0)
inlineprotected

Constructor, traceSize is size of the execution trace of expression rooted here.

Definition at line 71 of file ExpressionNode.h.

◆ ~ExpressionNode()

template<class T >
virtual gtsam::internal::ExpressionNode< T >::~ExpressionNode ( )
inlinevirtual

Destructor.

Definition at line 78 of file ExpressionNode.h.

Member Function Documentation

◆ dims()

template<class T >
virtual void gtsam::internal::ExpressionNode< T >::dims ( std::map< Key, int > &  map) const
inlinevirtual

◆ keys()

template<class T >
virtual std::set<Key> gtsam::internal::ExpressionNode< T >::keys ( ) const
inlinevirtual

◆ print()

template<class T >
virtual void gtsam::internal::ExpressionNode< T >::print ( const std::string &  indent = "") const
pure virtual

◆ traceExecution()

template<class T >
virtual T gtsam::internal::ExpressionNode< T >::traceExecution ( const Values values,
ExecutionTrace< T > &  trace,
char *  traceStorage 
) const
pure virtual

◆ traceSize()

template<class T >
size_t gtsam::internal::ExpressionNode< T >::traceSize ( ) const
inline

Definition at line 104 of file ExpressionNode.h.

◆ value()

template<class T >
virtual T gtsam::internal::ExpressionNode< T >::value ( const Values values) const
pure virtual

Friends And Related Function Documentation

◆ operator<<

template<class T >
GTSAM_EXPORT friend std::ostream& operator<< ( std::ostream &  os,
const ExpressionNode< T > &  node 
)
friend

Streaming.

Definition at line 86 of file ExpressionNode.h.

Member Data Documentation

◆ traceSize_

template<class T >
size_t gtsam::internal::ExpressionNode< T >::traceSize_
protected

Definition at line 68 of file ExpressionNode.h.


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


gtsam
Author(s):
autogenerated on Fri Nov 1 2024 03:52:55