New features

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

[X] - include ratpoint ? [X] - include Denis Simon’s ellQ.gp [X] - descent - S-integral points - fields generated by torsion points under Galois action. [X] - canonical height of points on elliptic curves over number fields - improve the interface for complex periods of elliptic curves [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)

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...)

[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 ? [X] - cyclotomic units / subfields to help bnfinit (Jean-Robert) generators, implicit descriptions in terms of linear algebra should be enough. [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 [X] - rnfidealprimedec for infinite places - rewrite lowerboundforregulator [#1572] [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) [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 [X] - cubic / quartic / quintic fields by discriminant - rnfsplitting - unify and make accessible the Finke-Pohst implementations

- 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 ?

[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

Parallelisation, use parallel interface internally:

[X] - CRT [X] - factorint - SEA - bnfinit - …

GP

[X] - forprimestep(p = a, {b}, Mod(c,d), …) [X] - forfactored

Elementary and analytic number theory

[X] - ECPP (Jared) - prime counting function primepi for large arguments - primorial

Misc

[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.)

[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 [X] - separate valuation for t_SER / t_PADIC (servalp / valp) - rename all gerepile functions -> gc_*

LEFTOVERS FROM ATELIER 2013

Short hacks

[X] - Lambert W [ for x >= -1/e ! ] - inverse gamma / inverse erfc [X] - LinearRecurrence [ via Mod(x, T(x))^N ] [X] - Hurwitz zeta - Bell numbers [X] - sumrat F(n), F rational function (-1)^n F(n), F rational function F(n)) [X] - sumeulerrat, {p prime} F(p^s) {p prime} F(p^s) - tools for p-adic analysis: Newton polygon (slopes, # of zeros), Amice transform and interpolation [X] - vecprod (= _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