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


9aefcc4b5e | Karim Belabas | Sat, 1 Aug 2026 12:44:34 +0200
add proto.c to src/desc/.gitignore
1	0	src/desc/.gitignore

2e69593988 | Karim Belabas | Sat, 1 Aug 2026 12:38:34 +0200
Kderivsmallinit: simplify code
2	6	src/basemath/mellininv.c

859750f9af | Karim Belabas | Sat, 1 Aug 2026 12:33:17 +0200
fix conceptual difference 32/64-bit due to EXTRAPRECWORD/EXTRAPREC64

The logic of EXTRAPRECWORD is to add "a few" guard bits,actually BITS_IN_LONG,
to cater for terms bounded by log2(ulong).

The logic of incrprec(bit) or bit + EXTRAPREC64 is to do it in an
architecture-independent way (add 64 bits no matter what).

This commit replaces EXTRAPRECWORD by EXTRAPREC64. The odd speed gain on
32-bit architectures is not worth the lack of consistency and potential
for bizarre bugs (further differences in behaviour between 32/64 bits).

EXTRAPRECWORD wasn't actually used consistently or frequently (15 occurences)
and it wasn't documented.

CAVEAT: This is about the precreal ~ bitprec world. A parallel issue
in the 'lg' world is lgprec + 1 or lx++ instead of
  lgprec + EXTRAPREC64 / BITS_IN_LONG
