g2o
Loading...
Searching...
No Matches
Classes | Namespaces | Macros
auto_differentiation.h File Reference
#include <algorithm>
#include <cassert>
#include <type_traits>
#include "eigen_types.h"
#include "g2o/autodiff/autodiff.h"
#include "g2o/stuff/misc.h"
#include "g2o_core_api.h"
Include dependency graph for auto_differentiation.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  g2o::EstimateAccessor< Edge >
 
class  g2o::EstimateAccessorGet< Edge >
 
struct  g2o::EstimateAccessorGet< Edge >::BufferType< std::index_sequence< Ints... > >
 
class  g2o::AutoDifferentiation< Edge, EstimateAccess >
 Implementation of Automatic Differentiation for edges in g2o. More...
 

Namespaces

namespace  g2o
 

Macros

#define G2O_MAKE_AUTO_AD_COMPUTEERROR
 
#define G2O_MAKE_AUTO_AD_LINEARIZEOPLUS
 
#define G2O_MAKE_AUTO_AD_FUNCTIONS
 
#define G2O_MAKE_AUTO_AD_COMPUTEERROR_BY_GET
 
#define G2O_MAKE_AUTO_AD_LINEARIZEOPLUS_BY_GET
 
#define G2O_MAKE_AUTO_AD_FUNCTIONS_BY_GET
 

Macro Definition Documentation

◆ G2O_MAKE_AUTO_AD_COMPUTEERROR

#define G2O_MAKE_AUTO_AD_COMPUTEERROR
Value:
void computeError() override { \
std::remove_reference<decltype(*this)>::type>::computeError(this); \
}
Implementation of Automatic Differentiation for edges in g2o.

Definition at line 263 of file auto_differentiation.h.

264 { \
266 std::remove_reference<decltype(*this)>::type>::computeError(this); \
267 }

◆ G2O_MAKE_AUTO_AD_COMPUTEERROR_BY_GET

#define G2O_MAKE_AUTO_AD_COMPUTEERROR_BY_GET
Value:
void computeError() override { \
using EdgeType = std::remove_reference<decltype(*this)>::type; \
EdgeType, g2o::EstimateAccessorGet<EdgeType>>::computeError(this); \
}

Definition at line 283 of file auto_differentiation.h.

284 { \
285 using EdgeType = std::remove_reference<decltype(*this)>::type; \
287 EdgeType, g2o::EstimateAccessorGet<EdgeType>>::computeError(this); \
288 }

◆ G2O_MAKE_AUTO_AD_FUNCTIONS

#define G2O_MAKE_AUTO_AD_FUNCTIONS
Value:
G2O_MAKE_AUTO_AD_COMPUTEERROR \
G2O_MAKE_AUTO_AD_LINEARIZEOPLUS

Helper macro for easy integration into own types

Definition at line 277 of file auto_differentiation.h.

◆ G2O_MAKE_AUTO_AD_FUNCTIONS_BY_GET

#define G2O_MAKE_AUTO_AD_FUNCTIONS_BY_GET
Value:
G2O_MAKE_AUTO_AD_COMPUTEERROR_BY_GET \
G2O_MAKE_AUTO_AD_LINEARIZEOPLUS_BY_GET

Helper macro for easy integration into own types

Definition at line 300 of file auto_differentiation.h.

◆ G2O_MAKE_AUTO_AD_LINEARIZEOPLUS

#define G2O_MAKE_AUTO_AD_LINEARIZEOPLUS
Value:
void linearizeOplus() override { \
std::remove_reference<decltype(*this)>::type>::linearize(this); \
}

Definition at line 268 of file auto_differentiation.h.

269 { \
271 std::remove_reference<decltype(*this)>::type>::linearize(this); \
272 }

◆ G2O_MAKE_AUTO_AD_LINEARIZEOPLUS_BY_GET

#define G2O_MAKE_AUTO_AD_LINEARIZEOPLUS_BY_GET
Value:
void linearizeOplus() override { \
using EdgeType = std::remove_reference<decltype(*this)>::type; \
EdgeType, g2o::EstimateAccessorGet<EdgeType>>::linearize(this); \
}

Definition at line 290 of file auto_differentiation.h.

291 { \
292 using EdgeType = std::remove_reference<decltype(*this)>::type; \
294 EdgeType, g2o::EstimateAccessorGet<EdgeType>>::linearize(this); \
295 }