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
-~----------~----~----~----~------~----~------~--~---

Reply via email to