Go to the documentation of this file.
17 template <
class TScalar,
int kDim>
34 using Tangent = Eigen::Vector<Scalar, kDof>;
35 using Params = Eigen::Vector<Scalar, kNumParams>;
36 using Point = Eigen::Vector<Scalar, kPointDim>;
38 template <
class TCompatibleScalar>
40 ScalarBinaryOpTraits<Scalar, TCompatibleScalar>::ReturnType;
42 template <
class TCompatibleScalar>
44 Eigen::Vector<ScalarReturn<TCompatibleScalar>,
kNumParams>;
46 template <
class TCompatibleScalar>
49 template <
class TCompatibleScalar>
58 -> sophus::Expected<Success> {
59 return sophus::Expected<Success>{};
63 -> Eigen::Matrix<Scalar, kDof, kDof> {
64 return Eigen::Matrix<Scalar, kDof, kDof>::Identity();
76 -> Eigen::Matrix<Scalar, kAmbientDim, kAmbientDim> {
77 Eigen::Matrix<Scalar, kAmbientDim, kAmbientDim> mat;
82 static auto vee(Eigen::Matrix<Scalar, kAmbientDim, kAmbientDim>
const& mat)
83 -> Eigen::Matrix<Scalar, kDof, 1> {
84 return Eigen::Matrix<Scalar, kDof, 1>();
91 template <
class TCompatibleScalar>
94 Eigen::Vector<TCompatibleScalar, kNumParams>
const& rhs_params)
100 template <
class TCompatibleScalar>
103 Eigen::Vector<TCompatibleScalar, kPointDim>
const& point)
105 return Scalar(1.0) * point;
109 -> Eigen::Vector<Scalar, kAmbientDim> {
113 template <
class TCompatibleScalar>
118 Scalar(1.0) * dir.params());
124 -> Eigen::Matrix<Scalar, kPointDim, kAmbientDim> {
125 return Eigen::Matrix<Scalar, kPointDim, kAmbientDim>::Identity();
129 -> Eigen::Matrix<Scalar, kAmbientDim, kAmbientDim> {
136 -> Eigen::Matrix<Scalar, kPointDim, kPointDim> {
137 return Eigen::Matrix<Scalar, kPointDim, kPointDim>::Identity();
141 -> Eigen::Matrix<Scalar, kPointDim, kPointDim> {
142 return Eigen::Matrix<Scalar, kPointDim, kPointDim>::Identity();
146 -> Eigen::Matrix<Scalar, kPointDim, kDof> {
147 return Eigen::Matrix<Scalar, kPointDim, kDof>::Zero();
151 -> Eigen::Matrix<Scalar, kPointDim, kDof> {
152 return Eigen::Matrix<Scalar, kPointDim, kDof>::Zero();
157 -> Eigen::Matrix<Scalar, kDof, kDof> {
158 return Eigen::Matrix<Scalar, kDof, kDof>::Zero();
162 -> Eigen::Matrix<Scalar, kNumParams, kDof> {
163 return Eigen::Matrix<Scalar, kNumParams, 0>::Identity();
166 static auto dxExpXAt0() -> Eigen::Matrix<Scalar, kNumParams, kDof> {
167 return Eigen::Matrix<Scalar, kNumParams, 0>::Identity();
171 -> Eigen::Matrix<Scalar, kPointDim, kDof> {
172 return Eigen::Matrix<Scalar, kPointDim, 0>::Identity();
176 -> Eigen::Matrix<Scalar, kNumParams, kDof> {
177 return Eigen::Matrix<Scalar, kNumParams, 0>::Zero();
181 -> Eigen::Matrix<Scalar, kDof, kNumParams> {
182 return Eigen::Matrix<Scalar, kDof, kNumParams>::Identity();
188 return std::vector<Tangent>();
192 return std::vector<Params>();
196 return std::vector<Params>();
202 template <
class TScalar,
int kDim>
208 template <
class TScalar>
211 template <
class TScalar>
static auto vee(Eigen::Matrix< Scalar, kAmbientDim, kAmbientDim > const &mat) -> Eigen::Matrix< Scalar, kDof, 1 >
Definition: identity.h:82
static auto dxExpXTimesPointAt0(Point const &point) -> Eigen::Matrix< Scalar, kPointDim, kDof >
Definition: identity.h:170
static const int kPointDim
Definition: identity.h:31
static auto hat(Tangent const &tangent) -> Eigen::Matrix< Scalar, kAmbientDim, kAmbientDim >
Definition: identity.h:75
static constexpr bool kIisParallelLinePreserving
Definition: identity.h:27
static auto multiplication(Params const &lhs_params, Eigen::Vector< TCompatibleScalar, kNumParams > const &rhs_params) -> ParamsReturn< TCompatibleScalar >
Definition: identity.h:92
static auto toAmbient(Point const &point) -> Eigen::Vector< Scalar, kAmbientDim >
Definition: identity.h:108
Definition: lie_group.h:14
Image MutImage, owning images types.
Definition: num_diff.h:20
static constexpr bool kIsOriginPreserving
Definition: identity.h:22
static auto adj(Params const &) -> Eigen::Matrix< Scalar, kDof, kDof >
Definition: identity.h:62
Eigen::Vector< ScalarReturn< TCompatibleScalar >, kPointDim > PointReturn
Definition: identity.h:47
static constexpr bool kIsAxisDirectionPreserving
Definition: identity.h:23
static auto action(Params const ¶ms, UnitVector< TCompatibleScalar, kPointDim > const &dir) -> UnitVectorReturn< TCompatibleScalar >
Definition: identity.h:114
static const int kAmbientDim
Definition: identity.h:32
static auto action(Params const ¶ms, Eigen::Vector< TCompatibleScalar, kPointDim > const &point) -> PointReturn< TCompatibleScalar >
Definition: identity.h:101
static constexpr bool kIsDirectionVectorPreserving
Definition: identity.h:24
static const int kDof
Definition: identity.h:29
static auto adjOfTranslation(Params const ¶ms, Point const &point) -> Eigen::Matrix< Scalar, kPointDim, kDof >
Definition: identity.h:145
Eigen::Vector< ScalarReturn< TCompatibleScalar >, kNumParams > ParamsReturn
Definition: identity.h:44
static auto compactMatrix(Params const ¶ms) -> Eigen::Matrix< Scalar, kPointDim, kAmbientDim >
Definition: identity.h:123
static auto dxThisMulExpXAt0(Params const &unit_complex) -> Eigen::Matrix< Scalar, kNumParams, kDof >
Definition: identity.h:175
Eigen::Vector< Scalar, kNumParams > Params
Definition: identity.h:35
TScalar Scalar
Definition: identity.h:20
static constexpr bool kIisSizePreserving
Definition: identity.h:26
static const int kNumParams
Definition: identity.h:30
static constexpr bool kIsShapePreserving
Definition: identity.h:25
typename Eigen::ScalarBinaryOpTraits< Scalar, TCompatibleScalar >::ReturnType ScalarReturn
Definition: identity.h:40
static auto matVInverse(Params const &, Tangent const &) -> Eigen::Matrix< Scalar, kPointDim, kPointDim >
Definition: identity.h:140
Eigen::Vector< Scalar, kPointDim > Point
Definition: identity.h:36
Definition: identity.h:21
static auto adOfTranslation(Point const &point) -> Eigen::Matrix< Scalar, kPointDim, kDof >
Definition: identity.h:150
static auto invalidParamsExamples() -> std::vector< Params >
Definition: identity.h:195
static auto dxLogThisInvTimesXAtThis(Params const &unit_quat) -> Eigen::Matrix< Scalar, kDof, kNumParams >
Definition: identity.h:180
static auto hasShortestPathAmbiguity(Params const &) -> bool
Definition: identity.h:67
static auto matV(Params const &, Tangent const &) -> Eigen::Matrix< Scalar, kPointDim, kPointDim >
Definition: identity.h:135
static auto fromParams(Eigen::Matrix< TScalar, kN, 1 > const &v) -> UnitVector
Definition: unit_vector.h:166
static auto dxExpX(Tangent const &) -> Eigen::Matrix< Scalar, kNumParams, kDof >
Definition: identity.h:161
static auto dxExpXAt0() -> Eigen::Matrix< Scalar, kNumParams, kDof >
Definition: identity.h:166
static auto inverse(Params const ¶ms) -> Params
Definition: identity.h:89
static auto paramsExamples() -> std::vector< Params >
Definition: identity.h:191
static auto exp(Tangent const &tangent) -> Params
Definition: identity.h:71
static auto log(Params const ¶ms) -> Tangent
Definition: identity.h:73
Definition: identity.h:207
static auto tangentExamples() -> std::vector< Tangent >
Definition: identity.h:187
static auto areParamsValid(Params const &scale_factors) -> sophus::Expected< Success >
Definition: identity.h:57
static auto matrix(Params const ¶ms) -> Eigen::Matrix< Scalar, kAmbientDim, kAmbientDim >
Definition: identity.h:128
Definition: identity.h:18
static auto identityParams() -> Params
Definition: identity.h:55
static auto ad(Tangent const &) -> Eigen::Matrix< Scalar, kDof, kDof >
Definition: identity.h:156
Eigen::Vector< Scalar, kDof > Tangent
Definition: identity.h:34