subtraction

release/4.3a0
Frank Dellaert 2009-12-31 10:27:16 +00:00
parent b4e65e9631
commit bf85f10de7
2 changed files with 19 additions and 2 deletions

View File

@ -6,6 +6,7 @@
* @author Christian Potthast
*/
#include <boost/bind.hpp>
#include <boost/foreach.hpp>
#include "Errors.h"
@ -30,8 +31,21 @@ struct equalsVector : public std::binary_function<const Vector&, const Vector&,
};
bool Errors::equals(const Errors& expected, double tol) const {
if( size() != expected.size() ) return false;
return equal(begin(),end(),expected.begin(),equalsVector(tol));
if( size() != expected.size() ) return false;
return equal(begin(),end(),expected.begin(),equalsVector(tol));
// TODO: use boost::bind(&equal_with_abs_tol,_1, _2,tol)
}
/* ************************************************************************* */
Errors Errors::operator-(const Errors& b) const {
size_t m = size();
if (b.size()!=m)
throw(std::invalid_argument("Errors::operator-: incompatible sizes"));
Errors result;
Errors::const_iterator it = b.begin();
BOOST_FOREACH(const Vector& ai, *this)
result.push_back(ai - *(it++));
return result;
}
/* ************************************************************************* */

View File

@ -26,6 +26,9 @@ namespace gtsam {
/** equals, for unit testing */
bool equals(const Errors& expected, double tol=1e-9) const;
/** subtraction */
Errors operator-(const Errors& b) const;
}; // Errors
/**