Не корректно сравнивать значения типа double оператором == (см. обсуждение). Заменить на EXPECT_DOUBLE_EQ.
При сравнении объектов класса 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