Go to the documentation of this file.
50 template <
typename T>
struct traits;
65 v =
p.localCoordinates(
q);
71 template<
class Class,
int N>
124 check_manifold_invariants(
const T&
a,
const T&
b,
double tol=1
e-9) {
137 typedef typename traits<T>::structure_category structure_category_tag;
138 static const int dim = traits<T>::dimension;
139 typedef typename traits<T>::ManifoldType ManifoldType;
140 typedef typename traits<T>::TangentVector TangentVector;
145 "This type's structure_category trait does not assert it as a manifold (or derived)");
146 static_assert(TangentVector::SizeAtCompileTime == dim);
149 v = traits<T>::Local(
p,
q);
150 q = traits<T>::Retract(
p,
v);
165 "FixedDimension instantiated for dynamically-sized type.");
177 #define GTSAM_CONCEPT_MANIFOLD_INST(T) template class gtsam::IsManifold<T>;
178 #define GTSAM_CONCEPT_MANIFOLD_TYPE(T) using _gtsam_IsManifold_##T = gtsam::IsManifold<T>;
Namespace containing all symbols from the Eigen library.
BOOST_CONCEPT_USAGE(HasManifoldPrereqs)
Array< double, 1, 3 > e(1./3., 0.5, 2.)
Concept check for values that can be used in unit tests.
Eigen::Matrix< double, dim, 1 > v
typedef and functions to augment Eigen's MatrixXd
Both ManifoldTraits and Testable.
constexpr static auto dim
static int GetDimension(const Class &)
Requirements on type to pass it to Manifold template below.
static Class Retract(const Class &origin, const TangentVector &v)
Extra manifold traits for fixed-dimension types.
EIGEN_DEVICE_FUNC const Scalar & q
OptionalJacobian< dim, dim > Hv
constexpr static auto dimension
#define BOOST_CONCEPT_USAGE(concept)
Special class for optional Jacobian arguments.
A small structure to hold a non zero as a triplet (i,j,value).
manifold_tag structure_category
GTSAM_CONCEPT_ASSERT(HasManifoldPrereqs< Class >)
tag to assert a type is a manifold
constexpr static auto dimension
static int GetDimension(const Class &m)
set noclip points set clip one set noclip two set bar set border lt lw set xdata set ydata set zdata set x2data set y2data set boxwidth set dummy y set format x g set format y g set format x2 g set format y2 g set format z g set angles radians set nogrid set key title set key left top Right noreverse box linetype linewidth samplen spacing width set nolabel set noarrow set nologscale set logscale x set set pointsize set encoding default set nopolar set noparametric set set set set surface set nocontour set clabel set mapping cartesian set nohidden3d set cntrparam order set cntrparam linear set cntrparam levels auto set cntrparam points set size set origin
Array< int, Dynamic, 1 > v
GTSAM_CONCEPT_REQUIRES(IsGroup< G >, bool) check_group_invariants(const G &a
Check invariants.
Give fixed size dimension of a type, fails at compile time if dynamic.
Eigen::Matrix< double, dimension, 1 > TangentVector
static TangentVector Local(const Class &origin, const Class &other)
const typedef int value_type
OptionalJacobian< dim, dim > Hp
OptionalJacobian< dim, dim > Hq
gtsam
Author(s):
autogenerated on Sun Dec 22 2024 04:11:57