#13376: Optional SPKG for SmallJac
-------------------------------------+--------------------------------------
       Reporter:  pavpanchekha       |         Owner:  tbd         
           Type:  enhancement        |        Status:  needs_review
       Priority:  major              |     Milestone:              
      Component:  optional packages  |    Resolution:              
       Keywords:                     |   Work issues:              
Report Upstream:  N/A                |     Reviewers:              
        Authors:                     |     Merged in:              
   Dependencies:                     |      Stopgaps:              
-------------------------------------+--------------------------------------
Changes (by pavpanchekha):

  * status:  new => needs_review


Old description:

> Smalljac is a library and set of programs for computing L-polynomials and
> Jacobian group structures of low genus curves over finite fields. Given a
> curve C of genus 1 or 2 defined over Q or a quadratic number field, it
> will efficiently compute either the sequence of L-polynomials or Jacobian
> group structures arising from the reduction of C at all primes of good
> reduction up to a specified norm bound.
>
> This set of SPKGs and the corresponding patch to Sage 5.2 add support for
> using smallJac from Sage.
>
>  * `EllipticCurve.aplist` can be run with `algorithm="smalljac"`,
> yielding run times of six times faster on a single core.
>
>  * `EllipticCurve.aplists` provides more usable representation the above,
> and supports number fields (multiple reductions per prime norm).  See the
> documentation for more, but in general `aplist` couldn't be made very
> easy to use for the number field case.
>
>  * `EllipticCurve.grouplists` gives the abelian groups isomorphic to
> various reductions of a curve.
>
>  * `EllipticCurve.lpolylists` yields the L-Polynomials of reductions of a
> curve.
>
>  * `EllipticCurve.guess_sato_tate_group` attempts to guess the Sato-Tate
> group of the Jacobian of a curve of genus 1 or 2 based on the
> distribution of its L-polynomial coefficients.
>
>  * `EllipticCurve.moments` yields the moments of the distribution of
> coefficients of the L-Polynomials.
>
>  * `EllipticCurve.trace_histogram` gives a very simple histogram for the
> distribution of traces of Frobenius of a curve, reduced at a range of
> primes.
>
> For all of the above methods (except `aplist`), identical functionality
> exists (with the same name) for genus 2 curves.  All of the above methods
> also parallelize over multiple cores (currently, to a power of two
> cores).  For large problems, this achieves approximately linear speedup;
> for example, computing the first billion traces of Frobenius of an
> ordinary elliptic curve is 178 times faster on 32 cores.
>
> For each of these features, there is Sage documentation docstring-style
> documentation.
>
> The SPKGs only compile and work on 64-bit machines, since SmallJac only
> supports 64-bit architectures, and require GMP.  Two SPKGs are provided,
> since SmallJac depends on ff_poly, but so does some of Drew Sutherland's
> other code, so it makes sense to split the two.  They've been tested to
> work on a completely clean install of Sage on at least two differently-
> configured machines.
>
> The patch has been tested to apply cleanly to 5.2.

New description:

 Smalljac is a library and set of programs for computing L-polynomials and
 Jacobian group structures of low genus curves over finite fields. Given a
 curve C of genus 1 or 2 defined over Q or a quadratic number field, it
 will efficiently compute either the sequence of L-polynomials or Jacobian
 group structures arising from the reduction of C at all primes of good
 reduction up to a specified norm bound.

 This set of SPKGs and the corresponding patch to Sage 5.6 add support for
 using smallJac from Sage.

  * `EllipticCurve.aplist` can be run with `algorithm="smalljac"`, yielding
 run times of six times faster on a single core.

  * `EllipticCurve.aplists` provides more usable representation the above,
 and supports number fields (multiple reductions per prime norm).  See the
 documentation for more, but in general `aplist` couldn't be made very easy
 to use for the number field case.

  * `EllipticCurve.grouplists` gives the abelian groups isomorphic to
 various reductions of a curve.

  * `EllipticCurve.lpolylists` yields the L-Polynomials of reductions of a
 curve.

  * `EllipticCurve.guess_sato_tate_group` attempts to guess the Sato-Tate
 group of the Jacobian of a curve of genus 1 or 2 based on the distribution
 of its L-polynomial coefficients.

  * `EllipticCurve.moments` yields the moments of the distribution of
 coefficients of the L-Polynomials.

  * `EllipticCurve.trace_histogram` gives a very simple histogram for the
 distribution of traces of Frobenius of a curve, reduced at a range of
 primes.

 For all of the above methods (except `aplist`), identical functionality
 exists (with the same name) for genus 2 curves.  All of the above methods
 also parallelize over multiple cores (currently, to a power of two cores).
 For large problems, this achieves approximately linear speedup; for
 example, computing the first billion traces of Frobenius of an ordinary
 elliptic curve is 178 times faster on 32 cores.

 For each of these features, there is Sage documentation docstring-style
 documentation.

 The SPKGs only compile and work on 64-bit machines, since SmallJac only
 supports 64-bit architectures, and require GMP.  Two SPKGs are provided,
 since SmallJac depends on ff_poly, but so does some of Drew Sutherland's
 other code, so it makes sense to split the two.  They've been tested to
 work on a completely clean install of Sage on at least two differently-
 configured machines.

 The patch has been tested to apply cleanly to 5.6.

 SPKGs are available at [http://www.mit.edu/~pavpan/].  Install first the
 ff_poly package and then the smalljac package, with the normal Sage
 package installation mechanisms.  Then apply the patch to a fresh branch
 of the source code and recompile that branch.

--

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/13376#comment:8>
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?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to