vector<T> fgMapMag(const vector<FgMatrixC<T,nrows,ncols> > & v) { vector<T> ret(v.size()); for (size_t ii=0; ii<v.size(); ++ii) ret[ii] = fgLengthSqr(v[ii]); return ret; }
typename FgTraits<T>::Scalar fgRmsd(const vector<T> & a,const vector<T> & b) { FGASSERT(a.size() == b.size()); typename FgTraits<T>::Scalar acc(0); for (size_t ii=0; ii<a.size(); ++ii) acc += fgLengthSqr(a[ii]-b[ii]); return std::sqrt(acc / a.size()); }
inline T fgLength(const std::vector<FgMatrixC<T,nrows,ncols> > & v) { return std::sqrt(fgLengthSqr(v)); }