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

#include <Expression.h>

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

Classes

struct  BinaryFunction
 
struct  TernaryFunction
 
struct  UnaryFunction
 

Public Types

typedef Expression< T > type
 Define type so we can apply it as a meta-function.
 

Public Member Functions

 Expression (const T &value)
 Construct a constant expression.
 
 Expression (const Key &key)
 Construct a leaf expression, with Key.
 
 Expression (const Symbol &symbol)
 Construct a leaf expression, with Symbol.
 
 Expression (unsigned char c, std::uint64_t j)
 Construct a leaf expression, creating Symbol.
 
template<typename A >
 Expression (typename UnaryFunction< A >::type function, const Expression< A > &expression)
 Construct a unary function expression.
 
template<typename A1 , typename A2 >
 Expression (typename BinaryFunction< A1, A2 >::type function, const Expression< A1 > &expression1, const Expression< A2 > &expression2)
 Construct a binary function expression.
 
template<typename A1 , typename A2 , typename A3 >
 Expression (typename TernaryFunction< A1, A2, A3 >::type function, const Expression< A1 > &expression1, const Expression< A2 > &expression2, const Expression< A3 > &expression3)
 Construct a ternary function expression.
 
template<typename A >
 Expression (const Expression< A > &expression, T(A::*method)(typename MakeOptionalJacobian< T, A >::type) const)
 Construct a nullary method expression.
 
template<typename A1 , typename A2 >
 Expression (const Expression< A1 > &expression1, T(A1::*method)(const A2 &, typename MakeOptionalJacobian< T, A1 >::type, typename MakeOptionalJacobian< T, A2 >::type) const, const Expression< A2 > &expression2)
 Construct a unary method expression.
 
template<typename A1 , typename A2 , typename A3 >
 Expression (const Expression< A1 > &expression1, T(A1::*method)(const A2 &, const A3 &, typename MakeOptionalJacobian< T, A1 >::type, typename MakeOptionalJacobian< T, A2 >::type, typename MakeOptionalJacobian< T, A3 >::type) const, const Expression< A2 > &expression2, const Expression< A3 > &expression3)
 Construct a binary method expression.
 
virtual ~Expression ()
 Destructor.
 
std::set< Keykeys () const
 Return keys that play in this expression.
 
void dims (std::map< Key, int > &map) const
 Return dimensions for each argument, as a map.
 
void print (const std::string &s) const
 Print.
 
value (const Values &values, std::vector< Matrix > *H=nullptr) const
 Return value and optional derivatives, reverse AD version Notes: this is not terribly efficient, and H should have correct size. The order of the Jacobians is same as keys in either keys() or dims()
 
value (const Values &values, std::vector< Matrix > &H) const
 
virtual std::shared_ptr< Expressionclone () const
 
const std::shared_ptr< internal::ExpressionNode< T > > & root () const
 Return root.
 
size_t traceSize () const
 Return size needed for memory buffer in traceExecution.
 
Expression< T > & operator+= (const Expression< T > &e)
 Add another expression to this expression.
 

Protected Types

typedef std::pair< KeyVector, FastVector< int > > KeysAndDims
 Keys and dimensions in same order.
 

Protected Member Functions

 Expression (const std::shared_ptr< internal::ExpressionNode< T > > &root)
 Construct with a custom root.
 
 Expression ()
 Default constructor, for serialization.
 
KeysAndDims keysAndDims () const
 
valueAndDerivatives (const Values &values, const KeyVector &keys, const FastVector< int > &dims, std::vector< Matrix > &H) const
 private version that takes keys and dimensions, returns derivatives
 
traceExecution (const Values &values, internal::ExecutionTrace< T > &trace, char *traceStorage) const
 trace execution, very unsafe
 
valueAndJacobianMap (const Values &values, internal::JacobianMap &jacobians) const
 brief Return value and derivatives, reverse AD version
 

Protected Attributes

std::shared_ptr< internal::ExpressionNode< T > > root_
 

Friends

class ExpressionFactor< T >
 
class internal::ExpressionNode< T >
 
class ::ExpressionFactorShallowTest
 

Detailed Description

template<typename T>
class gtsam::Expression< T >

Expression class that supports automatic differentiation

Member Function Documentation

◆ clone()

template<typename T>
virtual std::shared_ptr<Expression> gtsam::Expression< T >::clone ( ) const
inlinevirtual
Returns
a "deep" copy of this Expression "deep" is in quotes because the ExpressionNode hierarchy is not cloned. The intent is for derived classes to be copied using only a Base pointer.

◆ value()

template<typename T>
T gtsam::Expression< T >::value ( const Values values,
std::vector< Matrix > &  H 
) const
inline

An overload of the value function to accept reference to vector of matrices instead of a pointer to vector of matrices.


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