mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-08-12 19:59:05 +08:00
extend sparse unit tests with transpose and matrix product
This commit is contained in:
parent
98d3c0a413
commit
a930dfb229
@ -122,6 +122,6 @@ EI_ADD_TEST(geometry)
|
|||||||
EI_ADD_TEST(hyperplane)
|
EI_ADD_TEST(hyperplane)
|
||||||
EI_ADD_TEST(parametrizedline)
|
EI_ADD_TEST(parametrizedline)
|
||||||
EI_ADD_TEST(regression)
|
EI_ADD_TEST(regression)
|
||||||
EI_ADD_TEST(sparse)
|
EI_ADD_TEST(sparse ${EI_OFLAG})
|
||||||
|
|
||||||
ENDIF(BUILD_TESTS)
|
ENDIF(BUILD_TESTS)
|
||||||
|
@ -172,6 +172,32 @@ template<typename Scalar> void sparse(int rows, int cols)
|
|||||||
}
|
}
|
||||||
VERIFY_IS_APPROX(m, refMat);
|
VERIFY_IS_APPROX(m, refMat);
|
||||||
|
|
||||||
|
// test transpose
|
||||||
|
{
|
||||||
|
DenseMatrix refMat2 = DenseMatrix::Zero(rows, rows);
|
||||||
|
SparseMatrix<Scalar> m2(rows, rows);
|
||||||
|
initSparse<Scalar>(density, refMat2, m2);
|
||||||
|
VERIFY_IS_APPROX(m2.transpose().eval(), refMat2.transpose().eval());
|
||||||
|
VERIFY_IS_APPROX(m2.transpose(), refMat2.transpose());
|
||||||
|
}
|
||||||
|
|
||||||
|
// test matrix product
|
||||||
|
{
|
||||||
|
DenseMatrix refMat2 = DenseMatrix::Zero(rows, rows);
|
||||||
|
DenseMatrix refMat3 = DenseMatrix::Zero(rows, rows);
|
||||||
|
DenseMatrix refMat4 = DenseMatrix::Zero(rows, rows);
|
||||||
|
SparseMatrix<Scalar> m2(rows, rows);
|
||||||
|
SparseMatrix<Scalar> m3(rows, rows);
|
||||||
|
SparseMatrix<Scalar> m4(rows, rows);
|
||||||
|
initSparse<Scalar>(density, refMat2, m2);
|
||||||
|
initSparse<Scalar>(density, refMat3, m3);
|
||||||
|
initSparse<Scalar>(density, refMat4, m4);
|
||||||
|
VERIFY_IS_APPROX(m4=m2*m3, refMat4=refMat2*refMat3);
|
||||||
|
VERIFY_IS_APPROX(m4=m2.transpose()*m3, refMat4=refMat2.transpose()*refMat3);
|
||||||
|
VERIFY_IS_APPROX(m4=m2.transpose()*m3.transpose(), refMat4=refMat2.transpose()*refMat3.transpose());
|
||||||
|
VERIFY_IS_APPROX(m4=m2*m3.transpose(), refMat4=refMat2*refMat3.transpose());
|
||||||
|
}
|
||||||
|
|
||||||
// test triangular solver
|
// test triangular solver
|
||||||
{
|
{
|
||||||
DenseVector vec2 = vec1, vec3 = vec1;
|
DenseVector vec2 = vec1, vec3 = vec1;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user