I'm seeing a change in error messages when multiplying matrices over incompatible rings.
This is current behavior for just the elements of the base rings. {{{ sage: QQ(45/67)*GF(7)(3) --------------------------------------------------------------------------- TypeError Traceback (most recent call last) /home/sage/dev/devel/sage-main/<ipython console> in <module>() /sage/dev/local/lib/python2.6/site-packages/sage/structure/element.so in sage.structure.element.RingElement.__mul__ (sage/structure/ element.c:12061)() /sage/dev/local/lib/python2.6/site-packages/sage/structure/coerce.so in sage.structure.coerce.CoercionModel_cache_maps.bin_op (sage/ structure/coerce.c:7327)() TypeError: unsupported operand parent(s) for '*': 'Rational Field' and 'Finite Field of size 7' }}} Good. But now, for matrices over the same base rings, the traceback is longer and concludes complaining about not having an inverse of an element (maybe in GF(7)?). Three months ago, a matrix product like this would have yielded a traceback and error message pretty much just like what happens above for plain elements. Any guesses on what has changed? This looks to me like a step backwards, so I wonder if something more fundamental is wrong? {{{ sage: sage: W = matrix(QQ, 1, 2, [3, 4]) sage: sage: V = matrix(GF(7), 2, 1, [2, 5]) sage: sage: W*V --------------------------------------------------------------------------- ZeroDivisionError Traceback (most recent call last) /home/sage/dev/devel/sage-main/<ipython console> in <module>() /sage/dev/local/lib/python2.6/site-packages/sage/structure/element.so in sage.structure.element.Matrix.__mul__ (sage/structure/element.c: 15876)() /sage/dev/local/lib/python2.6/site-packages/sage/structure/coerce.so in sage.structure.coerce.CoercionModel_cache_maps.bin_op (sage/ structure/coerce.c:6368)() /sage/dev/local/lib/python2.6/site-packages/sage/matrix/action.so in sage.matrix.action.MatrixMatrixAction._call_ (sage/matrix/action.c: 2742)() /sage/dev/local/lib/python2.6/site-packages/sage/matrix/ matrix_rational_dense.so in sage.matrix.matrix_rational_dense.Matrix_rational_dense.change_ring (sage/matrix/matrix_rational_dense.c:13867)() /sage/dev/local/lib/python2.6/site-packages/sage/structure/element.so in sage.structure.element.RingElement.__div__ (sage/structure/ element.c:12722)() /sage/dev/local/lib/python2.6/site-packages/sage/structure/coerce.so in sage.structure.coerce.CoercionModel_cache_maps.bin_op (sage/ structure/coerce.c:6426)() /sage/dev/local/lib/python2.6/site-packages/sage/structure/element.so in sage.structure.element.RingElement.__div__ (sage/structure/ element.c:12696)() /sage/dev/local/lib/python2.6/site-packages/sage/rings/finite_rings/ integer_mod.so in sage.rings.finite_rings.integer_mod.IntegerMod_int._div_ (sage/rings/ finite_rings/integer_mod.c:19384)() ZeroDivisionError: Inverse does not exist. }}} -- To post to this group, send an email to sage-devel@googlegroups.com To unsubscribe from this group, send an email to sage-devel+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-devel URL: http://www.sagemath.org