First time here? Check out the FAQ!

Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Receiving "SignalError: Illegal instruction" calculating `jordan_form` for matrices larger than 4x4.

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().