Differences between revisions 2 and 50 (spanning 48 versions)
Revision 2 as of 2010-07-05 14:03:52
Size: 2054
Editor: RobertMiller
Comment:
Revision 50 as of 2010-08-31 23:54:42
Size: 8432
Editor: was
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
## page was renamed from CodingProjects

<<TableOfContents>>

== Descent on Cyclic Covers of the Projective Line ==

 Port 200 lines of Magma code to Sage.

 * People: Michael Mourao, Maite Aranes


== Finite Fields ==

Deal with David Roe's latest patch bomb.

 * People: John Cremona

 * Tickets: #7883, #8333, #8334, #8335

Line 13: Line 33:
 * People: Bart de Smit, Willem Jan Palenstijn, Demeyer, Mak Trifkovic, Thijs van Dijk, Alyssa Milburn, Dan Bernstein, Sebastian Pancratz  * People: Bart de Smit, Willem Jan Palenstijn, Jeroen Demeyer, Mak Trifkovic, Thijs van Dijk, Alyssa Milburn, Dan Bernstein, Sebastian Pancratz
Line 20: Line 40:
 * People: Dan Bernstein, Tanja Lange, (Nils, Tanja's student, remotely), Johannes van der Horst, Michiel Kosters, Marco Streng, Vince Bush, Julio Brau, Michael Mourao


== Riemann-Roch Space (Normalization) ==


 * There are function fields over an arbitrary base field
 * basic infrastructure
 * People: William Stein, Maarten Derickx, Peter Bruin, Jan Tuitman, Max Flander, Tanja Lange, Michiel Kosters, Christiane Peters, Marco Streng
 * People: Dan Bernstein, Tanja Lange, Niels Duif, Johannes van der Horst, Michiel Kosters, Marco Streng, Vince Bush, Julio Brau, Michael Mourao, John Cremona
 * Tom Fisher's Magma code for invariants and covariants of plane cubics [[attachment:covariants.m]], and for minimization and reduction of genus one models [[attachment:g1minimisation-2008.m]] [[attachment:g1reduction-2008.m]] [[attachment:minred-demo1.m]] [[attachment:minred-demo2.m]]
 * Ian Connell's lecture notes contain all the formulas needed to convert plane cubics and hyperelliptic quartics: see http://www.math.mcgill.ca/connell/public/ECH1/ (first several pages of Chapter 1 (c1.ps)).


== Function Fields ==

The main goal of this project is to get the basic infrastructure for function fields into Sage. If time permits, we will also implement Hess's algorithms. See [[daysff/curves|Hess's papers and talks]].



