[Debian-science-sagemath] Buster todo list
Ximin Luo
infinity0 at debian.org
Wed Jan 23 06:52:00 GMT 2019
Ximin Luo:
> 1. the underlying C code (perhaps lapack, which is where ZGEES comes from) is inappropriately calling exit(0)
>
Minimal test case:
./sage -c "P = matrix(CDF, 0, 0,); P.is_unitary(algorithm='orthonormal')"
** On entry to ZGEES parameter number 6 had an illegal value
exit code 0
The error message comes from lapack in xerbla.f, and in fact lapack in many cases calls the STOP fortran command which is to exit 0 and terminate the process. This is pretty bad...
OTOH, sage's own doctest expects this alternate error message instead:
sage: P = matrix(CDF, 0, 0,)
sage: P.is_unitary(algorithm='orthonormal')
Traceback (most recent call last):
...
error: ((lwork==-1)||(lwork >= MAX(1,2*n))) failed for 3rd keyword lwork: zgees:lwork=0
This error message seems to come from numpy, something along these lines:
numpy/f2py/cfuncs.py
508: PyErr_SetString(#modulename#_error,\"(\"tcheck\") failed for \"name);\\
So I now have two questions, which hopefully can be answered by a Sage dev:
1. how does sage in general deal with all these STOPs called by fortran code?
2. in the specific case of matrix_double_dense, why are we hitting a fortran STOP and not the expected python numpy error?
If it helps, in Debian we currently are avoiding OpenBLAS due to sage #26052 and using atlas instead. However it seems that LAPACK has its only implementation of BLAS, at least in Debian we have a "libblas-dev" package from lapack as well as "libatlas-base-dev" and "libopenblas-dev". Currently for the Debian sagemath build we bring in both libblas-dev and libatlas-base-dev, but not libopenblas-dev.
X
--
GPG: ed25519/56034877E1F87C35
GPG: rsa4096/1318EFAC5FBBDBCE
https://github.com/infinity0/pubkeys.git
More information about the Debian-science-sagemath
mailing list