added missing square matrix specialization - without it, square to square cases would be ambiguous.
parent
00765d9bf3
commit
fed2c8b684
|
@ -303,6 +303,15 @@ struct Reshape {
|
|||
}
|
||||
};
|
||||
|
||||
/// Reshape specialization that does nothing as shape stays the same (needed to not be ambiguous for square input equals square output)
|
||||
template <int M, int InOptions>
|
||||
struct Reshape<M, M, M, M, InOptions> {
|
||||
typedef const Eigen::Matrix<double, M, M, InOptions> & ReshapedType;
|
||||
static inline ReshapedType reshape(const Eigen::Matrix<double, M, M, InOptions> & in) {
|
||||
return in;
|
||||
}
|
||||
};
|
||||
|
||||
/// Reshape specialization that does nothing as shape stays the same
|
||||
template <int M, int N, int InOptions>
|
||||
struct Reshape<M, N, M, N, InOptions> {
|
||||
|
|
|
@ -96,6 +96,15 @@ TEST(Manifold, DefaultChart) {
|
|||
EXPECT(chart.retract(m, Vector2(1, 2)) == 2 * m);
|
||||
}
|
||||
|
||||
{
|
||||
typedef Eigen::Matrix<double, 1, 1> ManifoldPoint;
|
||||
ManifoldPoint m;
|
||||
DefaultChart<ManifoldPoint> chart;
|
||||
m << 1;
|
||||
EXPECT(assert_equal(Vector(ManifoldPoint::Ones()), Vector(chart.local(ManifoldPoint::Zero(), m))));
|
||||
EXPECT(chart.retract(m, ManifoldPoint::Ones()) == 2 * m);
|
||||
}
|
||||
|
||||
DefaultChart<double> chart3;
|
||||
Vector v1(1);
|
||||
v1 << 1;
|
||||
|
|
Loading…
Reference in New Issue