Reproducer from a doctest in src/sage/matrix/matrix_double_dense.pyx

sage:             sage: A = matrix(CDF, [[1,2,4],[5,3,9],[7,8,6]])
sage: A.det()      # wrong
0.0
sage:             sage: A = matrix(QQ, [[1,2,4],[5,3,9],[7,8,6]])
sage: A.det()
88
sage:             sage: A = matrix(RDF, [[1,2,4],[5,3,9],[7,8,6]])
sage: A.det()
88.0

On Tuesday, March 28, 2023 at 2:57:19 PM UTC-7 Matthias Koeppe wrote:

> The error can also be reproduced by running the testsuite of 
> src/sage/matrix/matrix2.pyx
>
> No mention of openblas 0.3.22 in the numpy/scipy issue trackers yet, as 
> far as I could see.
>
>
> On Tuesday, March 28, 2023 at 2:47:17 PM UTC-7 Matthias Koeppe wrote:
>
>> I agree that the openblas upgrade is to blame here. This error also 
>> reproduces with openblas 0.3.22 built from source - see 
>> https://github.com/sagemath/sage/pull/35371
>>
>>
>> On Tuesday, March 28, 2023 at 11:35:03 AM UTC-7 John H Palmieri wrote:
>>
>>> I ran "brew upgrade" recently on two different Macs, one Intel and one 
>>> Apple Silicon, and now the Sage documentation fails to build:
>>>
>>> [hyperboli]  from 
>>> /Users/jpalmier/Desktop/Sage/sage_builds/TESTING/clean/sage-10.0.beta5/src/doc/en/reference/hyperbolic_geometry/sage/geometry/hyperbolic_space/hyperbolic_geodesic.rst:
>>> [hyperboli] Traceback (most recent call last):
>>> [hyperboli]   File "sage/matrix/matrix_double_dense.pyx", line 345, in 
>>> sage.matrix.matrix_double_dense.Matrix_double_dense.__invert__
>>> [hyperboli]     M._matrix_numpy = scipy.linalg.inv(self._matrix_numpy)
>>> [hyperboli]   File 
>>> "/Users/jpalmier/Desktop/Sage/sage_builds/TESTING/clean/sage-10.0.beta5/local/var/lib/sage/venv-python3.11/lib/python3.11/site-packages/scipy/linalg/_basic.py",
>>>  
>>> line 975, in inv
>>> [hyperboli]     raise LinAlgError("singular matrix")
>>> [hyperboli] numpy.linalg.LinAlgError: singular matrix
>>> [hyperboli] During handling of the above exception, another exception 
>>> occurred:
>>> [hyperboli] Traceback (most recent call last):
>>> [hyperboli]   File 
>>> "/Users/jpalmier/Desktop/Sage/sage_builds/TESTING/clean/sage-10.0.beta5/local/var/lib/sage/venv-python3.11/lib/python3.11/site-packages/matplotlib/sphinxext/plot_directive.py",
>>>  
>>> line 517, in _run_code
>>> [hyperboli]     exec(code, ns)
>>> [hyperboli]   File "<string>", line 3, in <module>
>>> [hyperboli]   File 
>>> "/Users/jpalmier/Desktop/Sage/sage_builds/TESTING/clean/sage-10.0.beta5/src/sage/geometry/hyperbolic_space/hyperbolic_geodesic.py",
>>>  
>>> line 1625, in perpendicular_bisector
>>> [hyperboli]     isom_mtrx = S.inverse() * (T1 * T2) * S
>>> [hyperboli]                 ^^^^^^^^^^^
>>> [hyperboli]   File "sage/matrix/matrix2.pyx", line 9964, in 
>>> sage.matrix.matrix2.Matrix.inverse
>>> [hyperboli]     return ~self
>>> [hyperboli]   File "sage/matrix/matrix_double_dense.pyx", line 347, in 
>>> sage.matrix.matrix_double_dense.Matrix_double_dense.__invert__
>>> [hyperboli]     raise ZeroDivisionError("input matrix must be 
>>> nonsingular")
>>> [hyperboli] ZeroDivisionError: input matrix must be nonsingular
>>>
>>> (I saw this first with 10.0.beta6 but then went and tried with 
>>> 10.0.beta5, which had succeeded earlier. Now it fails.)
>>>
>>> Perhaps this is due to an upgraded openblas? That's the most obvious 
>>> among the recently upgraded packages, at least to me: homebrew just 
>>> upgraded these:
>>>
>>> drwxr-xr-x  3 jpalmier  admin  96 Mar 27 10:21 gnupg
>>> drwxr-xr-x  3 jpalmier  admin  96 Mar 27 10:21 pinentry
>>> drwxr-xr-x  3 jpalmier  admin  96 Mar 27 10:21 npth
>>> drwxr-xr-x  3 jpalmier  admin  96 Mar 27 10:21 libusb
>>> drwxr-xr-x  3 jpalmier  admin  96 Mar 27 10:21 libksba
>>> drwxr-xr-x  3 jpalmier  admin  96 Mar 27 10:21 libgcrypt
>>> drwxr-xr-x  3 jpalmier  admin  96 Mar 27 10:21 libassuan
>>> drwxr-xr-x  3 jpalmier  admin  96 Mar 27 10:21 libgpg-error
>>> drwxr-xr-x  3 jpalmier  admin  96 Mar 27 10:00 gh
>>> drwxr-xr-x  3 jpalmier  admin  96 Mar 27 10:00 imagemagick
>>> drwxr-xr-x  3 jpalmier  staff  96 Mar 27 09:59 tox
>>> drwxr-xr-x  3 jpalmier  admin  96 Mar 27 09:59 primecount
>>> drwxr-xr-x  3 jpalmier  staff  96 Mar 27 09:59 tcl-tk
>>> drwxr-xr-x  3 jpalmier  admin  96 Mar 27 09:59 qt
>>> drwxr-xr-x  3 jpalmier  admin  96 Mar 27 09:59 gobject-introspection
>>> drwxr-xr-x  3 jpalmier  admin  96 Mar 27 09:59 netpbm
>>> drwxr-xr-x  3 jpalmier  admin  96 Mar 27 09:59 glib
>>> drwxr-xr-x  3 jpalmier  admin  96 Mar 27 09:59 mpg123
>>> drwxr-xr-x  3 jpalmier  admin  96 Mar 27 09:59 cmake
>>> drwxr-xr-x  3 jpalmier  staff  96 Mar 27 09:59 ghostscript
>>> drwxr-xr-x  3 jpalmier  staff  96 Mar 27 09:59 sqlite
>>> drwxr-xr-x  3 jpalmier  staff  96 Mar 27 09:59 openblas
>>>
>>> "brew info openblas" says that it's version 0.3.22, whereas Sage comes 
>>> with 0.3.21. Everything works after building with `./configure 
>>> --with-system-openblas=no`, but that flag triggers some other packages to 
>>> be built by Sage rather than come from the system, so I'm not 100% sure 
>>> it's the issue.
>>>
>>> Has anyone else seen this?
>>>
>>> -- 
>>> John
>>>
>>>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-devel/ee3c60ad-46d7-4718-92d5-12bfeab602a8n%40googlegroups.com.

Reply via email to