aboutsummaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
authorGravatar Benoit Jacob <jacob.benoit.1@gmail.com>2008-12-20 13:36:12 +0000
committerGravatar Benoit Jacob <jacob.benoit.1@gmail.com>2008-12-20 13:36:12 +0000
commit9e00d945439d801d3f4e33ed1ce57545e3310723 (patch)
tree0b26f164b72ea0fbf462ae63c41790219293f057 /test
parent21ab65e4b3b133a6550ec74ac76a0a629d07f104 (diff)
* the Upper->UpperTriangular change
* finally get ei_add_test right
Diffstat (limited to 'test')
-rw-r--r--test/CMakeLists.txt6
-rw-r--r--test/sparse_solvers.cpp12
-rw-r--r--test/triangular.cpp46
3 files changed, 33 insertions, 31 deletions
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index fd39dc82e..4255128ad 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -131,9 +131,11 @@ macro(ei_add_test testname)
target_link_libraries(${targetname} ${EXTERNAL_LIBS})
if(${ARGC} GREATER 2)
- if(ARGV2)
+ string(STRIP "${ARGV2}" ARGV2_stripped)
+ string(LENGTH "${ARGV2_stripped}" ARGV2_stripped_length)
+ if(${ARGV2_stripped_length} GREATER 0)
target_link_libraries(${targetname} ${ARGV2})
- endif(ARGV2)
+ endif(${ARGV2_stripped_length} GREATER 0)
endif(${ARGC} GREATER 2)
if(WIN32)
diff --git a/test/sparse_solvers.cpp b/test/sparse_solvers.cpp
index c3050ce7d..da9a245a2 100644
--- a/test/sparse_solvers.cpp
+++ b/test/sparse_solvers.cpp
@@ -44,13 +44,13 @@ template<typename Scalar> void sparse_solvers(int rows, int cols)
// lower
initSparse<Scalar>(density, refMat2, m2, ForceNonZeroDiag|MakeLowerTriangular, &zeroCoords, &nonzeroCoords);
- VERIFY_IS_APPROX(refMat2.template marked<Lower>().solveTriangular(vec2),
- m2.template marked<Lower>().solveTriangular(vec3));
+ VERIFY_IS_APPROX(refMat2.template marked<LowerTriangular>().solveTriangular(vec2),
+ m2.template marked<LowerTriangular>().solveTriangular(vec3));
// upper
initSparse<Scalar>(density, refMat2, m2, ForceNonZeroDiag|MakeUpperTriangular, &zeroCoords, &nonzeroCoords);
- VERIFY_IS_APPROX(refMat2.template marked<Upper>().solveTriangular(vec2),
- m2.template marked<Upper>().solveTriangular(vec3));
+ VERIFY_IS_APPROX(refMat2.template marked<UpperTriangular>().solveTriangular(vec2),
+ m2.template marked<UpperTriangular>().solveTriangular(vec3));
// TODO test row major
}
@@ -70,7 +70,7 @@ template<typename Scalar> void sparse_solvers(int rows, int cols)
refMat2.diagonal() *= 0.5;
refMat2.llt().solve(b, &refX);
- typedef SparseMatrix<Scalar,Lower|SelfAdjoint> SparseSelfAdjointMatrix;
+ typedef SparseMatrix<Scalar,LowerTriangular|SelfAdjoint> SparseSelfAdjointMatrix;
x = b;
SparseLLT<SparseSelfAdjointMatrix> (m2).solveInPlace(x);
//VERIFY(refX.isApprox(x,test_precision<Scalar>()) && "LLT: default");
@@ -107,7 +107,7 @@ template<typename Scalar> void sparse_solvers(int rows, int cols)
refMat2.diagonal() *= 0.5;
refMat2.ldlt().solve(b, &refX);
- typedef SparseMatrix<Scalar,Lower|SelfAdjoint> SparseSelfAdjointMatrix;
+ typedef SparseMatrix<Scalar,LowerTriangular|SelfAdjoint> SparseSelfAdjointMatrix;
x = b;
SparseLDLT<SparseSelfAdjointMatrix> ldlt(m2);
if (ldlt.succeeded())
diff --git a/test/triangular.cpp b/test/triangular.cpp
index 34afa7b3c..7021e0776 100644
--- a/test/triangular.cpp
+++ b/test/triangular.cpp
@@ -51,14 +51,14 @@ template<typename MatrixType> void triangular(const MatrixType& m)
v2 = VectorType::Random(rows),
vzero = VectorType::Zero(rows);
- MatrixType m1up = m1.template part<Eigen::Upper>();
- MatrixType m2up = m2.template part<Eigen::Upper>();
+ MatrixType m1up = m1.template part<Eigen::UpperTriangular>();
+ MatrixType m2up = m2.template part<Eigen::UpperTriangular>();
if (rows*cols>1)
{
- VERIFY(m1up.isUpper());
- VERIFY(m2up.transpose().isLower());
- VERIFY(!m2.isLower());
+ VERIFY(m1up.isUpperTriangular());
+ VERIFY(m2up.transpose().isLowerTriangular());
+ VERIFY(!m2.isLowerTriangular());
}
// VERIFY_IS_APPROX(m1up.transpose() * m2, m1.upper().transpose().lower() * m2);
@@ -66,20 +66,20 @@ template<typename MatrixType> void triangular(const MatrixType& m)
// test overloaded operator+=
r1.setZero();
r2.setZero();
- r1.template part<Eigen::Upper>() += m1;
+ r1.template part<Eigen::UpperTriangular>() += m1;
r2 += m1up;
VERIFY_IS_APPROX(r1,r2);
// test overloaded operator=
m1.setZero();
- m1.template part<Eigen::Upper>() = (m2.transpose() * m2).lazy();
+ m1.template part<Eigen::UpperTriangular>() = (m2.transpose() * m2).lazy();
m3 = m2.transpose() * m2;
- VERIFY_IS_APPROX(m3.template part<Eigen::Lower>().transpose(), m1);
+ VERIFY_IS_APPROX(m3.template part<Eigen::LowerTriangular>().transpose(), m1);
// test overloaded operator=
m1.setZero();
- m1.template part<Eigen::Lower>() = (m2.transpose() * m2).lazy();
- VERIFY_IS_APPROX(m3.template part<Eigen::Lower>(), m1);
+ m1.template part<Eigen::LowerTriangular>() = (m2.transpose() * m2).lazy();
+ VERIFY_IS_APPROX(m3.template part<Eigen::LowerTriangular>(), m1);
VERIFY_IS_APPROX(m3.template part<Diagonal>(), m3.diagonal().asDiagonal());
@@ -89,30 +89,30 @@ template<typename MatrixType> void triangular(const MatrixType& m)
Transpose<MatrixType> trm4(m4);
// test back and forward subsitution
- m3 = m1.template part<Eigen::Lower>();
- VERIFY(m3.template marked<Eigen::Lower>().solveTriangular(m3).cwise().abs().isIdentity(test_precision<RealScalar>()));
- VERIFY(m3.transpose().template marked<Eigen::Upper>()
+ m3 = m1.template part<Eigen::LowerTriangular>();
+ VERIFY(m3.template marked<Eigen::LowerTriangular>().solveTriangular(m3).cwise().abs().isIdentity(test_precision<RealScalar>()));
+ VERIFY(m3.transpose().template marked<Eigen::UpperTriangular>()
.solveTriangular(m3.transpose()).cwise().abs().isIdentity(test_precision<RealScalar>()));
// check M * inv(L) using in place API
m4 = m3;
- m3.transpose().template marked<Eigen::Upper>().solveTriangularInPlace(trm4);
+ m3.transpose().template marked<Eigen::UpperTriangular>().solveTriangularInPlace(trm4);
VERIFY(m4.cwise().abs().isIdentity(test_precision<RealScalar>()));
- m3 = m1.template part<Eigen::Upper>();
- VERIFY(m3.template marked<Eigen::Upper>().solveTriangular(m3).cwise().abs().isIdentity(test_precision<RealScalar>()));
- VERIFY(m3.transpose().template marked<Eigen::Lower>()
+ m3 = m1.template part<Eigen::UpperTriangular>();
+ VERIFY(m3.template marked<Eigen::UpperTriangular>().solveTriangular(m3).cwise().abs().isIdentity(test_precision<RealScalar>()));
+ VERIFY(m3.transpose().template marked<Eigen::LowerTriangular>()
.solveTriangular(m3.transpose()).cwise().abs().isIdentity(test_precision<RealScalar>()));
// check M * inv(U) using in place API
m4 = m3;
- m3.transpose().template marked<Eigen::Lower>().solveTriangularInPlace(trm4);
+ m3.transpose().template marked<Eigen::LowerTriangular>().solveTriangularInPlace(trm4);
VERIFY(m4.cwise().abs().isIdentity(test_precision<RealScalar>()));
- m3 = m1.template part<Eigen::Upper>();
- VERIFY(m2.isApprox(m3 * (m3.template marked<Eigen::Upper>().solveTriangular(m2)), largerEps));
- m3 = m1.template part<Eigen::Lower>();
- VERIFY(m2.isApprox(m3 * (m3.template marked<Eigen::Lower>().solveTriangular(m2)), largerEps));
+ m3 = m1.template part<Eigen::UpperTriangular>();
+ VERIFY(m2.isApprox(m3 * (m3.template marked<Eigen::UpperTriangular>().solveTriangular(m2)), largerEps));
+ m3 = m1.template part<Eigen::LowerTriangular>();
+ VERIFY(m2.isApprox(m3 * (m3.template marked<Eigen::LowerTriangular>().solveTriangular(m2)), largerEps));
- VERIFY((m1.template part<Eigen::Upper>() * m2.template part<Eigen::Upper>()).isUpper());
+ VERIFY((m1.template part<Eigen::UpperTriangular>() * m2.template part<Eigen::UpperTriangular>()).isUpperTriangular());
}