protected void UpdateScaling()
{
Vector dv = new Vector( m_Dimension );
for ( int i=0; i<m_Dimension; i++)
{
for ( int j=0; j < m_ParametersCount; j++ )
dv[i] += m_Jacobian[j,i] * m_Jacobian[j,i];
dv[i] = Math.Sqrt( dv[i] );
}
for ( int i=0; i<m_Dimension; i++ )
m_Diagonal[i] = Math.Max( m_Diagonal[i], dv[i] );
}