diff --git a/gtsam/base/Vector.cpp b/gtsam/base/Vector.cpp index b3945c6a6..40d819de9 100644 --- a/gtsam/base/Vector.cpp +++ b/gtsam/base/Vector.cpp @@ -33,15 +33,6 @@ using namespace std; namespace gtsam { -/* ************************************************************************* */ -bool zero(const Vector& v) { - bool result = true; - size_t n = v.size(); - for( size_t j = 0 ; j < n ; j++) - result = result && (v(j) == 0.0); - return result; -} - /* ************************************************************************* */ //3 argument call void print(const Vector& v, const string& s, ostream& stream) { diff --git a/gtsam/base/Vector.h b/gtsam/base/Vector.h index 4b15300b2..ec1c4dcd2 100644 --- a/gtsam/base/Vector.h +++ b/gtsam/base/Vector.h @@ -62,11 +62,6 @@ GTSAM_MAKE_VECTOR_DEFS(12); typedef Eigen::VectorBlock SubVector; typedef Eigen::VectorBlock ConstSubVector; -/** - * check if all zero - */ -GTSAM_EXPORT bool zero(const Vector& v); - /** * print without optional string, must specify cout yourself */ @@ -237,22 +232,22 @@ GTSAM_EXPORT Vector concatVectors(size_t nrVectors, ...); #ifdef GTSAM_ALLOW_DEPRECATED_SINCE_V4 inline Vector abs(const Vector& v){return v.cwiseAbs();} +inline Vector basis(size_t n, size_t i) { return delta(n, i, 1.0); } +inline Vector delta(size_t n, size_t i, double value){ return Vector::Unit(n, i) * value;} +inline size_t dim(const Vector& v) { return v.size(); } inline Vector ediv(const Vector &a, const Vector &b) {assert (b.size()==a.size()); return a.cwiseQuotient(b);} inline Vector esqrt(const Vector& v) { return v.cwiseSqrt();} inline Vector emul(const Vector &a, const Vector &b) {assert (b.size()==a.size()); return a.cwiseProduct(b);} inline double max(const Vector &a){return a.maxCoeff();} inline double norm_2(const Vector& v) {return v.norm();} +inline Vector ones(size_t n) { return Vector::Ones(n); } inline Vector reciprocal(const Vector &a) {return a.array().inverse();} inline Vector repeat(size_t n, double value) {return Vector::Constant(n, value);} inline const Vector sub(const Vector &v, size_t i1, size_t i2) {return v.segment(i1,i2-i1);} inline void subInsert(Vector& fullVector, const Vector& subVector, size_t i) {fullVector.segment(i, subVector.size()) = subVector;} inline double sum(const Vector &a){return a.sum();} - -inline Vector zero(size_t n) { return Vector::Zero(n);} -inline Vector ones(size_t n) { return Vector::Ones(n); } -inline size_t dim(const Vector& v) { return v.size(); } -inline Vector delta(size_t n, size_t i, double value){ return Vector::Unit(n, i) * value;} -inline Vector basis(size_t n, size_t i) { return delta(n, i, 1.0); } +inline bool zero(const Vector& v){ return v.isZero(); } +inline Vector zero(size_t n) { return Vector::Zero(n); } #endif } // namespace gtsam diff --git a/gtsam/base/tests/testVector.cpp b/gtsam/base/tests/testVector.cpp index 0fb80d7f0..8a54d5469 100644 --- a/gtsam/base/tests/testVector.cpp +++ b/gtsam/base/tests/testVector.cpp @@ -79,13 +79,6 @@ TEST(Vector, copy ) EXPECT(assert_equal(a, b)); } -/* ************************************************************************* */ -TEST(Vector, zero1 ) -{ - Vector v = Vector::Zero(2); - EXPECT(zero(v)); -} - /* ************************************************************************* */ TEST(Vector, scalar_multiply ) { diff --git a/gtsam/geometry/Rot2.cpp b/gtsam/geometry/Rot2.cpp index 41d56b6e3..9780cb49a 100644 --- a/gtsam/geometry/Rot2.cpp +++ b/gtsam/geometry/Rot2.cpp @@ -63,7 +63,7 @@ Rot2& Rot2::normalize() { Rot2 Rot2::Expmap(const Vector1& v, OptionalJacobian<1, 1> H) { if (H) *H = I_1x1; - if (zero(v)) + if (v.isZero()) return (Rot2()); else return Rot2::fromAngle(v(0));