GTSAM  4.0.2
C++ library for smoothing and mapping (SAM)
Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
gtsam::internal::ExpressionNode< T > Class Template Referenceabstract

#include <ExpressionNode.h>

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

Public Member Functions

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

Protected Member Functions

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

Protected Attributes

size_t traceSize_
 

Friends

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

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


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