"William Stein" <[EMAIL PROTECTED]> writes: > On 5/21/07, Michel <[EMAIL PROTECTED]> wrote: >> >> Here is another coercion bug (or at least an inconsistency). Perhaps >> it is not worth >> fixing, given that everything is going to change. > > It is not the case that "everything is going to change". The coercion > system will iteratively improve with much thought and design, but most > questions like the one you asking below would be unaffected. There > is no magic that makes the work of implementing coercions just disappear, > especially if one wants coercions to be fast (!). > >> Anyway consider >> >> sage: W=NumberField(z^2+1,'s') >> sage: WXY.<X,Y>=W[] >> sage: a=WXY(0) >> sage: W(a) >> --------------------------------------------------------------------------- >> ... >> <type 'exceptions.TypeError'>: Cannot coerce 0 into Number Field in s >> with defining polynomial z^2 + 1 > > I do not think this is a bug. It is something that hasn't been implemented. > There's never a guarantee that everything you can imagine can non-canonically > be coerced to everything else. In many cases something has been implemented, > but in this case it hasn't. > >> The same example over the rationals is fine >> >> sage: QUV.<U,V>=QQ[] >> sage: a=QUV(0) >> sage: QQ(a) >> 0 >> I could probably fix this but it is not so clear to me yet where this >> automatic coercion happens. > > It's not automatic. You have to explicitly write W(a) above, which > just calls the method W.__call__ with input a. That's the code > you should look at. > > I strongly encourage you to look at __call__ and maybe improve it > so W(a) works. > > Implement it and send me a patch.
If there are lots of doctests I will referee, I've been writing multivariate polynomial coercion patches lately. Nick --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to [email protected] 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/ -~----------~----~----~----~------~----~------~--~---
