template struct sophus::LieGroupCeresTests
#include <test_impl.h>
template <template<class, int=0> class TLieGroup>
struct LieGroupCeresTests {
// typedefs
using LieGroup = TLieGroup<TScalar> ;
using LieGroupF64 = LieGroup<double> ;
using PointF64 = typename LieGroupF64::Point ;
using Tangentd = typename LieGroupF64::Tangent ;
using StdVector = std::vector<TScalar, Eigen::aligned_allocator<TScalar>> ;
// structs
struct TestGraphFunctor;
struct TestLieGroupCostFunctor;
struct TestPointCostFunctor;
// fields
static constexpr int kMatrixDim = LieGroupF64::kMatrixDim;
static constexpr int kNumParameters = LieGroupF64::kNumParameters;
static constexpr int kDoF = LieGroupF64::kDoF;
StdVector<LieGroupF64> group_vec;
StdVector<PointF64> point_vec;
// construction
LieGroupCeresTests(
StdVector<LieGroupF64> const& group_vec,
StdVector<PointF64> const& point_vec
);
// methods
bool testAll();
bool testAveraging(
const size_t num_vertices,
double const sigma_init,
double const sigma_observation
);
bool test(
LieGroupF64 const& t_w_targ,
LieGroupF64 const& t_w_init,
PointF64 const& point_a_init,
PointF64 const& point_b
);
bool testManifold(
LieGroupF64 const& x,
LieGroupF64 const& y
);
bool xPlusZeroIsXAt(LieGroupF64 const& x);
bool xMinusXIsZeroAt(LieGroupF64 const& x);
bool minusPlusIsIdentityAt(
LieGroupF64 const& x,
Tangentd const& delta
);
bool plusMinusIsIdentityAt(
LieGroupF64 const& x,
LieGroupF64 const& y
);
bool minusPlusJacobianIsIdentityAt(LieGroupF64 const& x);
};