void check_is_diagonal()
{
    Eigen::Matrix<fl::Real, Size, Size> m;

    m.resize(Dim, Dim);
    m.setRandom();

    EXPECT_FALSE(fl::is_diagonal(m));

    m = m.diagonal().asDiagonal();
    EXPECT_TRUE(fl::is_diagonal(m));

    m.setIdentity();
    m *= 3.;
    EXPECT_TRUE(fl::is_diagonal(m));

    m(0, Dim - 1) = 2;
    EXPECT_FALSE(fl::is_diagonal(m));
}
示例#2
0
 Eigen::Matrix<double,N,N> randomCovariance()
 {
   Eigen::Matrix<double,N,N> U;
   U.setRandom();
   return U.transpose() * U + 5.0 * Eigen::Matrix<double,N,N>::Identity();
 }