#18589: isogeny efficiency improvement
-------------------------+-------------------------------------------------
       Reporter:         |        Owner:
  cremona                |       Status:  needs_work
           Type:         |    Milestone:  sage-6.8
  enhancement            |   Resolution:
       Priority:  major  |    Merged in:
      Component:         |    Reviewers:
  elliptic curves        |  Work issues:
       Keywords:         |       Commit:
  isogeny                |  47ccfd587402b953c612fcd3cddaa541a6847bd3
        Authors:  John   |     Stopgaps:
  Cremona                |
Report Upstream:  N/A    |
         Branch:         |
  u/cremona/18589        |
   Dependencies:         |
-------------------------+-------------------------------------------------

Comment (by cremona):

 Replying to [comment:22 jdemeyer]:
 > Since you write {{{Every kernel polynomial is a product of irreducible
 factors of the division polynomial of the same degree}}}, could special
 case 2 apply by just considering the polynomials of a given degree?

 Yes:  if for some degree d dividing l2=(l-1)/2 there are exactly (l-1)/2d
 factors then their product must be a kernel poly.

 Some more theory:  each subgroup has l2 x-coordinates and the rational
 function m(x) permutes these in a single cycle (by definition of "semi-
 primitive root" as a class mod l which generates the multiplcative group
 modulo <-1>).  A kernel poly is a poly of degree l2 whose set of roots is
 invariant under this map.  Since the map is defined over the ground field,
 each of the x-coordinates in any subgroup has the same degree d over the
 base, so d is a divisor of l2 and the kernel poly is a product of l2/d
 polys of degree d.   On the other hand, an irreducible factor f of degree
 d (where d didvides l2) need not be a factor of a kernel poly, as the F_3
 example with l=13 shows.  If that is the case then the orbit of f under
 mult() will be longer than l2/d and we will detect that after l2/d steps
 we have not returned to the start.  In this circumstance we will have
 removed l2/d factors from the list but this is only *part of* an orbit, so
 later on when we start with one of the remaining factors in that orbit, we
 may well iterate onto a factor which is already removed.

 There, I have proved that g need not be in factors!  And more -- if we
 find a g which is not in factors then we have hit a part-orbit already
 seen so can break.

--
Ticket URL: <http://trac.sagemath.org/ticket/18589#comment:29>
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