24 using namespace gtsam;
27 #define TEST(TITLE,STATEMENT) \ 29 for(int i = 0; i < n; i++) \ 41 return Rot2::fromCosSin(r1.
c() * r2.
c() + r1.
s() * r2.
s(), -r1.
s() * r2.
c() + r1.
c() * r2.
s());
46 boost::optional<Matrix&> H1, boost::optional<Matrix&> H2)
55 boost::optional<Matrix&> H1, boost::optional<Matrix&> H2)
66 boost::optional<Matrix&> H1, boost::optional<Matrix&> H2)
79 boost::optional<Matrix1&> H1, boost::optional<Matrix1&> H2)
83 if (H1) *H1 = -Matrix1::Identity();
84 if (H2) *H2 = Matrix1::Identity();
93 cout <<
"NOTE: Times are reported for " << n <<
" calls" << endl;
100 TEST(Rot2_Logmap, Rot2::Logmap(
R2));
Rot2 Rot2betweenOptimized(const Rot2 &r1, const Rot2 &r2)
Rot2 R(Rot2::fromAngle(0.1))
Pose2_ Expmap(const Vector3_ &xi)
#define TEST(TITLE, STATEMENT)
Vector Rot2BetweenFactorEvaluateErrorOptimizedBetweenFixed(const Rot2 &measured, const Rot2 &p1, const Rot2 &p2, boost::optional< Matrix1 & > H1, boost::optional< Matrix1 & > H2)
Eigen::Matrix< double, 1, 1 > Matrix1
Vector Rot2BetweenFactorEvaluateErrorDefault(const Rot2 &measured, const Rot2 &p1, const Rot2 &p2, boost::optional< Matrix & > H1, boost::optional< Matrix & > H2)
Class retract(const TangentVector &v) const
retract as required by manifold concept: applies v at *this
Vector Rot2BetweenFactorEvaluateErrorOptimizedBetween(const Rot2 &measured, const Rot2 &p1, const Rot2 &p2, boost::optional< Matrix & > H1, boost::optional< Matrix & > H2)
Class between(const Class &g) const
The matrix class, also used for vectors and row-vectors.
Q R2(Eigen::AngleAxisd(2, Vector3(0, 1, 0)))
Vector Rot2BetweenFactorEvaluateErrorOptimizedBetweenNoeye(const Rot2 &measured, const Rot2 &p1, const Rot2 &p2, boost::optional< Matrix & > H1, boost::optional< Matrix & > H2)
Rot2 Rot2betweenDefault(const Rot2 &r1, const Rot2 &r2)
TangentVector localCoordinates(const Class &g) const
localCoordinates as required by manifold concept: finds tangent vector between *this and g ...