linsolve_by_lu on a singular matrix signals a Lisp FLOATING-POINT-INVALID-OPERATION instead of a Maxima error
Maxima 5.49post, SBCL 2.6.7.
(%i1) display2d:false$
(%i2) load(linearalgebra)$
(%i3) print(errcatch(linsolve_by_lu(matrix([1.0,2.0],[2.0,4.0]), matrix([1.0],[2.0]))))$
arithmetic error FLOATING-POINT-INVALID-OPERATION signalled
Operation was (/ 0.0 0.0).
[]
Expected: a Maxima-level diagnostic naming the matrix as singular. invert_by_lu behaves the same way.