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

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

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

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)
for k in range(0, 2^n):
root = sum([sqrts[i]*(binary[i]*2-1) for i in range(0,n)])
t = polygen(K)
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
• 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?

Sums of Squares

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

Porting ECHIDNA code from MAGMA

• People: Lloyd Kilford, William Stein

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