From 3c818e1cf3f9b739b54d465a10155eea7d104d84 Mon Sep 17 00:00:00 2001 From: Justin Carpentier <justin.carpentier@inria.fr> Date: Tue, 11 Jun 2024 10:17:06 +0200 Subject: [PATCH] test/decompositions: test ColPivHouseholderQR --- unittest/python/test_QR.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/unittest/python/test_QR.py b/unittest/python/test_QR.py index 5d3b0b5a..37b4a696 100644 --- a/unittest/python/test_QR.py +++ b/unittest/python/test_QR.py @@ -38,3 +38,21 @@ assert fullpiv_householder_qr.rank() == rows fullpiv_householder_qr.setThreshold(1e-8) assert fullpiv_householder_qr.threshold() == 1e-8 assert eigenpy.is_approx(np.eye(rows, rows), fullpiv_householder_qr.inverse()) + +# Test ColPivHouseholderQR decomposition +colpiv_householder_qr = eigenpy.ColPivHouseholderQR() +colpiv_householder_qr = eigenpy.ColPivHouseholderQR(rows, cols) +colpiv_householder_qr = eigenpy.ColPivHouseholderQR(A) + +colpiv_householder_qr = eigenpy.ColPivHouseholderQR(np.eye(rows, rows)) +X = rng.random((rows, 20)) +assert colpiv_householder_qr.absDeterminant() == 1.0 +assert colpiv_householder_qr.logAbsDeterminant() == 0.0 + +Y = colpiv_householder_qr.solve(X) +assert (X == Y).all() +assert colpiv_householder_qr.rank() == rows + +colpiv_householder_qr.setThreshold(1e-8) +assert colpiv_householder_qr.threshold() == 1e-8 +assert eigenpy.is_approx(np.eye(rows, rows), colpiv_householder_qr.inverse()) -- GitLab