Coverage for gpaw/gpu/cpupy/linalg.py: 76%

17 statements  

« prev     ^ index     » next       coverage.py v7.7.1, created at 2025-07-14 00:18 +0000

1import numpy as np 

2 

3 

4def cholesky(a): 

5 from gpaw.gpu import cupy as cp 

6 return cp.ndarray(np.linalg.cholesky(a._data)) 

7 

8 

9def inv(a): 

10 from gpaw.gpu import cupy as cp 

11 return cp.ndarray(np.linalg.inv(a._data)) 

12 

13 

14def eigh(a, UPLO='L'): 

15 from gpaw.gpu import cupy as cp 

16 eigvals, eigvecs = np.linalg.eigh(a._data, UPLO) 

17 return cp.ndarray(eigvals), cp.ndarray(eigvecs.T.copy().T) 

18 

19 

20def matrix_rank(a, tol=None, hermitian=False, *, rtol=None): 

21 from gpaw.gpu import cupy as cp 

22 return cp.ndarray( 

23 np.linalg.matrix_rank(a._data, tol, hermitian, rtol=rtol)) 

24 

25 

26def eigvalsh(a, UPLO='L'): 

27 from gpaw.gpu import cupy as cp 

28 return cp.ndarray(np.linalg.eigvalsh(a._data, UPLO))