Ejemplo n.º 1
0
/* ************************************************************************* */
double dot(const Errors& a, const Errors& b) {
#ifndef NDEBUG
  size_t m = a.size();
  if (b.size()!=m)
    throw(std::invalid_argument("Errors::dot: incompatible sizes"));
#endif
  double result = 0.0;
  Errors::const_iterator it = b.begin();
  BOOST_FOREACH(const Vector& ai, a)
    result += gtsam::dot(ai, *(it++));
  return result;
}
Ejemplo n.º 2
0
/* ************************************************************************* */
Errors Errors::operator-(const Errors& b) const {
#ifndef NDEBUG
  size_t m = size();
  if (b.size()!=m)
    throw(std::invalid_argument("Errors::operator-: incompatible sizes"));
#endif
  Errors result;
  Errors::const_iterator it = b.begin();
  BOOST_FOREACH(const Vector& ai, *this)
    result.push_back(ai - *(it++));
  return result;
}
Ejemplo n.º 3
0
 /* ************************************************************************* */
 void GaussianFactorGraph::multiplyInPlace(const VectorValues& x, Errors& e) const {
   multiplyInPlace(x, e.begin());
 }
Ejemplo n.º 4
0
bool Errors::equals(const Errors& expected, double tol) const {
  if( size() != expected.size() ) return false;
  return equal(begin(),end(),expected.begin(),equalsVector(tol));
}
Ejemplo n.º 5
0
void axpy<Errors,Errors>(double alpha, const Errors& x, Errors& y) {
  Errors::const_iterator it = x.begin();
  BOOST_FOREACH(Vector& yi, y)
    axpy(alpha,*(it++),yi);
}