27 #ifndef G2O_BASE_BINARY_EDGE_H 28 #define G2O_BASE_BINARY_EDGE_H 35 #include "../../config.h" 39 using namespace Eigen;
41 template <
int D,
typename E,
typename VertexXi,
typename VertexXj>
49 static const int Di = VertexXiType::Dimension;
50 static const int Dj = VertexXjType::Dimension;
59 typedef Eigen::Map<Matrix<double, Di, Dj>, Matrix<double, Di, Dj>::Flags & AlignedBit ? Aligned : Unaligned >
HessianBlockType;
60 typedef Eigen::Map<Matrix<double, Dj, Di>, Matrix<double, Dj, Di>::Flags & AlignedBit ? Aligned : Unaligned >
HessianBlockTransposedType;
63 _hessianRowMajor(false),
64 _hessian(0, VertexXiType::Dimension, VertexXjType::Dimension),
65 _hessianTransposed(0, VertexXjType::Dimension, VertexXiType::Dimension),
66 _jacobianOplusXi(0, D, Di), _jacobianOplusXj(0, D, Dj)
74 virtual void resize(
size_t size);
76 virtual bool allVerticesFixed()
const;
84 virtual void linearizeOplus();
91 virtual void constructQuadraticForm() ;
93 virtual void mapHessianMemory(
double*
d,
int i,
int j,
bool rowMajor);
112 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
const JacobianXjOplusType & jacobianOplusXj() const
returns the result of the linearization in the manifold space for the node xj
BaseEdge< D, E >::ErrorVector ErrorVector
BaseEdge< D, E >::Measurement Measurement
JacobianXiOplusType _jacobianOplusXi
Eigen::Map< Matrix< double, Dj, Di >, Matrix< double, Dj, Di >::Flags &AlignedBit?Aligned:Unaligned > HessianBlockTransposedType
Matrix< double, D, Dj >::AlignedMapType JacobianXjOplusType
Matrix< double, D, 1 > ErrorVector
A general case Vertex for optimization.
virtual void resize(size_t size)
BaseEdge< D, E >::InformationType InformationType
Eigen::Map< Matrix< double, Di, Dj >, Matrix< double, Di, Dj >::Flags &AlignedBit?Aligned:Unaligned > HessianBlockType
HessianBlockTransposedType _hessianTransposed
JacobianXjOplusType _jacobianOplusXj
HessianBlockType _hessian
provide memory workspace for computing the Jacobians
Matrix< double, D, Di >::AlignedMapType JacobianXiOplusType
Matrix< double, D, D > InformationType
const JacobianXiOplusType & jacobianOplusXi() const
returns the result of the linearization in the manifold space for the node xi