mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-04-19 08:09:36 +08:00
fix triangular unit test: it only accepts small matrices
This commit is contained in:
parent
22cc2b727b
commit
3fb65734ab
@ -113,14 +113,14 @@ template<typename MatrixType> void triangular_square(const MatrixType& m)
|
|||||||
|
|
||||||
// check M * inv(L) using in place API
|
// check M * inv(L) using in place API
|
||||||
m4 = m3;
|
m4 = m3;
|
||||||
m3.transpose().template triangularView<Eigen::Upper>().solveInPlace(trm4);
|
m1.transpose().template triangularView<Eigen::Upper>().solveInPlace(trm4);
|
||||||
VERIFY(m4.cwiseAbs().isIdentity(test_precision<RealScalar>()));
|
VERIFY_IS_APPROX(m4 * m1.template triangularView<Eigen::Lower>(), m3);
|
||||||
|
|
||||||
// check M * inv(U) using in place API
|
// check M * inv(U) using in place API
|
||||||
m3 = m1.template triangularView<Upper>();
|
m3 = m1.template triangularView<Upper>();
|
||||||
m4 = m3;
|
m4 = m3;
|
||||||
m3.transpose().template triangularView<Eigen::Lower>().solveInPlace(trm4);
|
m3.transpose().template triangularView<Eigen::Lower>().solveInPlace(trm4);
|
||||||
VERIFY(m4.cwiseAbs().isIdentity(test_precision<RealScalar>()));
|
VERIFY_IS_APPROX(m4 * m1.template triangularView<Eigen::Upper>(), m3);
|
||||||
|
|
||||||
// check solve with unit diagonal
|
// check solve with unit diagonal
|
||||||
m3 = m1.template triangularView<UnitUpper>();
|
m3 = m1.template triangularView<UnitUpper>();
|
||||||
@ -172,7 +172,7 @@ template<typename MatrixType> void triangular_rect(const MatrixType& m)
|
|||||||
MatrixType m1up = m1.template triangularView<Upper>();
|
MatrixType m1up = m1.template triangularView<Upper>();
|
||||||
MatrixType m2up = m2.template triangularView<Upper>();
|
MatrixType m2up = m2.template triangularView<Upper>();
|
||||||
|
|
||||||
if (rows*cols>1)
|
if (rows>1 && cols>1)
|
||||||
{
|
{
|
||||||
VERIFY(m1up.isUpperTriangular());
|
VERIFY(m1up.isUpperTriangular());
|
||||||
VERIFY(m2up.transpose().isLowerTriangular());
|
VERIFY(m2up.transpose().isLowerTriangular());
|
||||||
@ -242,10 +242,11 @@ void bug_159()
|
|||||||
|
|
||||||
void test_triangular()
|
void test_triangular()
|
||||||
{
|
{
|
||||||
|
int maxsize = std::min(EIGEN_TEST_MAX_SIZE,20);
|
||||||
for(int i = 0; i < g_repeat ; i++)
|
for(int i = 0; i < g_repeat ; i++)
|
||||||
{
|
{
|
||||||
int r = internal::random<int>(2,EIGEN_TEST_MAX_SIZE); EIGEN_UNUSED_VARIABLE(r);
|
int r = internal::random<int>(2,maxsize); EIGEN_UNUSED_VARIABLE(r);
|
||||||
int c = internal::random<int>(2,EIGEN_TEST_MAX_SIZE); EIGEN_UNUSED_VARIABLE(c);
|
int c = internal::random<int>(2,maxsize); EIGEN_UNUSED_VARIABLE(c);
|
||||||
|
|
||||||
CALL_SUBTEST_1( triangular_square(Matrix<float, 1, 1>()) );
|
CALL_SUBTEST_1( triangular_square(Matrix<float, 1, 1>()) );
|
||||||
CALL_SUBTEST_2( triangular_square(Matrix<float, 2, 2>()) );
|
CALL_SUBTEST_2( triangular_square(Matrix<float, 2, 2>()) );
|
||||||
|
Loading…
x
Reference in New Issue
Block a user