diff --git a/gtsam/base/LieScalar.h b/gtsam/base/LieScalar.h index c0861d180..1191eae81 100644 --- a/gtsam/base/LieScalar.h +++ b/gtsam/base/LieScalar.h @@ -58,7 +58,7 @@ namespace gtsam { LieScalar retract(const Vector& v) const { return LieScalar(value() + v(0)); } /** @return the local coordinates of another object */ - Vector localCoordinates(const LieScalar& t2) const { return Vector_(1,(t2.value() - value())); } + Vector localCoordinates(const LieScalar& t2) const { return (Vec(1) << (t2.value() - value())); } // Group requirements @@ -96,7 +96,7 @@ namespace gtsam { static LieScalar Expmap(const Vector& v) { return LieScalar(v(0)); } /** Logmap around identity - just returns with default cast back */ - static Vector Logmap(const LieScalar& p) { return Vector_(1,p.value()); } + static Vector Logmap(const LieScalar& p) { return (Vec(1) << p.value()); } /// Left-trivialized derivative of the exponential map static Matrix dexpL(const Vector& v) { diff --git a/gtsam/base/LieVector.h b/gtsam/base/LieVector.h index c978500dd..efc1c9fe7 100644 --- a/gtsam/base/LieVector.h +++ b/gtsam/base/LieVector.h @@ -39,7 +39,7 @@ struct LieVector : public Vector, public DerivedValue { LieVector(const Eigen::Matrix& v) : Vector(v) {} /** wrap a double */ - LieVector(double d) : Vector(Vector_(1, d)) {} + LieVector(double d) : Vector((Vec(1) << d)) {} /** constructor with size and initial data, row order ! */ GTSAM_EXPORT LieVector(size_t m, const double* const data); diff --git a/gtsam/base/tests/testLieVector.cpp b/gtsam/base/tests/testLieVector.cpp index 74be6628f..d5a582c0f 100644 --- a/gtsam/base/tests/testLieVector.cpp +++ b/gtsam/base/tests/testLieVector.cpp @@ -27,7 +27,7 @@ GTSAM_CONCEPT_LIE_INST(LieVector) /* ************************************************************************* */ TEST( testLieVector, construction ) { - Vector v = Vector_(3, 1.0, 2.0, 3.0); + Vector v = (Vec(3) << 1.0, 2.0, 3.0); LieVector lie1(v), lie2(v); EXPECT(lie1.dim() == 3); @@ -37,7 +37,7 @@ TEST( testLieVector, construction ) { /* ************************************************************************* */ TEST( testLieVector, other_constructors ) { - Vector init = Vector_(2, 10.0, 20.0); + Vector init = (Vec(2) << 10.0, 20.0); LieVector exp(init); LieVector a(2,10.0,20.0); double data[] = {10,20}; diff --git a/gtsam/base/tests/testMatrix.cpp b/gtsam/base/tests/testMatrix.cpp index fd156d978..0433eb863 100644 --- a/gtsam/base/tests/testMatrix.cpp +++ b/gtsam/base/tests/testMatrix.cpp @@ -209,15 +209,15 @@ TEST( matrix, column ) 0., 0., 0.3, 1., 0., 0., 0., -1., 0., 0.2, 0., 1., 0., 0., 0., -1., -0.1); Vector a1 = column(A, 0); - Vector exp1 = Vector_(4, -1., 0., 1., 0.); + Vector exp1 = (Vec(4) << -1., 0., 1., 0.); EXPECT(assert_equal(a1, exp1)); Vector a2 = column(A, 3); - Vector exp2 = Vector_(4, 0., 1., 0., 0.); + Vector exp2 = (Vec(4) << 0., 1., 0., 0.); EXPECT(assert_equal(a2, exp2)); Vector a3 = column(A, 6); - Vector exp3 = Vector_(4, -0.2, 0.3, 0.2, -0.1); + Vector exp3 = (Vec(4) << -0.2, 0.3, 0.2, -0.1); EXPECT(assert_equal(a3, exp3)); } @@ -270,15 +270,15 @@ TEST( matrix, row ) 0., 0., 0.3, 1., 0., 0., 0., -1., 0., 0.2, 0., 1., 0., 0., 0., -1., -0.1); Vector a1 = row(A, 0); - Vector exp1 = Vector_(7, -1., 0., 1., 0., 0., 0., -0.2); + Vector exp1 = (Vec(7) << -1., 0., 1., 0., 0., 0., -0.2); EXPECT(assert_equal(a1, exp1)); Vector a2 = row(A, 2); - Vector exp2 = Vector_(7, 1., 0., 0., 0., -1., 0., 0.2); + Vector exp2 = (Vec(7) << 1., 0., 0., 0., -1., 0., 0.2); EXPECT(assert_equal(a2, exp2)); Vector a3 = row(A, 3); - Vector exp3 = Vector_(7, 0., 1., 0., 0., 0., -1., -0.1); + Vector exp3 = (Vec(7) << 0., 1., 0., 0., 0., -1., -0.1); EXPECT(assert_equal(a3, exp3)); } @@ -374,7 +374,7 @@ TEST( matrix, scale_columns ) A(2, 2) = 1.; A(2, 3) = 1.; - Vector v = Vector_(4, 2., 3., 4., 5.); + Vector v = (Vec(4) << 2., 3., 4., 5.); Matrix actual = vector_scale(A, v); @@ -412,7 +412,7 @@ TEST( matrix, scale_rows ) A(2, 2) = 1.; A(2, 3) = 1.; - Vector v = Vector_(3, 2., 3., 4.); + Vector v = (Vec(3) << 2., 3., 4.); Matrix actual = vector_scale(v, A); @@ -450,7 +450,7 @@ TEST( matrix, scale_rows_mask ) A(2, 2) = 1.; A(2, 3) = 1.; - Vector v = Vector_(3, 2., std::numeric_limits::infinity(), 4.); + Vector v = (Vec(3) << 2., std::numeric_limits::infinity(), 4.); Matrix actual = vector_scale(v, A, true); @@ -614,9 +614,9 @@ TEST( matrix, matrix_vector_multiplication ) Vector result(2); Matrix A = Matrix_(2, 3, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0); - Vector v = Vector_(3, 1., 2., 3.); - Vector Av = Vector_(2, 14., 32.); - Vector AtAv = Vector_(3, 142., 188., 234.); + Vector v = (Vec(3) << 1., 2., 3.); + Vector Av = (Vec(2) << 14., 32.); + Vector AtAv = (Vec(3) << 142., 188., 234.); EQUALITY(A*v,Av); EQUALITY(A^Av,AtAv); @@ -783,19 +783,19 @@ TEST( matrix, inverse2 ) TEST( matrix, backsubtitution ) { // TEST ONE 2x2 matrix U1*x=b1 - Vector expected1 = Vector_(2, 3.6250, -0.75); + Vector expected1 = (Vec(2) << 3.6250, -0.75); Matrix U22 = Matrix_(2, 2, 2., 3., 0., 4.); Vector b1 = U22 * expected1; EXPECT( assert_equal(expected1 , backSubstituteUpper(U22, b1), 0.000001)); // TEST TWO 3x3 matrix U2*x=b2 - Vector expected2 = Vector_(3, 5.5, -8.5, 5.); + Vector expected2 = (Vec(3) << 5.5, -8.5, 5.); Matrix U33 = Matrix_(3, 3, 3., 5., 6., 0., 2., 3., 0., 0., 1.); Vector b2 = U33 * expected2; EXPECT( assert_equal(expected2 , backSubstituteUpper(U33, b2), 0.000001)); // TEST THREE Lower triangular 3x3 matrix L3*x=b3 - Vector expected3 = Vector_(3, 1., 1., 1.); + Vector expected3 = (Vec(3) << 1., 1., 1.); Matrix L3 = trans(U33); Vector b3 = L3 * expected3; EXPECT( assert_equal(expected3 , backSubstituteLower(L3, b3), 0.000001)); @@ -956,14 +956,14 @@ TEST( matrix, weighted_elimination ) // create a matrix to eliminate Matrix A = Matrix_(4, 6, -1., 0., 1., 0., 0., 0., 0., -1., 0., 1., 0., 0., 1., 0., 0., 0., -1., 0., 0., 1., 0., 0., 0., -1.); - Vector b = Vector_(4, -0.2, 0.3, 0.2, -0.1); - Vector sigmas = Vector_(4, 0.2, 0.2, 0.1, 0.1); + Vector b = (Vec(4) << -0.2, 0.3, 0.2, -0.1); + Vector sigmas = (Vec(4) << 0.2, 0.2, 0.1, 0.1); // expected values Matrix expectedR = Matrix_(4, 6, 1., 0., -0.2, 0., -0.8, 0., 0., 1., 0., -0.2, 0., -0.8, 0., 0., 1., 0., -1., 0., 0., 0., 0., 1., 0., -1.); - Vector d = Vector_(4, 0.2, -0.14, 0.0, 0.2); - Vector newSigmas = Vector_(4, 0.0894427, 0.0894427, 0.223607, 0.223607); + Vector d = (Vec(4) << 0.2, -0.14, 0.0, 0.2); + Vector newSigmas = (Vec(4) << 0.0894427, 0.0894427, 0.223607, 0.223607); Vector r; double di, sigma; @@ -1046,7 +1046,7 @@ TEST( matrix, LLt ) TEST( matrix, multiplyAdd ) { Matrix A = Matrix_(3, 4, 4., 0., 0., 1., 0., 4., 0., 2., 0., 0., 1., 3.); - Vector x = Vector_(4, 1., 2., 3., 4.), e = Vector_(3, 5., 6., 7.), + Vector x = (Vec(4) << 1., 2., 3., 4.), e = (Vec(3) << 5., 6., 7.), expected = e + A * x; multiplyAdd(1, A, x, e); @@ -1057,7 +1057,7 @@ TEST( matrix, multiplyAdd ) TEST( matrix, transposeMultiplyAdd ) { Matrix A = Matrix_(3, 4, 4., 0., 0., 1., 0., 4., 0., 2., 0., 0., 1., 3.); - Vector x = Vector_(4, 1., 2., 3., 4.), e = Vector_(3, 5., 6., 7.), + Vector x = (Vec(4) << 1., 2., 3., 4.), e = (Vec(3) << 5., 6., 7.), expected = x + trans(A) * e; transposeMultiplyAdd(1, A, e, x); @@ -1091,7 +1091,7 @@ TEST( matrix, linear_dependent3 ) /* ************************************************************************* */ TEST( matrix, svd1 ) { - Vector v = Vector_(3, 2., 1., 0.); + Vector v = (Vec(3) << 2., 1., 0.); Matrix U1 = eye(4, 3), S1 = diag(v), V1 = eye(3, 3), A = (U1 * S1) * Matrix(trans(V1)); Matrix U, V; @@ -1114,7 +1114,7 @@ TEST( matrix, svd2 ) Vector s; Matrix expectedU = Matrix_(3, 2, 0.,-1.,0.,0.,1.,0.); - Vector expected_s = Vector_(2, 3.,2.); + Vector expected_s = (Vec(2) << 3.,2.); Matrix expectedV = Matrix_(2, 2, 1.,0.,0.,1.); svd(sampleA, U, s, V); @@ -1131,7 +1131,7 @@ TEST( matrix, svd3 ) Vector s; Matrix expectedU = Matrix_(2, 2, -1.,0.,0.,-1.); - Vector expected_s = Vector_(2, 3.0,2.0); + Vector expected_s = (Vec(2) << 3.0, 2.0); Matrix expectedV = Matrix_(3, 2, 0.,1.,0.,0.,-1.,0.); svd(sampleAt, U, s, V); @@ -1161,7 +1161,7 @@ TEST( matrix, svd4 ) 0.6659, -0.7370, 0.0970, -0.0689); - Vector expected_s = Vector_(2, 1.6455, 0.1910); + Vector expected_s = (Vec(2) << 1.6455, 0.1910); Matrix expectedV = Matrix_(2,2, 0.7403, -0.6723, @@ -1193,7 +1193,7 @@ TEST( matrix, DLT ) double error; Vector actual; boost::tie(rank,error,actual) = DLT(A); - Vector expected = Vector_(9, -0.0, 0.2357, 0.4714, -0.2357, 0.0, - 0.4714,-0.4714, 0.4714, 0.0); + Vector expected = (Vec(9) << -0.0, 0.2357, 0.4714, -0.2357, 0.0, - 0.4714,-0.4714, 0.4714, 0.0); EXPECT_LONGS_EQUAL(8,rank); EXPECT_DOUBLES_EQUAL(0,error,1e-8); EXPECT(assert_equal(expected, actual, 1e-4)); diff --git a/gtsam/base/tests/testSerializationBase.cpp b/gtsam/base/tests/testSerializationBase.cpp index 30b7cd2f3..d578e56dc 100644 --- a/gtsam/base/tests/testSerializationBase.cpp +++ b/gtsam/base/tests/testSerializationBase.cpp @@ -30,9 +30,9 @@ using namespace std; using namespace gtsam; using namespace gtsam::serializationTestHelpers; -Vector v1 = Vector_(2, 1.0, 2.0); -Vector v2 = Vector_(2, 3.0, 4.0); -Vector v3 = Vector_(2, 5.0, 6.0); +Vector v1 = (Vec(2) << 1.0, 2.0); +Vector v2 = (Vec(2) << 3.0, 4.0); +Vector v3 = (Vec(2) << 5.0, 6.0); /* ************************************************************************* */ TEST (Serialization, FastList) { @@ -84,19 +84,19 @@ TEST (Serialization, FastVector) { /* ************************************************************************* */ TEST (Serialization, matrix_vector) { - EXPECT(equality(Vector_(4, 1.0, 2.0, 3.0, 4.0))); + EXPECT(equality((Vec(4) << 1.0, 2.0, 3.0, 4.0))); EXPECT(equality(Vector2(1.0, 2.0))); EXPECT(equality(Vector3(1.0, 2.0, 3.0))); EXPECT(equality((Vector6() << 1.0, 2.0, 3.0, 4.0, 5.0, 6.0).finished())); EXPECT(equality(Matrix_(2, 2, 1.0, 2.0, 3.0, 4.0))); - EXPECT(equalityXML(Vector_(4, 1.0, 2.0, 3.0, 4.0))); + EXPECT(equalityXML((Vec(4) << 1.0, 2.0, 3.0, 4.0))); EXPECT(equalityXML(Vector2(1.0, 2.0))); EXPECT(equalityXML(Vector3(1.0, 2.0, 3.0))); EXPECT(equalityXML((Vector6() << 1.0, 2.0, 3.0, 4.0, 5.0, 6.0).finished())); EXPECT(equalityXML(Matrix_(2, 2, 1.0, 2.0, 3.0, 4.0))); - EXPECT(equalityBinary(Vector_(4, 1.0, 2.0, 3.0, 4.0))); + EXPECT(equalityBinary((Vec(4) << 1.0, 2.0, 3.0, 4.0))); EXPECT(equalityBinary(Vector2(1.0, 2.0))); EXPECT(equalityBinary(Vector3(1.0, 2.0, 3.0))); EXPECT(equalityBinary((Vector6() << 1.0, 2.0, 3.0, 4.0, 5.0, 6.0).finished())); diff --git a/gtsam/base/tests/testVector.cpp b/gtsam/base/tests/testVector.cpp index 232d3bac7..047826087 100644 --- a/gtsam/base/tests/testVector.cpp +++ b/gtsam/base/tests/testVector.cpp @@ -26,9 +26,9 @@ using namespace gtsam; /* ************************************************************************* */ TEST( TestVector, Vector_variants ) { - Vector a = Vector_(2,10.0,20.0); + Vector a = (Vec(2) << 10.0,20.0); double data[] = {10,20}; - Vector b = Vector_(2,data); + Vector b = Vector_(2, data); EXPECT(assert_equal(a, b)); } @@ -153,7 +153,7 @@ TEST( TestVector, subInsert ) size_t i = 2; subInsert(big, small, i); - Vector expected = Vector_(6, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0); + Vector expected = (Vec(6) << 0.0, 0.0, 1.0, 1.0, 1.0, 0.0); EXPECT(assert_equal(expected, big)); } @@ -251,13 +251,13 @@ TEST( TestVector, weightedPseudoinverse_constraint ) /* ************************************************************************* */ TEST( TestVector, weightedPseudoinverse_nan ) { - Vector a = Vector_(4, 1., 0., 0., 0.); - Vector sigmas = Vector_(4, 0.1, 0.1, 0., 0.); + Vector a = (Vec(4) << 1., 0., 0., 0.); + Vector sigmas = (Vec(4) << 0.1, 0.1, 0., 0.); Vector weights = reciprocal(emul(sigmas,sigmas)); Vector pseudo; double precision; boost::tie(pseudo, precision) = weightedPseudoinverse(a, weights); - Vector expected = Vector_(4, 1., 0., 0.,0.); + Vector expected = (Vec(4) << 1., 0., 0.,0.); EXPECT(assert_equal(expected, pseudo)); DOUBLES_EQUAL(100, precision, 1e-5); } @@ -265,31 +265,31 @@ TEST( TestVector, weightedPseudoinverse_nan ) /* ************************************************************************* */ TEST( TestVector, ediv ) { - Vector a = Vector_(3,10.,20.,30.); - Vector b = Vector_(3,2.0,5.0,6.0); + Vector a = (Vec(3) << 10., 20., 30.); + Vector b = (Vec(3) << 2.0, 5.0, 6.0); Vector actual(ediv(a,b)); - Vector c = Vector_(3,5.0,4.0,5.0); + Vector c = (Vec(3) << 5.0, 4.0, 5.0); EXPECT(assert_equal(c,actual)); } /* ************************************************************************* */ TEST( TestVector, dot ) { - Vector a = Vector_(3,10.,20.,30.); - Vector b = Vector_(3,2.0,5.0,6.0); + Vector a = (Vec(3) << 10., 20., 30.); + Vector b = (Vec(3) << 2.0, 5.0, 6.0); DOUBLES_EQUAL(20+100+180,dot(a,b),1e-9); } /* ************************************************************************* */ TEST( TestVector, axpy ) { - Vector x = Vector_(3,10.,20.,30.); - Vector y0 = Vector_(3,2.0,5.0,6.0); + Vector x = (Vec(3) << 10., 20., 30.); + Vector y0 = (Vec(3) << 2.0, 5.0, 6.0); Vector y1 = y0, y2 = y0; axpy(0.1,x,y1); axpy(0.1,x,y2.head(3)); - Vector expected = Vector_(3,3.0,7.0,9.0); + Vector expected = (Vec(3) << 3.0, 7.0, 9.0); EXPECT(assert_equal(expected,y1)); EXPECT(assert_equal(expected,Vector(y2))); } @@ -297,8 +297,8 @@ TEST( TestVector, axpy ) /* ************************************************************************* */ TEST( TestVector, equals ) { - Vector v1 = Vector_(1, 0.0/std::numeric_limits::quiet_NaN()); //testing nan - Vector v2 = Vector_(1, 1.0); + Vector v1 = (Vec(1) << 0.0/std::numeric_limits::quiet_NaN()); //testing nan + Vector v2 = (Vec(1) << 1.0); double tol = 1.; EXPECT(!equal_with_abs_tol(v1, v2, tol)); } @@ -306,7 +306,7 @@ TEST( TestVector, equals ) /* ************************************************************************* */ TEST( TestVector, greater_than ) { - Vector v1 = Vector_(3, 1.0, 2.0, 3.0), + Vector v1 = (Vec(3) << 1.0, 2.0, 3.0), v2 = zero(3); EXPECT(greaterThanOrEqual(v1, v1)); // test basic greater than EXPECT(greaterThanOrEqual(v1, v2)); // test equals @@ -315,31 +315,31 @@ TEST( TestVector, greater_than ) /* ************************************************************************* */ TEST( TestVector, reciprocal ) { - Vector v = Vector_(3, 1.0, 2.0, 4.0); - EXPECT(assert_equal(Vector_(3, 1.0, 0.5, 0.25),reciprocal(v))); + Vector v = (Vec(3) << 1.0, 2.0, 4.0); + EXPECT(assert_equal((Vec(3) << 1.0, 0.5, 0.25),reciprocal(v))); } /* ************************************************************************* */ TEST( TestVector, linear_dependent ) { - Vector v1 = Vector_(3, 1.0, 2.0, 3.0); - Vector v2 = Vector_(3, -2.0, -4.0, -6.0); + Vector v1 = (Vec(3) << 1.0, 2.0, 3.0); + Vector v2 = (Vec(3) << -2.0, -4.0, -6.0); EXPECT(linear_dependent(v1, v2)); } /* ************************************************************************* */ TEST( TestVector, linear_dependent2 ) { - Vector v1 = Vector_(3, 0.0, 2.0, 0.0); - Vector v2 = Vector_(3, 0.0, -4.0, 0.0); + Vector v1 = (Vec(3) << 0.0, 2.0, 0.0); + Vector v2 = (Vec(3) << 0.0, -4.0, 0.0); EXPECT(linear_dependent(v1, v2)); } /* ************************************************************************* */ TEST( TestVector, linear_dependent3 ) { - Vector v1 = Vector_(3, 0.0, 2.0, 0.0); - Vector v2 = Vector_(3, 0.1, -4.1, 0.0); + Vector v1 = (Vec(3) << 0.0, 2.0, 0.0); + Vector v2 = (Vec(3) << 0.1, -4.1, 0.0); EXPECT(!linear_dependent(v1, v2)); }