On Mon, Nov 26, 2012 at 8:18 AM, Christian Stump
<christian.st...@gmail.com> wrote:
> Concerning everything said, I do agree with Volker.
>
>> But again that does nothing to help discover the functionality. When
>> I first used cyclotomics in Sage I tried E(3) first, but clearly that
>> didn't work.
>> Well, you said yourself that if you're not a GAP user then E() will not be
>> intuitive.
>
> - I think that E() is the most intuitive we have, and it is also true for me
> that one of the first things in Sage I tried was to see if this function
> gives me the elements of the universal cyclotomics field.

I'm not opposed to having them print out in such a manner (though
zeta(N), albeit slightly more verbose, seems more natural), but I am
strongly against introducing this shortcut into the global namespace.
I remember the pain of having all one-letter variables defined as
symbolics, and still get bitten by r/R being defined as the R stats
interfaces.

As for alternatives, I UCF is OK, but I do like the ability to choose
how things print (possibly negating the idea of *the* universal
cyclotomic field). One idea to throw out there is to let zeta[N] give
generators for this field, as the behavior of zeta(N) is already taken
and widely used. Most important to it's discoverability is having it
come up when doing a search (e.g. in the documentation) or a very
obvious tab-completable name (e.g. UniversalCyclotomicField or
AbelianClosure).

> - I don't see why we shouldn't try to convince a GAP user by telling
> him/her: "see, the cyclotomics behave as you expect them to behave". (Even
> if this only convince a few, I think it's worth.)

There is so much more to learn in coming from GAP that I don't think
this is an effective argument to make (and it's easy to define to make
Sage more "GAP-like" for anyone who cares).

>> where UCF.gen(i) should probably give you the primitive i-th root of
>> unity.
>
> I agree that I could add this, though the term "gen" or "gens" is a little
> stretched in this context. In which sense do exp( 2 pi i / n ) for all n
> generate the UCF ? They certainly do generate it as an algebra over QQ, but
> this is far from minimal, see Nicolas' example E(6) = -E(3), or E(9) =
> -E(9)^4 - E(9)^7. As a vector space, UCF is e.g. generated by the Zumbroich
> basis which can be accessed currently using UCF.zumbroich_basis(n) which
> gives you the generators of order n.
>
> - Concerning the startup time, I would appreciate if someone could check how
> much the generation of the UCF influences the startup time. The trivial test
> time echo "" | ./sage' doesn't show any difference.

It's really hard to profile startup time, but one problem is that the
variance is much higher than loading any individual module, and the
other is that it's death by a thousand cuts, with each module only
taking a couple of ms but the whole being unacceptable.

- Robert

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To post to this group, send email to sage-devel@googlegroups.com.
To unsubscribe from this group, send email to 
sage-devel+unsubscr...@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel?hl=en.


Reply via email to