Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package pari for openSUSE:Factory checked in 
at 2023-01-05 15:01:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/pari (Old)
 and      /work/SRC/openSUSE:Factory/.pari.new.1563 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "pari"

Thu Jan  5 15:01:42 2023 rev:30 rq:1056174 version:2.15.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/pari/pari.changes        2022-11-19 
18:09:25.806475547 +0100
+++ /work/SRC/openSUSE:Factory/.pari.new.1563/pari.changes      2023-01-05 
15:01:58.941430377 +0100
@@ -1,0 +2,12 @@
+Thu Jan  5 08:17:22 UTC 2023 - Dirk Müller <[email protected]>
+
+- update to 2.15.2:
+  Fixed
+    polredbest: rare error "inconsistent concatenation"
+    hypergeom([0,0],[1],2)
+    powers(t_INT, ...) was very slow
+    factor(prod(i=1,20,nextprime(2^i)), 131) would include 131
+    sumeulerrat(x^2/(1+x),2) -> FPE
+    lambertw(10^1000) -> overflow
+
+-------------------------------------------------------------------

Old:
----
  pari-2.15.1.tar.gz
  pari-2.15.1.tar.gz.asc

New:
----
  pari-2.15.2.tar.gz
  pari-2.15.2.tar.gz.asc

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ pari.spec ++++++
--- /var/tmp/diff_new_pack.Mbh2Dq/_old  2023-01-05 15:01:59.513434463 +0100
+++ /var/tmp/diff_new_pack.Mbh2Dq/_new  2023-01-05 15:01:59.513434463 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package pari
 #
-# Copyright (c) 2022 SUSE LLC
+# Copyright (c) 2023 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -28,7 +28,7 @@
 %global sover 8
 %global lname   libpari-gmp-tls%sover
 Name:           pari
-Version:        2.15.1
+Version:        2.15.2
 Release:        0
 Summary:        Computer Algebra System for computations in Number Theory
 License:        GPL-2.0-only

++++++ pari-2.15.1.tar.gz -> pari-2.15.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pari-2.15.1/CHANGES new/pari-2.15.2/CHANGES
--- old/pari-2.15.1/CHANGES     2022-11-02 11:36:26.000000000 +0100
+++ new/pari-2.15.2/CHANGES     2022-12-23 19:36:15.000000000 +0100
@@ -1,5 +1,14 @@
 Bug numbers refer to the BTS at http://pari.math.u-bordeaux.fr/Bugs/
 
