PARI/GP

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 weeks


603d02feac | Bill Allombert | Tue, 29 Sep 2026 22:14:15 +0200
z=ffgen(23^3,'z);hyperellcharpoly(t^3+z*t+4) -> SEGV [#2703]
2	0	CHANGES
1	1	src/basemath/ZX.c
2	1	src/test/32/hyperell
3	0	src/test/in/hyperell

bbfb6892ca | Bill Allombert | Mon, 28 Sep 2026 14:22:44 +0200
Bump version to 2.20.0
3	54	CHANGES
59	0	CHANGES-2.18
1	1	README
1	1	config/version
1	1	doc/refmacro.tex
1	1	src/test/32/version

19e00f7164 | Bill Allombert | Mon, 28 Sep 2026 10:29:32 +0200
trace(Mod(x, Mod(1,2)*(x^2+x+1))) ->0 [#2702] (from Manvir Jaswal)
2	1	CHANGES
1	1	src/basemath/FpX.c
1	1	src/basemath/RgX.c
1	0	src/test/32/pol
1	0	src/test/in/pol

c3df5477f3 | Karim Belabas | Sun, 27 Sep 2026 16:53:11 +0200
doc typo
1	1	src/functions/number_fields_relative/HEADER

6fcef1292f | Karim Belabas | Sun, 27 Sep 2026 16:41:15 +0200
add galoisorder
1	0	doc/refcard-nf.tex

9f6590254c | Karim Belabas | Sun, 27 Sep 2026 16:36:06 +0200
update NEW and COMPAT
3	1	COMPAT
11	1	NEW

9e985fdc2b | Karim Belabas | Sun, 27 Sep 2026 16:27:08 +0200
fix bnfcertify and c_2 phase ("be honest") in bnfinit

Both incorrectly skipped part of the checks in degree> 2. Removing the
last unramified prime above p is only correct if all primes above p have
been included. Initial report and analysis by Manvir Jaswal.

[libpari] prime_over_p_full
3	0	CHANGES
4	0	doc/usersch6.tex
25	3	src/basemath/buch2.c
1	0	src/headers/paridecl.h

33547b448a | Bill Allombert | Sun, 27 Sep 2026 11:54:04 +0200
CHANGES: Move 2.18 changes to CHANGES-2.18
0	335	CHANGES
334	0	CHANGES-2.18

a0a6093e33 | Karim Belabas | Sun, 27 Sep 2026 10:44:08 +0200
SPLIT: rename nbtest* variables to be consistent with nsub

General convention:
- nxxx stands for "number of elements in xxx"
- lxxx stands for lg(xxx)
- avoid the name 'l' for anything that is not an 'lg'.
7	7	src/basemath/buch2.c

2f273d38c5 | Karim Belabas | Sun, 27 Sep 2026 10:32:28 +0200
SPLIT: handle length of subfactorbase cleanly

No bug: when ++lgsub < minss(8, lg(Vbase) - 1) fails once, then nbtest_lim
is set to LONG_MAX and we never hit that line again. So lgsub could be as
large as lg(Vbase) - 1 at most and there is no out-of-bound access in Vbase.

In fact the intent was to go as far as lg(Vbase) so there was a
(harmless) off-by-1 error. New code is less cryptic
16	13	src/basemath/buch2.c

fbb57974b6 | Karim Belabas | Sat, 26 Sep 2026 19:01:26 +0200
add example
5	1	doc/usersch2.tex

433ddc74eb | Karim Belabas | Sat, 26 Sep 2026 18:57:50 +0200
doc improvements
25	21	doc/usersch2.tex
2	2	doc/usersch5.tex

b6c21bfeb4 | Karim Belabas | Fri, 25 Sep 2026 22:48:43 +0200
10- factorpadic(1+O(3)*x^2,3,2) -> SEGV [#2701]

Original analysis and patch by Johan Mercedes
1	0	CHANGES
4	4	src/basemath/polarit1.c
8	1	src/test/32/padic
5	0	src/test/in/padic

9ba226efa7 | Bill Allombert | Fri, 25 Sep 2026 17:33:03 +0200
polsubcyclofast(8,4) and (16,4): wrong result
4	4	src/basemath/nflist.c
4	2	src/test/32/subcyclo
1	0	src/test/in/subcyclo

202940de4f | Karim Belabas | Fri, 25 Sep 2026 16:10:03 +0200
restore ndec2prec, deprecate ndec2nbits instead
1	1	CHANGES
1	1	COMPAT
32	21	doc/usersch5.tex
1	1	src/basemath/bibli2.c
1	1	src/functions/gp2c_internal/_prec
1	1	src/headers/paridecl.h
1	1	src/headers/pariinl.h
1	1	src/headers/pariold.h
2	2	src/language/default.c
2	2	src/language/es.c
1	1	src/language/eval.c

07d90f5f5b | Bill Allombert | Fri, 25 Sep 2026 10:16:48 +0200
polsubcycloC4_i: remove argument fli which is always 1
12	12	src/basemath/nflist.c

00f707ce3f | Bill Allombert | Thu, 24 Sep 2026 21:33:42 +0200
groupelts_cnteq: missing vecsmall_sort [#2700]
238	237	src/modules/groupid.c

b53016c7f1 | Bill Allombert | Thu, 24 Sep 2026 15:45:32 +0200
polsubcyclofast(52,4,,1) -> []
2	2	src/basemath/nflist.c
2	1	src/test/32/subcyclo
1	0	src/test/in/subcyclo

b3d2e13ad9 | Bill Allombert | Thu, 24 Sep 2026 14:27:15 +0200
polsubcyclofast(58,7) -> []
1	0	CHANGES
1	1	src/basemath/nflist.c
2	1	src/test/32/subcyclo
1	0	src/test/in/subcyclo

eee4dd2756 | Karim Belabas | Wed, 23 Sep 2026 00:28:34 +0200
move nbits2prec call to prec_fix

chk_gen_prec also needs it
2	1	src/basemath/base1.c

754cb31ac0 | Bill Allombert | Wed, 23 Sep 2026 00:18:16 +0200
OCprecreal: restore compatibility by using OCbitprecreal
3	3	src/language/compile.c
4	2	src/language/eval.c
1	1	src/test/32/fingerprint

ba89936898 | Bill Allombert | Tue, 22 Sep 2026 23:41:02 +0200
ellisomat: revert to kernel poly after a division by 0
1	0	CHANGES
110	30	src/basemath/ellisog.c
14	1	src/test/32/ellisomat
3	0	src/test/in/ellisomat

afbb4055a8 | Bill Allombert | Tue, 22 Sep 2026 23:41:02 +0200
elkies98: move up
43	43	src/basemath/ellisog.c

c590007ffa | Bill Allombert | Tue, 22 Sep 2026 23:41:02 +0200
New libpari function divisors_fact_degmax
2	0	CHANGES
4	0	doc/usersch5.tex
38	0	src/basemath/arith2.c
1	0	src/headers/paridecl.h

5713f66aea | Karim Belabas | Tue, 22 Sep 2026 23:17:17 +0200
restore the OCbitprecreal opcode

Full backward compatibility is not possible since the OCbitprecreal and
OCprecreal opcodes now behave identically, but it didn't use to be the
case. This still improves compatibility: the compiler can no longer
generate that opcode, but the evaluator will still interpret it.

Older gp reading newly compiled code will behave differently than
current evaluator.
5	0	src/language/eval.c
2	1	src/language/opcode.h

56ad7371ae | Karim Belabas | Tue, 22 Sep 2026 20:31:11 +0200
remove the OCbitprecreal opcode and deprecate the 'b' prototype code

+ p (OCprecreal) has now the same semantics. 'b' is still accepted, for
backward compatibility but no longer documented.

+ Remove/rename the functions push_localprec -> push_localbitprec,
pop_localprec -> pop_localbitprec, get_localprec -> get_localbitprec.
They all correspond to localbitprec() uses, number of bits rather than
decimal digits.
1	1	CHANGES
12	17	doc/develop.tex
1	3	doc/usersch5.tex
4	4	src/basemath/lfunutils.c
1	1	src/functions/elliptic_curves/ellL1
1	1	src/functions/elliptic_curves/ellanalyticrank
1	1	src/functions/hypergeometric_motives/lfunhgm
1	1	src/functions/l_functions/lfun
1	1	src/functions/l_functions/lfunartin
1	1	src/functions/l_functions/lfuncheckfeq
1	1	src/functions/l_functions/lfunconductor
1	1	src/functions/l_functions/lfuncost
1	1	src/functions/l_functions/lfundiv
1	1	src/functions/l_functions/lfundual
1	1	src/functions/l_functions/lfunhardy
1	1	src/functions/l_functions/lfuninit
1	1	src/functions/l_functions/lfunlambda
1	1	src/functions/l_functions/lfunmfspec
1	1	src/functions/l_functions/lfunmul
1	1	src/functions/l_functions/lfunorderzero
1	1	src/functions/l_functions/lfunrootres
1	1	src/functions/l_functions/lfunshift
1	1	src/functions/l_functions/lfuntheta
1	1	src/functions/l_functions/lfunthetacost
1	1	src/functions/l_functions/lfunthetainit
1	1	src/functions/l_functions/lfuntwist
1	1	src/functions/l_functions/lfunzeros
1	1	src/functions/modular_forms/lfunmf
1	1	src/functions/modular_forms/mfcuspval
1	1	src/functions/modular_forms/mfeval
1	1	src/functions/modular_forms/mfmanin
1	1	src/functions/modular_forms/mfperiodpol
1	1	src/functions/modular_forms/mfsymbol
1	1	src/functions/modular_forms/mfsymboleval
1	1	src/functions/programming/getlocalbitprec
1	1	src/functions/sums/intnumromb
1	1	src/functions/sums/suminf
1	1	src/functions/transcendental/besseljzero
1	1	src/functions/transcendental/besselyzero
1	1	src/functions/transcendental/gammamellininv
1	1	src/functions/transcendental/gammamellininvinit
1	1	src/functions/transcendental/zetahurwitz
1	1	src/functions/znstar/znchargauss
1	3	src/headers/paridecl.h
1	1	src/language/anal.c
2	6	src/language/compile.c
12	24	src/language/eval.c
1	2	src/language/opcode.h
2	2	src/language/sumiter.c

818da3a405 | Karim Belabas | Tue, 22 Sep 2026 20:31:09 +0200
deprecate functions related to the old 'prec' concept
10	0	CHANGES
9	0	COMPAT
2	2	doc/usersch4.tex
3	3	doc/usersch5.tex
1	1	src/basemath/base1.c
1	1	src/basemath/bibli2.c
1	1	src/basemath/ellanal.c
1	1	src/basemath/mellininv.c
2	2	src/basemath/trans1.c
3	3	src/basemath/trans2.c
0	4	src/headers/pariinl.h
1	1	src/kernel/gmp/mp.c
4	4	src/kernel/none/mp_indep.c
6	6	src/language/default.c
3	3	src/language/es.c
3	3	src/language/eval.c
7	7	src/language/intnum.c
1	1	src/modules/stark.c

8f2f859c6b | Karim Belabas | Tue, 22 Sep 2026 20:31:07 +0200
remove neutralized nbits2prec uses, rename nbits2prec_required -> nbits2prec
2	4	doc/usersch5.tex
1	1	src/basemath/Qfb.c
1	1	src/basemath/arith1.c
3	3	src/basemath/base1.c
1	1	src/basemath/base3.c
22	25	src/basemath/bern.c
2	6	src/basemath/bibli1.c
1	1	src/basemath/bnfunits.c
1	1	src/basemath/buch1.c
10	10	src/basemath/buch2.c
8	10	src/basemath/ellanal.c
3	3	src/basemath/elliptic.c
1	1	src/basemath/ellrank.c
7	7	src/basemath/elltrans.c
3	3	src/basemath/gen1.c
10	12	src/basemath/gen3.c
11	11	src/basemath/grossenchar.c
7	7	src/basemath/hgm.c
1	1	src/basemath/hyperell.c
4	4	src/basemath/hypergeom.c
6	7	src/basemath/lambert.c
32	33	src/basemath/lerch.c
148	165	src/basemath/lfun.c
16	19	src/basemath/lfunlarge.c
6	7	src/basemath/lfunquad.c
29	35	src/basemath/lfunutils.c
1	1	src/basemath/lll.c
14	15	src/basemath/mellininv.c
85	91	src/basemath/mftrace.c
3	4	src/basemath/nffactor.c
29	34	src/basemath/rootpol.c
42	43	src/basemath/trans1.c
13	13	src/basemath/trans2.c
34	46	src/basemath/trans3.c
6	7	src/basemath/zetamult.c
0	6	src/headers/paridecl.h
3	17	src/headers/pariinl.h
6	0	src/headers/pariold.h
0	2	src/kernel/none/level1.h
2	2	src/language/eval.c
33	33	src/language/intnum.c
8	9	src/language/sumiter.c
6	6	src/modules/galois.c
5	6	src/modules/part.c
1	2	src/modules/ratpoints.c
5	5	src/modules/stark.c
3	4	src/modules/thue.c
0	2	src/test/dummy.c

76d766bcbe | Karim Belabas | Tue, 22 Sep 2026 20:31:06 +0200
improve explanation of t_REAL precisions
4	2	doc/usersch2.tex
22	17	doc/usersch4.tex
36	40	doc/usersch5.tex
12	20	src/functions/transcendental/HEADER

567715f74e | Karim Belabas | Tue, 22 Sep 2026 20:31:04 +0200
neutralize nbits2prec

This temporary commit allows abitrary nbits in the interface of public
functions (the notion of 'prec' as a multiple of BITS_IN_LONG
disappears).

Introduce a temporary internal function nbits2prec_required for the
limited uses where we must indeed replace an nbits by the next multiple
of BITS_IN_LONG. Namely all constxxx functions caching a t_REAL
constant: the cache mechanism compares the required bit precision with
the maximal bit precision of the cached constant. So the actual bit
precision of the constant (e.g., gpi) *must* be equal to its maximal
precision.

In a followup commit, all remaining nbits2prec are removed and
nbits2prec_required is renamed nbits2prec.

The main issue with nbits2prec was (incorrect) double rounding as in

  nbits2prec(a) + nbits2extraprec(b).

instead of the correct

  nbits2prec(a + b)

It also conflicts with the general goal of choosing an arbitrary bit
accuracy b, which is important when the complexity is not polynomial in b.

After the present commit, using a + b should be fine in all cases where
nbits2prec_required was not used. Many functions still compute with the
maximal accuracy allowed by a t_REAL length (a multiple of
BITS_IN_LONG), but it is no longer an interface requirement.
2	3	src/basemath/base1.c
5	3	src/basemath/trans1.c
2	1	src/basemath/trans3.c
4	1	src/headers/pariinl.h
1	1	src/test/32/algebras
1	1	src/test/32/modfun
1	1	src/test/32/nfields

110e2bfa61 | Bill Allombert | Mon, 21 Sep 2026 21:43:51 +0200
group_identify: add supprt for groups of order <=191
1	0	CHANGES
1	1	src/functions/number_fields_galois/galoisidentify
677	337	src/modules/groupid.c

290c27562e | Bill Allombert | Mon, 21 Sep 2026 21:43:38 +0200
doc: group_ident{,_trans}: parameter elts was removed
4	6	doc/usersch5.tex

f55adbee70 | Bill Allombert | Mon, 21 Sep 2026 20:47:54 +0200
groupelts_to_group: when not wss, return elts instead of NULL
1	0	CHANGES
1	0	COMPAT
1	2	doc/usersch5.tex
9	11	src/basemath/galconj.c
14	14	src/basemath/perm.c

c8736fc329 | Bill Allombert | Mon, 21 Sep 2026 18:10:54 +0200
New libpari function group_iswss
1	1	CHANGES
5	0	doc/usersch5.tex
14	14	src/basemath/perm.c
1	0	src/headers/paridecl.h



PARI/GP Development
Last Modified: 2025-11-17 10:46:31
Copyleft © 2003-2025 the PARI group.