diff --git a/cpp/NonlinearFactor.h b/cpp/NonlinearFactor.h index 03d35765e..21e188fdc 100644 --- a/cpp/NonlinearFactor.h +++ b/cpp/NonlinearFactor.h @@ -13,6 +13,7 @@ #pragma once #include +#include #include #include @@ -91,6 +92,10 @@ namespace gtsam { /** calculate the error of the factor */ double error(const Config& c) const { + if (sigma_==0.0) { + Vector e = error_vector(c); + return (inner_prod(e,e)>0) ? std::numeric_limits::infinity() : 0.0; + } Vector e = error_vector(c) / sigma_; return 0.5 * inner_prod(e,e); };