+1 for having a default, though I would choose 'a'.
> Nathann
>
> --
> 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+...@googlegroups.com.
> To post to this group, send email to sage-...@googlegroups.com.
> Visit this group at https://groups.google.com/group/sage-devel.
> For more options, visit https://groups.google.com/d/optout.
> Is there any reason to not make GF(16) behave as GF(16,'x') does,
> unless specified otherwise? I do not see the point of requesting the
> user to provide a character if (s)he does not care.
>+1 for having a default, though I would choose 'a'.
If conflicts can come from the choice of a variable name, I'd say that
the problem is not the variable's name but the code that relies on it.
On Wednesday, January 20, 2016 at 1:49:12 PM UTC-8, Nathann Cohen wrote:If conflicts can come from the choice of a variable name, I'd say that
the problem is not the variable's name but the code that relies on it.
Conflicts do not arise from variable names (or at least not the conflicts we need to be worried about). It's that the names of generators are part of the identity of a parent in sage: It is expected that for some structure generator S, the result of S(name='a') and of S(name='b') interact differently with other structures in sage.
Thus, if we decide the default name is "conway" then GF(p^r) and GF(p^r,'conway') will behave the same (they should be identical objects in fact!), but GF(p^r) and GF(p^r,'x') will behave differently. If we choose dthe default name 'a' then GF(p^r) and GF(p^r,'a') will behave the same but GF(p^r) and GF(p^r,'conway') will behave differently.
to me, two fields that are specified by the same irreducible polynomial over the same prime subfield ought to be identical.it'd be much better design, not wedding them to named generators at all.
On Wed, Jan 20, 2016 at 6:20 PM, William Stein <wst...@gmail.com> wrote:
> Nils -- many thanks for your post explaining the longterm perspective
> and underlying reasons why things are the way they are.
>
> I mentioned this thread in my class today, which happened to be on
> constructing finite fields in Sage:
>
> https://cloud.sagemath.com/projects/b85dd1b3-3f5f-4c2d-b503-242612561b9e/files/lectures/2016-01-20/2016-01-20-part2-finite-fields.sagews
>
> Also -- pdf attached to this email....
>
> The immediate surprises I hit when looking again at finite fields from
> a high level after all this time (and we did a *lot* with finite
> fields before there was a coercion model -- e.g., crazy Givaro
> wrapping in Cython before there was Cython C++ support) is that the
> following things don't exist:
>
> (1) GF(3^2,'a').embeddings(GF(3^6,'b')) # like we do have for number fields
>
> (2) GF(3^2,'a').gen() + GF(3^3,'b').gen()
The surrounding discussion about variables names provide a good reason
why (2) shouldn't work. However (1) should exist (and would be about
3 lines of code to add).
>
> However, the new Fpbar stuff by Vincent looks awesome (especially if
> we had embeddings)...
>