People: William Stein, Maarten Derickx, Peter Bruin, Jan Tuitman, Max Flander, Tanja Lange, Michiel Kosters, Christiane Peters, Marco Streng

 * Trac 9054: [[http://trac.sagemath.org/sage_trac/ticket/9054|Create a class for basic function_field arithmetic for Sage]]
 * Trac 9069: [[http://trac.sagemath.org/sage_trac/ticket/9069|Weak Popov Form (reduction algorithm)]]
 * Trac 9094: [[http://trac.sagemath.org/sage_trac/ticket/9094|is_square and sqrt for polynomials and fraction fields]]
 * Trac 9095: [[http://trac.sagemath.org/sage_trac/ticket/9095|Heights of points on elliptic curves over function fields]]
 
Make sure to see [[daysff/curves|this page for more links]].
Line 33: Line 63:

 * plotting, actions, fundamental domains
 * Java
 * port Verrill's fund.dom. program
 * People: Vincent Delecroix, Maite Arianes, Thijs van Dijk
 * plotting (arc of circle, filling domain bounded with arc of circles, ...)
 * actions (using the coercion model to act on Hyperbolic Plane element by matrices)
 * fundamental domains (port H. Verrill program and implement R. Kulkarni method)
 * People: Vincent Delecroix, Maite Aranes, Thijs van Dijk

{{http://iml.univ-mrs.fr/~delecroi/hyp-pic1.png|cool hyperbolic picture 1}}
{{http://iml.univ-mrs.fr/~delecroi/hyp-pic2.png|cool hyperbolic picture 2}}

Related tickets
 * Trac 3313: [[http://trac.sagemath.org/sage_trac/ticket/3313|Old ticket for lifting of SL_m(Z/nZ) to SL_m(Z)]]
 * Trac 7424: [[http://trac.sagemath.org/sage_trac/ticket/7424|Inconsistency of SL and PSL]]
 * Trac 9076: [[http://trac.sagemath.org/sage_trac/ticket/9076|plot arc of circle]]

Created tickets:
 * Trac 9437: [[http://trac.sagemath.org/sage_trac/ticket/9437|detected bug for special linear group over finite rings]]
 * Trac 9439: [[http://trac.sagemath.org/sage_trac/ticket/9439|hyperbolic geometry]]

Todo:
  * create a class for fundamental domains and make pairings appear on the boundary
  * work on general subgroup of the modular group
Line 55: Line 99:
 * People: Andy Novocin, Wieb Bosma, Johannes van der Horst, Bill Hart  * People: Andy Novocin, Wieb Bosma, Johannes van der Horst, Bill Hart, Max Flander

=== Swinnerton-Dyer Polynomials ===

See [[http://trac.sagemath.org/sage_trac/ticket/9492|trac 9492]].

 * Some code:
{{{
sage: a = sqrt(2)+sqrt(3)+sqrt(5)+sqrt(7)+sqrt(11)
sage: f = algebraic_dependency(a.numerical_approx(10000),32)
sage: b = a.numerical_approx(100000)
sage: time f(b)
}}}

 * Code by Jeroen Demeyer to compute Swinnerton-Dyer polynomials very quickly using p-adics:
{{{
# Lift a padic `x` to ZZ, but centered around zero.
def centerlift(x):
    modulus = x.parent().prime_pow(x.precision_absolute())
    z = ZZ(x);
    if (2*z > modulus):
        z -= modulus
    return z

# L = list of numbers you want to take the square root of.
# bound = bound on the absolute value of the coefficients of
# the resulting polynomial.
def swinnerton_dyer(L, bound):
    for p in Primes():
        if all([gcd(p,s) == 1 and is_square(Mod(s,p)) for s in L]):
            break
    prec = ceil(log(bound)/log(p))
    print "Using p =", p
    print "Precision:", p, "^", prec
    K = Qp(p, prec, print_mode="terse", print_pos=False)
    
    sqrts = [sqrt(K(s),extend=False) for s in L]
    
    n = len(L)
    padic_roots = []
    for k in range(0, 2^n):
        binary = ZZ(k).digits(base=2,padto=n)
        root = sum([sqrts[i]*(binary[i]*2-1) for i in range(0,n)])
        padic_roots.append(root)
    t = polygen(K)
    pol_padic = prod([t - r for r in padic_roots])
    coeffs_ZZ = [centerlift(c) for c in pol_padic.list()]
    max_coeff = max([abs(c) for c in coeffs_ZZ])
    print "Largest coefficient:", p, "^", ceil(log(max_coeff)/log(p))
    return PolynomialRing(ZZ, names='t')(coeffs_ZZ)

# Example:
time swinnerton_dyer([2,3,5,7,11,13,17,19,23,29], 2^4000) # bound is heuristic
}}}
Line 60: Line 157:
 * fmpz in Sage
 * a very concrete C project
Line 63: Line 161:

== fmpz in Sage, or in MPIR ==


 *

Line 72: Line 163:

 * unify for matrices over GF(p)
 * C++ wizardry, etc
 * Polish linbox-sage interface (in LinBox), and release 1.1.7rc1
 * Update Sage interface
 * Rewrite of sage-matrix-modn-dense: continued the work initiated at SD16 with Burcin
 * Mod 2 reduction bug (fixed!): [[http://trac.sagemath.org/sage_trac/ticket/6904|trac 9604]].
Line 83: Line 175:

== code used to get new ECM speed records ==
=== Specific Projects ===

  * Greatly improve [[http://nb.sagemath.org/|the Sage Notebook website]]
    * Improved information on the site:
       * how to setup a server
          * standalone server
          * with sage
       * how to develop the sage notebook: give a complete example of how to change something
    * Make site much prettier -- I think it is ugly.

  * Database
    * Users and basic configuration -- get the startup time of sagenb.org down from 20 minutes to 1 second by replacing users.pickle by a sqlite database, and rewriting the notebook server to use this database instead of making a list of *all* users (and other data about them) in memory.
    * worksheets -- see [[http://trac.sagemath.org/sage_trac/ticket/8757|trac 8757]]; This might also totally deal with the above "users and basic configuration" info.

  * Worksheet labels
    * linking between worksheets: [[http://trac.sagemath.org/sage_trac/ticket/5042|trac 5042]] is relevant
    * support library worksheets, so you can type, e.g., {{{load "library.sws"}}}
   

== General framework for the factor(n) command ==
Line 88: Line 197:
 * People: Hendrik Lenstra, Dan Bernstein, Tanja Lange, Christiane Peters, Peng Tian, Julio Brau, Mak Trifkovic
 * special support for $p^n \pm 1$.
 * add functionality to factor() and to class Factorization
 * implement addprimes() in the PARI interface (already works for GP interface)
 * People: Hendrik Lenstra, Dan Bernstein, Jeroen Demeyer, Tanja Lange, Christiane Peters, Peng Tian, Julio Brau, Mak Trifkovic
 * [[http://ttic.uchicago.edu/~kalai/papers/old_papers/factorcryptology.pdf|Kalai's paper]]

 * Something actually done: Trac #9450 -- factoring elements of number fields
Line 94: Line 208:
 * mwrank...
 * People: Marco Streng, Mak Trifkovic, Peter Bruin

 * People: Marco Streng, Mak Trifkovic, Peter Bruin, John Cremona
 * Write a Conic class using Denis Simon's pari code, possibly mwrank, finding points over number fields, other fields?
 * http://wiki.sagemath.org/days23/conics
Line 101: Line 217:
 * People: Japp Spies, Dung Duong  * People: Japp Spies, Dung Duong, Peter Bruin, Michiel Kosters

== Porting ECHIDNA code from MAGMA ==

 * People: Lloyd Kilford, William Stein

 * Code: http://sage.math.washington.edu/home/ljpk/atkin_lehner_decomposition_dimensions.sage

 * [[http://trac.sagemath.org/sage_trac/ticket/9455|trac ticket number 9455]]

Descent on Cyclic Covers of the Projective Line

  • Port 200 lines of Magma code to Sage.
  • People: Michael Mourao, Maite Aranes

Finite Fields

Deal with David Roe's latest patch bomb.

  • People: John Cremona
  • Tickets: #7883, #8333, #8334, #8335

sage-4.5

  • Robert Miller

ABC at home

  • review code
  • model runtime
  • People: Bart de Smit, Willem Jan Palenstijn, Jeroen Demeyer, Mak Trifkovic, Thijs van Dijk, Alyssa Milburn, Dan Bernstein, Sebastian Pancratz

Models for elliptic curves

Function Fields

The main goal of this project is to get the basic infrastructure for function fields into Sage. If time permits, we will also implement Hess's algorithms. See Hess's papers and talks.

People: William Stein, Maarten Derickx, Peter Bruin, Jan Tuitman, Max Flander, Tanja Lange, Michiel Kosters, Christiane Peters, Marco Streng

Make sure to see this page for more links.

Hyperbolic geometry

  • plotting (arc of circle, filling domain bounded with arc of circles, ...)
  • actions (using the coercion model to act on Hyperbolic Plane element by matrices)
  • fundamental domains (port H. Verrill program and implement R. Kulkarni method)
  • People: Vincent Delecroix, Maite Aranes, Thijs van Dijk

cool hyperbolic picture 1 cool hyperbolic picture 2

Related tickets

Created tickets:

Todo:

  • create a class for fundamental domains and make pairings appear on the boundary
  • work on general subgroup of the modular group

Ticket #4000 on rational polynomials... QQ[x] via FLINT

  • People: Sebastian Pancratz, Bill Hart, Jan Tuitman

Sage on GPU's

  • People: Dan Bernstein, Thijs van Dijk, Andy Novocin

ZZ[x] factoring in FLINT, plus LLL

  • People: Andy Novocin, Wieb Bosma, Johannes van der Horst, Bill Hart, Max Flander

Swinnerton-Dyer Polynomials

See trac 9492.

  • Some code:

sage: a = sqrt(2)+sqrt(3)+sqrt(5)+sqrt(7)+sqrt(11)
sage: f = algebraic_dependency(a.numerical_approx(10000),32)
sage: b = a.numerical_approx(100000)
sage: time f(b)
  • Code by Jeroen Demeyer to compute Swinnerton-Dyer polynomials very quickly using p-adics:

# Lift a padic `x` to ZZ, but centered around zero.
def centerlift(x):
    modulus = x.parent().prime_pow(x.precision_absolute())
    z = ZZ(x);
    if (2*z > modulus):
        z -= modulus
    return z

# L = list of numbers you want to take the square root of.
# bound = bound on the absolute value of the coefficients of
# the resulting polynomial.
def swinnerton_dyer(L, bound):
    for p in Primes():
        if all([gcd(p,s) == 1 and is_square(Mod(s,p)) for s in L]):
            break
    prec = ceil(log(bound)/log(p))
    print "Using p =", p
    print "Precision:", p, "^", prec
    K = Qp(p, prec, print_mode="terse", print_pos=False)
    
    sqrts = [sqrt(K(s),extend=False) for s in L]
    
    n = len(L)
    padic_roots = []
    for k in range(0, 2^n):
        binary = ZZ(k).digits(base=2,padto=n)
        root = sum([sqrts[i]*(binary[i]*2-1) for i in range(0,n)])
        padic_roots.append(root)
    t = polygen(K)
    pol_padic = prod([t - r for r in padic_roots])
    coeffs_ZZ = [centerlift(c) for c in pol_padic.list()]
    max_coeff = max([abs(c) for c in coeffs_ZZ])
    print "Largest coefficient:", p, "^", ceil(log(max_coeff)/log(p))
    return PolynomialRing(ZZ, names='t')(coeffs_ZZ)

# Example:
time swinnerton_dyer([2,3,5,7,11,13,17,19,23,29], 2^4000)   # bound is heuristic

MPIR projects

  • fmpz in Sage
  • a very concrete C project
  • People: Frederik Johansson, Bill Hart

Ticket #4260 - Sage + Linbox

  • Polish linbox-sage interface (in LinBox), and release 1.1.7rc1

  • Update Sage interface
  • Rewrite of sage-matrix-modn-dense: continued the work initiated at SD16 with Burcin
  • Mod 2 reduction bug (fixed!): trac 9604.

  • People: Andy Novocin, Clement Pernet, (Burcin Erocal, remotely)

Sage Notebook in the classroom

  • People: Bart de Smit, William Stein, Eric van der Velden, Willem Jan Palenstijn, Alyssa Milburn

Specific Projects

  • Greatly improve the Sage Notebook website

    • Improved information on the site:
      • how to setup a server
        • standalone server
        • with sage
      • how to develop the sage notebook: give a complete example of how to change something
    • Make site much prettier -- I think it is ugly.
  • Database
    • Users and basic configuration -- get the startup time of sagenb.org down from 20 minutes to 1 second by replacing users.pickle by a sqlite database, and rewriting the notebook server to use this database instead of making a list of *all* users (and other data about them) in memory.
    • worksheets -- see trac 8757; This might also totally deal with the above "users and basic configuration" info.

  • Worksheet labels
    • linking between worksheets: trac 5042 is relevant

    • support library worksheets, so you can type, e.g., load "library.sws"

General framework for the factor(n) command

  • mpfq is LGPL!
  • special support for p^n \pm 1.

  • add functionality to factor() and to class Factorization
  • implement addprimes() in the PARI interface (already works for GP interface)
  • People: Hendrik Lenstra, Dan Bernstein, Jeroen Demeyer, Tanja Lange, Christiane Peters, Peng Tian, Julio Brau, Mak Trifkovic
  • Kalai's paper

  • Something actually done: Trac #9450 -- factoring elements of number fields

Solving Conics

  • People: Marco Streng, Mak Trifkovic, Peter Bruin, John Cremona
  • Write a Conic class using Denis Simon's pari code, possibly mwrank, finding points over number fields, other fields?
  • http://wiki.sagemath.org/days23/conics

Sums of Squares

  • People: Japp Spies, Dung Duong, Peter Bruin, Michiel Kosters

Porting ECHIDNA code from MAGMA

days23/CodingProjects (last edited 2010-08-31 23:54:42 by was)