Maxime Bombar
unread,Jul 1, 2020, 4:36:20 AM7/1/20Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Sign in to report message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to sage-...@googlegroups.com
Hi,
I think there is a bug with the Frobenius Maps of finite fields of
characteristic 2 implemented using NTL :
Here is what happened with finite fields implemented using the Givaro
library (finite fields of characteristic 2 and degree <= 15). This is
what we expect.
```
sage: k = GF(2^15)
sage: k.frobenius_endomorphism() == k.frobenius_endomorphism()
True
sage: type(k)
<class
'sage.rings.finite_rings.finite_field_givaro.FiniteField_givaro_with_category'>
```
Here is what happened for finite field of odd characteristic
(implemented using the PARI library) :
```
sage: k = GF(3^16)
sage: k.frobenius_endomorphism() == k.frobenius_endomorphism()
True
sage: type(k)
<class
'sage.rings.finite_rings.finite_field_pari_ffelt.FiniteField_pari_ffelt_with_category'>
```
However, it raises an exception for finite field implemented using NTL
(I can give a full traceback, but this is easy to reproduce) :
```
sage: k = GF(2^16)
sage: type(k)
<class
'sage.rings.finite_rings.finite_field_ntl_gf2e.FiniteField_ntl_gf2e_with_category'>
sage: k.frobenius_endomorphism() == k.frobenius_endomorphism()
TypeError: None fails to convert into the map's domain Finite Field in
z16 of size 2^16, but a `pushforward` method is not properly implemented
```
The same behaviour happens if we force the implementation of a finite
field with NTL :
```
sage: k = GF(2^15, impl="ntl")
sage: type(k)
<class
'sage.rings.finite_rings.finite_field_ntl_gf2e.FiniteField_ntl_gf2e_with_category'>
sage: k.frobenius_endomorphism() == k.frobenius_endomorphism()
TypeError: None fails to convert into the map's domain Finite Field in
z15 of size 2^15, but a `pushforward` method is not properly implemented
```
I checked this on each version of sagemath since 8.6 using CoCalc on the
sage website.
I'm trying to help here, and if I find something I will be pleased to
propose a fix, so if someone familiar with the codebase is willing to
give me a hint, I would be glad.
Many thanks,
--
Maxime Bombar