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.