[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