Ticket #6835 (closed defect: fixed)
[with patch, positive review] Inconsistent types for degree of finite fields
| Reported by: | cremona | Owned by: | tbd |
|---|---|---|---|
| Priority: | minor | Milestone: | sage-4.1.2 |
| Component: | algebra | Keywords: | finite field |
| Cc: | JCooley | Work issues: | |
| Report Upstream: | Reviewers: | Mike Hansen | |
| Authors: | John Cremona | Merged in: | Sage 4.1.2.alpha0 |
| Dependencies: | Stopgaps: |
Description
Finite fields in Sage have 4 different types, depending on the characteristic and degree. There is an inconsistency in the type of the degree of the field:
sage: k = GF(2,'b'); type(k); type(k.degree()) <class 'sage.rings.finite_field_prime_modn.FiniteField_prime_modn'> <type 'int'> sage: k = GF(2^10,'b'); type(k); type(k.degree()) <type 'sage.rings.finite_field_givaro.FiniteField_givaro'> <type 'sage.rings.integer.Integer'> sage: k = GF(2^40,'b'); type(k); type(k.degree()) <type 'sage.rings.finite_field_ntl_gf2e.FiniteField_ntl_gf2e'> <type 'sage.rings.integer.Integer'> sage: k = GF(3^40,'b'); type(k); type(k.degree()) <class 'sage.rings.finite_field_ext_pari.FiniteField_ext_pari'> <type 'int'>
i.e. in 2 of the 4 cases the degree is an int rather than an Integer.
Patch soon.
Attachments
Change History
Changed 4 years ago by cremona
-
attachment
trac_6835-finite-field-degree.patch
added
comment:1 Changed 4 years ago by cremona
- Summary changed from Inconsistent types for degree of finite fields to [with patch, needs review] Inconsistent types for degree of finite fields
- Authors set to John Cremona
The patch is very simple, just two lines changed (one for each type). I tested all files in sage/rings. After:
sage: k = GF(2,'b'); type(k); type(k.degree()) <class 'sage.rings.finite_field_prime_modn.FiniteField_prime_modn'> <type 'sage.rings.integer.Integer'> sage: k = GF(2^10,'b'); type(k); type(k.degree()) <type 'sage.rings.finite_field_givaro.FiniteField_givaro'> <type 'sage.rings.integer.Integer'> sage: k = GF(2^40,'b'); type(k); type(k.degree()) <type 'sage.rings.finite_field_ntl_gf2e.FiniteField_ntl_gf2e'> <type 'sage.rings.integer.Integer'> sage: k = GF(3^40,'b'); type(k); type(k.degree()) <class 'sage.rings.finite_field_ext_pari.FiniteField_ext_pari'> <type 'sage.rings.integer.Integer'>
Note: See
TracTickets for help on using
tickets.

Applies to 4.1.1