You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Sparse integer matrices get sent to the generic Smith form routine, where they fail (see #10625). They should instead get dense-ified
and routed to the integer-only version. This solves some failures on #10604.
sage: A = matrix(2, range(4), sparse=True)
sage: A.smith_form()
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
/home/sage/sage-4.6.1.alpha2/devel/sage-main/<ipython console> in <module>()
/home/sage/sage-4.6.1.alpha2/local/lib/python2.6/site-packages/sage/matrix/matrix2.so in sage.matrix.matrix2.Matrix.smith_form (sage/matrix/matrix2.c:37477)()
/home/sage/sage-4.6.1.alpha2/local/lib/python2.6/site-packages/sage/matrix/matrix2.so in sage.matrix.matrix2._smith_onestep (sage/matrix/matrix2.c:42366)()
/home/sage/sage-4.6.1.alpha2/local/lib/python2.6/site-packages/sage/matrix/matrix2.so in sage.matrix.matrix2._smith_onestep (sage/matrix/matrix2.c:42181)()
/home/sage/sage-4.6.1.alpha2/local/lib/python2.6/site-packages/sage/matrix/matrix2.so in sage.matrix.matrix2._generic_clear_column (sage/matrix/matrix2.c:41049)()
/home/sage/sage-4.6.1.alpha2/local/lib/python2.6/site-packages/sage/rings/integer.so in sage.rings.integer.Integer.inverse_mod (sage/rings/integer.c:28740)()
/home/sage/sage-4.6.1.alpha2/local/lib/python2.6/site-packages/sage/rings/integer.so in sage.rings.integer.as_Integer (sage/rings/integer.c:6052)()
/home/sage/sage-4.6.1.alpha2/local/lib/python2.6/site-packages/sage/rings/integer.so in sage.rings.integer.Integer.__init__ (sage/rings/integer.c:7312)()
TypeError: unable to coerce <class 'sage.rings.ideal.Ideal_pid'> to an integer
Patch mirrors docstring for dense matrices and just ships off a dense version of the matrix to that code. matrix/matrix_integer_sparse.pyx is not included into the documentation, so I've added that chore to my list.
I've just uploaded a patch at #10625, which makes the examples here work. That said, densifying a matrix and calculating Smith form of that using integer-specific routines is going to be much faster than calling a slow generic routine; so this patch should still be applied. Applies fine to 4.6.2.alpha0 and all doctests pass, so positive review.
Sparse integer matrices get sent to the generic Smith form routine, where they fail (see #10625). They should instead get dense-ified
and routed to the integer-only version. This solves some failures on #10604.
CC: @dandrake @sagetrac-jthurber
Component: linear algebra
Keywords: Smith form
Author: Rob Beezer
Reviewer: David Loeffler
Merged: sage-4.6.2.alpha3
Issue created by migration from https://trac.sagemath.org/ticket/10626
The text was updated successfully, but these errors were encountered: