Skip to content
Snippets Groups Projects
Commit 36fdab2f authored by Justin Carpentier's avatar Justin Carpentier
Browse files

test/decompositions: add test for sparse Cholmod Cholesky

parent 7b26346e
No related branches found
No related tags found
No related merge requests found
......@@ -156,5 +156,20 @@ if(BUILD_TESTING_SCIPY)
if(BUILD_WITH_CHOLMOD_SUPPORT)
add_python_unit_test(
"py-CholmodSimplicialLLT"
"unittest/python/decompositions/sparse/cholmod/test_CholmodSimplicialLLT.py"
"python")
add_python_unit_test(
"py-CholmodSimplicialLDLT"
"unittest/python/decompositions/sparse/cholmod/test_CholmodSimplicialLDLT.py"
"python")
add_python_unit_test(
"py-CholmodSupernodalLLT"
"unittest/python/decompositions/sparse/cholmod/test_CholmodSupernodalLLT.py"
"python")
endif(BUILD_WITH_CHOLMOD_SUPPORT)
endif()
import eigenpy
import numpy as np
from scipy.sparse import csc_matrix
dim = 100
A = np.random.rand(dim, dim)
A = (A + A.T) * 0.5 + np.diag(10.0 + np.random.rand(dim))
A = csc_matrix(A)
llt = eigenpy.CholmodSimplicialLDLT(A)
assert llt.info() == eigenpy.ComputationInfo.Success
X = np.random.rand(dim, 20)
B = A.dot(X)
X_est = llt.solve(B)
assert eigenpy.is_approx(X, X_est)
assert eigenpy.is_approx(A.dot(X_est), B)
llt.analyzePattern(A)
llt.factorize(A)
import eigenpy
import numpy as np
from scipy.sparse import csc_matrix
dim = 100
A = np.random.rand(dim, dim)
A = (A + A.T) * 0.5 + np.diag(10.0 + np.random.rand(dim))
A = csc_matrix(A)
llt = eigenpy.CholmodSimplicialLLT(A)
assert llt.info() == eigenpy.ComputationInfo.Success
X = np.random.rand(dim, 20)
B = A.dot(X)
X_est = llt.solve(B)
assert eigenpy.is_approx(X, X_est)
assert eigenpy.is_approx(A.dot(X_est), B)
llt.analyzePattern(A)
llt.factorize(A)
import eigenpy
import numpy as np
from scipy.sparse import csc_matrix
dim = 100
A = np.random.rand(dim, dim)
A = (A + A.T) * 0.5 + np.diag(10.0 + np.random.rand(dim))
A = csc_matrix(A)
llt = eigenpy.CholmodSupernodalLLT(A)
assert llt.info() == eigenpy.ComputationInfo.Success
X = np.random.rand(dim, 20)
B = A.dot(X)
X_est = llt.solve(B)
assert eigenpy.is_approx(X, X_est)
assert eigenpy.is_approx(A.dot(X_est), B)
llt.analyzePattern(A)
llt.factorize(A)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment