diff --git a/edo/src/edoSamplerNormalMulti.h b/edo/src/edoSamplerNormalMulti.h index 6099ed95..dc3519eb 100644 --- a/edo/src/edoSamplerNormalMulti.h +++ b/edo/src/edoSamplerNormalMulti.h @@ -29,6 +29,7 @@ Authors: #define _edoSamplerNormalMulti_h #include +#include #include #include @@ -110,6 +111,22 @@ public: return _L; } + template + std::string format(const MT& mat ) + { + std::ostringstream out; + + for( unsigned int i=0; i(Vl,Vl); + eo::log << eo::debug << std::endl << "Covariance matrix:" << format( V ) << std::endl; + #ifndef NDEBUG assert(Vl > 0); @@ -164,6 +183,8 @@ public: } else if( _use == robust ) { factorize_LDLT( V ); } + + eo::log << eo::debug << std::endl << "Decomposed matrix:" << format( _L ) << std::endl; } @@ -289,7 +310,7 @@ public: if( V(i,i) - sum >= 0 ) { _L(i,i) = sqrt( V(i,i) - sum); } else { - _L(i,i) = 0; + _L(i,i) = std::numeric_limits::epsilon(); } for ( j = i + 1; j < N; ++j ) { // rows