On Sep 17, 2007, at 7:37 PM, William Stein wrote:

> On Sep 16, 2007, at 6:20 PM, William Stein wrote:
> > I'm implementing a subfields command that returns
> > a list of all subfields of a number field K.  It should be possible
> > to make it so each subfield canonically coerces into K.
> > How do I do that with your new coercion code?  Is enough
> > written to make that possible?
> >
> > For now, I'm just writing a lot of functions that return
> >     object, map from object to ambient
> > and we can change it to just set a canonical coercion when
> > you explain the above.
>
>
> On 9/17/07, Robert Bradshaw <[EMAIL PROTECTED] > wrote:
> Every parent has a _coerce_from_list (cdef) attribute. To set up
> coercion, all you need to do is create a Morphism object that does
> subfield -> K and append it to K. _coerce_from_list. Perhaps this
> should be made into a(n underscore) method.
>
> Is there one example in the entire SAGE codebase that actually does  
> this?
> I suspect not, since:
>
> sage: search_src('_coerce_from_list')
> ----------------------------------------------------------------------
> | SAGE Version 2.8.4.2, Release Date: 2007-09-13                     |
> | Type notebook() for the GUI, and license() for information.        |
> ----------------------------------------------------------------------
> structure/parent.pyx:        self._coerce_from_list = list 
> (coerce_from)
> structure/parent.pyx:            other._coerce_from_list.append(mor)
> structure/parent.pyx:            self._coerce_from_list = []
> structure/parent.pyx:        for mor in self._coerce_from_list:
> structure/parent.pyx:                i =  
> self._coerce_from_list.index(R)
> structure/parent.pyx:                self._coerce_from_list[i] =  
> mor # cache in case we need it again
> structure/parent.pxd:    cdef _coerce_from_list

That's because it's so new, and also because everything so far is  
defined statically with the behavior of _coerce_try. I didn't go  
through and change everything to use the new methods.

> One issue is that might not affect the __call__ method of K being
> able to interpret things correctly. It might be a good thing to re-
> write __call__ methods to try coercion first, and only do non-
> canonical things if that fails.
>
> We really need a __call__ infrastructure. It's been suggesting a few
> times before (most recently by Joel Mohler, I think), and I hope it
> will get some discussion now.

I agree, something needs to be done here. The problem is that  
__call__ can take so many different parameters.


--~--~---------~--~----~------------~-------~--~----~
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/
-~----------~----~----~----~------~----~------~--~---

Reply via email to