Revision a892c0b09fec4c4ff41b51e1553bb45884584052 (click the page title to view the current version)
Changes from a892c0b09fec4c4ff41b51e1553bb45884584052 to current
Recall: pari-2.9-stable was released in 2016, pari-2.10-testing is
scheduled after Atelier 2017 .
# DISCUSSION FROM ATELIER 2016 & AFTERMATH ([X] = DONE!)
New mathematical features for PARI-2.10 (testing) -> PARI-2.11 (stable)
[X] done in PARI-2.16
## Elliptic curves / Arithmetic geometry
- include ratpoint ?
- include Denis Simon's ellQ.gp
- descent
## Elliptic curves
[X] - include ratpoint ?
[X] - include Denis Simon's ellQ.gp
[X] - descent
- S-integral points
- fields generated by torsion points under Galois action.
- canonical height of points on elliptic curves over number fields
[X] - canonical height of points on elliptic curves over number fields
- improve the interface for complex periods of elliptic curves
- Falting height of elliptic curves
- 2-descent on elliptic curves
- isogeny matrix [ done over Q; not as easy as expected over K ]
[X] - Falting height of elliptic curves
[X] - 2-descent on elliptic curves
[X] - isogeny matrix [ done over Q; not as easy as expected over K ]
[X] - ellbsd to check the BSD hypothesis over number fields or p-adically
## Hyperelliptic curves / Arithmetic geometry
- Frobenius matrix via Kedlaya's algorithm for p=2
- Genus 2 curves; in particular complex periods, Tamagawa numbers and endomorphism rings
- Export local solvability of hyperelliptic equations (over number fields)
- Arithmetic & pairings on Mumford representation for hyperelliptic
curves Jacobians
- Khuri-Makdisi's algorithms (Jacobians of (modular) curves) (Peter, Nicolas)
- ellbsd to check the BSD hypothesis over number fields or p-adically
## Modular symbols
- proper normalisation of new symbols, integrality conditions
- support \Gamma_0(1) !
- q-expansions for Eisenstein symbols
- support \Gamma_1(N)
- other coefficient modules F_q[x,y]_{k-2}, p-adic distributions
(overconvergent symbols), etc.
## Algebraic number theory
- dynamic nf (confer 'ell'): add new components dynamically as they are
computed (integer basis, class group/units...)
- rnfinit with list of prime to maximize at, like nfinit([pol,L]) (+rnfcertify ?) (useful for Aurel & Denis)
- compact fundamental units (bnfinit + flag)
- compact S-units (bnfinit + flag)
- rewrite bnfsunit to compute directly S-units without reducing to
[X] - rnfinit with list of prime to maximize at, like nfinit([pol,L]) (+rnfcertify ?) (useful for Aurel & Denis)
[X] - compact fundamental units (bnfinit + flag)
[X] - compact S-units (bnfinit + flag)
[X] - rewrite bnfsunit to compute directly S-units without reducing to
fundamental units ?
- cyclotomic units / subfields to help bnfinit (Jean-Robert)
[X] - cyclotomic units / subfields to help bnfinit (Jean-Robert)
generators, implicit descriptions in terms of linear algebra should be
enough.
- regulator/units and class number/class group for special cases of high degree fields
[X] - regulator/units and class number/class group for special cases of high degree fields
(abelian fields, say), using different methods from bnfinit
- nfinit for abelian fields using adapted bases
- rnfidealprimedec for infinite places
[X] - rnfidealprimedec for infinite places
- rewrite lowerboundforregulator [#1572]
- rnfkummer for composite degrees
- rnfkummer for prime power degrees (needed for CSA Aurel)
[X] - rnfkummer for composite degrees
[X] - rnfkummer for prime power degrees (needed for CSA Aurel)
Challenges:
nf = nfinit(y);
p2 = idealprimedec(nf,2)[1];
p3 = idealprimedec(nf,3)[1];
al = alginit(nf,[4,[[p2,p3],[1/4,3/4]],[0]],,0);
al = alginit(nf,[9,[[p2,p3],[1/9,8/9]],[0]],,0);
nf = nfinit(y^2+3);
p3 = idealprimedec(nf,3)[1];
p7 = idealprimedec(nf,7)[1];
al = alginit(nf,[4,[[p3,p7],[1/4,3/4]],[]],,0);
nf = nfinit(y^2+1);
p2 = idealprimedec(nf,2)[1];
p5 = idealprimedec(nf,5)[1];
al = alginit(nf,[9,[[p2,p5],[1/9,8/9]],[]],,0);
- abstract / generalize ad hoc abelian groups constructions (short exact
sequences)
- nfpolsturm(nf,pol,i) where 1<=i<=nf.r1 (useful for Aurel & Denis)
- idealispower (Nicolas)
- idealsqrtn (useful for CSA Aurel) (Nicolas)
- nfissquare
[X] - nfpolsturm(nf,pol,i) where 1<=i<=nf.r1 (useful for Aurel & Denis)
[X] - idealispower (Nicolas)
[X] - idealsqrtn (useful for CSA Aurel) (Nicolas)
[X] - nfissquare
- non maximal orders
- cubic / quartic / quintic fields by discriminant
[X] - cubic / quartic / quintic fields by discriminant
- rnfsplitting
- unify and make accessible the Finke-Pohst implementations
- more central simple algebras: orders, ideals, localizations (Aurel)
- more central simple algebras (Aurel)
- localisation (local splitting, localisation of an element, compute local invariants in general, additive strong approx)
- lattices (inter,add,left/right mul,conj,index,subset,left/right order,norm,twoelt,inv,primedec,factor)
- orders (pmaximal, connecting ideal)
- advanced (class sets, multiplicative strong approx, generators of ideals, units)
- algsimpledec: return simple algebras in alginit format
- T2 norm and LLL-reduce the basis
- global splitting and isomorphism
- Fieker-Klueners polgalois algorithm, GAP module using PARI ?
- van Hoeij-Klueners (maximal) subfields algorithm
[X] - van Hoeij-Klueners (maximal) subfields algorithm
- nfprimes for the primes in a nf whose norm lie in an interval
[X] - asymptotically fast Flx_resultant [ see Flint ]
- use truncated polynomials for power series instead of re-implementing the wheel
## Multiprecision:
- Change libpari prec variable to be in bits instead of words.
- merge the new-t_REAL branch
- go through transcendental functions and include rigorous/faster
algorithms
- hooks to optionally link with mpfr / mpc higher lever routines
- asymptotically fast Flx_resultant [ see Flint ]
- use truncated polynomials for power series instead of re-implementing the wheel
## Parallelisation, use parallel interface internally:
- CRT
- factorint
[X] - CRT
[X] - factorint
- SEA
- bnfinit
- ...
## GP
- forprimestep(p = a, {b}, Mod(c,d), ...)
- forfactored
[X] - forprimestep(p = a, {b}, Mod(c,d), ...)
[X] - forfactored
## Elementary and analytic number theory
- ECPP (Jared)
[X] - ECPP (Jared)
- prime counting function primepi for large arguments
- primorial
## Misc
- Factorisation of bivariate polynomials (bifactor script)
[X] - Factorisation of bivariate polynomials (bifactor script)
- Baker-Davenport
- Generic Newton method
- Abel-Jacobi map
- merge K2.gp
[X] - Brew recipe for OSX
## Technical stuff / internals
- cleanup input/output (don't change global pari_infile, etc.)
- [Configure] let gcc try to find its libraries first [ don't start by
[X] - [Configure] let gcc try to find its libraries first [ don't start by
overriding with /usr/lib, /usr/lib64, etc ]
- properly tune Flx operations wrt p and degree.
- cleanup entree*
- remove built-in hashtable and use generic one
- don't overload "value" / remove "useless" struct members
- separate valuation for t_SER / t_PADIC (servalp / valp)
[X] - separate valuation for t_SER / t_PADIC (servalp / valp)
- rename all gerepile* functions -> gc_*
# LEFTOVERS FROM ATELIER 2013
## Short hacks
- Lambert W [ for x >= -1/e ! ]
[X] - Lambert W [ for x >= -1/e ! ]
- inverse gamma / inverse erfc
- LinearRecurrence [ via Mod(x, T(x))^N ]
- Hurwitz zeta
[X] - LinearRecurrence [ via Mod(x, T(x))^N ]
[X] - Hurwitz zeta
- Bell numbers
- sumrat \sum F(n), F rational function
[X] - sumrat \sum F(n), F rational function
\sum (-1)^n F(n), F rational function
\prod F(n))
- sumeulerrat, \sum_{p prime} F(p^s)
[X] - sumeulerrat, \sum_{p prime} F(p^s)
\prod_{p prime} F(p^s)
- tools for p-adic analysis: Newton polygon (slopes, # of zeros), Amice
transform and interpolation
- vecprod (= \prod_i v[i]), see vecsum
[X] - vecprod (= \prod_i v[i]), see vecsum
## Long term projects
- change t_SER format (-> faster + easier to maintain)
s[0] = type | lg
s[1] = valuation
s[2] = precp
s[2] = t_POL + functions operating on t_POL mod X^n [ RgXn_... ]
- t_REAL format
- stat functions ? -> Gaussian vectors
- Elliptic curves over finite fields: [proposed by Damien Robert]
1) Basic
- geometric points over an extension
- base change
- Various models, morphisms between them, e.g. from / to Weierstrass
2) Isogenies
- isogeny graphs
- If $\phi_l(j,j')=0$, compute the isogeny corresponding to E, E'
- Isogeny class of an elliptic curve
- Endomorphism ring
3) Misc
- Weil restriction
- Symplectic basis for l-torsion