Dear Vincent,
you're exactly right. Here is a minimal example:

sage: M = Manifold(2, 'M', structure='top')
sage: X.<x,y> = M.chart()
sage: matrix = MatrixSpace(X.function_ring(), 2)([x,0,0,y]); matrix

[x 0]
[0 y]
sage: sage: matrix.adjugate()

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-4-4d376cef30d0> in <module>()
----> 1 matrix.adjugate()

/home/michi/GitProjects/sage/local/lib/python2.7/site-packages/sage/matrix/matrix2.pyx
 in sage.matrix.matrix2.Matrix.adjugate 
(build/cythonized/sage/matrix/matrix2.c:66666)()
   8948             return X
   8949 
-> 8950         X = self._adjugate()
   8951         self.cache('adjugate', X)
   8952         return X

/home/michi/GitProjects/sage/local/lib/python2.7/site-packages/sage/matrix/matrix2.pyx
 in sage.matrix.matrix2.Matrix._adjugate 
(build/cythonized/sage/matrix/matrix2.c:66896)()
   9064         MS = self._parent
   9065 
-> 9066         f = self.charpoly()
   9067 
   9068         # A will be the adjugate of M and N is used to store powers of M

/home/michi/GitProjects/sage/local/lib/python2.7/site-packages/sage/matrix/matrix2.pyx
 in sage.matrix.matrix2.Matrix.charpoly 
(build/cythonized/sage/matrix/matrix2.c:20041)()
   2353             elif is_IntegerModRing(R):
   2354                 f = self.lift().charpoly(var).change_ring(R)
-> 2355             elif R.is_field(proof = False) and R.is_exact():
   2356                 f = self._charpoly_hessenberg(var)
   2357             else:

TypeError: is_integral_domain() got an unexpected keyword argument 'proof'


It seems like huge parts of the code rely on is_field(). It'd be desireable 
to make the code more flexible in this way and implement the adjugate 
method as standard inversion algorithm for more general rings.

Regards,
Michael

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-devel/65dfac16-c665-4d6e-a24a-8d3572aa4cc2%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to