#16238: Correct call convention for isogenies
-------------------------------------+-------------------------------------
       Reporter:  sbesnier           |        Owner:
           Type:  defect             |       Status:  new
       Priority:  major              |    Milestone:  sage-6.2
      Component:  elliptic curves    |   Resolution:
       Keywords:  call isogeny       |    Merged in:
        Authors:  Sébastien Besnier  |    Reviewers:
Report Upstream:  N/A                |  Work issues:
         Branch:                     |       Commit:
  u/sbesnier/ticket/16238            |  fbe7647092fba74971fe5e1e9c0cbe82e19d02ae
   Dependencies:  #12880             |     Stopgaps:
-------------------------------------+-------------------------------------
Changes (by sbesnier):

 * commit:   => fbe7647092fba74971fe5e1e9c0cbe82e19d02ae
 * branch:   => u/sbesnier/ticket/16238


Comment:

 I've done the suggested modifications. The coercion staff is now handle by
 Map (the doctests concercing isogeny equality still fail, it'll be fix as
 soon as #11474 will be fix).

 Currently, we can call `phi((1,0))`, but no `phi(1,0)` (in the same way we
 can call `E(1,0)`). Do you think it would be usefull to implement that? We
 should use something like:
 {{{#!python

 def _call_with_args(self, x, y=None,kwd={}):
     return self._call_(self.__E2(x,y))

 }}}

 But this simple code doesn't work at all! Indeed, when we call for example
 `phi(0,0)`, the first arg is first coerced to `phi.__E1(0)` and then
 passed to `_call_with_args`.

 Should I overload `__call__`, in this way:
 {{{#!python
 def __call__(self,x,y=None):
     if y is None:
        return Map.__call__(self,x)
     else:
        return Map.__call__(self,(x,y))
 }}}
 ?

 But this looks a bit creepy to me.
 ----
 New commits:
 
||[http://git.sagemath.org/sage.git/commit/?id=b486f244b98a16b144cd45399eee3112ed5f824b
 b486f24]||{{{Fix parents, domain, codomain and _composition_
 isogenies.}}}||
 
||[http://git.sagemath.org/sage.git/commit/?id=73d99af403e760801ae2576dfbb6f7629d629f30
 73d99af]||{{{Corrects the precedent commit.}}}||
 
||[http://git.sagemath.org/sage.git/commit/?id=8c5cdcd42b2dd167dcdf27bc0c0251de4681fe66
 8c5cdcd]||{{{Fix composition.}}}||
 
||[http://git.sagemath.org/sage.git/commit/?id=fbe7647092fba74971fe5e1e9c0cbe82e19d02ae
 fbe7647]||{{{Clean _call_, __call__ becomes _call_, second argment is
 removed.}}}||

--
Ticket URL: <http://trac.sagemath.org/ticket/16238#comment:4>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to