Документация не соответствует коду: вычисляется скалярное произведение а не его модуль.
При сравнении объектов класса PIMathVector с эелментами вещественных типов оператор == работает не корректно, сравнивая элементы на прямую через ==.
Нужно постараться избегать рекурсивных определений. Пример PIMathVector::length() и PIMathVector::size(). По описанию невозможно понять что делают методы.
Просьба описывать в документации логику возвращения this более точно. Например метод PIMathVectorT::fill():
/**
* @brief Method that fills a vector with a value
*
* @param v value of which the vector is filled
* @return vector of type PIMathVectorT filled with "v"
*/
_CVector & fill(const Type & v) {PIMV_FOR(i, 0) c[i] = v; return *this;}
В блоке @return описание слишком расплывчато и не отражает того факта, что возвращаемый вектор- это тот же самый вектор, у которого был вызван метод fill().
Необходимо уточнить в документации логику возвращаемого значения для классов PIMathMatrixT, PIMathMatrix, PIMathVectorT, PIMathVector