scipy: ValueError in scipy.linalg.eigvalsh for large matrix
scipy.linalg.eigvalsh()
throws ValueError() for large matrices. The bug appears for arbitrary matrices.
However, it also shows up in trivial examples, such as a large identity matrix, and large diagonal matrices with random coefficients in [0,1].
Reproducing code example:
import numpy as np
import scipy.linalg as la
H=np.eye(6470)
#np.random.seed(0)
#H=np.diag(np.random.uniform(size=6470))
E=la.eigvalsh(H)
Error message:
Traceback (most recent call last):
File "example0.py", line 7, in <module>
E=la.eigvalsh(H)
File "/Users/mbukov/anaconda3/lib/python3.6/site-packages/scipy/linalg/decomp.py", line 734, in eigvalsh
check_finite=check_finite)
File "/Users/mbukov/anaconda3/lib/python3.6/site-packages/scipy/linalg/decomp.py", line 384, in eigh
iu=a1.shape[0], overwrite_a=overwrite_a)
ValueError: On entry to DSBRDB parameter number 12 had an illegal value
Scipy/Numpy/Python version information:
0.19.1 1.13.0 sys.version_info(major=3, minor=6, micro=2, releaselevel='final', serial=0)
About this issue
- Original URL
- State: closed
- Created 7 years ago
- Reactions: 1
- Comments: 20 (9 by maintainers)
@ilayn FYI Intel has fixed the MKL bug with minimum work sizes in release 19.0 https://software.intel.com/en-us/forums/intel-math-kernel-library/topic/753935