From 1f4d2acf82be712a5b6dc4efb4349823d758c08a Mon Sep 17 00:00:00 2001 From: user202729 <25191436+user202729@users.noreply.github.com> Date: Sat, 4 Oct 2025 12:38:26 +0700 Subject: [PATCH] Workaround for linbox charpoly/minpoly issues, take 2 --- src/sage/matrix/matrix_integer_dense.pyx | 2 +- src/sage/matrix/matrix_integer_sparse.pyx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sage/matrix/matrix_integer_dense.pyx b/src/sage/matrix/matrix_integer_dense.pyx index d582393e565..a1ad92fa58b 100644 --- a/src/sage/matrix/matrix_integer_dense.pyx +++ b/src/sage/matrix/matrix_integer_dense.pyx @@ -1416,7 +1416,7 @@ cdef class Matrix_integer_dense(Matrix_dense): sig_on() linbox_fmpz_mat_charpoly(g._poly, self._matrix) sig_off() - if g.lc() == 1: + if g.lc() == 1 and g.degree() == self._nrows: break elif algorithm == 'generic': g = Matrix_dense.charpoly(self, var) diff --git a/src/sage/matrix/matrix_integer_sparse.pyx b/src/sage/matrix/matrix_integer_sparse.pyx index 9c68b951907..dc961d53f44 100644 --- a/src/sage/matrix/matrix_integer_sparse.pyx +++ b/src/sage/matrix/matrix_integer_sparse.pyx @@ -912,7 +912,7 @@ cdef class Matrix_integer_sparse(Matrix_sparse): fmpz_poly_set_coeff_mpz(g._poly, i, tmp) _fmpz_poly_set_length(g._poly, p.size()) - if g.lc() == 1: + if g.lc() == 1 and g.degree() == self._nrows: break del M