I recently upgraded to version 10.6 and had this break today:
S = matrix(ZZ, [[-1, -1, -2, -2], [-1, -1, -2, -2], [-2, -2, -1, -1], [-2, -2, -1, -1]])
S.jordan_form(transformation=True)
---------------------------------------------------------------------------
SignalError Traceback (most recent call last)
Cell In[72], line 1
----> 1 S.jordan_form(transformation=True)
File /usr/lib/python3.13/site-packages/sage/matrix/matrix2.pyx:11673, in sage.matrix.matrix2.Matrix.jordan_form (build/cythonized/sage/matrix/matrix2.c:95681)()
11671 evals = eigenvalues
11672 else:
> 11673 evals = A.charpoly().roots()
11674 if sum(mult for (_, mult) in evals) < n:
11675 raise RuntimeError("Some eigenvalue does not exist in %s." % (A.base_ring()))
File /usr/lib/python3.13/site-packages/sage/matrix/matrix_rational_dense.pyx:1041, in sage.matrix.matrix_rational_dense.Matrix_rational_dense.charpoly (build/cythonized/sage/matrix/matrix_rational_dense.cpp:20038)()
1039 if algorithm == 'flint' or algorithm == 'linbox':
1040 A, denom = self._clear_denom()
-> 1041 f = A.charpoly(var, algorithm=algorithm)
1042 x = f.parent().gen()
1043 g = f(x * denom) / denom ** f.degree()
File /usr/lib/python3.13/site-packages/sage/matrix/matrix_integer_dense.pyx:1367, in sage.matrix.matrix_integer_dense.Matrix_integer_dense.charpoly (build/cythonized/sage/matrix/matrix_integer_dense.cpp:24713)()
1365 if algorithm == 'flint':
1366 g = (<Polynomial_integer_dense_flint> PolynomialRing(ZZ, names=var).gen())._new()
-> 1367 sig_on()
1368 fmpz_mat_charpoly(g._poly, self._matrix)
1369 sig_off()
SignalError: Illegal instruction
The eigenvalues of this matrix are actually nice:
factor((x*identity_matrix(S.nrows())-S).det())
(x + 6)*(x - 2)*x^2
I'm also getting the "Illegal instruction" error with S.characteristic_polynomial()
and S.eigenvalues()
.