+Done for version 2.15.2 (released 24/12/2022):
+  Fixed
+    1- polredbest: rare error "inconsistent concatenation" [#2423]         
[F12]
+    2- hypergeom([0,0],[1],2) -> SEGV [#2425]                              
[F13]
+    3- powers(t_INT, ...) was very slow                                    
[F15]
+    4- factor(prod(i=1,20,nextprime(2^i)), 131) would include 131          
[F16]
+    5- sumeulerrat(x^2/(1+x),2) -> FPE [#2433]                             
[F17]
+    6- lambertw(10^1000) -> overflow [#2429]                               
[F18]
+
 Done for version 2.15.1 (released 02/11/2022):
   Fixed
 BA   1- ploth long help was misformatted                                    
[F1]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pari-2.15.1/config/get_cc 
new/pari-2.15.2/config/get_cc
--- old/pari-2.15.1/config/get_cc       2022-09-19 17:42:30.000000000 +0200
+++ new/pari-2.15.2/config/get_cc       2022-12-23 17:02:05.000000000 +0100
@@ -110,13 +110,6 @@
   # Specific optimisations for some architectures
   case "$arch" in
     sparcv8*) cflags=-mv8;;
-    i?86)
-      cmd="$CC $CFLAGS $extraflag -mpc64 -fno-strict-aliasing -o $exe gnu.c"
-      . log_cmd
-      if test -s $exe; then
-        cflags="-mpc64"
-      fi
-      . cleanup_exe;;
   esac
   # problems on some architectures
   case "$osname" in
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pari-2.15.1/config/version 
new/pari-2.15.2/config/version
--- old/pari-2.15.1/config/version      2022-11-02 11:36:43.000000000 +0100
+++ new/pari-2.15.2/config/version      2022-12-24 11:21:07.000000000 +0100
@@ -5,7 +5,7 @@
 VersionMinor='15'
 
 # Patch level
-patch='1'
+patch='2'
 
 # Version code
 version_code=`expr $VersionMajor \\* 65536 + $VersionMinor \\* 256 + $patch`
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pari-2.15.1/doc/refmacro.tex 
new/pari-2.15.2/doc/refmacro.tex
--- old/pari-2.15.1/doc/refmacro.tex    2022-11-02 10:54:54.000000000 +0100
+++ new/pari-2.15.2/doc/refmacro.tex    2022-11-05 14:54:18.000000000 +0100
@@ -8,9 +8,9 @@
 % file.
 
 \def\versionnumber{2.38}% Version of these reference cards
-\def\PARIversion{2.15.1}% Version of PARI described on these reference cards
+\def\PARIversion{2.15.2}% Version of PARI described on these reference cards
 \def\year{2022}
-\def\month{August}
+\def\month{November}
 
 \special{papersize=29.7cm,21cm}
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pari-2.15.1/doc/usersch2.tex 
new/pari-2.15.2/doc/usersch2.tex
--- old/pari-2.15.1/doc/usersch2.tex    2022-09-19 17:42:30.000000000 +0200
+++ new/pari-2.15.2/doc/usersch2.tex    2022-12-05 20:59:52.000000000 +0100
@@ -808,10 +808,20 @@
  that $(p, p+2)$ is a twin pair;
  \bprog
  ? [ p^2 | p <- primes(10), p % 4 == 1 ]
- %1 = [25, 169, 289, 841]
+ %3 = [25, 169, 289, 841]
  @eprog\noindent returns the squares of the primes congruent to $1$ modulo $4$,
  where $p$ runs among the first 10 primes.
 
+ To iterate over more than one variable, you may separate clauses with
+ \kbd{;} as in
+ \bprog
+ ? [ x+y | x <- [1..3]; y <- [1..2] ]
+ %4 = [2, 3, 3, 4, 4, 5]
+
+ ? [ [x,y] | x <- [1..4], isprime(x); y <- [2..5], y % 3 == 1 ]
+ %5 = [[2, 4], [3, 4]]
+ @eprog
+
 \subsec{Matrices (\typ{MAT})}%
 \sidx{matrix}\kbdsidx{t_MAT}
 To enter a matrix, type the components row by row, the components being
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pari-2.15.1/doc/usersch3.tex 
new/pari-2.15.2/doc/usersch3.tex
--- old/pari-2.15.1/doc/usersch3.tex    2022-10-06 01:54:01.000000000 +0200
+++ new/pari-2.15.2/doc/usersch3.tex    2022-12-24 11:20:38.000000000 +0100
@@ -7999,17 +7999,19 @@
 \item $D$ omitted: factor over the field of definition of $f$, which
 must be a finite field.
 
-This is somewhat faster than full factorization. The coefficients of $f$
-must be operation-compatible with the corresponding finite field. The result
-is a two-column matrix:
-
-\item the first column contains monic (squarefree) pairwise coprime polynomials
-dividing $f$, all of whose irreducible factors have degree $d$;
+If $f$ is not squarefree, the result is undefined.
+The coefficients of $f$ must be operation-compatible with the corresponding
+finite field. The result is a two-column matrix:
+
+\item the first column contains monic (squarefree, pairwise coprime)
+polynomials dividing $f$, all of whose irreducible factors have
+the same degree $d$;
 
 \item the second column contains the degrees of the irreducible factors.
 
-The factors are ordered by increasing degree and the result is canonical: it
-will not change across multiple calls or sessions.
+The factorization is ordered by increasing degree $d$ of irreducible factors,
+and the result is obviously canonical.
+This function is somewhat faster than full factorization.
 
 \bprog
 ? f = (x^2 + 1) * (x^2-1);
@@ -8025,7 +8027,7 @@
 
 ? for(i=1,10^5,factormodDDF(f,3))
 time = 424 ms.
-? for(i=1,10^5,factormod(f,3))  \\ full factorization is slower
+? for(i=1,10^5,factormod(f,3))  \\ full factorization is a little slower
 time = 464 ms.
 
 ? liftall( factormodDDF(x^2 + 1, [3, t^2+1]) ) \\ over F_9
@@ -8058,9 +8060,8 @@
 \item $D$ omitted: factor over the field of definition of $f$, which
 must be a finite field.
 
-This is somewhat faster than full factorization. The coefficients of $f$
-must be operation-compatible with the corresponding finite field. The result
-is a two-column matrix:
+The coefficients of $f$ must be operation-compatible with the corresponding
+finite field. The result is a two-column matrix:
 
 \item the first column contains monic squarefree pairwise coprime polynomials
 dividing $f$;
@@ -8068,8 +8069,8 @@
 \item the second column contains the power to which the polynomial in column
 $1$ divides $f$;
 
-The factors are ordered by increasing degree and the result is canonical: it
-will not change across multiple calls or sessions.
+This is somewhat faster than full factorization. The factors are ordered by
+increasing exponent and the result is obviously canonical.
 
 \bprog
 ? f = (x^2 + 1)^3 * (x^2-1)^2;
@@ -23727,9 +23728,9 @@
 embedding of $\Q[x]/(P)$ in its splitting field given by a polynomial
 (implicitly modulo $S$, as in \kbd{nfisincl}).
 
-\item $\fl = 2$: return $[S,C]$ where $C$ is a rational function whose image
-in $\Q[x]/(S)$ yields an embedding; this avoids inverting the denominator,
-which is costly. when the degree of the splitting field is huge.
+\item $\fl = 2$: return $[S,C]$ where $C$ is vector of rationals functions
+ whose image in $\Q[x]/(S)$ yields the embedding; this avoids inverting the
+ denominator, which is costly. when the degree of the splitting field is huge.
 
 \item $\fl = 3$: return $[S, v, p]$ a data structure allowing to quickly
 compute the Galois group of the splitting field, which is used by
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pari-2.15.1/src/basemath/FpE.c 
new/pari-2.15.2/src/basemath/FpE.c
--- old/pari-2.15.1/src/basemath/FpE.c  2022-09-19 17:42:30.000000000 +0200
+++ new/pari-2.15.2/src/basemath/FpE.c  2022-12-21 18:55:15.000000000 +0100
@@ -155,9 +155,9 @@
   pari_sp av = avma;
   struct _FpE *e=(struct _FpE *) E;
   long s = signe(n);
-  if (!s || ell_is_inf(P)) return ellinf();
+  if (!s || signe(gel(P,3))==0) return mkvec3(gen_1, gen_1, gen_0);
   if (s<0) P = FpJ_neg(P, e->p);
-  if (is_pm1(n)) return s>0? gcopy(P): P;
+  if (is_pm1(n)) return s > 0 ? gcopy(P): P;
   return gerepilecopy(av, gen_pow_i(P, n, e, &_FpJ_dbl, &_FpJ_add));
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pari-2.15.1/src/basemath/base2.c 
new/pari-2.15.2/src/basemath/base2.c
--- old/pari-2.15.1/src/basemath/base2.c        2022-09-19 17:42:30.000000000 
+0200
+++ new/pari-2.15.2/src/basemath/base2.c        2022-11-08 14:27:13.000000000 
+0100
@@ -392,7 +392,7 @@
           if (DEBUGLEVEL)
             pari_warn(warner,"large composite in nfmaxord:loop(), %Ps", p);
           if (expi(p) < 100)
-            u = Z_factor(p); /* factor(n < 2^100) should take ~20ms */
+            u = gel(Z_factor(p), 1); /* p < 2^100 should take ~20ms */
           else if (S->certify)
             u = Z_fac(p);
           else
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pari-2.15.1/src/basemath/gen1.c 
new/pari-2.15.2/src/basemath/gen1.c
--- old/pari-2.15.1/src/basemath/gen1.c 2022-10-31 22:05:51.000000000 +0100
+++ new/pari-2.15.2/src/basemath/gen1.c 2022-12-21 18:55:47.000000000 +0100
@@ -2228,7 +2228,8 @@
       gel(z,2) = gsqr(gel(x,2)); return z;
 
     case t_MAT: return RgM_sqr(x);
-    case t_VEC: /* handle extended t_QFB */
+    case t_VEC: if (!is_ext_qfr(x)) pari_err_TYPE2("*",x,x);
+    /* fall through handle extended t_QFB */
     case t_QFB: return qfbsqr(x);
     case t_VECSMALL:
       z = cgetg_copy(x, &lx);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pari-2.15.1/src/basemath/hypergeom.c 
new/pari-2.15.2/src/basemath/hypergeom.c
--- old/pari-2.15.1/src/basemath/hypergeom.c    2022-10-30 17:07:08.000000000 
+0100
+++ new/pari-2.15.2/src/basemath/hypergeom.c    2022-11-16 10:32:38.000000000 
+0100
@@ -568,8 +568,8 @@
   pari_sp av;
   GEN C, S;
   long j, ct, pradd, mi, bitmin, mb;
-  if (isnegint2(b, &mb) && mb < m) { b = utoineg(m); m = mb; }
-  pradd = precFtaylor(mkvec2(utoineg(m), b), mkvec(c), z, &mi);
+  if (isnegint2(b, &mb) && mb < m) { b = stoi(-m); m = mb; }
+  pradd = precFtaylor(mkvec2(stoi(-m), b), mkvec(c), z, &mi);
   if (pradd > 0)
   {
     prec += pradd;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pari-2.15.1/src/basemath/ifactor1.c 
new/pari-2.15.2/src/basemath/ifactor1.c
--- old/pari-2.15.1/src/basemath/ifactor1.c     2022-09-19 17:42:30.000000000 
+0200
+++ new/pari-2.15.2/src/basemath/ifactor1.c     2022-12-05 21:28:57.000000000 
+0100
@@ -3148,12 +3148,12 @@
   if (n == 1) retmkvec2(cgetg(1,t_VECSMALL), cgetg(1,t_VECSMALL));
 
   f = cgetg(3,t_VEC); av = avma;
-  lim = all; if (!lim) lim = tridiv_boundu(n);
+  lim = all? all-1: tridiv_boundu(n);
   /* enough room to store <= 15 primes and exponents (OK if n < 2^64) */
   (void)new_chunk(16*2);
   P = cgetg(16, t_VECSMALL); i = 1;
   E = cgetg(16, t_VECSMALL);
-  if (lim > 2)
+  if (lim > 1)
   {
     long v = vals(n), oldi;
     if (v)
@@ -3161,7 +3161,7 @@
       P[1] = 2; E[1] = v; i = 2;
       n >>= v; if (n == 1) goto END;
     }
-    u_forprime_init(&S, 3, lim-1);
+    u_forprime_init(&S, 3, lim);
     oldi = i;
     while ( (p = u_forprime_next_fast(&S)) )
     {
@@ -3639,9 +3639,9 @@
   if (is_pm1(n)) return aux_end(M,NULL,nb);
 
   n = N = gclone(n); setabssign(n);
-  /* trial division bound */
-  lim = all; if (!lim) lim = tridiv_bound(n);
-  if (lim > 2)
+  /* trial division bound; look for primes <= lim */
+  lim = all? all-1: tridiv_bound(n);
+  if (lim > 1)
   {
     ulong maxp, p;
     pari_sp av2;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pari-2.15.1/src/basemath/lambert.c 
new/pari-2.15.2/src/basemath/lambert.c
--- old/pari-2.15.1/src/basemath/lambert.c      2022-10-30 17:07:08.000000000 
+0100
+++ new/pari-2.15.2/src/basemath/lambert.c      2022-12-21 21:26:45.000000000 
+0100
@@ -133,11 +133,19 @@
   return dblL1L2(log(-a));
 }
 
-/* uniform approximation to more than 46 bits, 50 bits away from -1/e. */
+/* uniform approximation to more than 46 bits, 50 bits away from -1/e;
+ * branch = -1 or 0 */
 static double
-dbllambertWfritsch(double a, int branch)
+dbllambertWfritsch(GEN ga, int branch)
 {
-  double z, w1, q, w = branch? dbllambertW_1init(a): dbllambertW0init(a);
+  double a, z, w1, q, w;
+  if (expo(ga) >= 0x3fe)
+  { /* branch = 0 */
+    double w = dbllog2(ga) * M_LN2; /* ~ log(1+a) ~ log a */
+    return w * (1.+w-log(w)) / (1.+w);
+  }
+  a = rtodbl(ga);
+  w = branch? dbllambertW_1init(a): dbllambertW0init(a);
   if (w == -1.|| w == 0.) return w;
   z = log(a / w) - w; w1 = 1. + w;
   q = 2. * w1 * (w1 + (2./3.) * z);
@@ -170,10 +178,10 @@
     long e = expo(z);
     if (signe(z) >= 0) pari_err_DOMAIN("lambertw", "z", ">", gen_0, z);
     wd = e < -512? dbllambertWhalleyspec(dbllog2(z) * M_LN2)
-                 : dbllambertWfritsch(rtodbl(z), -1);
+                 : dbllambertWfritsch(z, -1);
   }
   else
-    wd = dbllambertWfritsch(rtodbl(z), 0);
+    wd = dbllambertWfritsch(z, 0);
   if (fabs(wd + 1) < 1e-5)
   {
     long prec2 = prec + EXTRAPRECWORD;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pari-2.15.1/src/basemath/nffactor.c 
new/pari-2.15.2/src/basemath/nffactor.c
--- old/pari-2.15.1/src/basemath/nffactor.c     2022-09-19 17:42:30.000000000 
+0200
+++ new/pari-2.15.2/src/basemath/nffactor.c     2022-12-05 21:29:05.000000000 
+0100
@@ -2090,11 +2090,21 @@
   long i, l, nbguessed, nbroots, nfdegree;
   pari_sp av;
 
-  T = get_nfpol(nf, &nf);
+  T = get_nfpol(nf, &nf); nfdegree = degpol(T);
   RgX_check_ZX(T, "nfrootsof1");
-  if (nf && nf_get_r1(nf)) return trivroots();
-  disc = nf ? nf_get_disc(nf): ZX_disc(T);
-  index = nf ? nf_get_index(nf): gen_1;
+  if (nf)
+  {
+    if (nf_get_r1(nf)) return trivroots();
+    disc = nf_get_disc(nf);
+    index = nf_get_index(nf);
+  }
+  else
+  {
+    if (odd(nfdegree) || signe(leading_coeff(T)) != signe(constant_coeff(T)))
+      return trivroots();
+    disc = ZX_disc(T);
+    index = gen_1;
+  }
   /* Step 1 : guess number of roots and discard trivial case 2 */
   if (DEBUGLEVEL>2) timer_start(&ti);
   nbguessed = guess_roots(T, disc, index);
@@ -2102,7 +2112,6 @@
     timer_printf(&ti, "guessing roots of 1 [guess = %ld]", nbguessed);
   if (nbguessed == 2) return trivroots();
 
-  nfdegree = degpol(T);
   fa = factoru(nbguessed);
   LP = gel(fa,1); l = lg(LP);
   LE = gel(fa,2);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pari-2.15.1/src/basemath/trans1.c 
new/pari-2.15.2/src/basemath/trans1.c
--- old/pari-2.15.1/src/basemath/trans1.c       2022-10-30 17:07:08.000000000 
+0100
+++ new/pari-2.15.2/src/basemath/trans1.c       2022-12-21 18:55:47.000000000 
+0100
@@ -423,6 +423,12 @@
 powr0(GEN x)
 { return signe(x)? real_1(realprec(x)): mpexp0(x); }
 
+/* assume typ(x) = t_VEC */
+static int
+is_ext_qfr(GEN x)
+{ return lg(x) == 3 && typ(gel(x,1)) == t_QFB && !qfb_is_qfi(gel(x,1))
+                    && typ(gel(x,2)) == t_REAL; }
+
 /* x t_POL or t_SER, return scalarpol(Rg_get_1(x)) */
 static GEN
 scalarpol_get_1(GEN x)
@@ -474,7 +480,8 @@
       y = matid(lx-1);
       for (i=1; i<lx; i++) gcoeff(y,i,i) = gpowg0(gcoeff(x,i,i));
       return y;
-    case t_VEC: /* handle extended t_QFB */
+    case t_VEC: if (!is_ext_qfr(x)) break;
+    /* fall through handle extended t_QFB */
     case t_QFB: return qfbpow(x, gen_0);
     case t_VECSMALL: return identity_perm(lg(x) - 1);
   }
@@ -930,11 +937,19 @@
 
   if (n == 0) return gpowg0(x);
   if (n == 1)
-    switch (typ(x)) {
-      case t_VEC: /* handle extended t_QFB */
+  {
+    long t = typ(x);
+    if (is_scalar_t(t)) return gcopy(x);
+    switch(t)
+    {
+      case t_POL: case t_SER: case t_RFRAC: case t_MAT: case t_VECSMALL:
+        return gcopy(x);
+      case t_VEC: if (!is_ext_qfr(x)) break;
+      /* fall through handle extended t_QFB */
       case t_QFB: return qfbred(x);
-      default: return gcopy(x);
     }
+    pari_err_TYPE("gpow", x);
+  }
   if (n ==-1) return ginv(x);
   switch(typ(x))
   {
@@ -971,7 +986,8 @@
       long N[] = {evaltyp(t_INT) | _evallg(3),0,0};
       affsi(n,N); return pow_polmod(x, N);
     }
-    case t_VEC: /* handle extended t_QFB */
+    case t_VEC: if (!is_ext_qfr(x)) pari_err_TYPE("gpow", x);
+    /* fall through handle extended t_QFB */
     case t_QFB: return qfbpows(x, n);
     case t_POL:
       if (RgX_is_monomial(x)) return pow_monome(x, n);
@@ -1009,7 +1025,8 @@
     case t_FRAC:
       pari_err_OVERFLOW("lg()");
 
-    case t_VEC: /* handle extended t_QFB */
+    case t_VEC: if (!is_ext_qfr(x)) pari_err_TYPE("gpow",x);
+    /* fall through handle extended t_QFB */
     case t_QFB: return qfbpow(x, n);
     case t_POLMOD: return pow_polmod(x, n);
     default: {
@@ -1336,7 +1353,7 @@
 gpowers(GEN x, long n)
 {
   if (n < 0) return cgetg(1,t_VEC);
-  return gen_powers(x, n, 1, (void*)x, &_sqr, &_mul, &_one);
+  return gen_powers(x, n, 0, (void*)x, &_sqr, &_mul, &_one);
 }
 
 /* return [q^1,q^4,...,q^{n^2}] */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pari-2.15.1/src/funclist new/pari-2.15.2/src/funclist
--- old/pari-2.15.1/src/funclist        2022-10-06 01:54:01.000000000 +0200
+++ new/pari-2.15.2/src/funclist        2022-12-21 21:26:47.000000000 +0100
@@ -782,7 +782,7 @@
 1021505408 1234 ../functions/number_fields/nfrootsof1
 636643458 1419 ../functions/number_fields/nfsnf
 1591394803 825 ../functions/number_fields/nfsolvemodpr
-3416132361 3006 ../functions/number_fields/nfsplitting
+977270902 3019 ../functions/number_fields/nfsplitting
 4201087916 1937 ../functions/number_fields/nfsubfields
 2051539594 1243 ../functions/number_fields/nfsubfieldscm
 1830928774 511 ../functions/number_fields/nfsubfieldsmax
@@ -873,8 +873,8 @@
 4089779703 347 ../functions/number_theoretical/factorial
 708067171 2084 ../functions/number_theoretical/factorint
 3057401018 2509 ../functions/number_theoretical/factormod
-3821384765 1870 ../functions/number_theoretical/factormodDDF
-2186768531 1752 ../functions/number_theoretical/factormodSQF
+2948006020 1940 ../functions/number_theoretical/factormodDDF
+2403418253 1709 ../functions/number_theoretical/factormodSQF
 4210554035 2456 ../functions/number_theoretical/factormodcyclo
 3682822015 707 ../functions/number_theoretical/ffcompomap
 1959832413 551 ../functions/number_theoretical/ffembed
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pari-2.15.1/src/functions/number_fields/nfsplitting 
new/pari-2.15.2/src/functions/number_fields/nfsplitting
--- old/pari-2.15.1/src/functions/number_fields/nfsplitting     2022-09-19 
17:42:30.000000000 +0200
+++ new/pari-2.15.2/src/functions/number_fields/nfsplitting     2022-11-30 
14:34:53.000000000 +0100
@@ -21,9 +21,9 @@
  embedding of $\Q[x]/(P)$ in its splitting field given by a polynomial
  (implicitly modulo $S$, as in \kbd{nfisincl}).
 
- \item $\fl = 2$: return $[S,C]$ where $C$ is a rational function whose image
- in $\Q[x]/(S)$ yields an embedding; this avoids inverting the denominator,
- which is costly. when the degree of the splitting field is huge.
+ \item $\fl = 2$: return $[S,C]$ where $C$ is vector of rationals functions
+  whose image in $\Q[x]/(S)$ yields the embedding; this avoids inverting the
+  denominator, which is costly. when the degree of the splitting field is huge.
 
  \item $\fl = 3$: return $[S, v, p]$ a data structure allowing to quickly
  compute the Galois group of the splitting field, which is used by
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pari-2.15.1/src/functions/number_theoretical/factormodDDF 
new/pari-2.15.2/src/functions/number_theoretical/factormodDDF
--- old/pari-2.15.1/src/functions/number_theoretical/factormodDDF       
2020-03-27 15:32:39.000000000 +0100
+++ new/pari-2.15.2/src/functions/number_theoretical/factormodDDF       
2022-11-30 14:35:28.000000000 +0100
@@ -17,17 +17,19 @@
  \item $D$ omitted: factor over the field of definition of $f$, which
  must be a finite field.
 
- This is somewhat faster than full factorization. The coefficients of $f$
- must be operation-compatible with the corresponding finite field. The result
- is a two-column matrix:
-
- \item the first column contains monic (squarefree) pairwise coprime 
polynomials
- dividing $f$, all of whose irreducible factors have degree $d$;
+ If $f$ is not squarefree, the result is undefined.
+ The coefficients of $f$ must be operation-compatible with the corresponding
+ finite field. The result is a two-column matrix:
+
+ \item the first column contains monic (squarefree, pairwise coprime)
+ polynomials dividing $f$, all of whose irreducible factors have
+ the same degree $d$;
 
  \item the second column contains the degrees of the irreducible factors.
 
- The factors are ordered by increasing degree and the result is canonical: it
- will not change across multiple calls or sessions.
+ The factorization is ordered by increasing degree $d$ of irreducible factors,
+ and the result is obviously canonical.
+ This function is somewhat faster than full factorization.
 
  \bprog
  ? f = (x^2 + 1) * (x^2-1);
@@ -43,7 +45,7 @@
 
  ? for(i=1,10^5,factormodDDF(f,3))
  time = 424 ms.
- ? for(i=1,10^5,factormod(f,3))  \\ full factorization is slower
+ ? for(i=1,10^5,factormod(f,3))  \\ full factorization is a little slower
  time = 464 ms.
 
  ? liftall( factormodDDF(x^2 + 1, [3, t^2+1]) ) \\ over F_9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pari-2.15.1/src/functions/number_theoretical/factormodSQF 
new/pari-2.15.2/src/functions/number_theoretical/factormodSQF
--- old/pari-2.15.1/src/functions/number_theoretical/factormodSQF       
2020-03-27 15:32:39.000000000 +0100
+++ new/pari-2.15.2/src/functions/number_theoretical/factormodSQF       
2022-11-30 14:35:28.000000000 +0100
@@ -17,9 +17,8 @@
  \item $D$ omitted: factor over the field of definition of $f$, which
  must be a finite field.
 
- This is somewhat faster than full factorization. The coefficients of $f$
- must be operation-compatible with the corresponding finite field. The result
- is a two-column matrix:
+ The coefficients of $f$ must be operation-compatible with the corresponding
+ finite field. The result is a two-column matrix:
 
  \item the first column contains monic squarefree pairwise coprime polynomials
  dividing $f$;
@@ -27,8 +26,8 @@
  \item the second column contains the power to which the polynomial in column
  $1$ divides $f$;
 
- The factors are ordered by increasing degree and the result is canonical: it
- will not change across multiple calls or sessions.
+ This is somewhat faster than full factorization. The factors are ordered by
+ increasing exponent and the result is obviously canonical.
 
  \bprog
  ? f = (x^2 + 1)^3 * (x^2-1)^2;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pari-2.15.1/src/language/intnum.c 
new/pari-2.15.2/src/language/intnum.c
--- old/pari-2.15.1/src/language/intnum.c       2022-10-30 17:07:08.000000000 
+0100
+++ new/pari-2.15.2/src/language/intnum.c       2022-12-21 18:53:50.000000000 
+0100
@@ -2392,8 +2392,9 @@
   }
   /* F t_RFRAC */
   if (a < 2) a = 2;
-  vF = -poldegree(F, -1);
   rs = gtodouble(real_i(s));
+  vF = -poldegree(F, -1);
+  if (vF <= 0) pari_err(e_MISC, "sum diverges in sumeulerrat");
   r = polmax(gel(F,2));
   N = maxss(30, a); lN = log2((double)N);
   RS = maxdd(1./vF, log2(r) / lN);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pari-2.15.1/src/test/32/factor 
new/pari-2.15.2/src/test/32/factor
--- old/pari-2.15.1/src/test/32/factor  2022-03-11 17:52:03.000000000 +0100
+++ new/pari-2.15.2/src/test/32/factor  2022-12-05 21:28:57.000000000 +0100
@@ -165,6 +165,36 @@
 [x + Mod(3*a, a^2 - 2) 1]
 
 
+[          2 1]
+
+[          5 1]
+
+[         11 1]
+
+[         17 1]
+
+[         37 1]
+
+[         67 1]
+
+[18084262717 1]
+
+
+[                                                        2 1]
+
+[                                                        5 1]
+
+[                                                       11 1]
+
+[                                                       17 1]
+
+[                                                       37 1]
+
+[                                                       67 1]
+
+[831974948142355246286065325186245612497373357862036849743 1]
+
+
 [289*x^4 + 1 8]
 
 
@@ -405,4 +435,4 @@
 
 [x^2 + (a^3 + a^2 + a + 1)  1]
 
-Total time spent: 206
+Total time spent: 446
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pari-2.15.1/src/test/32/hypergeom 
new/pari-2.15.2/src/test/32/hypergeom
--- old/pari-2.15.1/src/test/32/hypergeom       2022-09-19 17:42:30.000000000 
+0200
+++ new/pari-2.15.2/src/test/32/hypergeom       2022-11-16 10:36:04.000000000 
+0100
@@ -95,6 +95,7 @@
 -127
 -127
 -124
+1.0000000000000000000000000000000000000
   ***   at top-level: airy(O(x))
   ***                 ^----------
   *** airy: incorrect type in airy (t_SER).
@@ -114,4 +115,4 @@
   ***   at top-level: hypergeom([1,2,3,4],[],1/2)
   ***                 ^---------------------------
   *** hypergeom: sorry, this hypergeometric function is not yet implemented.
-Total time spent: 4724
+Total time spent: 5518
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pari-2.15.1/src/test/32/ideal 
new/pari-2.15.2/src/test/32/ideal
--- old/pari-2.15.1/src/test/32/ideal   2022-09-19 17:42:30.000000000 +0200
+++ new/pari-2.15.2/src/test/32/ideal   2022-12-23 17:01:53.000000000 +0100
@@ -245,15 +245,11 @@
 []
   *** nfinit: Warning: nonmonic polynomial. Result of the form [nf,c].
 [[2, [0, 1]~, 2, 1, [0, -2; 1, 0]]]
-[-3, 6, -2, 1, -2, -2]~
-[-22, -68, -54, -41, 55, -58]~
-[-31, -13, -33, 4, 51, -56]~
-[3, 0, -2, -6, 7, -1]~
 1
 1
 [1/9, 1/18, 0, 0, 0, 0]~
-[1/3, 2/3, 1/3, 1, 1/3, -1/3]~
-[1, 0, 0, -1, 1, 2]~
+1
+1
 
 [1 0   0 4/9]
 
@@ -328,4 +324,4 @@
   ***   at top-level: idealstar(K,[4,Vecsmall([1,1])])
   ***                 ^--------------------------------
   *** idealstar: incorrect type in Idealstar [incorrect archimedean component] 
(t_VECSMALL).
-Total time spent: 78
+Total time spent: 59
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pari-2.15.1/src/test/32/lambert 
new/pari-2.15.2/src/test/32/lambert
--- old/pari-2.15.1/src/test/32/lambert 2022-09-19 17:42:30.000000000 +0200
+++ new/pari-2.15.2/src/test/32/lambert 2022-12-21 21:26:45.000000000 +0100
@@ -51,6 +51,7 @@
 73087957949162547505515081005140328081624
 -127
    realprecision = 38 significant digits
+2294.8466716835068696527927859936167900
 [80756, 143546, 206207, 268880, 331575, 394291, 457025, 519772, 582530, 6452
 97]
 [645297, 1273229, 1901362, 2529568, 3157809, 3786071, 4414346, 5042630, 5670
@@ -128,4 +129,4 @@
   ***   at top-level: lambertw(mie+x+O(x^2))
   ***                 ^----------------------
   *** lambertw: odd valuation at branch point.
-Total time spent: 1577
+Total time spent: 1730
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pari-2.15.1/src/test/32/nfrootsof1 
new/pari-2.15.2/src/test/32/nfrootsof1
--- old/pari-2.15.1/src/test/32/nfrootsof1      2017-11-09 10:26:14.000000000 
+0100
+++ new/pari-2.15.2/src/test/32/nfrootsof1      2022-12-05 21:29:05.000000000 
+0100
@@ -8,4 +8,6 @@
 4
 68
 170
-Total time spent: 5876
+[2, -1]
+[2, -1]
+Total time spent: 2617
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pari-2.15.1/src/test/32/polred 
new/pari-2.15.2/src/test/32/polred
--- old/pari-2.15.1/src/test/32/polred  2022-09-24 17:32:27.000000000 +0200
+++ new/pari-2.15.2/src/test/32/polred  2022-12-21 21:26:45.000000000 +0100
@@ -30,9 +30,8 @@
 x^3 + Mod(y^2 - 2, y^3 - y - 1)*x^2 + Mod(-y + 1, y^3 - y - 1)*x + Mod(y - 1
 , y^3 - y - 1)
 x^9 - 4*x^8 + 8*x^7 - 9*x^6 + 7*x^5 - 3*x^4 - x^3 + 4*x^2 - 3*x + 1
-Mod(0, x^3 + Mod(y^2 + y - 2, y^3 - y - 1)*x^2 + Mod(-y^2 + 3, y^3 - y - 1)*
-x + Mod(y^2 - 1, y^3 - y - 1))
-Mod(0, x^9 - 4*x^8 + 8*x^7 - 9*x^6 + 7*x^5 - 3*x^4 - x^3 + 4*x^2 - 3*x + 1)
+0
+0
 Mod(0, x^9 - 4*x^8 + 8*x^7 - 9*x^6 + 7*x^5 - 3*x^4 - x^3 + 4*x^2 - 3*x + 1)
   *** nfinit: Warning: nonmonic polynomial. Result of the form [nf,c].
 x^2 - 3646554366
@@ -90,4 +89,4 @@
   ***   at top-level: polredbest(x^6+30*x^5+133*x^4-2340*x^3-12284*x
   ***                 ^----------------------------------------------
   *** polredbest: not an irreducible polynomial in set_LLL_basis: x^6 + 30*x^5 
+ 133*x^4 - 2340*x^3 - 12284*x^2 + 29519*x - 3856.
-Total time spent: 4437
+Total time spent: 6148
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pari-2.15.1/src/test/32/pow 
new/pari-2.15.2/src/test/32/pow
--- old/pari-2.15.1/src/test/32/pow     2022-09-19 17:42:30.000000000 +0200
+++ new/pari-2.15.2/src/test/32/pow     2022-12-21 18:56:02.000000000 +0100
@@ -9,7 +9,11 @@
 Mod(1, 3)
 Qfb(1, 2, -1)
 Qfb(-1, 2, 1)
+[Qfb(1, 2, -1), 0.E-38]
+[Qfb(-1, 2, 1), 1.0000000000000000000000000000000000000]
+[Qfb(1, 2, -1), 2.0000000000000000000000000000000000000]
 Vecsmall([1, 2, 3])
+Vecsmall([3, 2, 1])
 O(2)
   ***   at top-level: O(2)^-2
   ***                     ^---
@@ -80,9 +84,21 @@
 d(9, 11), Mod(7, 11), Mod(3, 11), Mod(6, 11), Mod(1, 11)]
 [1, 3.1415926535897932384626433832795028842, 9.86960440108935861883449099987
 61511353, 31.006276680299820175476315067101395202, 97.4090910340024372364403
-32688705111250, 306.01968478528145326274131004343560648, 961.389193575304437
+32688705111249, 306.01968478528145326274131004343560648, 961.389193575304437
 03021944365241989886, 3020.2932277767920675142064930720418319]
 [2, 6, 18, 54, 162, 486]
 []
 [1]
+  ***   at top-level: [1]^2
+  ***                    ^--
+  *** _^s: incorrect type in gpow (t_VEC).
+  ***   at top-level: [1]^1
+  ***                    ^--
+  *** _^s: incorrect type in gpow (t_VEC).
+  ***   at top-level: [1]^0
+  ***                    ^--
+  *** _^s: incorrect type in gpow (t_VEC).
+  ***   at top-level: List()^1
+  ***                       ^--
+  *** _^s: incorrect type in gpow (t_LIST).
 Total time spent: 1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pari-2.15.1/src/test/32/sumnumrat 
new/pari-2.15.2/src/test/32/sumnumrat
--- old/pari-2.15.1/src/test/32/sumnumrat       2022-10-30 17:07:08.000000000 
+0100
+++ new/pari-2.15.2/src/test/32/sumnumrat       2022-12-21 18:53:36.000000000 
+0100
@@ -55,4 +55,7 @@
   ***   at top-level: prodeulerrat(1+1/p)
   ***                 ^-------------------
   *** prodeulerrat: product diverges in prodeulerrat.
-Total time spent: 44
+  ***   at top-level: sumeulerrat(x^2/(1+x),2)
+  ***                 ^------------------------
+  *** sumeulerrat: sum diverges in sumeulerrat.
+Total time spent: 1596
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pari-2.15.1/src/test/32/version 
new/pari-2.15.2/src/test/32/version
--- old/pari-2.15.1/src/test/32/version 2022-11-02 10:52:16.000000000 +0100
+++ new/pari-2.15.2/src/test/32/version 2022-11-05 14:53:53.000000000 +0100
@@ -1,2 +1,2 @@
-[2, 15, 1]
+[2, 15, 2]
 Total time spent: 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pari-2.15.1/src/test/dotest 
new/pari-2.15.2/src/test/dotest
--- old/pari-2.15.1/src/test/dotest     2022-09-19 17:42:30.000000000 +0200
+++ new/pari-2.15.2/src/test/dotest     2022-11-18 16:22:22.000000000 +0100
@@ -51,10 +51,10 @@
 exec 3>> Bench-$VersionMajor.$VersionMinor.$patch
 
 dotestSUF=${dotestSUF:-"sta dyn"}
-for arg in $dotestSUF; do
-  if test -s $execdir/gp-$arg$exe_suff; then
-    SUF="$SUF $arg"
-    datadir=`echo 'print(default(datadir))' | $RUNTEST $execdir/gp-$arg -q -f`
+for suf in $dotestSUF; do
+  if test -s $execdir/gp-$suf$exe_suff; then
+    SUF="$SUF $suf"
+    datadir=`echo 'print(default(datadir))' | $RUNTEST 
$execdir/gp-$suf$exe_suff -q -f`
   fi
 done
 file_test=gp.out
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pari-2.15.1/src/test/in/factor 
new/pari-2.15.2/src/test/in/factor
--- old/pari-2.15.1/src/test/in/factor  2022-03-11 17:52:03.000000000 +0100
+++ new/pari-2.15.2/src/test/in/factor  2022-12-05 21:28:57.000000000 +0100
@@ -32,6 +32,8 @@
 factor((x+1)^2/(x^2-4))
 factor((x^2+1)/x)
 factor(x^2+a^3*x-Mod(6,a^2-2))
+factor(83833759205078410,131)
+factor(3856811226351960485865701609925634373222448596241780085459117390,131)
 
 p1 = (289*x^4 + 1)^8; p2 = (19*x^2 + 1)^16;
 factor(p1)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pari-2.15.1/src/test/in/hypergeom 
new/pari-2.15.2/src/test/in/hypergeom
--- old/pari-2.15.1/src/test/in/hypergeom       2022-09-19 17:42:30.000000000 
+0200
+++ new/pari-2.15.2/src/test/in/hypergeom       2022-11-16 10:32:38.000000000 
+0100
@@ -171,6 +171,8 @@
 f(1.2, 0.3, 4.5, -0.3, 0.8)
 f(1.2, 1.2, 1.4, -0.3, 0.7)
 
+hypergeom([0,0],[1],2) \\ #2425
+
 \\ Errors, keep at end
 airy(O(x))
 hypergeom("","",O(x))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pari-2.15.1/src/test/in/ideal 
new/pari-2.15.2/src/test/in/ideal
--- old/pari-2.15.1/src/test/in/ideal   2022-09-19 17:42:30.000000000 +0200
+++ new/pari-2.15.2/src/test/in/ideal   2022-12-23 17:01:53.000000000 +0100
@@ -158,12 +158,12 @@
 { for(k=2,5,
     u=nfalgtobasis(nf,(2*a^2+a+3)*random(2^100*x^6)^k);
     b=idealredmodpower(nf,u,k);
-    v=nfeltmul(nf,u,nfeltpow(nf,b,k)); print(v)); }
+    v=nfeltmul(nf,u,nfeltpow(nf,b,k)); if(exponent(v) > 8, error())); }
 idealredmodpower(nf,0,2)
 idealredmodpower(nf,1,2)
 idealredmodpower(nf,x^5-3*x^4-3*x^3+18*x^2-18*x-54,2)
-idealredmodpower(nf,x/2,2)
-idealredmodpower(nf,x/12,2)
+normlp(idealredmodpower(nf,x/2,2))==1
+normlp(idealredmodpower(nf,x/12,2))==2
 
 \\ #2181
 
K=nfinit(x^8-x^7+853*x^6-1705*x^5+728461*x^4+1452660*x^3+619196112*x^2+618470208*x+526936617216);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pari-2.15.1/src/test/in/lambert 
new/pari-2.15.2/src/test/in/lambert
--- old/pari-2.15.1/src/test/in/lambert 2022-09-19 17:42:30.000000000 +0200
+++ new/pari-2.15.2/src/test/in/lambert 2022-12-21 21:26:45.000000000 +0100
@@ -40,6 +40,7 @@
 lambertw(-10^(-100),-1)
 do(lambertw(precision(-0.1,38),-1))
 \p38
+lambertw(10^1000) \\ #2429
 vector(10,mul,round(10^4*abs(lambertw(mie,mul))))
 vector(10,mul,round(10^4*abs(lambertw(mie,10*mul))))
 bra(y,k)=if(k!=-1||imag(y)||y>0||y<mie, k, 0);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pari-2.15.1/src/test/in/nfrootsof1 
new/pari-2.15.2/src/test/in/nfrootsof1
--- old/pari-2.15.1/src/test/in/nfrootsof1      2017-11-09 10:26:14.000000000 
+0100
+++ new/pari-2.15.2/src/test/in/nfrootsof1      2022-12-05 21:29:05.000000000 
+0100
@@ -10,3 +10,5 @@
 
do(x^16+2*x^15-x^14-4*x^13+x^12+4*x^11-2*x^9-3*x^8+7*x^6-9*x^4+4*x^3+4*x^2-4*x+1)
 do(polcyclo(68))
 do(polcyclo(85))
+nfrootsof1(x^2023+x+1)
+nfrootsof1(x^2024+x-1)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pari-2.15.1/src/test/in/polred 
new/pari-2.15.2/src/test/in/polred
--- old/pari-2.15.1/src/test/in/polred  2022-09-24 17:32:27.000000000 +0200
+++ new/pari-2.15.2/src/test/in/polred  2022-12-21 21:26:45.000000000 +0100
@@ -10,9 +10,9 @@
 rnfpolredabs(K,T)
 rnfpolredabs(K,T,2)
 [P,a]=rnfpolredbest(K,T,1);
-subst(K.pol,y,a)
+liftall(subst(K.pol,y,a))
 [P,a,b]=rnfpolredbest(K,T,3);
-subst(K.pol,y,a)
+liftall(subst(K.pol,y,a))
 substvec(T,[x,y],[a,b])
 rnfpolred(nfinit(quadpoly(1129,y)),quadray(1129,1));
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pari-2.15.1/src/test/in/pow 
new/pari-2.15.2/src/test/in/pow
--- old/pari-2.15.1/src/test/in/pow     2022-02-25 23:10:32.000000000 +0100
+++ new/pari-2.15.2/src/test/in/pow     2022-12-21 18:55:47.000000000 +0100
@@ -6,9 +6,15 @@
 Mat(2)^0
 Mod(0,1)^0
 Mod(2,3)^0
-Qfb(2,0,-1)^0
-Qfb(2,0,-1)^1
-Vecsmall([3,2,1])^0
+q=Qfb(2,0,-1);
+q^0
+q^1
+[q,1.]^0
+[q,1.]^1
+[q,1.]^2
+v=Vecsmall([3,2,1]);
+v^0
+v^1
 O(2)^1
 O(2)^-2
 (1/2)^-2
@@ -58,3 +64,9 @@
 powers(3, 5, 2)
 powers(3,-1)
 powers(3,0)
+
+\\ERRORS
+[1]^2
+[1]^1
+[1]^0
+List()^1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pari-2.15.1/src/test/in/sumnumrat 
new/pari-2.15.2/src/test/in/sumnumrat
--- old/pari-2.15.1/src/test/in/sumnumrat       2022-10-30 17:07:08.000000000 
+0100
+++ new/pari-2.15.2/src/test/in/sumnumrat       2022-12-21 18:52:55.000000000 
+0100
@@ -32,3 +32,4 @@
 sumeulerrat(1/p)
 prodeulerrat(2)
 prodeulerrat(1+1/p)
+sumeulerrat(x^2/(1+x),2)

Reply via email to