32 #define TEST_NAME "util/matrix"
40 BOOST_CHECK(!
IsNaN(Eigen::Vector3f::Zero()));
41 BOOST_CHECK(!
IsNaN(Eigen::Vector3d::Zero()));
43 Eigen::Vector3f(std::numeric_limits<float>::quiet_NaN(), 0.0f, 0.0f)));
45 Eigen::Vector3d(std::numeric_limits<double>::quiet_NaN(), 0.0f, 0.0f)));
49 BOOST_CHECK(!
IsInf(Eigen::Vector3f::Zero()));
50 BOOST_CHECK(!
IsInf(Eigen::Vector3d::Zero()));
52 Eigen::Vector3f(std::numeric_limits<float>::infinity(), 0.0f, 0.0f)));
54 Eigen::Vector3d(std::numeric_limits<double>::infinity(), 0.0f, 0.0f)));
58 for (
int i = 0; i < 10; ++i) {
59 const Eigen::Matrix4d A = Eigen::Matrix4d::Random();
64 BOOST_CHECK(R.bottomRows(4).isUpperTriangular());
65 BOOST_CHECK(Q.isUnitary());
66 BOOST_CHECK_CLOSE(Q.determinant(), 1.0, 1
e-6);
67 BOOST_CHECK(A.isApprox(R * Q, 1
e-6));
BOOST_AUTO_TEST_CASE(TestIsNaN)
void DecomposeMatrixRQ(const MatrixType &A, MatrixType *R, MatrixType *Q)
bool IsNaN(const float x)
bool IsInf(const float x)