This is much more frequent than EXTRAWORD and will be dealt with later.
For historical reasons a 'bitprec' is actually a "bit accuracy" whereas
a 'prec' is a multiple of BITS_IN_LONG (making the range of attainable
precs depend on the architecture. This is an issue: it should be a
multiple of 64 always.

N.B. It is worth keeping 2 notions of "bit precision" and "mantissa size
in words" even though the latter can be inferred from the former.
1	1	src/basemath/base1.c
3	3	src/basemath/dirichlet.c
2	2	src/basemath/ellanal.c
1	1	src/basemath/ellrank.c
1	1	src/basemath/hyperell.c
1	1	src/basemath/mellininv.c
3	3	src/basemath/trans1.c
3	3	src/basemath/trans2.c
0	1	src/headers/parigen.h

b07f903357 | Karim Belabas | Sat, 1 Aug 2026 12:09:40 +0200
expQ: fix conceptual bug introduced 499574bea

lx++ for t_REAL is achitecture dependent, one should use
  lx += EXTRAPREC64 / BITS_IN_LONG
This occurs elsewhere in the code and will be fixed in other commits.
1	1	src/basemath/trans1.c

0515eb9c0d | Bill Allombert | Sat, 1 Aug 2026 09:41:43 +0200
Replace gerepilecopy by gc_GEN
2	2	src/basemath/buch2.c
1	1	src/basemath/ellanal.c

e6893b0017 | Karim Belabas | Fri, 31 Jul 2026 16:16:34 +0200
cleanup zetamult_i
14	10	src/basemath/zetamult.c

499574bea1 | Karim Belabas | Fri, 31 Jul 2026 14:05:08 +0200
cleanup expQ
9	9	src/basemath/trans1.c

cc656fc94d | Karim Belabas | Fri, 31 Jul 2026 13:28:07 +0200
update bench after bestappr rewrite (commit 96846c82)
3	3	src/test/32/gchar-lfun

04f8bd7146 | Karim Belabas | Fri, 31 Jul 2026 10:21:16 +0200
inefficient use of cgetr when lg would be available
9	7	src/basemath/lll.c
4	4	src/kernel/none/level1.h
12	7	src/modules/stark.c

0b77482d3c | Karim Belabas | Fri, 31 Jul 2026 09:32:06 +0200
doc typos related to lg <-> prec conversions
10	10	doc/usersch5.tex

0c161c6d5b | Karim Belabas | Fri, 31 Jul 2026 08:51:51 +0200
doc typos
4	5	doc/usersch5.tex

a724d4b6fb | Karim Belabas | Fri, 31 Jul 2026 08:38:08 +0200
reorganize block of functions related to lg <-> accuracy conversions
14	10	src/headers/pariinl.h

06ca6d8f23 | Karim Belabas | Fri, 31 Jul 2026 08:35:02 +0200
cleanup logr_abs
14	15	src/basemath/trans1.c

0f5a08ee7e | Karim Belabas | Thu, 30 Jul 2026 18:58:41 +0200
RgM_hess: cleanup prec use
16	15	src/basemath/alglin2.c

724adfc0c7 | Karim Belabas | Thu, 30 Jul 2026 16:33:06 +0200
replace nbits2ndec uses by prec2ndec

was always used in precreal context.
1	1	doc/usersch5.tex
1	1	src/basemath/ellanal.c
7	8	src/language/default.c
1	1	src/language/es.c

68fa0d9a3c | Karim Belabas | Thu, 30 Jul 2026 06:33:20 +0200
bestappr_frac: add diagnostic in GC at \gm2
2	1	src/basemath/arith1.c

96846c82da | Karim Belabas | Thu, 30 Jul 2026 05:58:23 +0200
fix bestappr(t_REAL or t_FRAC, B) issues [#2688]

- rewrite bestappr_real in terms of bestappr_frac: this allows the
  accuracy to drop down and is one order of magnitude faster. For instance
    localbitprec(80000); bestappr(Pi, 2^40000);
  goes down from 6,242 ms. to 122 ms.

- best approximation sometimes missed bestappr(-1/7, 6) -> 0 [instead of -1/6]

- bestappr(t_REAL) now choses B = 2^((realprec(x) + 1) \ 2) instead of
  2^realprec(x); with the latter value we might as well return the
  floating point representation of x
4	0	CHANGES
25	99	src/basemath/arith1.c
7	7	src/functions/number_theoretical/bestappr
2	0	src/test/32/bestappr
2	0	src/test/in/bestappr

f9bc4fce97 | Karim Belabas | Wed, 29 Jul 2026 23:58:04 +0200
Replace bit_prec uses by realprec.

Deprecate the bit_prec alias.
2	0	doc/usersch4.tex
1	1	doc/usersch5.tex
1	1	src/basemath/arith1.c
2	2	src/basemath/bit.c
1	1	src/basemath/buch2.c
1	1	src/basemath/elliptic.c
1	1	src/basemath/gen2.c
1	1	src/basemath/gen3.c
1	1	src/basemath/polarit2.c
1	1	src/basemath/trans1.c
3	3	src/basemath/trans2.c
2	2	src/kernel/none/mp_indep.c
1	1	src/modules/galois.c

203f9043b5 | Karim Belabas | Wed, 29 Jul 2026 21:59:34 +0200
bestappr cleanups

- factor out cf_updatepq in bestappr_frac and bestappr_real
- add GC in bestappr_frac
- fix GC in bestappr_real (x clobbered)
37	11	src/basemath/arith1.c

0f6dd85e94 | Karim Belabas | Wed, 29 Jul 2026 17:39:26 +0200
small improvement to bestappr_real
19	2	src/basemath/arith1.c

fedfd442e9 | Karim Belabas | Wed, 29 Jul 2026 17:30:20 +0200
pariold.h: move #ifdef PARI_OLD_NAMES up the list

No longer define (by default) aliases for functions obsoleted more than
10 years ago.
3	2	src/headers/pariold.h

151a1b9eec | Karim Belabas | Wed, 29 Jul 2026 17:29:53 +0200
improve isint2n
3	2	src/kernel/none/halfgcd.c

963965ee3f | Karim Belabas | Tue, 28 Jul 2026 18:55:05 +0200
bestappr_real: add GC + restrict variable scopes
12	6	src/basemath/arith1.c

55b74c51e9 | Karim Belabas | Tue, 28 Jul 2026 03:56:41 +0200
update NEW for 2.19-stable
181	195	NEW

4caa8d9631 | Karim Belabas | Mon, 27 Jul 2026 22:51:23 +0200
doc glitches
3	3	src/functions/number_fields/idealhnf

740b82eb39 | Karim Belabas | Mon, 27 Jul 2026 21:35:10 +0200
document QM_ishnf
2	0	CHANGES
3	0	doc/usersch5.tex

7cf3fffaa6 | Karim Belabas | Mon, 27 Jul 2026 19:30:55 +0200
cleanup idealhnf use

- fix typo in vec_mulid
- clarify in idealhnf doc that idempotent usage (where input is already
  in HNF) is *not* deprecated. We deprecate other non-trivial "vector of
  generators" use in favor of idealfromgens
- uniformize "idempotent" usage in libpari: first idealtyp, then
  idealhnf if not already a t_MAT
- make sure idealhnf recognize matrix in HNF also over the rationals
18	0	src/basemath/ZV.c
16	11	src/basemath/base4.c
23	2	src/basemath/base5.c
14	5	src/functions/number_fields/idealhnf
1	0	src/headers/paridecl.h

be6d0086f4 | Karim Belabas | Mon, 27 Jul 2026 18:38:07 +0200
idealhnf: clarify doc
17	19	src/functions/number_fields/idealhnf

5e123083c2 | Karim Belabas | Mon, 27 Jul 2026 18:19:13 +0200
typo in vec_mulid: the code was inteded to skip x[i] if D | x[i]
3	3	src/basemath/base4.c
8	1	src/test/32/ideal
1	0	src/test/in/ideal

5665e3cb49 | Karim Belabas | Mon, 27 Jul 2026 17:51:58 +0200
hyperellchangecurve doc: switch confusing notations (x,y) <-> (X,Y)
4	4	src/functions/elliptic_curves/hyperellchangecurve

d9511af8f2 | Karim Belabas | Mon, 27 Jul 2026 17:47:42 +0200
hyperell* docs: add a reference to hyperellchange curve

whenever a "change of coordinates" is mentioned and not explained
1	1	src/functions/elliptic_curves/hyperellauto
2	1	src/functions/elliptic_curves/hyperellchangecompose
3	2	src/functions/elliptic_curves/hyperellchangecurve
2	1	src/functions/elliptic_curves/hyperellchangeinvert
1	1	src/functions/elliptic_curves/hyperellchangepoint
1	1	src/functions/elliptic_curves/hyperellchangepointinv
1	1	src/functions/elliptic_curves/hyperellisisom

f39d8d5183 | Bill Allombert | Mon, 27 Jul 2026 17:06:46 +0200
examples: openmp, thread: force compilation error if ENABLE_TLS is not set.
4	0	examples/openmp.c
4	0	examples/thread.c

281a64004d | Karim Belabas | Mon, 27 Jul 2026 15:59:28 +0200
ellmaninconstant: add reference to Cremona's explanation

https://johncremona.github.io/ecdata/manin.txt
1	0	src/functions/elliptic_curves/ellmaninconstant

09afde53b0 | Karim Belabas | Mon, 27 Jul 2026 15:47:35 +0200
ellmaninconstant: minor simplification
3	3	src/basemath/ellisog.c

222d7c911d | Karim Belabas | Mon, 27 Jul 2026 11:52:16 +0200
kill underfull hboxes
8	6	doc/refcard-mf.tex

2e010fc7dc | Karim Belabas | Mon, 27 Jul 2026 11:12:50 +0200
impove doc, kill overfull hbox
10	11	doc/usersch5.tex

7d789df024 | Karim Belabas | Mon, 27 Jul 2026 02:30:10 +0200
doc improvement
2	2	src/functions/number_fields/HEADER

d9162bac08 | Karim Belabas | Sat, 25 Jul 2026 18:24:09 +0200
improve ellheegner doc
8	9	src/functions/elliptic_curves/ellheegner

cb8bee5726 | Bill Allombert | Sat, 25 Jul 2026 17:01:42 +0200
doc:ellheegner: mention ellheegnertwist
10	1	src/functions/elliptic_curves/ellheegner

0b99b01842 | Karim Belabas | Sat, 25 Jul 2026 16:24:04 +0200
fix comment: reference stable version where function is obsoleted
1	1	src/headers/pariold.h

89c4d54ba6 | Bill Allombert | Fri, 24 Jul 2026 22:46:00 +0200
Bump date to 2026
2	2	README
1	1	doc/INSTALL.tex
1	1	doc/gp.1
1	1	doc/gphelp.1
1	1	src/gp/gp.c

903d7f05df | Bill Allombert | Fri, 24 Jul 2026 22:42:44 +0200
Bump version to 2.19.0
3	0	CHANGES
2	2	config/version
1	1	doc/refmacro.tex
1	1	src/test/32/version

3cac3c6d3d | Karim Belabas | Fri, 24 Jul 2026 15:13:00 +0200
add parmatrix
6	6	doc/refcard.tex

3dde52b618 | Karim Belabas | Fri, 24 Jul 2026 12:03:30 +0200
expIPiR: don't call absrnz_equal2n on 0.0
15	10	src/basemath/elltrans.c

95e3b72995 | Bill Allombert | Fri, 24 Jul 2026 03:27:34 +0200
upowers: compute powers x^0 to x^n as documented
2	2	src/basemath/trans1.c

276ac9432e | Karim Belabas | Fri, 24 Jul 2026 02:05:47 +0200
GCOVFLAGS: add -fprofile-update=atomic
1	1	config/get_cc

0aee740429 | Karim Belabas | Fri, 24 Jul 2026 02:00:21 +0200
expIPiC: typo, expo(z) => expo(x)
1	1	src/basemath/elltrans.c

a241bef1e5 | Bill Allombert | Thu, 23 Jul 2026 23:42:07 +0200
test-bnf: remove duplicated tests
1	2	src/test/32/bnf
0	4	src/test/in/bnf

8d2d402712 | Karim Belabas | Thu, 23 Jul 2026 22:16:38 +0200
64- bnfisprincipal(,1): e possibly uninitialized

Using either bnfinit(,1) or bnfisprincipal(,4), or both, is recommended
when the class group is huge and will compute the required principal part.

This commit fixes the initialization problem but is unlikely to allow
computing the generator (likely huge) when using suboptimal flags.
2	0	CHANGES
9	3	src/basemath/buch2.c
2	1	src/test/32/bnf
4	0	src/test/in/bnf

9d3eea11ca | Bill Allombert | Thu, 23 Jul 2026 20:31:18 +0200
upowers allocated one word too much
1	1	src/basemath/trans1.c

427a5b6db7 | Karim Belabas | Thu, 23 Jul 2026 17:53:53 +0200
Fix ZX_factor regression [#2687]
1	1	src/basemath/QX_factor.c
2	1	src/test/32/nffactor
4	0	src/test/in/nffactor

192445a92d | Karim Belabas | Thu, 23 Jul 2026 16:36:17 +0200
expIPiC: don't call absrnz_equal2n on 0.0
9	1	src/basemath/elltrans.c

d1bcc0f40f | Karim Belabas | Thu, 23 Jul 2026 15:59:29 +0200
95- support vecsort(vector of t_VECSMALL, k)
1	0	CHANGES
18	4	src/basemath/bibli2.c
3	0	src/test/32/sort
2	0	src/test/in/sort

ea3ac400b0 | Karim Belabas | Thu, 23 Jul 2026 12:29:21 +0200
63- === for t_REAL 0: was not ignoring mantissa
1	0	CHANGES
1	0	src/basemath/gen2.c

6718a3fc5a | Bill Allombert | Thu, 23 Jul 2026 11:32:44 +0200
Configure --mt=pthread: check for pthread_sigmask
1	1	CHANGES
3	0	config/get_libc
27	0	config/has_pthread_sigmask.c
4	0	config/paricfg.h.SH
4	0	src/mt/pthread.c

0fbe168e69 | Bill Allombert | Wed, 22 Jul 2026 14:18:40 +0200
new_buffer: initial buf to the empty string
1	0	src/language/es.c

bd73e9fcdd | Karim Belabas | Wed, 22 Jul 2026 11:46:14 +0200
refcard: add fingerprint
1	0	doc/refcard.tex

abd7aa6d49 | Karim Belabas | Wed, 22 Jul 2026 11:42:44 +0200
refcard: add idealfromgens
2	1	doc/refcard-nf.tex

be2fab91c0 | Karim Belabas | Wed, 22 Jul 2026 11:39:46 +0200
refcard: add matmodhnf
1	0	doc/refcard.tex

bc9203b610 | Karim Belabas | Wed, 22 Jul 2026 09:48:57 +0200
add primeisregular to refcard
5	6	doc/refcard-nf.tex

c9b8cdaf1c | Karim Belabas | Wed, 22 Jul 2026 02:39:45 +0200
ellheegnertwist: improve doc
2	1	doc/refcard-ell.tex
28	16	src/functions/elliptic_curves/ellheegnertwist

0d30b6aa3a | Karim Belabas | Wed, 22 Jul 2026 02:06:47 +0200
typo
1	1	doc/refcard-ell.tex

92934d4a6c | Karim Belabas | Wed, 22 Jul 2026 02:03:18 +0200
rework refcard-ell to properly describe hyperell* functions
43	27	doc/refcard-ell.tex
3	3	doc/refmacro.tex

befd9f66eb | Karim Belabas | Wed, 22 Jul 2026 01:30:13 +0200
doc typo
1	1	src/functions/elliptic_curves/hyperellauto

19257d8a34 | Karim Belabas | Wed, 22 Jul 2026 01:23:39 +0200
fingeprint: clarify doc
6	4	src/functions/programming/fingerprint

3e74e2a4db | Karim Belabas | Wed, 22 Jul 2026 01:14:57 +0200
94- [libpari] Z_has_prime_3mod4
1	0	CHANGES
3	0	doc/usersch5.tex

cbdcd0f845 | Karim Belabas | Wed, 22 Jul 2026 00:48:48 +0200
doc typos
1	1	doc/usersch5.tex

c0d2d74300 | Karim Belabas | Wed, 22 Jul 2026 00:47:25 +0200
doc typos
4	4	doc/usersch5.tex

2f14704e2b | Karim Belabas | Wed, 22 Jul 2026 00:44:49 +0200
document polgraeffe
4	2	src/functions/polynomials/polgraeffe

54371615cd | Karim Belabas | Wed, 22 Jul 2026 00:41:31 +0200
fix overfull hbox
2	1	doc/tutorial-mf.tex

135b167b9d | Karim Belabas | Tue, 21 Jul 2026 23:15:17 +0200
fix comment
1	1	src/basemath/quad.c

4e87693da5 | Karim Belabas | Tue, 21 Jul 2026 23:00:15 +0200
62- ZX_factor: rare "no factor" bug [#2670]

- use (Tra \ p^b) * M_L  instead of (Tra * M_L) \ p^b : the latter is
  "heuristically better" but the proven bounds don't necessarily apply;
  in the reported example, they don't.

- make sure to re-introduce the p^(a-b)*Id block after each reduction
  applied to the kapsack lattice

In principle, any of the above 2 issues could cause factors to be missed.
In #2670, the polynomial is actually irreducible; no reducible
counter-example was found but they are expected to exist.
1	0	CHANGES
11	21	src/basemath/QX_factor.c
34	1	src/test/32/nffactor
3	0	src/test/in/nffactor

ccb26e8620 | Bill Allombert | Tue, 21 Jul 2026 14:59:25 +0200
New GP function ellheegnertwist
1	0	CHANGES
322	10	src/basemath/ellanal.c
39	0	src/functions/elliptic_curves/ellheegnertwist
1	0	src/headers/paridecl.h
1	0	src/headers/paripriv.h
16	1	src/test/32/ellanal
8	0	src/test/in/ellanal

e0b6c3178b | Bill Allombert | Mon, 20 Jul 2026 14:06:31 +0200
New private function ellmanintable_heuristic
1	0	src/headers/paripriv.h
15	9	src/modules/ellmanin.c

89118fb2c8 | Bill Allombert | Mon, 20 Jul 2026 10:29:11 +0200
doc: s/unconditionnally/unconditionally (from Charles Greathouse)
1	1	src/functions/elliptic_curves/ellpadicbsd
1	1	src/functions/number_theoretical/qfbclassno
1	1	src/functions/polynomials/thueinit

8394517dc0 | Bill Allombert | Sun, 19 Jul 2026 19:18:40 +0200
92- galoisinit: support for non-WSS Galois groups
1	0	CHANGES

c0a7916835 | Bill Allombert | Sun, 19 Jul 2026 18:42:22 +0200
test-galoisinit: test a non-solvable group
42	2	src/test/32/galoisinit
11	1	src/test/in/galoisinit

ddb83c3fbc | Bill Allombert | Sun, 19 Jul 2026 18:42:22 +0200
galoisexport: handle non-wss groups correctly
3	3	src/basemath/galconj.c

6138302775 | Bill Allombert | Sun, 19 Jul 2026 18:42:22 +0200
galoisisabelian: handle non-WSS groups
4	2	src/basemath/galconj.c

5d0f3aa370 | Karim Belabas | Sun, 19 Jul 2026 15:30:20 +0200
improve comment
2	1	src/basemath/galconj.c

392ebfefaa | Karim Belabas | Sun, 19 Jul 2026 15:18:01 +0200
whitespace edits
2	4	src/basemath/galconj.c

799a1d93aa | Bill Allombert | Sun, 19 Jul 2026 11:26:42 +0200
galoisinit: remove WSS limitation

We switch to nfroots when the group is not WSS or the combinatorial algorithm is too slow.
7	1	src/basemath/galconj.c
6	5	src/functions/number_fields/galoisinit

66f6040d8d | Bill Allombert | Sat, 18 Jul 2026 22:18:38 +0200
galoisinit: terminate if too slow
24	15	src/basemath/galconj.c

ff4c8e69ad | Bill Allombert | Sat, 18 Jul 2026 22:18:38 +0200
galoisconj4_main: return gen_0 when not Galois
24	10	src/basemath/galconj.c

896a8ce656 | Bill Allombert | Sat, 18 Jul 2026 20:41:41 +0200
galconj1: add flag is_galois
5	4	src/basemath/galconj.c

f2a5cdc7d5 | Bill Allombert | Sat, 18 Jul 2026 20:41:41 +0200
init_group: extend table of non-wss order
1	1	src/basemath/galconj.c

639727038c | Bill Allombert | Sat, 18 Jul 2026 20:41:41 +0200
init_group: use uisnilpotent
1	2	src/basemath/galconj.c

de2ab060db | Bill Allombert | Sat, 18 Jul 2026 20:01:37 +0200
FpXXk_gcd: rewrite to avoid t_INT/t_POL confusion
68	58	src/basemath/FpX.c
4	1	src/test/32/gcdext
5	1	src/test/in/gcdext

d6fad0a30a | Bill Allombert | Sat, 18 Jul 2026 19:47:17 +0200
test-compat: update for ?lindep change
2	2	src/test/32/compat

0b51df0466 | Karim Belabas | Sat, 18 Jul 2026 15:21:10 +0200
improve qflll doc
8	5	src/functions/linear_algebra/qflll

32766bfe03 | Karim Belabas | Sat, 18 Jul 2026 15:08:16 +0200
fix / improve algdep help
13	13	src/functions/linear_algebra/algdep



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