Revision 58c6e14a6a8345091fc93e978e5480f6403b7714 (click the page title to view the current version)

New features / Tasks

Recall: pari-2.7-stable was released in March 2014, pari-2.8-testing is scheduled after Atelier 2015 (february ?).

DISCUSSION FROM ATELIER 2014 & AFTERMATH ([X] = DONE!)

New mathematical features for PARI-2.8 (testing) -> PARI-2.9 (stable)

  • Elliptic curves / Arithmetic geometry
    • over number fields [ general infrastructure ]
    • Tate’s algorithm over number fields, above 2 and 3 as well !
    • global minimal equation, Weierstrass class
    • qfsolve [ over Q ]
    • include ratpoint ?
    • include Denis Simon’s ellQ.gp
    • descent
    • S-integral points
    • fields generated by torsion points under Galois action.
    • modular equation / class polynomials (Hamish)
    • isogeny matrix
    • pairings / APIP [ Jerome Milan’s package ] : . fix Tate self pairing . FpE_FpQXE_* [ 1 pt in base, 1 pt in extension ] . various optimized crypto pairings
    • Frobenius matrix via Kedlaya’s algorithm
    • Genus 2 curves
    • Export local solvability of hyperelliptic equations (over number fields)
    • Arithmetic & pairings on Mumford representation for hyperelliptic curves Jacobians
  • Modular symbols
    • modular symbols, merge the kb-modsym2 branch
    • support _0(1) !
    • q-expansions for Eisenstein symbols
    • support _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…)

    • better rnf structures allowing maps between TWO nf [not 1 nf + 1 hack]

    • rnfidealprimedec

    • compact fundamental units (bnfinit + flag)

    • compact S-units (bnfinit + flag)

    • rewrite bnfsunit to compute directly S-units without reducing to fundamental units ?

    • cyclotomic units / subfields to help bnfinit

    • get rid of bnrinit(,,1): no function should need explicit expanded generators, implicit descriptions in terms of linear algebra should be enough.

    • rewrite lowerboundforregulator [#1572]

    • relative polcompositum

    • rnfkummer for composite degrees

    • fix rnfkummer (fix and merge kb-rnfkummer)

    • bnrisgalois

    • polsturm -> Uspensky (merge loic-Uspensky)

    • abstract / generalize ad hoc abelian groups constructions (short exact sequences)

    • sign of algebraic number [ proven ]

    • idealispower

    • nfissquare

    • non maximal orders

    • cubic / quartic / quintic fields by discriminant

    • support idealstar / ideallog with nf = NULL (over Q)

    • central simple algebras (Aurel)

    • Fieker-Klueners polgalois algorithm, GAP module using PARI ?

    • van Hoeij-Klueners (maximal) sufbields algorithm

  • L-functions (Pascal / Henri)
    • Dirichlet character
    • Hecke character
    • L(s,), at least for deg <=2
    • Artin L-functions
  • Multiprecision:
    • 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 ]
  • Misc
    • Factorisation of bivariate polynomials (bifactor script)
    • Baker-Davenport
    • Generic Newton method
    • Abel-Jacobi map
  • Parallelisation, use parallel interface internally:
    • CRT
    • polmodular
    • factorint
    • znlog
    • SEA
    • bnfinit
  • GP
    • 0xDEADBEEF (integers in hexadecimal)

    • expose the iterator associated to forxxx() functions, e.g. forprime [ vectorprime(), sumprime(), prodprime(), prime ideals… ] partition / forpartion [ … ] certain subsets (e.g. sets with m elements, words of Hamming weight k…)

    • forprimestep(p = a, {b}, Mod(c,d), …)

    • forfactored

    • fold

    • move “useful” functions from gp.c -> libpari (e.g. handling of [a-z] shortcuts)

    • V[-1] (= V[#V-1]) ?

    • V[a..b] when a > b ? (= [])

    [CONTROVERSIAL: cool but marginally useful compared to effort]
    • “dictonary arguments” (aka named parameters) f( disc := 10, p := 7, len := 18 )

      instead of f(len, disc, p) = ; f(18,10,7) \ imagine 42 arguments

  • 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 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
    • parser must only create polynomial variables when creating a t_POL/t_SER
    • separate valuation for t_SER / t_PADIC (servalp / valp)
    • rename all gerepile* functions -> gc_*
    • fix DLLDFLAGS on OS/X [#1623]

LEFTOVERS FROM ATELIER 2013

  • Short hacks
    • Lambert W [ for x >= -1/e ! ]
    • primepi for large arguments
    • inverse gamma / inverse erfc
    • LinearRecurrence [ via Mod(x, T(x))^N ]
    • Hurwitz zeta
    • Bell numbers
    • sumrat F(n), F rational function (-1)^n F(n), F rational function F(n))
    • 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
    • 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
      1. Isogenies
      • isogeny graphs
      • If ϕl(j,j)=0\phi_l(j,j')=0, compute the isogeny corresponding to E, E’
      • Isogeny class of an elliptic curve
      • Endomorphism ring
      1. Misc
      • Weil restriction
      • Symplectic basis for l-torsion