createUnknowns

release/4.3a0
dellaert 2014-10-15 10:38:54 +02:00
parent 00d0a7b045
commit 79ff0c54f9
2 changed files with 22 additions and 3 deletions

View File

@ -181,5 +181,15 @@ Expression<T> operator*(const Expression<T>& expression1,
expression1, expression2);
}
/// Construct an array of leaves
template<typename T>
std::vector<Expression<T> > createUnknowns(size_t n, char c, size_t start = 0) {
std::vector<Expression<T> > unknowns;
unknowns.reserve(n);
for (size_t i = start; i < start + n; i++)
unknowns.push_back(Expression<T>(c, i));
return unknowns;
}
}

View File

@ -34,7 +34,6 @@ using namespace std;
using namespace gtsam;
/* ************************************************************************* */
template<class CAL>
Point2 uncalibrate(const CAL& K, const Point2& p,
boost::optional<Matrix25&> Dcal, boost::optional<Matrix2&> Dp) {
@ -57,7 +56,7 @@ TEST(Expression, constant) {
/* ************************************************************************* */
// Leaf
TEST(Expression, leaf) {
TEST(Expression, Leaf) {
Expression<Rot3> R(100);
Values values;
values.insert(100, someR);
@ -74,8 +73,18 @@ TEST(Expression, leaf) {
}
/* ************************************************************************* */
// Many Leaves
TEST(Expression, Leaves) {
Values values;
Point3 somePoint(1, 2, 3);
values.insert(Symbol('p', 10), somePoint);
std::vector<Expression<Point3> > points = createUnknowns<Point3>(10, 'p', 1);
EXPECT(assert_equal(somePoint,points.back().value(values)));
}
//TEST(Expression, nullaryMethod) {
/* ************************************************************************* */
//TEST(Expression, NullaryMethod) {
// Expression<Point3> p(67);
// Expression<LieScalar> norm(p, &Point3::norm);
// Values values;