Ideally I should be the element x in ZZ[x]/(x^2+1) (and not QQ[x]/ (x^2+1)).
Likewise zeta[n] could be the element y in ZZ[y]/(y^n-1). These rings should have automatic coercions to many other rings (including of course the symbolic ring). Michel On Jun 12, 8:04 pm, Robert Bradshaw <[EMAIL PROTECTED]> wrote: > On Jun 12, 2007, at 8:21 AM, Nick Alexander wrote: > > > > > "William Stein" <[EMAIL PROTECTED]> writes: > > >> On 6/12/07, Robert Bradshaw <[EMAIL PROTECTED]> wrote: > >>> I think the default I should belong to the number field Q[I] (or > >>> perhaps even the ring of integers) to start with (together with a > >>> fixed embedding into C). It would be coerced into C, the symbolic > >>> ring, etc. as needed. > > >> With the current coercion and number field model, I very strongly > >> disagree -- the I should be symbolic. Anyway, > >> you didn't give any argument for why you think "I" should be a > >> number field > >> element instead of a symbolic element. I would probably agree > >> with you if you > >> were to give a good argument for why you think that, and if number > >> fields were > >> much more sophisticated, and if the coercion model were suitably > >> enhanced. > > > Making I different from any other symbol is confusing to me, too. Are > > we going to declare zeta2, ..., zetan to be the other roots of unity? > > And have the all special cased too? The symbolic functionality is at > > least symmetric. > > My reasoning is the same as for making sqrt(2), etc. belong to a > number field rather than the symbolics. First is simply speed, > especially over compound objects--e.g. a power series over the > symbolic ring is really slow. I also think it's unnatural to have to > manually simplify "constant" expressions like 1/(1+I). Symmetry is > already broken, as I is already special > > sage: I^2 > -1 > > Maple and Mathematica have this behavior: > > sage: maple("1/(1+I)") > 1/2-1/2*I > > sage: mathematica("1/(1+I)") > 1 I > - - - > 2 2 > > Doing this (in general), symbolically, would be difficult. Instead, > the arithmetic operations will just keep "piling up." If one wants > this behavior one could explicitly coerce into the symbolic field. > Also, I think things should start out in as restricted a ring as > possible, both to have coercion work and for specific functionality, > e.g. one should be able to do > > sage: (1+I/3).charpoly('x') > x^2 - 2*x + 10/9 > > I am assuming an enhanced coercion model and number fields with > embeddings (hopefully in the near future). > > -Robert --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-devel@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sage-devel URLs: http://sage.scipy.org/sage/ and http://modular.math.washington.edu/sage/ -~----------~----~----~----~------~----~------~--~---