On Sun, Jan 18, 2009 at 6:49 AM, Paul Zimmermann <[email protected]> wrote: > Hi, > > I hit the following: > > sage: P.<x> = PolynomialRing(GF(17)) > sage: m = Matrix(P,2,2) > sage: m.randomize(); m > > [ 6*x^2 + 8*x + 12 10*x^2 + 4*x + 11] > [8*x^2 + 12*x + 15 8*x^2 + 9*x + 16] > sage: m.rank() > ... > NotImplementedError: echelon form over Univariate Polynomial Ring in x over > Finite Field of size 17 not yet implemented > > Isn't that provided by either GP or Linbox?
Yes, by gp. I have no idea if it is in Linbox. sage: gp(m).matrank() 2 sage: pari(m).matrank() boom -- matrank not wrapped Somebody *could* implement this by wrapping pari's matrank then doing the conversion and calling it. Of course, much better would be to do: sage: m.change_ring(m.base_ring().fraction_field()).rank() 2 which already works. I am puzzled that rank doesn't first change base to the fraction field, *then* call echelon form -- it's stupid that it tries to call echelon form over the same base ring, since that is often much harder (e.g., it is Hermite form over ZZ). This is now trac #5014: http://trac.sagemath.org/sage_trac/ticket/5014 William --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/sage-support URLs: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---
