27#ifndef G2O_BASE_VARIABLE_SIZED_EDGE_H
28#define G2O_BASE_VARIABLE_SIZED_EDGE_H
36#include "g2o/config.h"
49template <
int D,
typename E>
67 typedef Eigen::Map<
MatrixX, MatrixX::Flags & Eigen::PacketAccessBit
82 virtual void resize(
size_t size);
100 std::vector<JacobianType>
107 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
InformationType _information
internal::BaseEdgeTraits< D >::ErrorVector ErrorVector
internal::BaseEdgeTraits< D >::InformationType InformationType
Measurement _measurement
the measurement of the edge
base class to represent an edge connecting an arbitrary number of nodes
Eigen::Map< MatrixX, MatrixX::Flags &Eigen::PacketAccessBit ? Eigen::Aligned :Eigen::Unaligned > HessianBlockType
virtual void mapHessianMemory(double *d, int i, int j, bool rowMajor)
virtual void linearizeOplus()
virtual void constructQuadraticForm()
MatrixX::MapType JacobianType
virtual void resize(size_t size)
virtual bool allVerticesFixed() const
BaseEdge< D, E >::ErrorVector ErrorVector
BaseEdge< D, E >::Measurement Measurement
std::vector< JacobianType > _jacobianOplus
jacobians of the edge (w.r.t. oplus)
std::vector< HessianHelper > _hessian
BaseEdge< D, E >::InformationType InformationType
static constexpr int Dimension
void computeQuadraticForm(const InformationType &omega, const ErrorVector &weightedError)
VertexContainer _vertices
provide memory workspace for computing the Jacobians
virtual void computeError()=0
some general case utility functions
MatrixN< Eigen::Dynamic > MatrixX
helper for mapping the Hessian memory of the upper triangular block
bool transposed
the block has to be transposed
Eigen::Map< MatrixX > matrix
the mapped memory