- this->m_Inv.set_size( D, D );
- this->m_Inv.fill( S( 0 ) );
- this->m_Norm = S( 0 );
- }
- else
+ m[ i ][ i ] = c[ i ] * c[ i ];
+ for( unsigned int j = i + 1; j < _VDimension; ++j )
+ m[ i ][ j ] = m[ j ][ i ] = c[ i ] * c[ j ];
+
+ } // rof
+ this->m_Covariance = ( this->m_Covariance + ( m * a ) ) * b;
+ this->m_Mean = ( this->m_Mean * b ) + ( v * a );
+
+ TScalar u =
+ TScalar( this->m_NumberOfSamples ) /
+ TScalar( this->m_NumberOfSamples - 1 );
+ this->m_UnbiasedCovariance = this->m_Covariance * u;
+ this->m_InverseUpdated = false;
+}
+
+// -------------------------------------------------------------------------
+template< class _TScalar, unsigned int _VDimension >
+_TScalar cpExtensions::Algorithms::
+IterativeGaussianModelEstimator< _TScalar, _VDimension >::
+_SquaredMahalanobis( const TVector& v ) const
+{
+ if( !this->m_InverseUpdated )