From 2ef911b7e9a6e8d00e0094c079cb01ea0892bee5 Mon Sep 17 00:00:00 2001 From: Richard Roberts Date: Tue, 13 Dec 2011 22:49:37 +0000 Subject: [PATCH] (in branch) added VectorValues::setZero() function --- gtsam/linear/VectorValues.cpp | 9 +++++++-- gtsam/linear/VectorValues.h | 5 ++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/gtsam/linear/VectorValues.cpp b/gtsam/linear/VectorValues.cpp index d592ccdfe..6c3ec797e 100644 --- a/gtsam/linear/VectorValues.cpp +++ b/gtsam/linear/VectorValues.cpp @@ -39,7 +39,7 @@ VectorValues& VectorValues::operator=(const VectorValues& rhs) { /* ************************************************************************* */ VectorValues VectorValues::Zero(const VectorValues& x) { VectorValues cloned(SameStructure(x)); - cloned.vector() = Vector::Zero(x.dim()); + cloned.setZero(); return cloned; } @@ -124,10 +124,15 @@ VectorValues VectorValues::SameStructure(const VectorValues& other) { /* ************************************************************************* */ VectorValues VectorValues::Zero(Index nVars, size_t varDim) { VectorValues ret(nVars, varDim); - ret.vector() = Vector::Zero(ret.dim()); + ret.setZero(); return ret; } +/* ************************************************************************* */ +void VectorValues::setZero() { + values_.setZero(); +} + /* ************************************************************************* */ bool VectorValues::hasSameStructure(const VectorValues& other) const { if(this->size() != other.size()) diff --git a/gtsam/linear/VectorValues.h b/gtsam/linear/VectorValues.h index 0bcafd23c..33351ceb7 100644 --- a/gtsam/linear/VectorValues.h +++ b/gtsam/linear/VectorValues.h @@ -238,6 +238,9 @@ namespace gtsam { template void append(const CONTAINER& dimensions); + /** Set all entries to zero, does not modify the size. */ + void setZero(); + /** Reference the entire solution vector (const version). */ const Vector& vector() const { chk(); return values_; } @@ -383,7 +386,7 @@ namespace gtsam { template VectorValues VectorValues::Zero(const CONTAINER& dimensions) { VectorValues ret(dimensions); - ret.vector() = Vector::Zero(ret.dim()); + ret.setZero(); return ret; }