diff --git a/unittest/python/test_QR.py b/unittest/python/test_QR.py index b7a7f98517ee50b1084ece309654253f5769480a..5d3b0b5aa295619eebde3b1ccb35f825abfa4c6d 100644 --- a/unittest/python/test_QR.py +++ b/unittest/python/test_QR.py @@ -20,3 +20,21 @@ assert householder_qr_eye.logAbsDeterminant() == 0.0 Y = householder_qr_eye.solve(X) assert (X == Y).all() + +# Test FullPivHouseholderQR decomposition +fullpiv_householder_qr = eigenpy.FullPivHouseholderQR() +fullpiv_householder_qr = eigenpy.FullPivHouseholderQR(rows, cols) +fullpiv_householder_qr = eigenpy.FullPivHouseholderQR(A) + +fullpiv_householder_qr = eigenpy.FullPivHouseholderQR(np.eye(rows, rows)) +X = rng.random((rows, 20)) +assert fullpiv_householder_qr.absDeterminant() == 1.0 +assert fullpiv_householder_qr.logAbsDeterminant() == 0.0 + +Y = fullpiv_householder_qr.solve(X) +assert (X == Y).all() +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())