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 ? (= [])
“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]
- Basic
- geometric points over an extension
- base change
- Various models, morphisms between them, e.g. from / to Weierstrass
- Isogenies
- isogeny graphs
- If , compute the isogeny corresponding to E, E’
- Isogeny class of an elliptic curve
- Endomorphism ring
- Misc
- Weil restriction
- Symplectic basis for l-torsion