|
Try GP in your browser Main Download Packages Funding SEARCH Help / Community FAQ Documentation Tutorials Mailing Lists Bugs Timeline Ateliers PARI/GP Library Publications Contributed GP scripts Links Fun! Development Latest Changes Version Control Coding Guidelines PariDroid Logo Tests & benchmarks Buildlogs Coverage Report Doc Coverage Refcards test Benchmarks WWW Stats |
Changes commited to PARI GIT during the last two weeks090a3127d0 | Karim Belabas | Sun, 16 Aug 2026 11:31:13 +0200 don't use variable name matching 'l.*' for a 'prec' 2 2 src/basemath/trans1.c 10 10 src/basemath/trans2.c a503804d42 | Karim Belabas | Sun, 16 Aug 2026 02:33:36 +0200 mpsinh: lx -> prec 4 4 src/basemath/trans2.c 5e0eabf055 | Karim Belabas | Sun, 16 Aug 2026 02:32:33 +0200 cgetr -> cgetg(,t_REAL) 2 1 src/basemath/buch1.c e832da8e2a | Karim Belabas | Sun, 16 Aug 2026 02:05:08 +0200 zbrent: remove useless bit0 3 3 src/language/sumiter.c 2f0d7d8382 | Karim Belabas | Sun, 16 Aug 2026 02:02:57 +0200 cgetr -> cgetg(,t_REAL) 4 4 src/basemath/trans3.c 9ce8776831 | Karim Belabas | Sat, 15 Aug 2026 21:50:47 +0200 cgetr -> cgetg(l, t_REAL) 9 9 src/basemath/zetamult.c f87866be7d | Karim Belabas | Sat, 15 Aug 2026 21:45:41 +0200 nflist: simplify error message 2 2 src/basemath/nflist.c 11 11 src/test/32/nflist 26b8d55ba9 | Karim Belabas | Sat, 15 Aug 2026 21:24:26 +0200 add HEADERS for the new sections 167 0 src/functions/number_fields_galois/HEADER 110 0 src/functions/number_fields_relative/HEADER cf3c327f00 | Karim Belabas | Sat, 15 Aug 2026 21:23:41 +0200 new help sections number_fields_galois and number_fields_relative 3 2 doc/gphelp.in
10 8 doc/translations
2 0 src/desc/doc_make
2 0 src/desc/gen_proto
117 426 src/functions/number_fields/HEADER
88 10 src/functions/number_fields/bnfinit
1 1 src/functions/{number_fields => number_fields_galois}/bnrL1
1 1 src/functions/{number_fields => number_fields_galois}/bnrchar
1 1 src/functions/{number_fields => number_fields_galois}/bnrclassfield
1 1 src/functions/{number_fields => number_fields_galois}/bnrclassno
1 1 src/functions/{number_fields => number_fields_galois}/bnrclassnolist
1 1 src/functions/{number_fields => number_fields_galois}/bnrcompositum
1 1 src/functions/{number_fields => number_fields_galois}/bnrconductor
1 1 src/functions/{number_fields => number_fields_galois}/bnrconductorofchar
1 1 src/functions/{number_fields => number_fields_galois}/bnrdisc
1 1 src/functions/{number_fields => number_fields_galois}/bnrdisclist
1 1 src/functions/{number_fields => number_fields_galois}/bnrgaloisapply
1 1 src/functions/{number_fields => number_fields_galois}/bnrgaloismatrix
1 1 src/functions/{number_fields => number_fields_galois}/bnrinit
1 1 src/functions/{number_fields => number_fields_galois}/bnrisconductor
1 1 src/functions/{number_fields => number_fields_galois}/bnrisgalois
1 1 src/functions/{number_fields => number_fields_galois}/bnrisprincipal
1 1 src/functions/{number_fields => number_fields_galois}/bnrmap
1 1 src/functions/{number_fields => number_fields_galois}/bnrrootnumber
1 1 src/functions/{number_fields => number_fields_galois}/bnrstark
1 1 src/functions/{number_fields => number_fields_galois}/bnrstarkunit
1 1 src/functions/{number_fields => number_fields_galois}/galoischardet
1 1 src/functions/{number_fields => number_fields_galois}/galoischarpoly
1 1 src/functions/{number_fields => number_fields_galois}/galoischartable
1 1 src/functions/{number_fields => number_fields_galois}/galoisconjclasses
1 1 src/functions/{number_fields => number_fields_galois}/galoisexport
1 1 src/functions/{number_fields => number_fields_galois}/galoisfixedfield
1 1 src/functions/{number_fields => number_fields_galois}/galoisgetgroup
1 1 src/functions/{number_fields => number_fields_galois}/galoisgetname
1 1 src/functions/{number_fields => number_fields_galois}/galoisgetpol
1 1 src/functions/{number_fields => number_fields_galois}/galoisidentify
1 1 src/functions/{number_fields => number_fields_galois}/galoisinit
1 1 src/functions/{number_fields => number_fields_galois}/galoisisabelian
1 1 src/functions/{number_fields => number_fields_galois}/galoisisnormal
1 1 src/functions/{number_fields => number_fields_galois}/galoispermtopol
1 1 src/functions/{number_fields => number_fields_galois}/galoissplittinginit
1 1 src/functions/{number_fields => number_fields_galois}/galoissubcyclo
1 1 src/functions/{number_fields => number_fields_galois}/galoissubfields
1 1 src/functions/{number_fields => number_fields_galois}/galoissubgroups
1 1 src/functions/{number_fields => number_fields_galois}/gcharalgebraic
1 1 src/functions/{number_fields => number_fields_galois}/gcharconductor
1 1 src/functions/{number_fields => number_fields_galois}/gcharduallog
1 1 src/functions/{number_fields => number_fields_galois}/gchareval
1 1 src/functions/{number_fields => number_fields_galois}/gcharidentify
1 1 src/functions/{number_fields => number_fields_galois}/gcharinit
1 1 src/functions/{number_fields => number_fields_galois}/gcharisalgebraic
1 1 src/functions/{number_fields => number_fields_galois}/gcharlocal
1 1 src/functions/{number_fields => number_fields_galois}/gcharlog
1 1 src/functions/{number_fields => number_fields_galois}/gcharnewprec
1 1 src/functions/{number_fields => number_fields_galois}/nfgrunwaldwang
1 1 src/functions/{number_fields => number_fields_galois}/nflist
1 1 src/functions/{number_fields => number_fields_galois}/nfresolvent
1 1 src/functions/{number_fields => number_fields_galois}/subcyclohminus
1 1 src/functions/{number_fields => number_fields_galois}/subcycloiwasawa
1 1 src/functions/{number_fields => number_fields_galois}/subcyclopclgp
1 1 src/functions/{number_fields => number_fields_relative}/nfdetint
1 1 src/functions/{number_fields => number_fields_relative}/nfhnf
1 1 src/functions/{number_fields => number_fields_relative}/nfhnfmod
1 1 src/functions/{number_fields => number_fields_relative}/nfsnf
1 1 src/functions/{number_fields => number_fields_relative}/rnfalgtobasis
1 1 src/functions/{number_fields => number_fields_relative}/rnfbasis
1 1 src/functions/{number_fields => number_fields_relative}/rnfbasistoalg
1 1 src/functions/{number_fields => number_fields_relative}/rnfcharpoly
1 1 src/functions/{number_fields => number_fields_relative}/rnfconductor
1 1 src/functions/{number_fields => number_fields_relative}/rnfdedekind
1 1 src/functions/{number_fields => number_fields_relative}/rnfdet
1 1 src/functions/{number_fields => number_fields_relative}/rnfdisc
1 1 src/functions/{number_fields => number_fields_relative}/rnfeltabstorel
1 1 src/functions/{number_fields => number_fields_relative}/rnfeltdown
1 1 src/functions/{number_fields => number_fields_relative}/rnfeltnorm
1 1 src/functions/{number_fields => number_fields_relative}/rnfeltreltoabs
1 1 src/functions/{number_fields => number_fields_relative}/rnfelttrace
1 1 src/functions/{number_fields => number_fields_relative}/rnfeltup
1 1 src/functions/{number_fields => number_fields_relative}/rnfequation
1 1 src/functions/{number_fields => number_fields_relative}/rnfhnfbasis
1 1 src/functions/{number_fields => number_fields_relative}/rnfidealabstorel
1 1 src/functions/{number_fields => number_fields_relative}/rnfidealdown
1 1 src/functions/{number_fields => number_fields_relative}/rnfidealfactor
1 1 src/functions/{number_fields => number_fields_relative}/rnfidealhnf
1 1 src/functions/{number_fields => number_fields_relative}/rnfidealmul
1 1 src/functions/{number_fields => number_fields_relative}/rnfidealnormabs
1 1 src/functions/{number_fields => number_fields_relative}/rnfidealnormrel
1 1 src/functions/{number_fields => number_fields_relative}/rnfidealprimedec
1 1 src/functions/{number_fields => number_fields_relative}/rnfidealreltoabs
1 1 src/functions/{number_fields => number_fields_relative}/rnfidealtwoelt
1 1 src/functions/{number_fields => number_fields_relative}/rnfidealup
1 1 src/functions/{number_fields => number_fields_relative}/rnfinit
1 1 src/functions/{number_fields => number_fields_relative}/rnfisabelian
1 1 src/functions/{number_fields => number_fields_relative}/rnfisfree
1 1 src/functions/{number_fields => number_fields_relative}/rnfislocalcyclo
1 1 src/functions/{number_fields => number_fields_relative}/rnfisnorm
1 1 src/functions/{number_fields => number_fields_relative}/rnfisnorminit
1 1 src/functions/{number_fields => number_fields_relative}/rnfkummer
1 1 src/functions/{number_fields => number_fields_relative}/rnflllgram
1 1 src/functions/{number_fields => number_fields_relative}/rnfnormgroup
1 1 src/functions/{number_fields => number_fields_relative}/rnfpolred
0 0 src/functions/{number_fields => number_fields_relative}/rnfpolredabs
0 0 src/functions/{number_fields => number_fields_relative}/rnfpolredbest
0 0 src/functions/{number_fields => number_fields_relative}/rnfpseudobasis
0 0 src/functions/{number_fields => number_fields_relative}/rnfsteinitz
2 0 src/language/gplib.c
11 9 src/test/32/help
d8b6685d7b | Karim Belabas | Sat, 15 Aug 2026 00:45:26 +0200 improve HEADER for number_theoretical 1 1 doc/translations 26 15 src/functions/number_theoretical/HEADER 9c100a31d1 | Karim Belabas | Fri, 14 Aug 2026 21:39:51 +0200 move kronecker to znstar section 1 1 src/functions/{number_theoretical => znstar}/kronecker
0cc2e9a5c1 | Karim Belabas | Fri, 14 Aug 2026 17:22:42 +0200 update tutorial 7 13 doc/tutorial.tex 776ac5dc5d | Karim Belabas | Fri, 14 Aug 2026 15:51:45 +0200 doc updates 15 12 doc/tutorial.tex 2 1 src/functions/number_theoretical/HEADER 2 2 src/functions/number_theoretical/qfbclassno 6 3 src/functions/znstar/zncoppersmith c5fa3329ef | Karim Belabas | Fri, 14 Aug 2026 13:56:49 +0200 add znstar HEADER 0 36 src/functions/number_theoretical/HEADER 123 0 src/functions/znstar/HEADER fe488e7ab0 | Karim Belabas | Fri, 14 Aug 2026 13:47:54 +0200 4- znorder: allow a znstar for the 'order' optional argument 1 0 CHANGES 12 2 src/basemath/arith1.c 15 0 src/basemath/bb_group.c 26 0 src/functions/znstar/znorder 7 1 src/test/32/zn 4 0 src/test/in/zn 6a2012cd8f | Karim Belabas | Fri, 14 Aug 2026 11:15:21 +0200 newhelp section: znstar, split (Z/NZ)^* functions from number_theoretical 14 13 doc/translations
1 0 src/desc/doc_make
1 0 src/desc/gen_proto
0 76 src/functions/number_theoretical/HEADER
1 1 src/functions/{number_theoretical => znstar}/charconj
1 1 src/functions/{number_theoretical => znstar}/chardiv
1 1 src/functions/{number_theoretical => znstar}/chareval
1 1 src/functions/{number_theoretical => znstar}/chargalois
1 1 src/functions/{number_theoretical => znstar}/charker
1 1 src/functions/{number_theoretical => znstar}/charmul
1 1 src/functions/{number_theoretical => znstar}/charorder
1 1 src/functions/{number_theoretical => znstar}/charpow
1 1 src/functions/{number_theoretical => znstar}/znchar
1 1 src/functions/{number_theoretical => znstar}/zncharconductor
1 1 src/functions/{number_theoretical => znstar}/znchardecompose
1 1 src/functions/{number_theoretical => znstar}/znchargauss
1 1 src/functions/{number_theoretical => znstar}/zncharinduce
1 1 src/functions/{number_theoretical => znstar}/zncharisodd
1 1 src/functions/{number_theoretical => znstar}/znchartokronecker
1 1 src/functions/{number_theoretical => znstar}/znchartoprimitive
1 1 src/functions/{number_theoretical => znstar}/znconreychar
1 1 src/functions/{number_theoretical => znstar}/znconreyconductor
1 1 src/functions/{number_theoretical => znstar}/znconreyexp
1 1 src/functions/{number_theoretical => znstar}/znconreylog
1 1 src/functions/{number_theoretical => znstar}/zncoppersmith
1 1 src/functions/{number_theoretical => znstar}/znlog
1 1 src/functions/{number_theoretical => znstar}/znorder
1 1 src/functions/{number_theoretical => znstar}/znprimroot
1 1 src/functions/{number_theoretical => znstar}/znstar
1 1 src/functions/{number_theoretical => znstar}/znsubgroupgenerators
1 0 src/language/gplib.c
15 14 src/test/32/help
0db10915e4 | Karim Belabas | Thu, 13 Aug 2026 17:26:32 +0200 3- [libpari] ZX_realroots + fix docs + refactor common code in realroots / ZX_realroots_irred 1 0 CHANGES 12 8 doc/usersch5.tex 2 4 src/basemath/base1.c 53 46 src/basemath/rootpol.c 1 0 src/headers/paridecl.h fc88931078 | Karim Belabas | Thu, 13 Aug 2026 12:18:47 +0200 5- Don't assume irreducibility in polred, polredabs, polredbest [#2689] The routines could break in presence of rational roots in the totally real case. E.g., polredbest(x^3-2*x+1) -> SEGV 3 0 CHANGES 30 32 src/basemath/base1.c 7 5 src/functions/number_fields/polred 13 7 src/functions/number_fields/polredabs 11 5 src/functions/number_fields/polredbest 3 4 src/test/32/polred 5 3 src/test/in/polred dfbd7a6155 | Karim Belabas | Thu, 13 Aug 2026 11:34:55 +0200 improve doc 4 3 doc/usersch5.tex f33871d4bb | Karim Belabas | Wed, 12 Aug 2026 16:03:30 +0200 fix 'help' bench 1 1 doc/translations 1 1 src/functions/programming/HEADER 8 7 src/test/32/help d8b5a4a5c8 | Karim Belabas | Wed, 12 Aug 2026 15:35:24 +0200 help gphtml 3 2 src/functions/elliptic_curves/ellheegner 08c0485f03 | Karim Belabas | Wed, 12 Aug 2026 15:08:44 +0200 Add section hyperelliptic_curves 6 5 doc/translations
1 0 src/desc/doc_make
2 1 src/desc/gen_proto
12 0 src/functions/hyperelliptic_curves/HEADER
1 1 src/functions/{elliptic_curves => hyperelliptic_curves}/genus2charpoly
1 1 src/functions/{elliptic_curves => hyperelliptic_curves}/genus2igusa
1 1 src/functions/{elliptic_curves => hyperelliptic_curves}/genus2red
1 1 src/functions/{elliptic_curves => hyperelliptic_curves}/hyperellauto
1 1 src/functions/{elliptic_curves => hyperelliptic_curves}/hyperellchangecompose
1 1 src/functions/{elliptic_curves => hyperelliptic_curves}/hyperellchangecurve
1 1 src/functions/{elliptic_curves => hyperelliptic_curves}/hyperellchangeinvert
1 1 src/functions/{elliptic_curves => hyperelliptic_curves}/hyperellchangepoint
1 1 src/functions/{elliptic_curves => hyperelliptic_curves}/hyperellchangepointinv
1 1 src/functions/{elliptic_curves => hyperelliptic_curves}/hyperellcharpoly
1 1 src/functions/{elliptic_curves => hyperelliptic_curves}/hyperelldisc
1 1 src/functions/{elliptic_curves => hyperelliptic_curves}/hyperellextremalmodels
1 1 src/functions/{elliptic_curves => hyperelliptic_curves}/hyperellisisom
1 1 src/functions/{elliptic_curves => hyperelliptic_curves}/hyperellisoncurve
1 1 src/functions/{elliptic_curves => hyperelliptic_curves}/hyperellminimaldisc
1 1 src/functions/{elliptic_curves => hyperelliptic_curves}/hyperellminimalmodel
1 1 src/functions/{elliptic_curves => hyperelliptic_curves}/hyperellordinate
1 1 src/functions/{elliptic_curves => hyperelliptic_curves}/hyperellpadicfrobenius
1 1 src/functions/{elliptic_curves => hyperelliptic_curves}/hyperellperiods
1 1 src/functions/{elliptic_curves => hyperelliptic_curves}/hyperellratpoints
1 1 src/functions/{elliptic_curves => hyperelliptic_curves}/hyperellred
2 1 src/language/gplib.c
8cf5def227 | Karim Belabas | Wed, 12 Aug 2026 12:45:13 +0200 whitespace edit 1 1 src/language/gplib.c 9100b25396 | Karim Belabas | Wed, 12 Aug 2026 12:42:39 +0200 fix 'help' bench 27 28 src/test/32/help 1 1 src/test/in/help 5bcb594db5 | Karim Belabas | Wed, 12 Aug 2026 11:44:46 +0200 make ?? 7 more useful (add GHELPskip markers) avoid truncation at first subsection 3 4 src/functions/number_theoretical/HEADER 1 1 src/functions/number_theoretical/chargalois 8b09daa257 | Karim Belabas | Wed, 12 Aug 2026 10:46:27 +0200 move "chinese" to 'operators' directory corresponding to its new 'Section' 0 0 src/functions/{number_theoretical => operators}/chinese
78fc9b3177 | Karim Belabas | Wed, 12 Aug 2026 03:48:51 +0200 kill warnings about signedness 2 2 src/language/es.c 1 1 src/language/gplib.c 1 1 src/language/readline.c c84ff1bfdd | Karim Belabas | Wed, 12 Aug 2026 02:38:32 +0200 update 'help' bench 18 27 src/test/32/help 1 1 src/test/in/help 440e198da1 | Karim Belabas | Wed, 12 Aug 2026 02:22:51 +0200 split the ?1 help section in 3, as in GP's manual control statements + GP specific functions + parallel programming Fewer functions in each sections, more consistent, and allows ??1, ??2, ??3 to print meaningful introductions 18 16 doc/translations 5 7 src/desc/gen_proto 3 1 src/language/gplib.c 5baba0d7dd | Karim Belabas | Wed, 12 Aug 2026 02:12:23 +0200 improve doc 14 7 src/functions/programming/HEADER cc56aac88b | Karim Belabas | Wed, 12 Aug 2026 01:08:40 +0200 '?' now prints a short introduction + move list of help sections to '?*' 2 0 CHANGES 2 0 COMPAT 1 1 doc/usersch2.tex 39 22 src/language/gplib.c c738409dce | Karim Belabas | Tue, 11 Aug 2026 16:32:06 +0200 move functions related to the Euclidean algorithm to the "operators" section Treat "gcd" (and variants) as as operator: all these functions apply equally to Z or K[X] (where K is a general field), they fit better here than among "arithmetic functions". Also improves content balance between help sections. 2 1 src/functions/number_theoretical/HEADER
1 1 src/functions/number_theoretical/chinese
6 0 src/functions/operators/HEADER
1 1 src/functions/{number_theoretical => operators}/bestappr
1 1 src/functions/{number_theoretical => operators}/bestapprPade
1 1 src/functions/{number_theoretical => operators}/bestapprnf
1 1 src/functions/{number_theoretical => operators}/bezout
1 1 src/functions/{number_theoretical => operators}/content
1 1 src/functions/{number_theoretical => operators}/contfrac
1 1 src/functions/{number_theoretical => operators}/contfracpnqn
1 1 src/functions/{number_theoretical => operators}/gcd
1 1 src/functions/{number_theoretical => operators}/gcdext
1 1 src/functions/{number_theoretical => operators}/halfgcd
1 1 src/functions/{number_theoretical => operators}/lcm
9a584ccf79 | Karim Belabas | Mon, 10 Aug 2026 19:25:09 +0200 better document \h: now also include information on defaults 7 7 doc/usersch2.tex 3 3 src/language/gplib.c 1 1 src/test/32/help b601f3d754 | Karim Belabas | Mon, 10 Aug 2026 19:04:20 +0200 separate uses of functions_hash and defaults_hash and reduce collisions 1) don't use the same functions_tblsz for both tables. Their sizes become functions_hash_MASK + 1 and defaults_hash_MASK + 1 2) make both sizes a power of 2: same number of collisions and cheaper to convert hash to bucket number (reduce mod a power of 2). 3) functions_hash size was 135. With 1403 built-in symbols, functions_hash had lots of collisions: up to 23 symbols per bucket on startup with gp -f, see \h-. Increase size to 8192; now max is initially 3 (which occurs 10 times). This should scale OK up to 6000 symbols or so. 4) defaults_hash size was 135. Reduce to 128 (10 buckets contain 2 entries). This one is static and the first size with 0 collisions is 1024. Not worth it ... 4 2 src/headers/paripriv.h 16 16 src/language/anal.c 2 2 src/language/anal.h 3 2 src/language/default.c 29 26 src/language/es.c 1 1 src/language/eval.c 26 7 src/language/gplib.c 13 9 src/language/init.c 5 5 src/language/readline.c 31f609923f | Karim Belabas | Mon, 10 Aug 2026 18:17:01 +0200 doc typo 1 1 doc/usersch5.tex 5b9cd79ad0 | Karim Belabas | Mon, 10 Aug 2026 16:10:51 +0200 print_functions_hash: rewrite diagostics \h- and \h for larger tables - 3 times as many entries per line - add total/max to \h- - add indexmax to both 14 12 src/language/es.c aacb62fded | Karim Belabas | Mon, 10 Aug 2026 12:50:43 +0200 \h: also print the hash realizing the (first) maximum 5 5 src/language/es.c 6c646ad209 | Karim Belabas | Sun, 9 Aug 2026 17:26:46 +0200 fix ?? 7 1 1 doc/translations 763f35d9fe | Karim Belabas | Sun, 9 Aug 2026 01:13:14 +0200 divisorslenstra: add complexity 2 1 src/functions/number_theoretical/divisorslenstra a2716ac17c | Karim Belabas | Sun, 9 Aug 2026 01:06:54 +0200 Expand the help text printed when typing '?' + improve wording of help sections 26 16 src/language/gplib.c 29 17 src/test/32/help c76aad15cf | Karim Belabas | Fri, 7 Aug 2026 01:05:56 +0200 add a CHANGES entry for numbpart improvements + minor improvement to memory use 1 0 CHANGES 1 1 src/modules/part.c d3f1ee2989 | Karim Belabas | Thu, 6 Aug 2026 12:42:11 +0200 rename L -> SelbergL and compute cosines via roots of unity with caching
- compute cos((6l+1)/(6q) * Pi) as real(r^(1+6l)), r = e(1/(12q))
- compute r^(1+6l) as r^(1+6lastl) * R^d, d = l - last, R = r^6
- compute the successive R^d via a naive addition chain for d, caching
values. N.B. There are few values of d, with collisions, this improves
further on caching the R^d by reusing all powers. One could implement
other improvements, sliding 2^k window or Yao's multipowering,
but d is "small" and almost all the time is spent computing e(1/(12q)).
N.B there's an optimal formula for L(n,q) in terms of the factorization of q.
Not worth the complication for now.
Before:
numbpart(10^7); \\ time = 45 ms.
numbpart(10^8); \\ time = 181 ms.
numbpart(10^9); \\ time = 4,050 ms.
numbpart(10^10);\\ time = 56,031 ms.
numbpart(10^11);\\ time = 54min, 41,505 ms.
After:
numbpart(10^7); \\ time = 43 ms.
numbpart(10^8); \\ time = 147 ms.
numbpart(10^9); \\ time = 1,793 ms.
numbpart(10^10);\\ time = 17,593 ms.
numbpart(10^11);\\ time = 8min, 12,924 ms.
44 15 src/modules/part.c 1c3531c0ce | Karim Belabas | Wed, 5 Aug 2026 23:52:47 +0200 psi: remove unused argument 6 6 src/modules/part.c 790fb8cabc | Karim Belabas | Wed, 5 Aug 2026 20:21:46 +0200 2- abs(t_QUAD) would not return exact answer even if possible For instance abs(3 + 4*I) -> 5 but abs(3 + 4*quadgen(-4)) -> 5.000000000000 Now the latter is 5 as well. 1 0 CHANGES 14 3 src/basemath/gen2.c 11 2 src/functions/transcendental/abs 5 0 src/test/32/quad 5 0 src/test/in/quad e0e0428755 | Karim Belabas | Wed, 5 Aug 2026 14:59:38 +0200 cgetr(realprec()) -> rtor_lg 2 3 src/headers/pariinl.h 52aa2b724e | Karim Belabas | Wed, 5 Aug 2026 11:11:02 +0200 numbpart: reorganize computation + allow n < 2^54 - factor out sqrt(q) term in Psi and sqrt(q/3) in L: avoid square roots and replace full precision multiplication by simple multiplication by q - avoid low precision exponentials: with Selberg formula the neglectible sum is actually 0 - precompute pi / 6*q in L - simplify pinit - rename estim -> log2pn and return a double - bound 10^15 was somewhat arbitrary, increase to 2^54. Both would require hundreds of years to compute using current implementation. Asymptotic complexity remains the same (and bad, more than quadratic in output size instead of almost linear). But 25% improvement for small values, with diminishing returns. Before: numbpart(10^7); \\ time = 54 ms. numbpart(10^8); \\ time = 289 ms. numbpart(10^9); \\ time = 5,841 ms. numbpart(10^10);\\ time = 1min, 11, 975 ms. numbpart(10^11);\\ time = 1h, 9min, 14,433 ms After: numbpart(10^7); \\ time = 45 ms. numbpart(10^8); \\ time = 181 ms. numbpart(10^9); \\ time = 4,050 ms. numbpart(10^10);\\ time = 56,031 ms. numbpart(10^11);\\ time = 54min, 41,505 ms. 6 2 src/functions/combinatorics/numbpart 60 71 src/modules/part.c 4 4 src/test/32/partition 3 1 src/test/in/partition 2aa36b188e | Karim Belabas | Wed, 5 Aug 2026 00:47:19 +0200 fix make test-kernel: link with dummy Z_ispow2 1 0 src/test/dummy.c c6f8509a38 | Karim Belabas | Tue, 4 Aug 2026 16:02:51 +0200 rdivsi, rdivis, rdivss: use cgetg(l, t_REAL) 9 6 src/kernel/none/level1.h b6c7346be6 | Karim Belabas | Tue, 4 Aug 2026 15:48:56 +0200 cgetc: improve + fix doc 2 2 doc/usersch5.tex 5 1 src/headers/pariinl.h 6228332044 | Karim Belabas | Mon, 3 Aug 2026 19:10:11 +0200 update trans bench after commit cb6dca75d7 incgam(4,1,6) incgamm uses 2 more words 1 1 src/test/in/trans b8dbac3ada | Karim Belabas | Mon, 3 Aug 2026 15:01:58 +0200 stack corruption in mplog1p due to lg / prec confusion fixlg argument is a length, not a prec 1 1 src/basemath/trans1.c 87a25cc55c | Karim Belabas | Mon, 3 Aug 2026 14:59:57 +0200 cleanup exp1r_abs 17 16 src/basemath/trans1.c 153ba13d3d | Karim Belabas | Mon, 3 Aug 2026 14:48:00 +0200 rpowuu: cgetr -> cgetg(,t_REAL) 1 2 src/basemath/trans1.c cb6dca75d7 | Karim Belabas | Mon, 3 Aug 2026 11:53:46 +0200 bessel: confusions between lg and prec + 1 => + EXTRAPREC64 5 4 src/basemath/trans3.c eb4f185337 | Karim Belabas | Mon, 3 Aug 2026 03:01:48 +0200 final prec2nbits cleanups 2 3 doc/usersch5.tex 10 10 src/language/sumiter.c f3adb75535 | Karim Belabas | Mon, 3 Aug 2026 02:54:33 +0200 further prec2nbits cleanups 9 9 src/basemath/rootpol.c 8ff2fa6c2a | Karim Belabas | Mon, 3 Aug 2026 01:51:13 +0200 fix bestappr doc and comment in code 4 2 src/basemath/arith1.c 4 1 src/functions/number_theoretical/bestappr f87187a8d7 | Karim Belabas | Mon, 3 Aug 2026 01:36:44 +0200 rootpol.c: prec2nbits cleanups Also fix incorrect paranoia setting in mygprec if (bit < 0) bit = 0 to if (bit < BITS_IN_LONG) bit = BITS_IN_LONG 26 30 src/basemath/rootpol.c 924108c585 | Karim Belabas | Sun, 2 Aug 2026 20:24:51 +0200 simple rewrite of prec2nbits uses (= identity now) 3 4 src/basemath/alglin2.c 12 14 src/basemath/bern.c 15 15 src/basemath/bibli2.c 21 23 src/basemath/elltrans.c 13 14 src/basemath/grossenchar.c 41 45 src/basemath/hypergeom.c 7 6 src/basemath/lambert.c 10 10 src/basemath/lerch.c 4 4 src/basemath/lll.c 20 21 src/basemath/mftrace.c 3 5 src/basemath/random.c 65 82 src/basemath/trans1.c 38 43 src/basemath/trans2.c 71 84 src/basemath/trans3.c 14 16 src/basemath/zetamult.c 739e92e7d0 | Karim Belabas | Sun, 2 Aug 2026 17:27:12 +0200 remove uses of prec2nbits_mul 2 3 src/basemath/bern.c 3 4 src/basemath/bibli1.c 2 3 src/basemath/elliptic.c 3 3 src/basemath/elltrans.c 1 1 src/basemath/hypergeom.c 1 1 src/basemath/mftrace.c 1 1 src/basemath/trans1.c 3 3 src/basemath/trans2.c 11 11 src/basemath/trans3.c bbe394f588 | Karim Belabas | Sun, 2 Aug 2026 16:57:29 +0200 divri: handle divisions by powers of 2 more efficiently + document how to input an exact floating point number (in binary). 8 5 doc/usersch2.tex 1 0 src/kernel/gmp/mp.c 1 0 src/kernel/none/mp.c c4a1f08c05 | Karim Belabas | Sun, 2 Aug 2026 16:43:54 +0200 doc clarifications 9 4 doc/usersch2.tex af824de975 | Karim Belabas | Sun, 2 Aug 2026 16:25:28 +0200 absrtostr_width_frac: confusion between lg / prec [similar to f3d63fab9] 4 4 src/language/es.c 0d95d2cd4b | Karim Belabas | Sun, 2 Aug 2026 16:21:46 +0200 deprecate real_1_bit: use real_1 5 0 CHANGES 1 0 COMPAT 2 5 doc/usersch5.tex 1 1 src/basemath/rootpol.c 2 2 src/basemath/trans1.c 1 1 src/basemath/trans2.c 1 1 src/basemath/trans3.c 0 1 src/headers/paridecl.h 1 0 src/headers/pariold.h 1 1 src/kernel/none/add.c 1 3 src/kernel/none/level1.h 8 8 src/language/sumiter.c dcafa01c45 | Karim Belabas | Sun, 2 Aug 2026 15:56:36 +0200 fix mpatanh: confusion EXTRAPREC64 -> BITS_IN_LONG + wrong exponent bound 2 2 src/basemath/trans2.c e70f794b60 | Karim Belabas | Sun, 2 Aug 2026 15:02:47 +0200 2- [libpari] rename real_0_bit -> real_0_expo The argument is not a bitprec, but an exponent. Inconsistent naming with - real_1_bit (argument is actually a bitpec) - real_0 (argument is actually a prec) And inconsistent semantic with real_0(prec) = real_0_bit(- prec). 1 0 CHANGES 6 0 COMPAT 5 3 doc/usersch5.tex 2 2 src/basemath/bibli2.c 1 1 src/basemath/lfun.c 1 1 src/basemath/mftrace.c 2 2 src/basemath/random.c 9 9 src/basemath/rootpol.c 13 13 src/basemath/trans1.c 8 8 src/basemath/trans2.c 1 1 src/headers/paridecl.h 4 4 src/headers/pariinl.h 2 1 src/headers/pariold.h 2 2 src/kernel/gmp/mp.c 4 4 src/kernel/none/add.c 2 2 src/kernel/none/level1.h 2 2 src/kernel/none/mp.c 11 11 src/kernel/none/mp_indep.c 1 1 src/language/anal.c f3d63fab94 | Karim Belabas | Sun, 2 Aug 2026 13:26:47 +0200 absrtostr: confusion between lg / prec lx = lg(x) was changed to lx = realprec(x) without updating occurences of lx + 1 or lx++ 10 10 src/language/es.c 339e92c4aa | Karim Belabas | Sun, 2 Aug 2026 13:22:54 +0200 fix prec / length confusions 12 10 doc/usersch4.tex 38 22 doc/usersch5.tex 11 10 src/functions/transcendental/HEADER |
PARI/GP Development
Last Modified: 2025-11-17 10:46:31
Copyleft © 2003-2025
the PARI group.