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


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

bf169fd0a0 | Karim Belabas | Sun, 20 Sep 2026 12:48:11 +0200
7- matmodhnf: incorrect handling of empty matrix [#2699]
1	0	CHANGES
1	1	src/basemath/ZV.c
6	0	src/test/32/matmodhnf
10	2	src/test/in/matmodhnf

9397d772d8 | Karim Belabas | Sun, 13 Sep 2026 15:40:48 +0200
lfunlage: add 64 bits to target bitprecision in set_q_value

lfunlarge is heuristic and has been
tested in low accuracy and high height. It loses accuracy as
bitprecision increases.
{
  Z = lfuninit(1, []);
  for(b=32, oo,
    localbitprec(b);
    e = exponent(lfunhardy(Z, 2)-lfunhardy(1,2)) + b;
    if (e> 0, print([b, e])))
}
All values are imprecise when bitprecision in [111,127], and from 146 on.
Experimentally, e tends to infinity.

This patch doesn't fix the true issue, loss of accuracy now occurs
from bitprecision = 176 on.
6	4	src/basemath/lfunlarge.c



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