Code coverage tests

This page documents the degree to which the PARI/GP source code is tested by our public test suite, distributed with the source distribution in directory src/test/. This is measured by the gcov utility; we then process gcov output using the lcov frond-end.

We test a few variants depending on Configure flags on the pari.math.u-bordeaux.fr machine (x86_64 architecture), and agregate them in the final report:

The target is 90% coverage for all mathematical modules (given that branches depending on DEBUGLEVEL or DEBUGMEM are not covered). This script is run to produce the results below.

LCOV - code coverage report
Current view: top level - basemath - crvwtors.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.10.0 lcov report (development 21061-8feaff2) Lines: 318 322 98.8 %
Date: 2017-09-24 06:24:57 Functions: 29 29 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* Copyright (C) 2014  The PARI group.
       2             : 
       3             : This file is part of the PARI/GP package.
       4             : 
       5             : PARI/GP is free software; you can redistribute it and/or modify it under the
       6             : terms of the GNU General Public License as published by the Free Software
       7             : Foundation. It is distributed in the hope that it will be useful, but WITHOUT
       8             : ANY WARRANTY WHATSOEVER.
       9             : 
      10             : Check the License for details. You should have received a copy of it, along
      11             : with the package; see the file 'COPYING'. If not, write to the Free Software
      12             : Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
      13             : 
      14             : #include "pari.h"
      15             : #include "paripriv.h"
      16             : 
      17             : /* In the database, the curve X1(N) is given by the bivariate
      18             :  * polynomial X.  The degree of X in its main variable is at least
      19             :  * the degree of its secondary variable, except for N = 6, 7, 8, 9,
      20             :  * 10, 12.  Note that X1(N) is genus 0 for N <= 10 and N = 12, and
      21             :  * genus 1 for N = 11, 14, and 15. */
      22             : 
      23             : 
      24             : INLINE ulong
      25       71489 : Fl_div4(ulong x, ulong p)
      26             : {
      27       71489 :   return Fl_halve(Fl_halve(x, p), p);
      28             : }
      29             : 
      30             : 
      31             : INLINE ulong
      32       35075 : Fl_div8(ulong x, ulong p)
      33             : {
      34       35075 :   return Fl_halve(Fl_div4(x, p), p);
      35             : }
      36             : 
      37             : /* These tags describe which map to use to convert from (r,s) to (b,c)
      38             :  * coeffs. */
      39             : typedef enum {
      40             :   RS_MAP, T_MAP, QT_MAP, TQ_MAP
      41             : } map_type;
      42             : 
      43             : typedef struct {
      44             :   GEN crv;
      45             :   GEN r_num, r_den;
      46             :   long rplus1;
      47             :   GEN s_num, s_den;
      48             :   long splus1;
      49             :   map_type map;
      50             : } X1_info;
      51             : 
      52             : #define FIRST_X1_LEVEL 13
      53             : #define LAST_X1_LEVEL 39
      54             : /* The table is defined at the end of the file. */
      55             : INLINE const X1_info *get_X1_info(ulong N);
      56             : 
      57             : /* Compute the image of
      58             :  * (x,y) |--> (r_n(x,y)/r_d(x,y), s_n(x,y), s_d(x,y)) */
      59             : static void
      60      167412 : map_X1_points(
      61             :   GEN r, GEN s,
      62             :   const X1_info *X1, long ncurves, ulong p, ulong pi)
      63             : {
      64      167412 :   pari_sp ltop = avma, av;
      65             :   GEN X1_c, rn_pol, rd_pol, sn_pol, sd_pol, rn, sn, rd, sd;
      66             :   long xdeg, ydeg, i;
      67             : 
      68      167412 :   X1_c = zxX_to_FlxX(X1->crv, p);
      69      167412 :   xdeg = degpol(X1_c);
      70      167412 :   ydeg = FlxY_degreex(X1_c);
      71             : 
      72      167412 :   rn_pol = zxX_to_FlxX(X1->r_num, p);
      73      167412 :   rd_pol = zxX_to_FlxX(X1->r_den, p);
      74      167412 :   sn_pol = zxX_to_FlxX(X1->s_num, p);
      75      167412 :   sd_pol = zxX_to_FlxX(X1->s_den, p);
      76             : 
      77      167412 :   xdeg = maxss(xdeg, degpol(rn_pol));
      78      167412 :   xdeg = maxss(xdeg, degpol(rd_pol));
      79      167412 :   xdeg = maxss(xdeg, degpol(sn_pol));
      80      167412 :   xdeg = maxss(xdeg, degpol(sd_pol));
      81             : 
      82      167412 :   ydeg = maxss(ydeg, FlxY_degreex(rn_pol));
      83      167412 :   ydeg = maxss(ydeg, FlxY_degreex(rd_pol));
      84      167412 :   ydeg = maxss(ydeg, FlxY_degreex(sn_pol));
      85      167412 :   ydeg = maxss(ydeg, FlxY_degreex(sd_pol));
      86             : 
      87      167412 :   rn = cgetg(ncurves + 1, t_VECSMALL);
      88      167412 :   rd = cgetg(ncurves + 1, t_VECSMALL);
      89      167412 :   sn = cgetg(ncurves + 1, t_VECSMALL);
      90      167412 :   sd = cgetg(ncurves + 1, t_VECSMALL);
      91             : 
      92      167412 :   av = avma;
      93     1430643 :   for (i = 1; i <= ncurves; ) {
      94             :     GEN pol, ypowers, xpowers;
      95             :     ulong y, x;
      96     1095819 :     y = random_Fl(p);
      97     1095819 :     ypowers = Fl_powers_pre(y, ydeg, p, pi);
      98     1095819 :     pol = FlxY_evalx_powers_pre(X1_c, ypowers, p, pi);
      99     1095819 :     x = Flx_oneroot(pol, p);
     100     1095819 :     if (x != p) {
     101      483847 :       xpowers = Fl_powers_pre(x, xdeg, p, pi);
     102      483847 :       rd[i] = FlxY_eval_powers_pre(rd_pol, ypowers, xpowers, p, pi);
     103      483847 :       sd[i] = FlxY_eval_powers_pre(sd_pol, ypowers, xpowers, p, pi);
     104      483847 :       if (rd[i] != 0 && sd[i] != 0) {
     105      483545 :         rn[i] = FlxY_eval_powers_pre(rn_pol, ypowers, xpowers, p, pi);
     106      483545 :         sn[i] = FlxY_eval_powers_pre(sn_pol, ypowers, xpowers, p, pi);
     107      483545 :         ++i;
     108             :       }
     109             :     }
     110     1095819 :     avma = av;
     111             :   }
     112             : 
     113      167412 :   Flv_inv_pre_inplace(rd, p, pi);
     114      167412 :   Flv_inv_pre_inplace(sd, p, pi);
     115             : 
     116      650957 :   for (i = 1; i <= ncurves; ++i) {
     117      483545 :     r[i] = Fl_addmul_pre(X1->rplus1, rn[i], rd[i], p, pi);
     118      483545 :     s[i] = Fl_addmul_pre(X1->splus1, sn[i], sd[i], p, pi);
     119             :   }
     120      167412 :   avma = ltop;
     121      167412 : }
     122             : 
     123             : /*
     124             :  * A curve y^2 = x^3 + a2 x^2 + a4 x is isomorphic to the curve
     125             :  *
     126             :  *   y^2 = x^3 + (a4 - 1/3*a2^2) x + (2/27*a2^3 - 1/3*a4*a2)
     127             :  *       = x^3 + (a4 - a2 c) x + (2 c^3 - a4 c)
     128             :  *
     129             :  * (where c = a2/3) which is in short form.
     130             :  */
     131             : INLINE void
     132      597635 : a2a4_to_a4a6(ulong *a4, ulong *a6, ulong A2, ulong A4, ulong inv3, ulong p, ulong pi)
     133             : {
     134      597635 :     ulong c = Fl_mul_pre(A2, inv3, p, pi);
     135      597635 :     *a4 = Fl_sub(A4, Fl_mul_pre(A2, c, p, pi), p);
     136      597635 :     *a6 = Fl_sub(Fl_double(Fl_mul_pre(c, Fl_sqr_pre(c, p, pi), p, pi), p),
     137             :                  Fl_mul_pre(A4, c, p, pi), p);
     138      597635 : }
     139             : 
     140             : 
     141             : /*
     142             :  * A curve y^2 + a1 xy + a3 y = x^3 is isomorphic to the curve
     143             :  *
     144             :  *   y^2 = x^3 + (1/2*a3*a1 -1/48*a1^4) x + (1/864*a1^6 - 1/24*a3*a1^3 + 1/4*a3^2
     145             :  *       = x^3 + c (a3 - 1/3 * c^3) x + 1/3 * c^3(1/9 c^2 a1 - a3) + 1/4 a3^2
     146             :  *
     147             :  * (where c = a1/2) which is in short form.
     148             :  */
     149             : INLINE void
     150      104565 : a1a3_to_a4a6(
     151             :   ulong *a4, ulong *a6,
     152             :   ulong a1, ulong a3, ulong inv3, ulong inv4, ulong inv9, ulong p, ulong pi)
     153             : {
     154      104565 :   ulong c = Fl_halve(a1, p);
     155      104565 :   ulong c2 = Fl_sqr_pre(c, p, pi);
     156      104565 :   ulong c3_on_3 = Fl_mul_pre(Fl_mul_pre(c, c2, p, pi), inv3, p, pi);
     157             :   /* t1 = c^2 * a1 / 9 */
     158      104565 :   ulong t1 = Fl_mul_pre(c2, Fl_mul_pre(a1, inv9, p, pi), p, pi);
     159             :   /* t1 = c^3/3 (c^2 * a1 / 9 - a3) */
     160      104565 :   t1 = Fl_mul_pre(c3_on_3, Fl_sub(t1, a3, p), p, pi);
     161             : 
     162      104565 :   *a4 = Fl_mul_pre(c, Fl_sub(a3, c3_on_3, p), p, pi);
     163      104565 :   *a6 = Fl_addmul_pre(t1, inv4, Fl_sqr_pre(a3, p, pi), p, pi);
     164      104565 : }
     165             : 
     166             : 
     167             : /* Assumes m > 3, p > 5 */
     168             : /* FIXME: Where do we assume that p > 5?  Some testing suggests that
     169             :  * this works for p == 5 also. */
     170             : /* Sutherland has a version of this function in tecurve.c
     171             :  * around line 306. */
     172             : /* FIXME: Could precompute some of the constants. */
     173             : INLINE void
     174     2615218 : bc_to_a4a6(
     175             :   ulong *a4, ulong *a6, ulong b, ulong c, ulong p, ulong pi)
     176             : {
     177             :   /* E: y^2 + (1 - c)xy - by = x^3 - bx^2, so a1 = 1 - c
     178             :    * and a2 = a3 = -b. */
     179             :   ulong t0, t2, b2, b4, b6, c4, c6;
     180             : 
     181     2615218 :   b6 = Fl_sub(c, 1, p);
     182     2615218 :   t0 = Fl_sqr_pre(b6, p, pi);
     183     2615218 :   b4 = Fl_double(Fl_double(b, p), p);
     184     2615218 :   b2 = Fl_sub(t0, b4, p);
     185     2615218 :   b4 = Fl_mul_pre(b6, b, p, pi);
     186     2615218 :   b6 = Fl_sqr_pre(b, p, pi);
     187     2615218 :   t2 = Fl_sqr_pre(b2, p, pi);
     188     2615218 :   c4 = Fl_mul_pre(24 % p, b4, p, pi);
     189     2615218 :   c4 = Fl_sub(c4, t2, p);
     190             : 
     191     2615218 :   t0 = Fl_mul_pre(36 % p, b4, p, pi);
     192     2615218 :   t2 = Fl_sub(t2, t0, p);
     193     2615218 :   c6 = Fl_mul_pre(b2, t2, p, pi);
     194     2615218 :   t0 = Fl_mul_pre(216 % p, b6, p, pi);
     195     2615218 :   c6 = Fl_add(c6, t0, p);
     196             : 
     197     2615218 :   *a4 = Fl_mul_pre(27 % p, c4, p, pi);
     198     2615218 :   *a6 = Fl_mul_pre(54 % p, c6, p, pi);
     199     2615218 : }
     200             : 
     201             : 
     202             : INLINE void
     203     2580143 : bc_to_a4a6_and_tors(
     204             :   ulong *a4, ulong *a6, ulong *tx, ulong *ty,
     205             :   ulong b, ulong c, ulong p, ulong pi)
     206             : {
     207     2580143 :   bc_to_a4a6(a4, a6, b, c, p, pi);
     208             : 
     209             :   /* tx = 3((c - 1)^2 - 4b) */
     210     2580143 :   *tx = Fl_triple(Fl_sub(Fl_sqr(Fl_sub(c, 1, p), p),
     211             :                          Fl_double(Fl_double(b, p), p), p), p);
     212             :   /* ty = -108 b */
     213     2580143 :   *ty = Fl_neg(Fl_mul_pre(108 % p, b, p, pi), p);
     214     2580143 : }
     215             : 
     216             : 
     217             : INLINE void
     218      286345 : tq_to_a4a6_and_tors(
     219             :   ulong *a4, ulong *a6, ulong *tx, ulong *ty,
     220             :   ulong q, ulong t, ulong p, ulong pi, ulong inv3)
     221             : {
     222             :   ulong A2, A4;
     223      286345 :   ulong t2 = Fl_sqr_pre(t, p, pi);
     224      286345 :   ulong qtp1 = Fl_addmul_pre(1L, q, t, p, pi);
     225             :   /* a2 = t^2-2*(q*t+1), a4 = (1-t^2)*(q*t+1)^2 */
     226      286345 :   A2 = Fl_sub(t2, Fl_double(qtp1, p), p);
     227      286345 :   A4 = Fl_mul_pre(Fl_sub(1L, t2, p), Fl_sqr_pre(qtp1, p, pi), p, pi);
     228      286345 :   a2a4_to_a4a6(a4, a6, A2, A4, inv3, p, pi);
     229             : 
     230             :   /* [tx, ty] = [(t+1)*(q*t+1),t*(q*t+1)*(t+1)] */
     231      286345 :   *tx = Fl_mul_pre(Fl_add(t, 1L, p), qtp1, p, pi);
     232      286345 :   *ty = Fl_mul_pre(t, *tx, p, pi);
     233             :   /* Map to isomorphic curve */
     234      286345 :   *tx = Fl_addmul_pre(*tx, A2, inv3, p, pi);
     235      286345 : }
     236             : 
     237             : 
     238             : INLINE void
     239       35075 : qt_to_a4a6_and_tors(
     240             :   ulong *a4, ulong *a6, ulong *tx, ulong *ty,
     241             :   ulong q, ulong t, ulong p, ulong pi, ulong c_12, ulong c_108)
     242             : {
     243             :   /* z = (q+1)*(t^2-1)/8 */
     244       35075 :   ulong z = Fl_div8(Fl_mul_pre(Fl_add(q, 1L, p),
     245             :                                Fl_sub(Fl_sqr_pre(t, p, pi),
     246             :                                       1L, p), p, pi), p);
     247       35075 :   ulong bb = Fl_mul_pre(Fl_sub(q, 1L, p), z, p, pi);
     248       35075 :   ulong b = Fl_halve(bb, p);
     249             :   /* E=[1,(q^2-1)*(t^2-1)/16,(q^2-1)*(t^2-1)/16,0,0];
     250             :    *  = [1, (q-1)*(q+1)*(t^2-1)/16, idem]
     251             :    *  = [1, b, b, 0, 0] */
     252       35075 :   bc_to_a4a6(a4, a6, Fl_neg(b, p), 0L, p, pi);
     253             : 
     254             :   /* [tx,ty]= [(q+1)*(t^2-1)/8,(q+1)^2*(t^2-1)*(t-1)/32];
     255             :    *        = [z, (q+1)*(t-1)*z*1/4] */
     256       35075 :   *tx = z;
     257       35075 :   *ty = Fl_mul_pre(Fl_add(q, 1L, p),
     258             :                    Fl_mul_pre(Fl_div4(z, p),
     259             :                               Fl_sub(t, 1L, p), p, pi), p, pi);
     260             :   /* Map to isomorphic curve:
     261             :    * (x, y) |--> (3(12x + 4b + 1), 108(2y + x + b)) */
     262       35075 :   *ty = Fl_mul_pre(c_108, Fl_add(Fl_double(*ty, p),
     263             :                                  Fl_add(b, *tx, p), p), p, pi);
     264       35075 :   *tx = Fl_triple(Fl_addmul_pre(Fl_add(Fl_double(bb, p), 1L, p), c_12, *tx, p, pi),
     265             :                   p);
     266       35075 : }
     267             : 
     268             : 
     269             : INLINE void
     270        3420 : t_to_a4a6_and_tors(
     271             :   ulong *a4, ulong *a6, ulong *tx, ulong *ty,
     272             :   ulong q, ulong t, ulong p, ulong pi,
     273             :   ulong inv3, ulong inv4, ulong inv9)
     274             : {
     275        3420 :   ulong a1, a3, qt = Fl_mul_pre(q, t, p, pi), t1;
     276             :   /* a1 = q*t+t+(2-q), a3 = (q*t)*(t-1)+t */
     277        3420 :   a1 = Fl_add(Fl_add(qt, t, p), Fl_sub(2L, q, p), p);
     278        3420 :   a3 = Fl_addmul_pre(t, qt, Fl_sub(t, 1L, p), p, pi);
     279        3420 :   a1a3_to_a4a6(a4, a6, a1, a3, inv3, inv4, inv9, p, pi);
     280        3420 :   *tx = Fl_neg(t, p);
     281        3420 :   *ty = Fl_sqr_pre(t, p, pi);
     282             :   /* Map to isomorphic curve:
     283             :    * (x, y) |--> (x + 1/12*a1^2, 1/2*a1*x + (y + 1/2*a3))  */
     284        3420 :   t1 = Fl_halve(a1, p);
     285        3420 :   *ty = Fl_addmul_pre(Fl_add(*ty, Fl_halve(a3, p), p), *tx, t1, p, pi);
     286        3420 :   *tx = Fl_addmul_pre(*tx, inv3, Fl_sqr_pre(t1, p, pi), p, pi);
     287        3420 : }
     288             : 
     289             : 
     290             : INLINE void
     291      159538 : rs_to_a4a6_and_tors(
     292             :   ulong *a4, ulong *a6, ulong *tx, ulong *ty,
     293             :   ulong r, ulong s, ulong p, ulong pi)
     294             : {
     295             :   /* c = s (r - 1) */
     296      159538 :   ulong c = Fl_mul_pre(s, Fl_sub(r, 1, p), p, pi);
     297             :   /* b = rc */
     298      159538 :   ulong b = Fl_mul_pre(r, c, p, pi);
     299      159538 :   bc_to_a4a6_and_tors(a4, a6, tx, ty, b, c, p, pi);
     300      159538 : }
     301             : 
     302             : 
     303             : INLINE void
     304      167412 : random_curves_with_general_X1(
     305             :   ulong *a4, ulong *a6, ulong *tx, ulong *ty,
     306             :   long ncurves, long m, ulong p, ulong pi)
     307             : {
     308      167412 :   pari_sp av = avma;
     309      167412 :   const X1_info *X1 = get_X1_info(m);
     310             :   GEN r, r_, s, s_;
     311             : 
     312      167412 :   r_ = cgetg(ncurves + 1, t_VECSMALL); r = r_ + 1;
     313      167412 :   s_ = cgetg(ncurves + 1, t_VECSMALL); s = s_ + 1;
     314      167412 :   map_X1_points(r_, s_, X1, ncurves, p, pi);
     315             : 
     316      167412 :   switch (X1->map) {
     317             :   case RS_MAP:
     318      263427 :     while (ncurves--)
     319      158705 :       rs_to_a4a6_and_tors(a4++, a6++, tx++, ty++, *r++, *s++, p, pi);
     320       52361 :     break;
     321             :   case T_MAP:
     322             :   {
     323        1339 :     ulong inv3 = Fl_inv(3L, p), inv4 = Fl_div4(1L, p);
     324        1339 :     ulong inv9 = Fl_sqr_pre(inv3, p, pi);
     325        6098 :     while (ncurves--) {
     326        3420 :       t_to_a4a6_and_tors(a4++, a6++, tx++, ty++, *r++, *s++,
     327             :                          p, pi, inv3, inv4, inv9);
     328             :     }
     329        1339 :     break;
     330             :   }
     331             :   case TQ_MAP:
     332             :   {
     333       99915 :     ulong inv3 = Fl_inv(3L, p);
     334      486175 :     while (ncurves--) {
     335      286345 :       tq_to_a4a6_and_tors(a4++, a6++, tx++, ty++, *r++, *s++,
     336             :                           p, pi, inv3);
     337             :     }
     338       99915 :     break;
     339             :   }
     340             :   case QT_MAP:
     341             :   {
     342       13797 :     ulong c_12 = 12 % p, c_108 = 108 % p;
     343       62669 :     while (ncurves--) {
     344       35075 :       qt_to_a4a6_and_tors(a4++, a6++, tx++, ty++, *r++, *s++,
     345             :                           p, pi, c_12, c_108);
     346             :     }
     347       13797 :     break;
     348             :   }
     349             :   }
     350      167412 :   avma = av;
     351      167412 : }
     352             : 
     353             : 
     354             : INLINE void
     355         113 : random_curves_with_11_torsion(
     356             :   ulong *a4, ulong *a6, ulong *tx, ulong *ty,
     357             :   long ncurves, ulong p, ulong pi)
     358             : {
     359         113 :   pari_sp ltop = avma, av;
     360         113 :   const ulong A4 = Fl_neg(432 % p, p), A6 = 8208 % p;
     361         113 :   const ulong c_6 = 6 % p, c_72 = 72 % p, c_108 = 108 % p;
     362         113 :   const ulong inv216 = Fl_inv(216 % p, p);
     363             : 
     364         113 :   av = avma;
     365        1059 :   while (ncurves) {
     366             :     GEN Q;
     367             :     ulong r, s, den;
     368             : 
     369             :     /* FIXME: Curve arithmetic in Pari is slow enough that it's faster
     370             :      * to generate random points on the curve than it is to compute
     371             :      * random multiples of a point. I don't know if this is to be
     372             :      * expected or not.  Should check if this is still true when using
     373             :      * the fast jac_{add,mul} routines in 'classpoly.c'. Anyway,
     374             :      * disabled for now. */
     375             : #if 0
     376             :     /* Must guard against the possibility that [n]Q = 0 */
     377             :     do {
     378             :       /* FIXME: should perhaps use p + 1 + 2\sqrt{p} instead of p - 1 */
     379             :       n = random_Fl(m1) + 1;  /* m1 = p - 1; */
     380             :       Q = Fle_mulu(P, n, A4, p);
     381             :     } while (ell_is_inf(Q));
     382             : #endif
     383             :     /* FIXME: Thing is, if I'm going to do it this way *anyway*, I
     384             :      * might as well use the non-elliptic version of X1(11), since the
     385             :      * formulae are much nicer. */
     386         833 :     Q = random_Fle_pre(A4, A6, p, pi);
     387             : 
     388             :     /* den = 6x + 72 */
     389         833 :     den = Fl_addmul_pre(c_72, c_6, Q[1], p, pi);
     390         833 :     if (den == 0)
     391           0 :       continue;
     392             : 
     393             :     /* r = (y + 108)/216, s = 1 + (y - 108)/(6x + 72) */
     394         833 :     r = Fl_mul_pre(Fl_add(Q[2], c_108, p), inv216, p, pi);
     395         833 :     s = Fl_add(1, Fl_div(Fl_sub(Q[2], c_108, p), den, p), p);
     396         833 :     rs_to_a4a6_and_tors(a4++, a6++, tx++, ty++, r, s, p, pi);
     397         833 :     avma = av;
     398         833 :     --ncurves;
     399             :   }
     400         113 :   avma = ltop;
     401         113 : }
     402             : 
     403             : 
     404             : INLINE void
     405        1412 : random_curves_with_elliptic_X1(
     406             :   ulong *a4, ulong *a6, ulong *tx, ulong *ty,
     407             :   long ncurves, long m, ulong p, ulong pi)
     408             : {
     409        1412 :   switch (m) {
     410             :   case 11:
     411         113 :     random_curves_with_11_torsion(a4, a6, tx, ty, ncurves, p, pi);
     412         113 :     break;
     413             :   /* cases 12 and 13 are not missing, it is handled by
     414             :    * random_curves_with_rational_X1() and
     415             :    * random_curves_with_general_X1() respectively. */
     416             :   case 14:
     417             :     /*random_curves_with_14_torsion(a4, a6, tx, ty, ncurves, p, pi);
     418             :       break;*/
     419             :   case 15:
     420             :     /*random_curves_with_14_torsion(a4, a6, tx, ty, ncurves, p, pi);
     421             :       break;*/
     422             :     /* FIXME: random_curves_with_elliptic_X1() currently uses the
     423             :      * alternative (but nevertheless very efficient) non-elliptic
     424             :      * implementation for levels 14 and 15. */
     425        1299 :     random_curves_with_general_X1(a4, a6, tx, ty, ncurves, m, p, pi);
     426        1299 :     break;
     427             :   default:
     428           0 :     pari_err_BUG("random_curves_with_elliptic_X1");
     429             :   }
     430        1412 : }
     431             : 
     432             : 
     433             : INLINE void
     434        8843 : random_curves_with_2_torsion(
     435             :   ulong *a4, ulong *a6, ulong *tx, ulong *ty,
     436             :   long ncurves, ulong p, ulong pi)
     437             : {
     438        8843 :   const ulong m1 = p - 1, inv3 = Fl_inv(3L, p);
     439      328976 :   while (ncurves--) {
     440      311290 :     ulong A2 = random_Fl(m1) + 1;  /* non-zero */
     441      311290 :     ulong A4 = random_Fl(m1) + 1;  /* non-zero */
     442             : 
     443      311290 :     a2a4_to_a4a6(a4++, a6++, A2, A4, inv3, p, pi);
     444             : 
     445             :     /* [0,0] is a 2-torsion point on y^2 = x(x^2 + a2x + a4) which
     446             :      * is mapped to [(1/3)a2, 0] on y^2 = x^3 + A4x + A6. */
     447      311290 :     *tx++ = Fl_mul_pre(inv3, A2, p, pi);
     448      311290 :     *ty++ = 0L;
     449             :   };
     450        8843 : }
     451             : 
     452             : 
     453             : INLINE void
     454        3464 : random_curves_with_3_torsion(
     455             :   ulong *a4, ulong *a6, ulong *tx, ulong *ty,
     456             :   long ncurves, ulong p, ulong pi)
     457             : {
     458        3464 :   const ulong m1 = p - 1;
     459        3464 :   const ulong inv3 = Fl_inv(3, p), inv4 = Fl_inv(4, p);
     460        3464 :   const ulong inv9 = Fl_sqr_pre(inv3, p, pi);
     461             : 
     462      108073 :   while (ncurves--) {
     463      101145 :     ulong a1 = random_Fl(m1) + 1;  /* non-zero */
     464      101145 :     ulong a3 = random_Fl(m1) + 1;  /* non-zero */
     465             : 
     466      101145 :     a1a3_to_a4a6(a4++, a6++, a1, a3, inv3, inv4, inv9, p, pi);
     467             : 
     468             :     /* [0,0] is a 3-torsion point on y^2 + a1xy + a3y = x^3 which
     469             :      * is mapped to [a1^2/12, a3/2] on y^2 = x^3 + a4x + a6. */
     470      101145 :     *tx++ = Fl_mul_pre(Fl_sqr_pre(Fl_halve(a1, p), p, pi), inv3, p, pi);
     471      101145 :     *ty++ = Fl_halve(a3, p);
     472             :   }
     473        3464 : }
     474             : 
     475             : 
     476             : INLINE void
     477       89592 : random_curves_with_4_torsion(
     478             :   ulong *a4, ulong *a6, ulong *tx, ulong *ty,
     479             :   long ncurves, ulong p, ulong pi)
     480             : {
     481       89592 :   const ulong m1 = p - 1;
     482     1526150 :   while (ncurves--) {
     483     1346966 :     ulong b = random_Fl(m1) + 1;  /* non-zero */
     484     1346966 :     bc_to_a4a6_and_tors(a4++, a6++, tx++, ty++, b, 0L, p, pi);
     485             :   }
     486       89592 : }
     487             : 
     488             : 
     489             : INLINE void
     490         628 : random_curves_with_5_torsion(
     491             :   ulong *a4, ulong *a6, ulong *tx, ulong *ty,
     492             :   long ncurves, ulong p, ulong pi)
     493             : {
     494         628 :   const ulong m1 = p - 1;
     495       15178 :   while (ncurves--) {
     496       13922 :     ulong b = random_Fl(m1) + 1;  /* non-zero */
     497       13922 :     bc_to_a4a6_and_tors(a4++, a6++, tx++, ty++, b, b, p, pi);
     498             :   }
     499         628 : }
     500             : 
     501             : 
     502             : INLINE void
     503        3269 : random_curves_with_6_torsion(
     504             :   ulong *a4, ulong *a6, ulong *tx, ulong *ty,
     505             :   long ncurves, ulong p, ulong pi)
     506             : {
     507        3269 :   const ulong m2 = p - 2;
     508       25781 :   while (ncurves--) {
     509       19243 :     ulong c = random_Fl(m2) + 1; /* in [1, p - 2] */
     510       19243 :     ulong b = Fl_add(c, Fl_sqr_pre(c, p, pi), p); /* b = c + c^2 */
     511       19243 :     bc_to_a4a6_and_tors(a4++, a6++, tx++, ty++, b, c, p, pi);
     512             :   }
     513        3269 : }
     514             : 
     515             : 
     516             : INLINE void
     517         197 : random_curves_with_7_torsion(
     518             :   ulong *a4, ulong *a6, ulong *tx, ulong *ty,
     519             :   long ncurves, ulong p, ulong pi)
     520             : {
     521         197 :   const ulong m2 = p - 2;
     522        3170 :   while (ncurves--) {
     523        2776 :     ulong d = random_Fl(m2) + 2; /* in [2, p - 2] */
     524        2776 :     ulong c = Fl_sub(Fl_sqr_pre(d, p, pi), d, p); /* c = d^2 - d */
     525        2776 :     ulong b = Fl_mul_pre(c, d, p, pi); /* b = d^3 - d^2 */
     526        2776 :     bc_to_a4a6_and_tors(a4++, a6++, tx++, ty++, b, c, p, pi);
     527             :   }
     528         197 : }
     529             : 
     530             : 
     531             : INLINE void
     532      114633 : random_curves_with_8_torsion(
     533             :   ulong *a4, ulong *a6, ulong *tx, ulong *ty,
     534             :   long ncurves, ulong p, ulong pi)
     535             : {
     536      114633 :   const ulong m1 = p - 1;
     537      922923 :   while (ncurves--) {
     538      693657 :     ulong d = random_Fl(m1) + 1;  /* non-zero */
     539             :     /* b = (2d - 1)(d - 1) */
     540      693657 :     ulong b = Fl_mul_pre(Fl_sub(Fl_double(d, p), 1, p),
     541             :                          Fl_sub(d, 1, p), p, pi);
     542             :     /* c = (2d - 1)(d - 1)/d */
     543      693657 :     ulong c = Fl_div(b, d, p);
     544      693657 :     bc_to_a4a6_and_tors(a4++, a6++, tx++, ty++, b, c, p, pi);
     545             :   }
     546      114633 : }
     547             : 
     548             : 
     549             : INLINE void
     550         324 : random_curves_with_9_torsion(
     551             :   ulong *a4, ulong *a6, ulong *tx, ulong *ty,
     552             :   long ncurves, ulong p, ulong pi)
     553             : {
     554        5258 :   while (ncurves--) {
     555        4610 :     ulong f = random_Fl(p);
     556             :     /* d = f(f - 1) + 1 = f^2 - f + 1 = f^2 - (f - 1) */
     557        4610 :     ulong d = Fl_sub(Fl_sqr_pre(f, p, pi), Fl_sub(f, 1, p), p);
     558             :     /* c = fd - f */
     559        4610 :     ulong c = Fl_mul_pre(f, Fl_sub(d, 1, p), p, pi);
     560             :     /* b = cd */
     561        4610 :     ulong b = Fl_mul_pre(c, d, p, pi);
     562        4610 :     bc_to_a4a6_and_tors(a4++, a6++, tx++, ty++, b, c, p, pi);
     563             :   }
     564         324 : }
     565             : 
     566             : INLINE void
     567         417 : random_curves_with_10_torsion(
     568             :   ulong *a4, ulong *a6, ulong *tx, ulong *ty,
     569             :   long ncurves, ulong p, ulong pi)
     570             : {
     571        2351 :   while (ncurves) {
     572             :     ulong f, f2, d, c, b, t;
     573             : 
     574        1517 :     f = random_Fl(p);
     575             :     /* t = f - (f - 1)^2 = (3f - 1) - f^2 */
     576        1517 :     f2 = Fl_sqr_pre(f, p, pi);
     577        1517 :     t = Fl_sub(Fl_sub(Fl_triple(f, p), 1, p), f2, p);
     578        1517 :     if (t == 0)
     579           5 :       continue;
     580             : 
     581             :     /* d = f^2 / (f - (f - 1)^2) */
     582        1512 :     d = Fl_div(f2, t, p);
     583             :     /* c = fd - f */
     584        1512 :     c = Fl_mul_pre(f, Fl_sub(d, 1, p), p, pi);
     585             :     /* b = cd */
     586        1512 :     b = Fl_mul_pre(c, d, p, pi);
     587        1512 :     bc_to_a4a6_and_tors(a4++, a6++, tx++, ty++, b, c, p, pi);
     588        1512 :     --ncurves;
     589             :   }
     590         417 : }
     591             : 
     592             : INLINE void
     593       64980 : random_curves_with_12_torsion(
     594             :   ulong *a4, ulong *a6, ulong *tx, ulong *ty,
     595             :   long ncurves, ulong p, ulong pi)
     596             : {
     597      467879 :   while (ncurves--) {
     598             :     ulong tau, t1, t2, M, f, d, c, b;
     599      337919 :     tau = random_Fl(p);
     600             :     /* tau mustn't be = 1.  If it is, just set tau = 2. */
     601      337919 :     tau += tau == 1;
     602             : 
     603             :     /* t1 = tau - 1 */
     604      337919 :     t1 = Fl_sub(tau, 1, p);
     605             :     /* M = (3 tau - 3 tau^2 - 1)/(tau - 1) = -(3 tau + 1/(tau - 1)) */
     606      337919 :     t2 = Fl_inv(t1, p);
     607      337919 :     M = Fl_neg(Fl_add(Fl_triple(tau, p), t2, p), p);
     608             :     /* f = M/(1 - tau) = -M / (tau - 1) */
     609      337919 :     f = Fl_neg(Fl_mul_pre(M, t2, p, pi), p);
     610             :     /* d = M + tau */
     611      337919 :     d = Fl_add(M, tau, p);
     612             :     /* c = fd - f */
     613      337919 :     c = Fl_mul_pre(f, Fl_sub(d, 1, p), p, pi);
     614             :     /* b = cd */
     615      337919 :     b = Fl_mul_pre(c, d, p, pi);
     616      337919 :     bc_to_a4a6_and_tors(a4++, a6++, tx++, ty++, b, c, p, pi);
     617             :   }
     618       64980 : }
     619             : 
     620             : 
     621             : INLINE void
     622      286347 : random_curves_with_rational_X1(
     623             :   ulong *a4, ulong *a6, ulong *tx, ulong *ty,
     624             :   long ncurves, long m, ulong p, ulong pi)
     625             : {
     626      286347 :   switch (m) {
     627             :   case 2:
     628        8843 :     random_curves_with_2_torsion(a4, a6, tx, ty, ncurves, p, pi);
     629        8843 :     break;
     630             :   case 3:
     631        3464 :     random_curves_with_3_torsion(a4, a6, tx, ty, ncurves, p, pi);
     632        3464 :     break;
     633             :   case 4:
     634       89592 :     random_curves_with_4_torsion(a4, a6, tx, ty, ncurves, p, pi);
     635       89592 :     break;
     636             :   case 5:
     637         628 :     random_curves_with_5_torsion(a4, a6, tx, ty, ncurves, p, pi);
     638         628 :     break;
     639             :   case 6:
     640        3269 :     random_curves_with_6_torsion(a4, a6, tx, ty, ncurves, p, pi);
     641        3269 :     break;
     642             :   case 7:
     643         197 :     random_curves_with_7_torsion(a4, a6, tx, ty, ncurves, p, pi);
     644         197 :     break;
     645             :   case 8:
     646      114633 :     random_curves_with_8_torsion(a4, a6, tx, ty, ncurves, p, pi);
     647      114633 :     break;
     648             :   case 9:
     649         324 :     random_curves_with_9_torsion(a4, a6, tx, ty, ncurves, p, pi);
     650         324 :     break;
     651             :   case 10:
     652         417 :     random_curves_with_10_torsion(a4, a6, tx, ty, ncurves, p, pi);
     653         417 :     break;
     654             :   /* case 11 is not missing, it is handled by random_curves_with_elliptic_X1() */
     655             :   case 12:
     656       64980 :     random_curves_with_12_torsion(a4, a6, tx, ty, ncurves, p, pi);
     657       64980 :     break;
     658             :   default:
     659           0 :     pari_err_BUG("random_curves_with_rational_X1");
     660             :   }
     661      286347 : }
     662             : 
     663             : 
     664             : static void
     665        5165 : random_curves_with_any_torsion(
     666             :   ulong *a4, ulong *a6, ulong *px, ulong *py,
     667             :   long ncurves, ulong p, ulong pi)
     668             : {
     669        5165 :   pari_sp av = avma;
     670        5165 :   ulong c_1728 = 1728 % p;
     671             :   long i;
     672      492481 :   for (i = 0; i < ncurves; ++i) {
     673             :     GEN P;
     674             :     ulong j;
     675             :     do
     676      488127 :       j = random_Fl(p);
     677      488127 :     while (j == 0 || j == c_1728);
     678             : 
     679      487316 :     Fl_ellj_to_a4a6(j, p, &a4[i], &a6[i]);
     680             : 
     681      487316 :     P = random_Fle_pre(a4[i], a6[i], p, pi);
     682      487316 :     px[i] = P[1];
     683      487316 :     py[i] = P[2];
     684      487316 :     avma = av;
     685             :   }
     686        5165 : }
     687             : 
     688             : /* Assumes p < 2^62 or thereabouts. */
     689             : INLINE long
     690      459037 : torsion_compatible_with_characteristic(long m, ulong p)
     691             : {
     692      459037 :   ulong two_sqrt_p = usqrt(4*p);
     693      459037 :   ulong lo = p + 1 - two_sqrt_p;
     694      459037 :   ulong hi = p + 1 + two_sqrt_p;
     695             : 
     696             :   /* If ceil(lo/m) <= floor(hi/m) then there is a positive
     697             :    * integer n such that lo <= mn <= hi. */
     698             :   /* NB: Ceil(a/b) = (a + b - 1)/b, Floor(a/b) = a/b (using integer
     699             :    * truncation). */
     700      459037 :   return (lo + m - 1)/m <= hi/m;
     701             : }
     702             : 
     703             : 
     704             : /*
     705             :  * Input: pointers a4, a6, t{x,y} where t{x,y} is allowed to be
     706             :  * zero, each (non-zero one) pointing to space for at least ncurves
     707             :  * elements; an integer m <= 50; a prime p > 3; a flag in {0, 1}.
     708             :  *
     709             :  * The flag indicates that we should generate curves faster at the
     710             :  * expense of not guaranteeing uniform randomness.  This only makes a
     711             :  * difference when m = 11, 14 and 15.
     712             :  *
     713             :  * Output: Put the coefficients of ncurves elliptic curves with
     714             :  * m-torsion into a4 and a6.  The actual number of *unique* curves
     715             :  * generated is *not* guaranteed to be ncurves, but will be close
     716             :  * whenever p is big relative to ncurves.  When non-zero, (torx[i],
     717             :  * tory[i]) will contain the m-torsion point on [a4[i], a6[i]].
     718             :  */
     719             : void
     720      459037 : random_curves_with_m_torsion(
     721             :   ulong *a4, ulong *a6, ulong *tx, ulong *ty,
     722             :   long ncurves, long m, ulong p)
     723             : {
     724      459037 :   ulong pi = get_Fl_red(p);
     725             : 
     726      459037 :   if (ncurves == 0)
     727      459037 :     return;
     728             : 
     729      459037 :   if (m < 1 || m > LAST_X1_LEVEL
     730      459037 :       || ! torsion_compatible_with_characteristic(m, p))
     731           0 :     pari_err_BUG("random_curves_with_m_torsion");
     732      459037 :   else if (m == 1)
     733        5165 :     random_curves_with_any_torsion(a4, a6, tx, ty, ncurves, p, pi);
     734      453872 :   else if (m <= 10 || m == 12)
     735      286347 :     random_curves_with_rational_X1(a4, a6, tx, ty, ncurves, m, p, pi);
     736      167525 :   else if (m == 11 || m == 14 || m == 15)
     737        1412 :     random_curves_with_elliptic_X1(a4, a6, tx, ty, ncurves, m, p, pi);
     738             :   else
     739      166113 :     random_curves_with_general_X1(a4, a6, tx, ty, ncurves, m, p, pi);
     740             : 
     741             :   /* The likelihood of getting *any* zero discriminants is small
     742             :    * enough that we can check using this slightly roundabout and
     743             :    * expensive manner. */
     744     4722808 :   while (ncurves--) {
     745     3804734 :     ulong d = Fl_elldisc_pre(*a4, *a6, p, pi);
     746     3804734 :     if (d == 0)  /* should almost never be true */
     747        1315 :       random_curves_with_m_torsion(a4, a6, tx, ty, 1L, m, p);
     748     3804734 :     ++a4; ++a6; ++tx; ++ty;
     749             :   }
     750             : }
     751             : 
     752             : #define vZ evalvarn(1) /* variable number for secondary variable */
     753             : static const long FLX_0[3] = { evaltyp(t_VECSMALL) | _evallg(2), vZ };
     754             : static const long FLX_1[3] = { evaltyp(t_VECSMALL) | _evallg(3), vZ, 1 };
     755             : static const long FLX_m1[3] = { evaltyp(t_VECSMALL) | _evallg(3), vZ, -1 };
     756             : static const long FLX_Z[4] = { evaltyp(t_VECSMALL) | _evallg(4), vZ, 0, 1 };
     757             : static const long FLX_mZ[4] = { evaltyp(t_VECSMALL) | _evallg(4), vZ, 0, -1 };
     758             : 
     759             : /*
     760             :  * X1 Curves database follows!
     761             :  */
     762             : 
     763             : /* x^2 + (z^3 + z^2 + 1)*x + (-z^2 - z) */
     764             : static const long X1_13_crv_0[5] = {
     765             :   evaltyp(t_VECSMALL) | _evallg(5), vZ, 0, -1, -1 }; /* -z^2 - z */
     766             : static const long X1_13_crv_1[6] = {
     767             :   evaltyp(t_VECSMALL) | _evallg(6), vZ, 1, 0, 1, 1 }; /* z^3 + z^2 + 1 */
     768             : static const long *X1_13_crv[5] = {
     769             :   (long *)(evaltyp(t_POL) | _evallg(5)), (long *)(evalvarn(0) | evalsigne(1)),
     770             :   X1_13_crv_0, X1_13_crv_1, FLX_1
     771             : };
     772             : /* -z*x + 1 */
     773             : static const long *X1_13_r_n[4] = {
     774             :   (long *)(evaltyp(t_POL) | _evallg(4)), (long *)(evalvarn(0) | evalsigne(1)),
     775             :   FLX_1, FLX_mZ
     776             : };
     777             : /* 1 */
     778             : static const long *X1_13_r_d[3] = {
     779             :   (long *)(evaltyp(t_POL) | _evallg(3)), (long *)(evalvarn(0) | evalsigne(1)),
     780             :   FLX_1
     781             : };
     782             : /* -z*x */
     783             : static const long *X1_13_s_n[4] = {
     784             :   (long *)(evaltyp(t_POL) | _evallg(4)), (long *)(evalvarn(0) | evalsigne(1)),
     785             :   FLX_0, FLX_mZ
     786             : };
     787             : /* x + 1 */
     788             : static const long *X1_13_s_d[4] = {
     789             :   (long *)(evaltyp(t_POL) | _evallg(4)), (long *)(evalvarn(0) | evalsigne(1)),
     790             :   FLX_1, FLX_1
     791             : };
     792             : /* x^2 + (z^2 + z)*x + z */
     793             : static const long X1_14_crv_1[5] = {
     794             :   evaltyp(t_VECSMALL) | _evallg(5), vZ, 0, 1, 1 }; /* z^2 + z */
     795             : static const long *X1_14_crv[5] = {
     796             :   (long *)(evaltyp(t_POL) | _evallg(5)), (long *)(evalvarn(0) | evalsigne(1)),
     797             :   FLX_Z, X1_14_crv_1, FLX_1
     798             : };
     799             : /* -x - z */
     800             : static const long *X1_14_r_n[4] = {
     801             :   (long *)(evaltyp(t_POL) | _evallg(4)), (long *)(evalvarn(0) | evalsigne(1)),
     802             :   FLX_mZ, FLX_m1
     803             : };
     804             : /* x^2 + (z + 2)*x + (z + 1) */
     805             : static const long X1_14_r_d_0[4] = {
     806             :   evaltyp(t_VECSMALL) | _evallg(4), vZ, 1, 1 }; /* z + 1 */
     807             : static const long X1_14_r_d_1[4] = {
     808             :   evaltyp(t_VECSMALL) | _evallg(4), vZ, 2, 1 }; /* z + 2 */
     809             : static const long *X1_14_r_d[5] = {
     810             :   (long *)(evaltyp(t_POL) | _evallg(5)), (long *)(evalvarn(0) | evalsigne(1)),
     811             :   X1_14_r_d_0, X1_14_r_d_1, FLX_1
     812             : };
     813             : /* (-z + 1) */
     814             : static const long X1_14_s_n_0[4] = {
     815             :   evaltyp(t_VECSMALL) | _evallg(4), vZ, 1, -1 }; /* -z + 1 */
     816             : static const long *X1_14_s_n[3] = {
     817             :   (long *)(evaltyp(t_POL) | _evallg(3)), (long *)(evalvarn(0) | evalsigne(1)),
     818             :   X1_14_s_n_0
     819             : };
     820             : /* x + 1 */
     821             : static const long *X1_14_s_d[4] = {
     822             :   (long *)(evaltyp(t_POL) | _evallg(4)), (long *)(evalvarn(0) | evalsigne(1)),
     823             :   FLX_1, FLX_1
     824             : };
     825             : /* x^2 + (z^2 + z + 1)*x + z^2 */
     826             : static const long X1_15_crv_0[5] = {
     827             :   evaltyp(t_VECSMALL) | _evallg(5), vZ, 0, 0, 1 }; /* z^2 */
     828             : static const long X1_15_crv_1[5] = {
     829             :   evaltyp(t_VECSMALL) | _evallg(5), vZ, 1, 1, 1 }; /* z^2 + z + 1 */
     830             : static const long *X1_15_crv[5] = {
     831             :   (long *)(evaltyp(t_POL) | _evallg(5)), (long *)(evalvarn(0) | evalsigne(1)),
     832             :   X1_15_crv_0, X1_15_crv_1, FLX_1
     833             : };
     834             : /* x^2 + z*x */
     835             : static const long *X1_15_r_n[5] = {
     836             :   (long *)(evaltyp(t_POL) | _evallg(5)), (long *)(evalvarn(0) | evalsigne(1)),
     837             :   FLX_0, FLX_Z, FLX_1
     838             : };
     839             : /* z^2*x + (z^3 + z^2) */
     840             : static const long X1_15_r_d_0[6] = {
     841             :   evaltyp(t_VECSMALL) | _evallg(6), vZ, 0, 0, 1, 1 }; /* z^3 + z^2 */
     842             : static const long X1_15_r_d_1[5] = {
     843             :   evaltyp(t_VECSMALL) | _evallg(5), vZ, 0, 0, 1 }; /* z^2 */
     844             : static const long *X1_15_r_d[4] = {
     845             :   (long *)(evaltyp(t_POL) | _evallg(4)), (long *)(evalvarn(0) | evalsigne(1)),
     846             :   X1_15_r_d_0, X1_15_r_d_1
     847             : };
     848             : /* x */
     849             : static const long *X1_15_s_n[4] = {
     850             :   (long *)(evaltyp(t_POL) | _evallg(4)), (long *)(evalvarn(0) | evalsigne(1)),
     851             :   FLX_0, FLX_1
     852             : };
     853             : /* (z^2 + z) */
     854             : static const long X1_15_s_d_0[5] = {
     855             :   evaltyp(t_VECSMALL) | _evallg(5), vZ, 0, 1, 1 }; /* z^2 + z */
     856             : static const long *X1_15_s_d[3] = {
     857             :   (long *)(evaltyp(t_POL) | _evallg(3)), (long *)(evalvarn(0) | evalsigne(1)),
     858             :   X1_15_s_d_0
     859             : };
     860             : /* x^2 + (z^3 + z^2 - z + 1)*x + z^2 */
     861             : static const long X1_16_crv_0[5] = {
     862             :   evaltyp(t_VECSMALL) | _evallg(5), vZ, 0, 0, 1 }; /* z^2 */
     863             : static const long X1_16_crv_1[6] = {
     864             :   evaltyp(t_VECSMALL) | _evallg(6), vZ, 1, -1, 1, 1 }; /* z^3 + z^2 - z + 1 */
     865             : static const long *X1_16_crv[5] = {
     866             :   (long *)(evaltyp(t_POL) | _evallg(5)), (long *)(evalvarn(0) | evalsigne(1)),
     867             :   X1_16_crv_0, X1_16_crv_1, FLX_1
     868             : };
     869             : /* x^2 + (-z + 1)*x + z^2 */
     870             : static const long X1_16_r_n_0[5] = {
     871             :   evaltyp(t_VECSMALL) | _evallg(5), vZ, 0, 0, 1 }; /* z^2 */
     872             : static const long X1_16_r_n_1[4] = {
     873             :   evaltyp(t_VECSMALL) | _evallg(4), vZ, 1, -1 }; /* -z + 1 */
     874             : static const long *X1_16_r_n[5] = {
     875             :   (long *)(evaltyp(t_POL) | _evallg(5)), (long *)(evalvarn(0) | evalsigne(1)),
     876             :   X1_16_r_n_0, X1_16_r_n_1, FLX_1
     877             : };
     878             : /* -x + (z^2 + z - 1) */
     879             : static const long X1_16_r_d_0[5] = {
     880             :   evaltyp(t_VECSMALL) | _evallg(5), vZ, -1, 1, 1 }; /* z^2 + z - 1 */
     881             : static const long *X1_16_r_d[4] = {
     882             :   (long *)(evaltyp(t_POL) | _evallg(4)), (long *)(evalvarn(0) | evalsigne(1)),
     883             :   X1_16_r_d_0, FLX_m1
     884             : };
     885             : /* -x + z */
     886             : static const long *X1_16_s_n[4] = {
     887             :   (long *)(evaltyp(t_POL) | _evallg(4)), (long *)(evalvarn(0) | evalsigne(1)),
     888             :   FLX_Z, FLX_m1
     889             : };
     890             : /* (z + 1) */
     891             : static const long X1_16_s_d_0[4] = {
     892             :   evaltyp(t_VECSMALL) | _evallg(4), vZ, 1, 1 }; /* z + 1 */
     893             : static const long *X1_16_s_d[3] = {
     894             :   (long *)(evaltyp(t_POL) | _evallg(3)), (long *)(evalvarn(0) | evalsigne(1)),
     895             :   X1_16_s_d_0
     896             : };
     897             : /* x^4 + (z^3 + z^2 - z + 2)*x^3 + (z^3 - 3*z + 1)*x^2 + (-z^4 - 2*z)*x + (z^3 + z^2) */
     898             : static const long X1_17_crv_0[6] = {
     899             :   evaltyp(t_VECSMALL) | _evallg(6), vZ, 0, 0, 1, 1 }; /* z^3 + z^2 */
     900             : static const long X1_17_crv_1[7] = {
     901             :   evaltyp(t_VECSMALL) | _evallg(7), vZ, 0, -2, 0, 0, -1 }; /* -z^4 - 2*z */
     902             : static const long X1_17_crv_2[6] = {
     903             :   evaltyp(t_VECSMALL) | _evallg(6), vZ, 1, -3, 0, 1 }; /* z^3 - 3*z + 1 */
     904             : static const long X1_17_crv_3[6] = {
     905             :   evaltyp(t_VECSMALL) | _evallg(6), vZ, 2, -1, 1, 1 }; /* z^3 + z^2 - z + 2 */
     906             : static const long *X1_17_crv[7] = {
     907             :   (long *)(evaltyp(t_POL) | _evallg(7)), (long *)(evalvarn(0) | evalsigne(1)),
     908             :   X1_17_crv_0, X1_17_crv_1, X1_17_crv_2, X1_17_crv_3, FLX_1
     909             : };
     910             : /* -x + (z^2 + z) */
     911             : static const long X1_17_r_n_0[5] = {
     912             :   evaltyp(t_VECSMALL) | _evallg(5), vZ, 0, 1, 1 }; /* z^2 + z */
     913             : static const long *X1_17_r_n[4] = {
     914             :   (long *)(evaltyp(t_POL) | _evallg(4)), (long *)(evalvarn(0) | evalsigne(1)),
     915             :   X1_17_r_n_0, FLX_m1
     916             : };
     917             : /* -x^2 + (z - 1)*x + (z^2 + z) */
     918             : static const long X1_17_r_d_0[5] = {
     919             :   evaltyp(t_VECSMALL) | _evallg(5), vZ, 0, 1, 1 }; /* z^2 + z */
     920             : static const long X1_17_r_d_1[4] = {
     921             :   evaltyp(t_VECSMALL) | _evallg(4), vZ, -1, 1 }; /* z - 1 */
     922             : static const long *X1_17_r_d[5] = {
     923             :   (long *)(evaltyp(t_POL) | _evallg(5)), (long *)(evalvarn(0) | evalsigne(1)),
     924             :   X1_17_r_d_0, X1_17_r_d_1, FLX_m1
     925             : };
     926             : /* (z + 1) */
     927             : static const long X1_17_s_n_0[4] = {
     928             :   evaltyp(t_VECSMALL) | _evallg(4), vZ, 1, 1 }; /* z + 1 */
     929             : static const long *X1_17_s_n[3] = {
     930             :   (long *)(evaltyp(t_POL) | _evallg(3)), (long *)(evalvarn(0) | evalsigne(1)),
     931             :   X1_17_s_n_0
     932             : };
     933             : /* x + (z + 1) */
     934             : static const long X1_17_s_d_0[4] = {
     935             :   evaltyp(t_VECSMALL) | _evallg(4), vZ, 1, 1 }; /* z + 1 */
     936             : static const long *X1_17_s_d[4] = {
     937             :   (long *)(evaltyp(t_POL) | _evallg(4)), (long *)(evalvarn(0) | evalsigne(1)),
     938             :   X1_17_s_d_0, FLX_1
     939             : };
     940             : /* x^2 + (z^3 - 2*z^2 + 3*z + 1)*x + 2*z */
     941             : static const long X1_18_crv_0[4] = {
     942             :   evaltyp(t_VECSMALL) | _evallg(4), vZ, 0, 2 }; /* 2*z */
     943             : static const long X1_18_crv_1[6] = {
     944             :   evaltyp(t_VECSMALL) | _evallg(6), vZ, 1, 3, -2, 1 }; /* z^3 - 2*z^2 + 3*z + 1 */
     945             : static const long *X1_18_crv[5] = {
     946             :   (long *)(evaltyp(t_POL) | _evallg(5)), (long *)(evalvarn(0) | evalsigne(1)),
     947             :   X1_18_crv_0, X1_18_crv_1, FLX_1
     948             : };
     949             : /* -z*x + (z^2 - 3*z + 1) */
     950             : static const long X1_18_r_n_0[5] = {
     951             :   evaltyp(t_VECSMALL) | _evallg(5), vZ, 1, -3, 1 }; /* z^2 - 3*z + 1 */
     952             : static const long *X1_18_r_n[4] = {
     953             :   (long *)(evaltyp(t_POL) | _evallg(4)), (long *)(evalvarn(0) | evalsigne(1)),
     954             :   X1_18_r_n_0, FLX_mZ
     955             : };
     956             : /* (z^3 - 2*z^2 + z)*x + (z^2 - 2*z + 1) */
     957             : static const long X1_18_r_d_0[5] = {
     958             :   evaltyp(t_VECSMALL) | _evallg(5), vZ, 1, -2, 1 }; /* z^2 - 2*z + 1 */
     959             : static const long X1_18_r_d_1[6] = {
     960             :   evaltyp(t_VECSMALL) | _evallg(6), vZ, 0, 1, -2, 1 }; /* z^3 - 2*z^2 + z */
     961             : static const long *X1_18_r_d[4] = {
     962             :   (long *)(evaltyp(t_POL) | _evallg(4)), (long *)(evalvarn(0) | evalsigne(1)),
     963             :   X1_18_r_d_0, X1_18_r_d_1
     964             : };
     965             : /* -x + (z^2 - 2*z) */
     966             : static const long X1_18_s_n_0[5] = {
     967             :   evaltyp(t_VECSMALL) | _evallg(5), vZ, 0, -2, 1 }; /* z^2 - 2*z */
     968             : static const long *X1_18_s_n[4] = {
     969             :   (long *)(evaltyp(t_POL) | _evallg(4)), (long *)(evalvarn(0) | evalsigne(1)),
     970             :   X1_18_s_n_0, FLX_m1
     971             : };
     972             : /* -x^2 + (-z - 2)*x + (z^2 - 3*z) */
     973             : static const long X1_18_s_d_0[5] = {
     974             :   evaltyp(t_VECSMALL) | _evallg(5), vZ, 0, -3, 1 }; /* z^2 - 3*z */
     975             : static const long X1_18_s_d_1[4] = {
     976             :   evaltyp(t_VECSMALL) | _evallg(4), vZ, -2, -1 }; /* -z - 2 */
     977             : static const long *X1_18_s_d[5] = {
     978             :   (long *)(evaltyp(t_POL) | _evallg(5)), (long *)(evalvarn(0) | evalsigne(1)),
     979             :   X1_18_s_d_0, X1_18_s_d_1, FLX_m1
     980             : };
     981             : /* x^5 + (-z^2 - 2)*x^4 + (-2*z^3 - 2*z^2 - 2*z + 1)*x^3 + (z^5 + 3*z^4 + 7*z^3 + 6*z^2 + 2*z)*x^2 + (-z^5 - 2*z^4 - 4*z^3 - 3*z^2)*x + (z^3 + z^2) */
     982             : static const long X1_19_crv_0[6] = {
     983             :   evaltyp(t_VECSMALL) | _evallg(6), vZ, 0, 0, 1, 1 }; /* z^3 + z^2 */
     984             : static const long X1_19_crv_1[8] = {
     985             :   evaltyp(t_VECSMALL) | _evallg(8), vZ, 0, 0, -3, -4, -2, -1 }; /* -z^5 - 2*z^4 - 4*z^3 - 3*z^2 */
     986             : static const long X1_19_crv_2[8] = {
     987             :   evaltyp(t_VECSMALL) | _evallg(8), vZ, 0, 2, 6, 7, 3, 1 }; /* z^5 + 3*z^4 + 7*z^3 + 6*z^2 + 2*z */
     988             : static const long X1_19_crv_3[6] = {
     989             :   evaltyp(t_VECSMALL) | _evallg(6), vZ, 1, -2, -2, -2 }; /* -2*z^3 - 2*z^2 - 2*z + 1 */
     990             : static const long X1_19_crv_4[5] = {
     991             :   evaltyp(t_VECSMALL) | _evallg(5), vZ, -2, 0, -1 }; /* -z^2 - 2 */
     992             : static const long *X1_19_crv[8] = {
     993             :   (long *)(evaltyp(t_POL) | _evallg(8)), (long *)(evalvarn(0) | evalsigne(1)),
     994             :   X1_19_crv_0, X1_19_crv_1, X1_19_crv_2, X1_19_crv_3, X1_19_crv_4, FLX_1
     995             : };
     996             : /* z*x^2 + (z^2 - z)*x - z^2 */
     997             : static const long X1_19_r_n_0[5] = {
     998             :   evaltyp(t_VECSMALL) | _evallg(5), vZ, 0, 0, -1 }; /* -z^2 */
     999             : static const long X1_19_r_n_1[5] = {
    1000             :   evaltyp(t_VECSMALL) | _evallg(5), vZ, 0, -1, 1 }; /* z^2 - z */
    1001             : static const long *X1_19_r_n[5] = {
    1002             :   (long *)(evaltyp(t_POL) | _evallg(5)), (long *)(evalvarn(0) | evalsigne(1)),
    1003             :   X1_19_r_n_0, X1_19_r_n_1, FLX_Z
    1004             : };
    1005             : /* (-z - 1)*x^2 + (-z^2 + 1)*x + (z^3 + 3*z^2 + 2*z) */
    1006             : static const long X1_19_r_d_0[6] = {
    1007             :   evaltyp(t_VECSMALL) | _evallg(6), vZ, 0, 2, 3, 1 }; /* z^3 + 3*z^2 + 2*z */
    1008             : static const long X1_19_r_d_1[5] = {
    1009             :   evaltyp(t_VECSMALL) | _evallg(5), vZ, 1, 0, -1 }; /* -z^2 + 1 */
    1010             : static const long X1_19_r_d_2[4] = {
    1011             :   evaltyp(t_VECSMALL) | _evallg(4), vZ, -1, -1 }; /* -z - 1 */
    1012             : static const long *X1_19_r_d[5] = {
    1013             :   (long *)(evaltyp(t_POL) | _evallg(5)), (long *)(evalvarn(0) | evalsigne(1)),
    1014             :   X1_19_r_d_0, X1_19_r_d_1, X1_19_r_d_2
    1015             : };
    1016             : /* z*x - z */
    1017             : static const long *X1_19_s_n[4] = {
    1018             :   (long *)(evaltyp(t_POL) | _evallg(4)), (long *)(evalvarn(0) | evalsigne(1)),
    1019             :   FLX_mZ, FLX_Z
    1020             : };
    1021             : /* (-z - 1)*x + (z^2 + 2*z + 1) */
    1022             : static const long X1_19_s_d_0[5] = {
    1023             :   evaltyp(t_VECSMALL) | _evallg(5), vZ, 1, 2, 1 }; /* z^2 + 2*z + 1 */
    1024             : static const long X1_19_s_d_1[4] = {
    1025             :   evaltyp(t_VECSMALL) | _evallg(4), vZ, -1, -1 }; /* -z - 1 */
    1026             : static const long *X1_19_s_d[4] = {
    1027             :   (long *)(evaltyp(t_POL) | _evallg(4)), (long *)(evalvarn(0) | evalsigne(1)),
    1028             :   X1_19_s_d_0, X1_19_s_d_1
    1029             : };
    1030             : /* x^3 - z^3*x^2 - z^2*x + z */
    1031             : static const long X1_20_crv_1[5] = {
    1032             :   evaltyp(t_VECSMALL) | _evallg(5), vZ, 0, 0, -1 }; /* -z^2 */
    1033             : static const long X1_20_crv_2[6] = {
    1034             :   evaltyp(t_VECSMALL) | _evallg(6), vZ, 0, 0, 0, -1 }; /* -z^3 */
    1035             : static const long *X1_20_crv[6] = {
    1036             :   (long *)(evaltyp(t_POL) | _evallg(6)), (long *)(evalvarn(0) | evalsigne(1)),
    1037             :   FLX_Z, X1_20_crv_1, X1_20_crv_2, FLX_1
    1038             : };
    1039             : /* -x + z */
    1040             : static const long *X1_20_r_n[4] = {
    1041             :   (long *)(evaltyp(t_POL) | _evallg(4)), (long *)(evalvarn(0) | evalsigne(1)),
    1042             :   FLX_Z, FLX_m1
    1043             : };
    1044             : /* z*x - 1 */
    1045             : static const long *X1_20_r_d[4] = {
    1046             :   (long *)(evaltyp(t_POL) | _evallg(4)), (long *)(evalvarn(0) | evalsigne(1)),
    1047             :   FLX_m1, FLX_Z
    1048             : };
    1049             : /* 4*z^3*x^3 + (-4*z^4 - 8*z^2)*x^2 + (8*z^3 + 4*z)*x - 4*z^2 */
    1050             : static const long X1_20_s_n_0[5] = {
    1051             :   evaltyp(t_VECSMALL) | _evallg(5), vZ, 0, 0, -4 }; /* -4*z^2 */
    1052             : static const long X1_20_s_n_1[6] = {
    1053             :   evaltyp(t_VECSMALL) | _evallg(6), vZ, 0, 4, 0, 8 }; /* 8*z^3 + 4*z */
    1054             : static const long X1_20_s_n_2[7] = {
    1055             :   evaltyp(t_VECSMALL) | _evallg(7), vZ, 0, 0, -8, 0, -4 }; /* -4*z^4 - 8*z^2 */
    1056             : static const long X1_20_s_n_3[6] = {
    1057             :   evaltyp(t_VECSMALL) | _evallg(6), vZ, 0, 0, 0, 4 }; /* 4*z^3 */
    1058             : static const long *X1_20_s_n[6] = {
    1059             :   (long *)(evaltyp(t_POL) | _evallg(6)), (long *)(evalvarn(0) | evalsigne(1)),
    1060             :   X1_20_s_n_0, X1_20_s_n_1, X1_20_s_n_2, X1_20_s_n_3
    1061             : };
    1062             : /* (z^4 + 4*z^2 - 1)*x^3 + (-10*z^3 - 2*z)*x^2 + (3*z^4 + 8*z^2 + 1)*x + (-2*z^3 - 2*z) */
    1063             : static const long X1_20_s_d_0[6] = {
    1064             :   evaltyp(t_VECSMALL) | _evallg(6), vZ, 0, -2, 0, -2 }; /* -2*z^3 - 2*z */
    1065             : static const long X1_20_s_d_1[7] = {
    1066             :   evaltyp(t_VECSMALL) | _evallg(7), vZ, 1, 0, 8, 0, 3 }; /* 3*z^4 + 8*z^2 + 1 */
    1067             : static const long X1_20_s_d_2[6] = {
    1068             :   evaltyp(t_VECSMALL) | _evallg(6), vZ, 0, -2, 0, -10 }; /* -10*z^3 - 2*z */
    1069             : static const long X1_20_s_d_3[7] = {
    1070             :   evaltyp(t_VECSMALL) | _evallg(7), vZ, -1, 0, 4, 0, 1 }; /* z^4 + 4*z^2 - 1 */
    1071             : static const long *X1_20_s_d[6] = {
    1072             :   (long *)(evaltyp(t_POL) | _evallg(6)), (long *)(evalvarn(0) | evalsigne(1)),
    1073             :   X1_20_s_d_0, X1_20_s_d_1, X1_20_s_d_2, X1_20_s_d_3
    1074             : };
    1075             : /* x^4 + (3*z^2 + 1)*x^3 + (z^5 + z^4 + 2*z^2 + 2*z)*x^2 + (2*z^4 + z^3 + z)*x + z^3 */
    1076             : static const long X1_21_crv_0[6] = {
    1077             :   evaltyp(t_VECSMALL) | _evallg(6), vZ, 0, 0, 0, 1 }; /* z^3 */
    1078             : static const long X1_21_crv_1[7] = {
    1079             :   evaltyp(t_VECSMALL) | _evallg(7), vZ, 0, 1, 0, 1, 2 }; /* 2*z^4 + z^3 + z */
    1080             : static const long X1_21_crv_2[8] = {
    1081             :   evaltyp(t_VECSMALL) | _evallg(8), vZ, 0, 2, 2, 0, 1, 1 }; /* z^5 + z^4 + 2*z^2 + 2*z */
    1082             : static const long X1_21_crv_3[5] = {
    1083             :   evaltyp(t_VECSMALL) | _evallg(5), vZ, 1, 0, 3 }; /* 3*z^2 + 1 */
    1084             : static const long *X1_21_crv[7] = {
    1085             :   (long *)(evaltyp(t_POL) | _evallg(7)), (long *)(evalvarn(0) | evalsigne(1)),
    1086             :   X1_21_crv_0, X1_21_crv_1, X1_21_crv_2, X1_21_crv_3, FLX_1
    1087             : };
    1088             : /* (z + 1)*x^3 + (z + 2)*x^2 + x */
    1089             : static const long X1_21_r_n_2[4] = {
    1090             :   evaltyp(t_VECSMALL) | _evallg(4), vZ, 2, 1 }; /* z + 2 */
    1091             : static const long X1_21_r_n_3[4] = {
    1092             :   evaltyp(t_VECSMALL) | _evallg(4), vZ, 1, 1 }; /* z + 1 */
    1093             : static const long *X1_21_r_n[6] = {
    1094             :   (long *)(evaltyp(t_POL) | _evallg(6)), (long *)(evalvarn(0) | evalsigne(1)),
    1095             :   FLX_0, FLX_1, X1_21_r_n_2, X1_21_r_n_3
    1096             : };
    1097             : /* -z*x^3 + (z^2 - 1)*x^2 + 2*z*x + 1 */
    1098             : static const long X1_21_r_d_1[4] = {
    1099             :   evaltyp(t_VECSMALL) | _evallg(4), vZ, 0, 2 }; /* 2*z */
    1100             : static const long X1_21_r_d_2[5] = {
    1101             :   evaltyp(t_VECSMALL) | _evallg(5), vZ, -1, 0, 1 }; /* z^2 - 1 */
    1102             : static const long *X1_21_r_d[6] = {
    1103             :   (long *)(evaltyp(t_POL) | _evallg(6)), (long *)(evalvarn(0) | evalsigne(1)),
    1104             :   FLX_1, X1_21_r_d_1, X1_21_r_d_2, FLX_mZ
    1105             : };
    1106             : /* x^2 + x */
    1107             : static const long *X1_21_s_n[5] = {
    1108             :   (long *)(evaltyp(t_POL) | _evallg(5)), (long *)(evalvarn(0) | evalsigne(1)),
    1109             :   FLX_0, FLX_1, FLX_1
    1110             : };
    1111             : /* z*x + 1 */
    1112             : static const long *X1_21_s_d[4] = {
    1113             :   (long *)(evaltyp(t_POL) | _evallg(4)), (long *)(evalvarn(0) | evalsigne(1)),
    1114             :   FLX_1, FLX_Z
    1115             : };
    1116             : /* x^4 + (z^3 + 2*z^2 + z + 2)*x^3 + (z^5 + z^4 + 2*z^3 + 2*z^2 + 1)*x^2 + (z^5 - z^4 - 2*z^3 - z^2 - z)*x + (-z^4 - z^3) */
    1117             : static const long X1_22_crv_0[7] = {
    1118             :   evaltyp(t_VECSMALL) | _evallg(7), vZ, 0, 0, 0, -1, -1 }; /* -z^4 - z^3 */
    1119             : static const long X1_22_crv_1[8] = {
    1120             :   evaltyp(t_VECSMALL) | _evallg(8), vZ, 0, -1, -1, -2, -1, 1 }; /* z^5 - z^4 - 2*z^3 - z^2 - z */
    1121             : static const long X1_22_crv_2[8] = {
    1122             :   evaltyp(t_VECSMALL) | _evallg(8), vZ, 1, 0, 2, 2, 1, 1 }; /* z^5 + z^4 + 2*z^3 + 2*z^2 + 1 */
    1123             : static const long X1_22_crv_3[6] = {
    1124             :   evaltyp(t_VECSMALL) | _evallg(6), vZ, 2, 1, 2, 1 }; /* z^3 + 2*z^2 + z + 2 */
    1125             : static const long *X1_22_crv[7] = {
    1126             :   (long *)(evaltyp(t_POL) | _evallg(7)), (long *)(evalvarn(0) | evalsigne(1)),
    1127             :   X1_22_crv_0, X1_22_crv_1, X1_22_crv_2, X1_22_crv_3, FLX_1
    1128             : };
    1129             : /* (z^2 + z + 1)*x + z^2 */
    1130             : static const long X1_22_r_n_0[5] = {
    1131             :   evaltyp(t_VECSMALL) | _evallg(5), vZ, 0, 0, 1 }; /* z^2 */
    1132             : static const long X1_22_r_n_1[5] = {
    1133             :   evaltyp(t_VECSMALL) | _evallg(5), vZ, 1, 1, 1 }; /* z^2 + z + 1 */
    1134             : static const long *X1_22_r_n[4] = {
    1135             :   (long *)(evaltyp(t_POL) | _evallg(4)), (long *)(evalvarn(0) | evalsigne(1)),
    1136             :   X1_22_r_n_0, X1_22_r_n_1
    1137             : };
    1138             : /* x + (z^3 + 2*z^2) */
    1139             : static const long X1_22_r_d_0[6] = {
    1140             :   evaltyp(t_VECSMALL) | _evallg(6), vZ, 0, 0, 2, 1 }; /* z^3 + 2*z^2 */
    1141             : static const long *X1_22_r_d[4] = {
    1142             :   (long *)(evaltyp(t_POL) | _evallg(4)), (long *)(evalvarn(0) | evalsigne(1)),
    1143             :   X1_22_r_d_0, FLX_1
    1144             : };
    1145             : /* (z + 1)*x */
    1146             : static const long X1_22_s_n_1[4] = {
    1147             :   evaltyp(t_VECSMALL) | _evallg(4), vZ, 1, 1 }; /* z + 1 */
    1148             : static const long *X1_22_s_n[4] = {
    1149             :   (long *)(evaltyp(t_POL) | _evallg(4)), (long *)(evalvarn(0) | evalsigne(1)),
    1150             :   FLX_0, X1_22_s_n_1
    1151             : };
    1152             : /* x + z^2 */
    1153             : static const long X1_22_s_d_0[5] = {
    1154             :   evaltyp(t_VECSMALL) | _evallg(5), vZ, 0, 0, 1 }; /* z^2 */
    1155             : static const long *X1_22_s_d[4] = {
    1156             :   (long *)(evaltyp(t_POL) | _evallg(4)), (long *)(evalvarn(0) | evalsigne(1)),
    1157             :   X1_22_s_d_0, FLX_1
    1158             : };
    1159             : /* x^7 + (z^5 - z^4 + z^3 + 4*z^2 + 3)*x^6 + (z^7 + 3*z^5 + z^4 + 5*z^3 + 7*z^2 - 4*z + 3)*x^5 + (2*z^7 + 3*z^5 - z^4 - 2*z^3 - z^2 - 8*z + 1)*x^4 + (z^7 - 4*z^6 - 5*z^5 - 6*z^4 - 6*z^3 - 2*z^2 - 3*z)*x^3 + (-3*z^6 + 5*z^4 + 3*z^3 + 3*z^2 + 2*z)*x^2 + (3*z^5 + 4*z^4 + z)*x + (-z^4 - 2*z^3 - z^2) */
    1160             : static const long X1_23_crv_0[7] = {
    1161             :   evaltyp(t_VECSMALL) | _evallg(7), vZ, 0, 0, -1, -2, -1 }; /* -z^4 - 2*z^3 - z^2 */
    1162             : static const long X1_23_crv_1[8] = {
    1163             :   evaltyp(t_VECSMALL) | _evallg(8), vZ, 0, 1, 0, 0, 4, 3 }; /* 3*z^5 + 4*z^4 + z */
    1164             : static const long X1_23_crv_2[9] = {
    1165             :   evaltyp(t_VECSMALL) | _evallg(9), vZ, 0, 2, 3, 3, 5, 0, -3 }; /* -3*z^6 + 5*z^4 + 3*z^3 + 3*z^2 + 2*z */
    1166             : static const long X1_23_crv_3[10] = {
    1167             :   evaltyp(t_VECSMALL) | _evallg(10), vZ, 0, -3, -2, -6, -6, -5, -4, 1 }; /* z^7 - 4*z^6 - 5*z^5 - 6*z^4 - 6*z^3 - 2*z^2 - 3*z */
    1168             : static const long X1_23_crv_4[10] = {
    1169             :   evaltyp(t_VECSMALL) | _evallg(10), vZ, 1, -8, -1, -2, -1, 3, 0, 2 }; /* 2*z^7 + 3*z^5 - z^4 - 2*z^3 - z^2 - 8*z + 1 */
    1170             : static const long X1_23_crv_5[10] = {
    1171             :   evaltyp(t_VECSMALL) | _evallg(10), vZ, 3, -4, 7, 5, 1, 3, 0, 1 }; /* z^7 + 3*z^5 + z^4 + 5*z^3 + 7*z^2 - 4*z + 3 */
    1172             : static const long X1_23_crv_6[8] = {
    1173             :   evaltyp(t_VECSMALL) | _evallg(8), vZ, 3, 0, 4, 1, -1, 1 }; /* z^5 - z^4 + z^3 + 4*z^2 + 3 */
    1174             : static const long *X1_23_crv[10] = {
    1175             :   (long *)(evaltyp(t_POL) | _evallg(10)), (long *)(evalvarn(0) | evalsigne(1)),
    1176             :   X1_23_crv_0, X1_23_crv_1, X1_23_crv_2, X1_23_crv_3, X1_23_crv_4, X1_23_crv_5, X1_23_crv_6, FLX_1
    1177             : };
    1178             : /* x + (z^2 + z + 1) */
    1179             : static const long X1_23_r_n_0[5] = {
    1180             :   evaltyp(t_VECSMALL) | _evallg(5), vZ, 1, 1, 1 }; /* z^2 + z + 1 */
    1181             : static const long *X1_23_r_n[4] = {
    1182             :   (long *)(evaltyp(t_POL) | _evallg(4)), (long *)(evalvarn(0) | evalsigne(1)),
    1183             :   X1_23_r_n_0, FLX_1
    1184             : };
    1185             : /* -z*x + z^2 */
    1186             : static const long X1_23_r_d_0[5] = {
    1187             :   evaltyp(t_VECSMALL) | _evallg(5), vZ, 0, 0, 1 }; /* z^2 */
    1188             : static const long *X1_23_r_d[4] = {
    1189             :   (long *)(evaltyp(t_POL) | _evallg(4)), (long *)(evalvarn(0) | evalsigne(1)),
    1190             :   X1_23_r_d_0, FLX_mZ
    1191             : };
    1192             : /* x + (z + 1) */
    1193             : static const long X1_23_s_n_0[4] = {
    1194             :   evaltyp(t_VECSMALL) | _evallg(4), vZ, 1, 1 }; /* z + 1 */
    1195             : static const long *X1_23_s_n[4] = {
    1196             :   (long *)(evaltyp(t_POL) | _evallg(4)), (long *)(evalvarn(0) | evalsigne(1)),
    1197             :   X1_23_s_n_0, FLX_1
    1198             : };
    1199             : /* z */
    1200             : static const long *X1_23_s_d[3] = {
    1201             :   (long *)(evaltyp(t_POL) | _evallg(3)), (long *)(evalvarn(0) | evalsigne(1)),
    1202             :   FLX_Z
    1203             : };
    1204             : /* (z^2 - 3)*x^4 + (z^5 + 2*z^4 + 2*z^3 + 2*z^2 - 3*z)*x^2 + (-z^4 - z^2) */
    1205             : static const long X1_24_crv_0[7] = {
    1206             :   evaltyp(t_VECSMALL) | _evallg(7), vZ, 0, 0, -1, 0, -1 }; /* -z^4 - z^2 */
    1207             : static const long X1_24_crv_2[8] = {
    1208             :   evaltyp(t_VECSMALL) | _evallg(8), vZ, 0, -3, 2, 2, 2, 1 }; /* z^5 + 2*z^4 + 2*z^3 + 2*z^2 - 3*z */
    1209             : static const long X1_24_crv_4[5] = {
    1210             :   evaltyp(t_VECSMALL) | _evallg(5), vZ, -3, 0, 1 }; /* z^2 - 3 */
    1211             : static const long *X1_24_crv[7] = {
    1212             :   (long *)(evaltyp(t_POL) | _evallg(7)), (long *)(evalvarn(0) | evalsigne(1)),
    1213             :   X1_24_crv_0, FLX_0, X1_24_crv_2, FLX_0, X1_24_crv_4
    1214             : };
    1215             : /* x */
    1216             : static const long *X1_24_r_n[4] = {
    1217             :   (long *)(evaltyp(t_POL) | _evallg(4)), (long *)(evalvarn(0) | evalsigne(1)),
    1218             :   FLX_0, FLX_1
    1219             : };
    1220             : /* 1 */
    1221             : static const long *X1_24_r_d[3] = {
    1222             :   (long *)(evaltyp(t_POL) | _evallg(3)), (long *)(evalvarn(0) | evalsigne(1)),
    1223             :   FLX_1
    1224             : };
    1225             : /* 4*x^3 + 4*z*x */
    1226             : static const long X1_24_s_n_1[4] = {
    1227             :   evaltyp(t_VECSMALL) | _evallg(4), vZ, 0, 4 }; /* 4*z */
    1228             : static const long X1_24_s_n_3[3] = {
    1229             :   evaltyp(t_VECSMALL) | _evallg(3), vZ, 4 }; /* 4 */
    1230             : static const long *X1_24_s_n[6] = {
    1231             :   (long *)(evaltyp(t_POL) | _evallg(6)), (long *)(evalvarn(0) | evalsigne(1)),
    1232             :   FLX_0, X1_24_s_n_1, FLX_0, X1_24_s_n_3
    1233             : };
    1234             : /* (z - 2)*x^4 + (-4*z - 2)*x^2 - z */
    1235             : static const long X1_24_s_d_2[4] = {
    1236             :   evaltyp(t_VECSMALL) | _evallg(4), vZ, -2, -4 }; /* -4*z - 2 */
    1237             : static const long X1_24_s_d_4[4] = {
    1238             :   evaltyp(t_VECSMALL) | _evallg(4), vZ, -2, 1 }; /* z - 2 */
    1239             : static const long *X1_24_s_d[7] = {
    1240             :   (long *)(evaltyp(t_POL) | _evallg(7)), (long *)(evalvarn(0) | evalsigne(1)),
    1241             :   FLX_mZ, FLX_0, X1_24_s_d_2, FLX_0, X1_24_s_d_4
    1242             : };
    1243             : /* z*u^5 + (z^4 - 2*z^3 - z^2 + 2*z + 1)*u^4 + (-2*z^6 + 2*z^4 - 4*z^3 - 2*z^2 + 2)*u^3 + (z^8 + z^7 - 2*z^6 + z^5 - z^4 - z^3 - 2*z^2 - z + 1)*u^2 + (z^8 + z^7 + 2*z^6 + z^5 - 2*z^4 + z^3 - z^2)*u + z^6 */
    1244             : static const long X1_25_crv_0[9] = {
    1245             :   evaltyp(t_VECSMALL) | _evallg(9), vZ, 0, 0, 0, 0, 0, 0, 1 }; /* z^6 */
    1246             : static const long X1_25_crv_1[11] = {
    1247             :   evaltyp(t_VECSMALL) | _evallg(11), vZ, 0, 0, -1, 1, -2, 1, 2, 1, 1 }; /* z^8 + z^7 + 2*z^6 + z^5 - 2*z^4 + z^3 - z^2 */
    1248             : static const long X1_25_crv_2[11] = {
    1249             :   evaltyp(t_VECSMALL) | _evallg(11), vZ, 1, -1, -2, -1, -1, 1, -2, 1, 1 }; /* z^8 + z^7 - 2*z^6 + z^5 - z^4 - z^3 - 2*z^2 - z + 1 */
    1250             : static const long X1_25_crv_3[9] = {
    1251             :   evaltyp(t_VECSMALL) | _evallg(9), vZ, 2, 0, -2, -4, 2, 0, -2 }; /* -2*z^6 + 2*z^4 - 4*z^3 - 2*z^2 + 2 */
    1252             : static const long X1_25_crv_4[7] = {
    1253             :   evaltyp(t_VECSMALL) | _evallg(7), vZ, 1, 2, -1, -2, 1 }; /* z^4 - 2*z^3 - z^2 + 2*z + 1 */
    1254             : static const long *X1_25_crv[8] = {
    1255             :   (long *)(evaltyp(t_POL) | _evallg(8)), (long *)(evalvarn(0) | evalsigne(1)),
    1256             :   X1_25_crv_0, X1_25_crv_1, X1_25_crv_2, X1_25_crv_3, X1_25_crv_4, FLX_Z
    1257             : };
    1258             : /* -z^2*u^6 + (2*z^4 - 2*z^2 - 2*z)*u^5 + (-z^6 + 2*z^5 + 5*z^4 + z^3 - 4*z - 1)*u^4 + (-2*z^7 - 3*z^6 + 4*z^5 + 4*z^4 + 5*z^3 - z - 2)*u^3 + (-z^8 - 4*z^7 - 2*z^6 - z^5 + 3*z^4 + 5*z^3 - z^2 + z - 1)*u^2 + (-z^8 - z^7 - 2*z^6 - 3*z^5 + 2*z^4 + z^3)*u - z^6 */
    1259             : static const long X1_25_r_n_0[9] = {
    1260             :   evaltyp(t_VECSMALL) | _evallg(9), vZ, 0, 0, 0, 0, 0, 0, -1 }; /* -z^6 */
    1261             : static const long X1_25_r_n_1[11] = {
    1262             :   evaltyp(t_VECSMALL) | _evallg(11), vZ, 0, 0, 0, 1, 2, -3, -2, -1, -1 }; /* -z^8 - z^7 - 2*z^6 - 3*z^5 + 2*z^4 + z^3 */
    1263             : static const long X1_25_r_n_2[11] = {
    1264             :   evaltyp(t_VECSMALL) | _evallg(11), vZ, -1, 1, -1, 5, 3, -1, -2, -4, -1 }; /* -z^8 - 4*z^7 - 2*z^6 - z^5 + 3*z^4 + 5*z^3 - z^2 + z - 1 */
    1265             : static const long X1_25_r_n_3[10] = {
    1266             :   evaltyp(t_VECSMALL) | _evallg(10), vZ, -2, -1, 0, 5, 4, 4, -3, -2 }; /* -2*z^7 - 3*z^6 + 4*z^5 + 4*z^4 + 5*z^3 - z - 2 */
    1267             : static const long X1_25_r_n_4[9] = {
    1268             :   evaltyp(t_VECSMALL) | _evallg(9), vZ, -1, -4, 0, 1, 5, 2, -1 }; /* -z^6 + 2*z^5 + 5*z^4 + z^3 - 4*z - 1 */
    1269             : static const long X1_25_r_n_5[7] = {
    1270             :   evaltyp(t_VECSMALL) | _evallg(7), vZ, 0, -2, -2, 0, 2 }; /* 2*z^4 - 2*z^2 - 2*z */
    1271             : static const long X1_25_r_n_6[5] = {
    1272             :   evaltyp(t_VECSMALL) | _evallg(5), vZ, 0, 0, -1 }; /* -z^2 */
    1273             : static const long *X1_25_r_n[9] = {
    1274             :   (long *)(evaltyp(t_POL) | _evallg(9)), (long *)(evalvarn(0) | evalsigne(1)),
    1275             :   X1_25_r_n_0, X1_25_r_n_1, X1_25_r_n_2, X1_25_r_n_3, X1_25_r_n_4, X1_25_r_n_5, X1_25_r_n_6
    1276             : };
    1277             : /* -z^2*u^6 + (2*z^4 + z^3 - 2*z^2 - 2*z)*u^5 + (-z^6 + 7*z^4 + 3*z^3 + z^2 - 4*z - 1)*u^4 + (-z^7 - 8*z^6 + z^5 + 7*z^4 + 7*z^3 + 2*z^2 - z - 2)*u^3 + (2*z^8 - 6*z^7 - 11*z^6 - 2*z^5 + 3*z^4 + 7*z^3 + z - 1)*u^2 + (3*z^9 + 3*z^8 - 6*z^7 - 6*z^6 - 3*z^5 + z^4 + 2*z^3)*u + (z^10 + 3*z^9 + z^8 - 2*z^7 - z^6) */
    1278             : static const long X1_25_r_d_0[13] = {
    1279             :   evaltyp(t_VECSMALL) | _evallg(13), vZ, 0, 0, 0, 0, 0, 0, -1, -2, 1, 3, 1 }; /* z^10 + 3*z^9 + z^8 - 2*z^7 - z^6 */
    1280             : static const long X1_25_r_d_1[12] = {
    1281             :   evaltyp(t_VECSMALL) | _evallg(12), vZ, 0, 0, 0, 2, 1, -3, -6, -6, 3, 3 }; /* 3*z^9 + 3*z^8 - 6*z^7 - 6*z^6 - 3*z^5 + z^4 + 2*z^3 */
    1282             : static const long X1_25_r_d_2[11] = {
    1283             :   evaltyp(t_VECSMALL) | _evallg(11), vZ, -1, 1, 0, 7, 3, -2, -11, -6, 2 }; /* 2*z^8 - 6*z^7 - 11*z^6 - 2*z^5 + 3*z^4 + 7*z^3 + z - 1 */
    1284             : static const long X1_25_r_d_3[10] = {
    1285             :   evaltyp(t_VECSMALL) | _evallg(10), vZ, -2, -1, 2, 7, 7, 1, -8, -1 }; /* -z^7 - 8*z^6 + z^5 + 7*z^4 + 7*z^3 + 2*z^2 - z - 2 */
    1286             : static const long X1_25_r_d_4[9] = {
    1287             :   evaltyp(t_VECSMALL) | _evallg(9), vZ, -1, -4, 1, 3, 7, 0, -1 }; /* -z^6 + 7*z^4 + 3*z^3 + z^2 - 4*z - 1 */
    1288             : static const long X1_25_r_d_5[7] = {
    1289             :   evaltyp(t_VECSMALL) | _evallg(7), vZ, 0, -2, -2, 1, 2 }; /* 2*z^4 + z^3 - 2*z^2 - 2*z */
    1290             : static const long X1_25_r_d_6[5] = {
    1291             :   evaltyp(t_VECSMALL) | _evallg(5), vZ, 0, 0, -1 }; /* -z^2 */
    1292             : static const long *X1_25_r_d[9] = {
    1293             :   (long *)(evaltyp(t_POL) | _evallg(9)), (long *)(evalvarn(0) | evalsigne(1)),
    1294             :   X1_25_r_d_0, X1_25_r_d_1, X1_25_r_d_2, X1_25_r_d_3, X1_25_r_d_4, X1_25_r_d_5, X1_25_r_d_6
    1295             : };
    1296             : /* -z*u^3 + (z^3 - z - 1)*u^2 + (z^4 + z^3 - z^2 + z - 1)*u + z^4 */
    1297             : static const long X1_25_s_n_0[7] = {
    1298             :   evaltyp(t_VECSMALL) | _evallg(7), vZ, 0, 0, 0, 0, 1 }; /* z^4 */
    1299             : static const long X1_25_s_n_1[7] = {
    1300             :   evaltyp(t_VECSMALL) | _evallg(7), vZ, -1, 1, -1, 1, 1 }; /* z^4 + z^3 - z^2 + z - 1 */
    1301             : static const long X1_25_s_n_2[6] = {
    1302             :   evaltyp(t_VECSMALL) | _evallg(6), vZ, -1, -1, 0, 1 }; /* z^3 - z - 1 */
    1303             : static const long *X1_25_s_n[6] = {
    1304             :   (long *)(evaltyp(t_POL) | _evallg(6)), (long *)(evalvarn(0) | evalsigne(1)),
    1305             :   X1_25_s_n_0, X1_25_s_n_1, X1_25_s_n_2, FLX_mZ
    1306             : };
    1307             : /* -z*u^3 + (z^3 + z^2 - z - 1)*u^2 + (2*z^3 + z - 1)*u + (-z^5 + z^3) */
    1308             : static const long X1_25_s_d_0[8] = {
    1309             :   evaltyp(t_VECSMALL) | _evallg(8), vZ, 0, 0, 0, 1, 0, -1 }; /* -z^5 + z^3 */
    1310             : static const long X1_25_s_d_1[6] = {
    1311             :   evaltyp(t_VECSMALL) | _evallg(6), vZ, -1, 1, 0, 2 }; /* 2*z^3 + z - 1 */
    1312             : static const long X1_25_s_d_2[6] = {
    1313             :   evaltyp(t_VECSMALL) | _evallg(6), vZ, -1, -1, 1, 1 }; /* z^3 + z^2 - z - 1 */
    1314             : static const long *X1_25_s_d[6] = {
    1315             :   (long *)(evaltyp(t_POL) | _evallg(6)), (long *)(evalvarn(0) | evalsigne(1)),
    1316             :   X1_25_s_d_0, X1_25_s_d_1, X1_25_s_d_2, FLX_mZ
    1317             : };
    1318             : /* x^6 + (3*z^2 + 4*z - 2)*x^5 + (3*z^4 + 10*z^3 - 9*z + 1)*x^4 + (z^6 + 7*z^5 + 8*z^4 - 14*z^3 - 11*z^2 + 6*z)*x^3 + (z^7 + 4*z^6 - z^5 - 13*z^4 + 2*z^3 + 10*z^2 - z)*x^2 + (-z^6 + 7*z^4 + 4*z^3 - 2*z^2)*x + (-z^4 - z^3) */
    1319             : static const long X1_26_crv_0[7] = {
    1320             :   evaltyp(t_VECSMALL) | _evallg(7), vZ, 0, 0, 0, -1, -1 }; /* -z^4 - z^3 */
    1321             : static const long X1_26_crv_1[9] = {
    1322             :   evaltyp(t_VECSMALL) | _evallg(9), vZ, 0, 0, -2, 4, 7, 0, -1 }; /* -z^6 + 7*z^4 + 4*z^3 - 2*z^2 */
    1323             : static const long X1_26_crv_2[10] = {
    1324             :   evaltyp(t_VECSMALL) | _evallg(10), vZ, 0, -1, 10, 2, -13, -1, 4, 1 }; /* z^7 + 4*z^6 - z^5 - 13*z^4 + 2*z^3 + 10*z^2 - z */
    1325             : static const long X1_26_crv_3[9] = {
    1326             :   evaltyp(t_VECSMALL) | _evallg(9), vZ, 0, 6, -11, -14, 8, 7, 1 }; /* z^6 + 7*z^5 + 8*z^4 - 14*z^3 - 11*z^2 + 6*z */
    1327             : static const long X1_26_crv_4[7] = {
    1328             :   evaltyp(t_VECSMALL) | _evallg(7), vZ, 1, -9, 0, 10, 3 }; /* 3*z^4 + 10*z^3 - 9*z + 1 */
    1329             : static const long X1_26_crv_5[5] = {
    1330             :   evaltyp(t_VECSMALL) | _evallg(5), vZ, -2, 4, 3 }; /* 3*z^2 + 4*z - 2 */
    1331             : static const long *X1_26_crv[9] = {
    1332             :   (long *)(evaltyp(t_POL) | _evallg(9)), (long *)(evalvarn(0) | evalsigne(1)),
    1333             :   X1_26_crv_0, X1_26_crv_1, X1_26_crv_2, X1_26_crv_3, X1_26_crv_4, X1_26_crv_5, FLX_1
    1334             : };
    1335             : /* z*x^2 + (z^3 + 3*z^2)*x - z^2 */
    1336             : static const long X1_26_r_n_0[5] = {
    1337             :   evaltyp(t_VECSMALL) | _evallg(5), vZ, 0, 0, -1 }; /* -z^2 */
    1338             : static const long X1_26_r_n_1[6] = {
    1339             :   evaltyp(t_VECSMALL) | _evallg(6), vZ, 0, 0, 3, 1 }; /* z^3 + 3*z^2 */
    1340             : static const long *X1_26_r_n[5] = {
    1341             :   (long *)(evaltyp(t_POL) | _evallg(5)), (long *)(evalvarn(0) | evalsigne(1)),
    1342             :   X1_26_r_n_0, X1_26_r_n_1, FLX_Z
    1343             : };
    1344             : /* (z + 1)*x^2 + (z^3 + 4*z^2 + 3*z)*x + (z^3 + z^2) */
    1345             : static const long X1_26_r_d_0[6] = {
    1346             :   evaltyp(t_VECSMALL) | _evallg(6), vZ, 0, 0, 1, 1 }; /* z^3 + z^2 */
    1347             : static const long X1_26_r_d_1[6] = {
    1348             :   evaltyp(t_VECSMALL) | _evallg(6), vZ, 0, 3, 4, 1 }; /* z^3 + 4*z^2 + 3*z */
    1349             : static const long X1_26_r_d_2[4] = {
    1350             :   evaltyp(t_VECSMALL) | _evallg(4), vZ, 1, 1 }; /* z + 1 */
    1351             : static const long *X1_26_r_d[5] = {
    1352             :   (long *)(evaltyp(t_POL) | _evallg(5)), (long *)(evalvarn(0) | evalsigne(1)),
    1353             :   X1_26_r_d_0, X1_26_r_d_1, X1_26_r_d_2
    1354             : };
    1355             : /* z*x - z */
    1356             : static const long *X1_26_s_n[4] = {
    1357             :   (long *)(evaltyp(t_POL) | _evallg(4)), (long *)(evalvarn(0) | evalsigne(1)),
    1358             :   FLX_mZ, FLX_Z
    1359             : };
    1360             : /* (z + 1)*x */
    1361             : static const long X1_26_s_d_1[4] = {
    1362             :   evaltyp(t_VECSMALL) | _evallg(4), vZ, 1, 1 }; /* z + 1 */
    1363             : static const long *X1_26_s_d[4] = {
    1364             :   (long *)(evaltyp(t_POL) | _evallg(4)), (long *)(evalvarn(0) | evalsigne(1)),
    1365             :   FLX_0, X1_26_s_d_1
    1366             : };
    1367             : /* (z^2 - 2*z + 1)*u^6 + (z^5 - 2*z^4 + z^3 + 2*z^2 - 4*z + 2)*u^5 + (-z^7 + 5*z^5 - 5*z^4 + 2*z^3 - 2*z^2 + 1)*u^4 + (z^8 - 4*z^7 - z^6 + 5*z^5 + 2*z^3 - 5*z^2 + 2*z)*u^3 + (3*z^8 - 4*z^7 - 2*z^6 - 2*z^5 + 3*z^4 + 2*z^3 - z^2 + z)*u^2 + (3*z^8 - 3*z^5)*u + (z^8 + z^7 + z^6) */
    1368             : static const long X1_27_crv_0[11] = {
    1369             :   evaltyp(t_VECSMALL) | _evallg(11), vZ, 0, 0, 0, 0, 0, 0, 1, 1, 1 }; /* z^8 + z^7 + z^6 */
    1370             : static const long X1_27_crv_1[11] = {
    1371             :   evaltyp(t_VECSMALL) | _evallg(11), vZ, 0, 0, 0, 0, 0, -3, 0, 0, 3 }; /* 3*z^8 - 3*z^5 */
    1372             : static const long X1_27_crv_2[11] = {
    1373             :   evaltyp(t_VECSMALL) | _evallg(11), vZ, 0, 1, -1, 2, 3, -2, -2, -4, 3 }; /* 3*z^8 - 4*z^7 - 2*z^6 - 2*z^5 + 3*z^4 + 2*z^3 - z^2 + z */
    1374             : static const long X1_27_crv_3[11] = {
    1375             :   evaltyp(t_VECSMALL) | _evallg(11), vZ, 0, 2, -5, 2, 0, 5, -1, -4, 1 }; /* z^8 - 4*z^7 - z^6 + 5*z^5 + 2*z^3 - 5*z^2 + 2*z */
    1376             : static const long X1_27_crv_4[10] = {
    1377             :   evaltyp(t_VECSMALL) | _evallg(10), vZ, 1, 0, -2, 2, -5, 5, 0, -1 }; /* -z^7 + 5*z^5 - 5*z^4 + 2*z^3 - 2*z^2 + 1 */
    1378             : static const long X1_27_crv_5[8] = {
    1379             :   evaltyp(t_VECSMALL) | _evallg(8), vZ, 2, -4, 2, 1, -2, 1 }; /* z^5 - 2*z^4 + z^3 + 2*z^2 - 4*z + 2 */
    1380             : static const long X1_27_crv_6[5] = {
    1381             :   evaltyp(t_VECSMALL) | _evallg(5), vZ, 1, -2, 1 }; /* z^2 - 2*z + 1 */
    1382             : static const long *X1_27_crv[9] = {
    1383             :   (long *)(evaltyp(t_POL) | _evallg(9)), (long *)(evalvarn(0) | evalsigne(1)),
    1384             :   X1_27_crv_0, X1_27_crv_1, X1_27_crv_2, X1_27_crv_3, X1_27_crv_4, X1_27_crv_5, X1_27_crv_6
    1385             : };
    1386             : /* (-z^4 + 2*z^2 - 2*z + 1)*u^4 + (z^5 - 4*z^4 - z^3 + 6*z^2 - 4*z + 2)*u^3 + (3*z^5 - 5*z^4 - 2*z^3 + 5*z^2 - z + 1)*u^2 + (3*z^5 - 2*z^4 - z^3 + z^2)*u + z^5 */
    1387             : static const long X1_27_r_n_0[8] = {
    1388             :   evaltyp(t_VECSMALL) | _evallg(8), vZ, 0, 0, 0, 0, 0, 1 }; /* z^5 */
    1389             : static const long X1_27_r_n_1[8] = {
    1390             :   evaltyp(t_VECSMALL) | _evallg(8), vZ, 0, 0, 1, -1, -2, 3 }; /* 3*z^5 - 2*z^4 - z^3 + z^2 */
    1391             : static const long X1_27_r_n_2[8] = {
    1392             :   evaltyp(t_VECSMALL) | _evallg(8), vZ, 1, -1, 5, -2, -5, 3 }; /* 3*z^5 - 5*z^4 - 2*z^3 + 5*z^2 - z + 1 */
    1393             : static const long X1_27_r_n_3[8] = {
    1394             :   evaltyp(t_VECSMALL) | _evallg(8), vZ, 2, -4, 6, -1, -4, 1 }; /* z^5 - 4*z^4 - z^3 + 6*z^2 - 4*z + 2 */
    1395             : static const long X1_27_r_n_4[7] = {
    1396             :   evaltyp(t_VECSMALL) | _evallg(7), vZ, 1, -2, 2, 0, -1 }; /* -z^4 + 2*z^2 - 2*z + 1 */
    1397             : static const long *X1_27_r_n[7] = {
    1398             :   (long *)(evaltyp(t_POL) | _evallg(7)), (long *)(evalvarn(0) | evalsigne(1)),
    1399             :   X1_27_r_n_0, X1_27_r_n_1, X1_27_r_n_2, X1_27_r_n_3, X1_27_r_n_4
    1400             : };
    1401             : /* (-z^3 + z^2 - z + 1)*u^4 + (z^5 - z^4 - 2*z^3 + z^2 - z + 2)*u^3 + (3*z^5 - 2*z^4 - z^3 - 2*z^2 + 2*z + 1)*u^2 + (3*z^5 - z^4 - 3*z^2 + z)*u + (z^5 - z^2) */
    1402             : static const long X1_27_r_d_0[8] = {
    1403             :   evaltyp(t_VECSMALL) | _evallg(8), vZ, 0, 0, -1, 0, 0, 1 }; /* z^5 - z^2 */
    1404             : static const long X1_27_r_d_1[8] = {
    1405             :   evaltyp(t_VECSMALL) | _evallg(8), vZ, 0, 1, -3, 0, -1, 3 }; /* 3*z^5 - z^4 - 3*z^2 + z */
    1406             : static const long X1_27_r_d_2[8] = {
    1407             :   evaltyp(t_VECSMALL) | _evallg(8), vZ, 1, 2, -2, -1, -2, 3 }; /* 3*z^5 - 2*z^4 - z^3 - 2*z^2 + 2*z + 1 */
    1408             : static const long X1_27_r_d_3[8] = {
    1409             :   evaltyp(t_VECSMALL) | _evallg(8), vZ, 2, -1, 1, -2, -1, 1 }; /* z^5 - z^4 - 2*z^3 + z^2 - z + 2 */
    1410             : static const long X1_27_r_d_4[6] = {
    1411             :   evaltyp(t_VECSMALL) | _evallg(6), vZ, 1, -1, 1, -1 }; /* -z^3 + z^2 - z + 1 */
    1412             : static const long *X1_27_r_d[7] = {
    1413             :   (long *)(evaltyp(t_POL) | _evallg(7)), (long *)(evalvarn(0) | evalsigne(1)),
    1414             :   X1_27_r_d_0, X1_27_r_d_1, X1_27_r_d_2, X1_27_r_d_3, X1_27_r_d_4
    1415             : };
    1416             : /* (z^3 - 2*z + 1)*u^3 + (-z^4 + 2*z^3 + z^2 - 4*z + 2)*u^2 + (-2*z^4 + z^3 + z^2 - z + 1)*u - z^4 */
    1417             : static const long X1_27_s_n_0[7] = {
    1418             :   evaltyp(t_VECSMALL) | _evallg(7), vZ, 0, 0, 0, 0, -1 }; /* -z^4 */
    1419             : static const long X1_27_s_n_1[7] = {
    1420             :   evaltyp(t_VECSMALL) | _evallg(7), vZ, 1, -1, 1, 1, -2 }; /* -2*z^4 + z^3 + z^2 - z + 1 */
    1421             : static const long X1_27_s_n_2[7] = {
    1422             :   evaltyp(t_VECSMALL) | _evallg(7), vZ, 2, -4, 1, 2, -1 }; /* -z^4 + 2*z^3 + z^2 - 4*z + 2 */
    1423             : static const long X1_27_s_n_3[6] = {
    1424             :   evaltyp(t_VECSMALL) | _evallg(6), vZ, 1, -2, 0, 1 }; /* z^3 - 2*z + 1 */
    1425             : static const long *X1_27_s_n[6] = {
    1426             :   (long *)(evaltyp(t_POL) | _evallg(6)), (long *)(evalvarn(0) | evalsigne(1)),
    1427             :   X1_27_s_n_0, X1_27_s_n_1, X1_27_s_n_2, X1_27_s_n_3
    1428             : };
    1429             : /* (-z + 1)*u^3 + (-z^4 - z + 2)*u^2 + (-2*z^4 + 2*z + 1)*u + (-z^4 + z) */
    1430             : static const long X1_27_s_d_0[7] = {
    1431             :   evaltyp(t_VECSMALL) | _evallg(7), vZ, 0, 1, 0, 0, -1 }; /* -z^4 + z */
    1432             : static const long X1_27_s_d_1[7] = {
    1433             :   evaltyp(t_VECSMALL) | _evallg(7), vZ, 1, 2, 0, 0, -2 }; /* -2*z^4 + 2*z + 1 */
    1434             : static const long X1_27_s_d_2[7] = {
    1435             :   evaltyp(t_VECSMALL) | _evallg(7), vZ, 2, -1, 0, 0, -1 }; /* -z^4 - z + 2 */
    1436             : static const long X1_27_s_d_3[4] = {
    1437             :   evaltyp(t_VECSMALL) | _evallg(4), vZ, 1, -1 }; /* -z + 1 */
    1438             : static const long *X1_27_s_d[6] = {
    1439             :   (long *)(evaltyp(t_POL) | _evallg(6)), (long *)(evalvarn(0) | evalsigne(1)),
    1440             :   X1_27_s_d_0, X1_27_s_d_1, X1_27_s_d_2, X1_27_s_d_3
    1441             : };
    1442             : /* (z^5 + 3*z^4 + 3*z^3 + z^2)*x^6 + (z^8 + 2*z^7 + z^6 + 11*z^4 + 22*z^3 + 11*z^2)*x^5 + (9*z^7 + 9*z^6 - 6*z^5 - 6*z^4 + 45*z^3 + 45*z^2)*x^4 + (-5*z^8 + 28*z^6 - 42*z^4 + 84*z^2 - 1)*x^3 + (-25*z^7 + 25*z^6 + 23*z^5 - 23*z^4 - 67*z^3 + 67*z^2 + 5*z - 5)*x^2 + (6*z^8 - 12*z^7 - 12*z^6 + 36*z^5 - 36*z^3 + 12*z^2 + 12*z - 6)*x + (-z^9 + 3*z^8 - 8*z^6 + 6*z^5 + 6*z^4 - 8*z^3 + 3*z - 1) */
    1443             : static const long X1_28_crv_0[12] = {
    1444             :   evaltyp(t_VECSMALL) | _evallg(12), vZ, -1, 3, 0, -8, 6, 6, -8, 0, 3, -1 }; /* -z^9 + 3*z^8 - 8*z^6 + 6*z^5 + 6*z^4 - 8*z^3 + 3*z - 1 */
    1445             : static const long X1_28_crv_1[11] = {
    1446             :   evaltyp(t_VECSMALL) | _evallg(11), vZ, -6, 12, 12, -36, 0, 36, -12, -12, 6 }; /* 6*z^8 - 12*z^7 - 12*z^6 + 36*z^5 - 36*z^3 + 12*z^2 + 12*z - 6 */
    1447             : static const long X1_28_crv_2[10] = {
    1448             :   evaltyp(t_VECSMALL) | _evallg(10), vZ, -5, 5, 67, -67, -23, 23, 25, -25 }; /* -25*z^7 + 25*z^6 + 23*z^5 - 23*z^4 - 67*z^3 + 67*z^2 + 5*z - 5 */
    1449             : static const long X1_28_crv_3[11] = {
    1450             :   evaltyp(t_VECSMALL) | _evallg(11), vZ, -1, 0, 84, 0, -42, 0, 28, 0, -5 }; /* -5*z^8 + 28*z^6 - 42*z^4 + 84*z^2 - 1 */
    1451             : static const long X1_28_crv_4[10] = {
    1452             :   evaltyp(t_VECSMALL) | _evallg(10), vZ, 0, 0, 45, 45, -6, -6, 9, 9 }; /* 9*z^7 + 9*z^6 - 6*z^5 - 6*z^4 + 45*z^3 + 45*z^2 */
    1453             : static const long X1_28_crv_5[11] = {
    1454             :   evaltyp(t_VECSMALL) | _evallg(11), vZ, 0, 0, 11, 22, 11, 0, 1, 2, 1 }; /* z^8 + 2*z^7 + z^6 + 11*z^4 + 22*z^3 + 11*z^2 */
    1455             : static const long X1_28_crv_6[8] = {
    1456             :   evaltyp(t_VECSMALL) | _evallg(8), vZ, 0, 0, 1, 3, 3, 1 }; /* z^5 + 3*z^4 + 3*z^3 + z^2 */
    1457             : static const long *X1_28_crv[9] = {
    1458             :   (long *)(evaltyp(t_POL) | _evallg(9)), (long *)(evalvarn(0) | evalsigne(1)),
    1459             :   X1_28_crv_0, X1_28_crv_1, X1_28_crv_2, X1_28_crv_3, X1_28_crv_4, X1_28_crv_5, X1_28_crv_6
    1460             : };
    1461             : /* (z + 1)*x + 2 */
    1462             : static const long X1_28_r_n_0[3] = {
    1463             :   evaltyp(t_VECSMALL) | _evallg(3), vZ, 2 }; /* 2 */
    1464             : static const long X1_28_r_n_1[4] = {
    1465             :   evaltyp(t_VECSMALL) | _evallg(4), vZ, 1, 1 }; /* z + 1 */
    1466             : static const long *X1_28_r_n[4] = {
    1467             :   (long *)(evaltyp(t_POL) | _evallg(4)), (long *)(evalvarn(0) | evalsigne(1)),
    1468             :   X1_28_r_n_0, X1_28_r_n_1
    1469             : };
    1470             : /* 2*z */
    1471             : static const long X1_28_r_d_0[4] = {
    1472             :   evaltyp(t_VECSMALL) | _evallg(4), vZ, 0, 2 }; /* 2*z */
    1473             : static const long *X1_28_r_d[3] = {
    1474             :   (long *)(evaltyp(t_POL) | _evallg(3)), (long *)(evalvarn(0) | evalsigne(1)),
    1475             :   X1_28_r_d_0
    1476             : };
    1477             : /* (-z - 1)*x - 2 */
    1478             : static const long X1_28_s_n_0[3] = {
    1479             :   evaltyp(t_VECSMALL) | _evallg(3), vZ, -2 }; /* -2 */
    1480             : static const long X1_28_s_n_1[4] = {
    1481             :   evaltyp(t_VECSMALL) | _evallg(4), vZ, -1, -1 }; /* -z - 1 */
    1482             : static const long *X1_28_s_n[4] = {
    1483             :   (long *)(evaltyp(t_POL) | _evallg(4)), (long *)(evalvarn(0) | evalsigne(1)),
    1484             :   X1_28_s_n_0, X1_28_s_n_1
    1485             : };
    1486             : /* 2 */
    1487             : static const long X1_28_s_d_0[3] = {
    1488             :   evaltyp(t_VECSMALL) | _evallg(3), vZ, 2 }; /* 2 */
    1489             : static const long *X1_28_s_d[3] = {
    1490             :   (long *)(evaltyp(t_POL) | _evallg(3)), (long *)(evalvarn(0) | evalsigne(1)),
    1491             :   X1_28_s_d_0
    1492             : };
    1493             : /* x^11 + (2*z^3 + 5*z^2 + 5*z - 3)*x^10 + (z^6 + 8*z^5 + 18*z^4 + 11*z^3 - 5*z^2 - 12*z + 3)*x^9 + (3*z^8 + 15*z^7 + 29*z^6 + 6*z^5 - 39*z^4 - 19*z^3 + 5*z^2 + 5*z - 1)*x^8 + (3*z^10 + 14*z^9 + 18*z^8 - 26*z^7 - 99*z^6 - 45*z^5 + 95*z^4 + 25*z^3 - 37*z^2 + 7*z)*x^7 + (z^12 + 5*z^11 - 44*z^9 - 106*z^8 - 40*z^7 + 197*z^6 + 190*z^5 - 140*z^4 - 93*z^3 + 59*z^2 - 6*z)*x^6 + (-2*z^12 - 16*z^11 - 37*z^10 + 9*z^9 + 184*z^8 + 256*z^7 - 99*z^6 - 346*z^5 + 20*z^4 + 130*z^3 - 32*z^2 + z)*x^5 + (z^12 + 15*z^11 + 65*z^10 + 99*z^9 - 55*z^8 - 320*z^7 - 165*z^6 + 223*z^5 + 100*z^4 - 66*z^3 + 5*z^2)*x^4 + (-4*z^11 - 36*z^10 - 108*z^9 - 98*z^8 + 110*z^7 + 191*z^6 - 15*z^5 - 64*z^4 + 10*z^3)*x^3 + (6*z^10 + 38*z^9 + 76*z^8 + 25*z^7 - 55*z^6 - 26*z^5 + 10*z^4)*x^2 + (-4*z^9 - 17*z^8 - 18*z^7 + 5*z^5)*x + (z^8 + 2*z^7 + z^6) */
    1494             : static const long X1_29_crv_0[11] = {
    1495             :   evaltyp(t_VECSMALL) | _evallg(11), vZ, 0, 0, 0, 0, 0, 0, 1, 2, 1 }; /* z^8 + 2*z^7 + z^6 */
    1496             : static const long X1_29_crv_1[12] = {
    1497             :   evaltyp(t_VECSMALL) | _evallg(12), vZ, 0, 0, 0, 0, 0, 5, 0, -18, -17, -4 }; /* -4*z^9 - 17*z^8 - 18*z^7 + 5*z^5 */
    1498             : static const long X1_29_crv_2[13] = {
    1499             :   evaltyp(t_VECSMALL) | _evallg(13), vZ, 0, 0, 0, 0, 10, -26, -55, 25, 76, 38, 6 }; /* 6*z^10 + 38*z^9 + 76*z^8 + 25*z^7 - 55*z^6 - 26*z^5 + 10*z^4 */
    1500             : static const long X1_29_crv_3[14] = {
    1501             :   evaltyp(t_VECSMALL) | _evallg(14), vZ, 0, 0, 0, 10, -64, -15, 191, 110, -98, -108, -36, -4 }; /* -4*z^11 - 36*z^10 - 108*z^9 - 98*z^8 + 110*z^7 + 191*z^6 - 15*z^5 - 64*z^4 + 10*z^3 */
    1502             : static const long X1_29_crv_4[15] = {
    1503             :   evaltyp(t_VECSMALL) | _evallg(15), vZ, 0, 0, 5, -66, 100, 223, -165, -320, -55, 99, 65, 15, 1 }; /* z^12 + 15*z^11 + 65*z^10 + 99*z^9 - 55*z^8 - 320*z^7 - 165*z^6 + 223*z^5 + 100*z^4 - 66*z^3 + 5*z^2 */
    1504             : static const long X1_29_crv_5[15] = {
    1505             :   evaltyp(t_VECSMALL) | _evallg(15), vZ, 0, 1, -32, 130, 20, -346, -99, 256, 184, 9, -37, -16, -2 }; /* -2*z^12 - 16*z^11 - 37*z^10 + 9*z^9 + 184*z^8 + 256*z^7 - 99*z^6 - 346*z^5 + 20*z^4 + 130*z^3 - 32*z^2 + z */
    1506             : static const long X1_29_crv_6[15] = {
    1507             :   evaltyp(t_VECSMALL) | _evallg(15), vZ, 0, -6, 59, -93, -140, 190, 197, -40, -106, -44, 0, 5, 1 }; /* z^12 + 5*z^11 - 44*z^9 - 106*z^8 - 40*z^7 + 197*z^6 + 190*z^5 - 140*z^4 - 93*z^3 + 59*z^2 - 6*z */
    1508             : static const long X1_29_crv_7[13] = {
    1509             :   evaltyp(t_VECSMALL) | _evallg(13), vZ, 0, 7, -37, 25, 95, -45, -99, -26, 18, 14, 3 }; /* 3*z^10 + 14*z^9 + 18*z^8 - 26*z^7 - 99*z^6 - 45*z^5 + 95*z^4 + 25*z^3 - 37*z^2 + 7*z */
    1510             : static const long X1_29_crv_8[11] = {
    1511             :   evaltyp(t_VECSMALL) | _evallg(11), vZ, -1, 5, 5, -19, -39, 6, 29, 15, 3 }; /* 3*z^8 + 15*z^7 + 29*z^6 + 6*z^5 - 39*z^4 - 19*z^3 + 5*z^2 + 5*z - 1 */
    1512             : static const long X1_29_crv_9[9] = {
    1513             :   evaltyp(t_VECSMALL) | _evallg(9), vZ, 3, -12, -5, 11, 18, 8, 1 }; /* z^6 + 8*z^5 + 18*z^4 + 11*z^3 - 5*z^2 - 12*z + 3 */
    1514             : static const long X1_29_crv_10[6] = {
    1515             :   evaltyp(t_VECSMALL) | _evallg(6), vZ, -3, 5, 5, 2 }; /* 2*z^3 + 5*z^2 + 5*z - 3 */
    1516             : static const long *X1_29_crv[14] = {
    1517             :   (long *)(evaltyp(t_POL) | _evallg(14)), (long *)(evalvarn(0) | evalsigne(1)),
    1518             :   X1_29_crv_0, X1_29_crv_1, X1_29_crv_2, X1_29_crv_3, X1_29_crv_4, X1_29_crv_5, X1_29_crv_6, X1_29_crv_7, X1_29_crv_8, X1_29_crv_9, X1_29_crv_10, FLX_1
    1519             : };
    1520             : /* -x + (-z^3 - z^2 - z) */
    1521             : static const long X1_29_r_n_0[6] = {
    1522             :   evaltyp(t_VECSMALL) | _evallg(6), vZ, 0, -1, -1, -1 }; /* -z^3 - z^2 - z */
    1523             : static const long *X1_29_r_n[4] = {
    1524             :   (long *)(evaltyp(t_POL) | _evallg(4)), (long *)(evalvarn(0) | evalsigne(1)),
    1525             :   X1_29_r_n_0, FLX_m1
    1526             : };
    1527             : /* (z^2 + z - 1)*x - z */
    1528             : static const long X1_29_r_d_1[5] = {
    1529             :   evaltyp(t_VECSMALL) | _evallg(5), vZ, -1, 1, 1 }; /* z^2 + z - 1 */
    1530             : static const long *X1_29_r_d[4] = {
    1531             :   (long *)(evaltyp(t_POL) | _evallg(4)), (long *)(evalvarn(0) | evalsigne(1)),
    1532             :   FLX_mZ, X1_29_r_d_1
    1533             : };
    1534             : /* -z*x - z^2 */
    1535             : static const long X1_29_s_n_0[5] = {
    1536             :   evaltyp(t_VECSMALL) | _evallg(5), vZ, 0, 0, -1 }; /* -z^2 */
    1537             : static const long *X1_29_s_n[4] = {
    1538             :   (long *)(evaltyp(t_POL) | _evallg(4)), (long *)(evalvarn(0) | evalsigne(1)),
    1539             :   X1_29_s_n_0, FLX_mZ
    1540             : };
    1541             : /* (z - 1)*x - z */
    1542             : static const long X1_29_s_d_1[4] = {
    1543             :   evaltyp(t_VECSMALL) | _evallg(4), vZ, -1, 1 }; /* z - 1 */
    1544             : static const long *X1_29_s_d[4] = {
    1545             :   (long *)(evaltyp(t_POL) | _evallg(4)), (long *)(evalvarn(0) | evalsigne(1)),
    1546             :   FLX_mZ, X1_29_s_d_1
    1547             : };
    1548             : /* x^6 + (z^6 - 5*z^5 + 6*z^4 + 3*z^3 - 6*z^2 + 7*z + 3)*x^5 + (z^7 - 3*z^6 - 13*z^5 + 44*z^4 - 18*z^3 + z^2 + 18*z + 3)*x^4 + (z^8 - 3*z^7 - 13*z^6 + 27*z^5 + 46*z^4 - 32*z^3 + 21*z^2 + 15*z + 1)*x^3 + (2*z^8 - 16*z^7 + 18*z^6 + 40*z^5 + 12*z^4 - 12*z^3 + 18*z^2 + 4*z)*x^2 + (-8*z^7 + 28*z^6 + 12*z^5 + 4*z^2)*x + 8*z^6 */
    1549             : static const long X1_30_crv_0[9] = {
    1550             :   evaltyp(t_VECSMALL) | _evallg(9), vZ, 0, 0, 0, 0, 0, 0, 8 }; /* 8*z^6 */
    1551             : static const long X1_30_crv_1[10] = {
    1552             :   evaltyp(t_VECSMALL) | _evallg(10), vZ, 0, 0, 4, 0, 0, 12, 28, -8 }; /* -8*z^7 + 28*z^6 + 12*z^5 + 4*z^2 */
    1553             : static const long X1_30_crv_2[11] = {
    1554             :   evaltyp(t_VECSMALL) | _evallg(11), vZ, 0, 4, 18, -12, 12, 40, 18, -16, 2 }; /* 2*z^8 - 16*z^7 + 18*z^6 + 40*z^5 + 12*z^4 - 12*z^3 + 18*z^2 + 4*z */
    1555             : static const long X1_30_crv_3[11] = {
    1556             :   evaltyp(t_VECSMALL) | _evallg(11), vZ, 1, 15, 21, -32, 46, 27, -13, -3, 1 }; /* z^8 - 3*z^7 - 13*z^6 + 27*z^5 + 46*z^4 - 32*z^3 + 21*z^2 + 15*z + 1 */
    1557             : static const long X1_30_crv_4[10] = {
    1558             :   evaltyp(t_VECSMALL) | _evallg(10), vZ, 3, 18, 1, -18, 44, -13, -3, 1 }; /* z^7 - 3*z^6 - 13*z^5 + 44*z^4 - 18*z^3 + z^2 + 18*z + 3 */
    1559             : static const long X1_30_crv_5[9] = {
    1560             :   evaltyp(t_VECSMALL) | _evallg(9), vZ, 3, 7, -6, 3, 6, -5, 1 }; /* z^6 - 5*z^5 + 6*z^4 + 3*z^3 - 6*z^2 + 7*z + 3 */
    1561             : static const long *X1_30_crv[9] = {
    1562             :   (long *)(evaltyp(t_POL) | _evallg(9)), (long *)(evalvarn(0) | evalsigne(1)),
    1563             :   X1_30_crv_0, X1_30_crv_1, X1_30_crv_2, X1_30_crv_3, X1_30_crv_4, X1_30_crv_5, FLX_1
    1564             : };
    1565             : /* x + 1 */
    1566             : static const long *X1_30_r_n[4] = {
    1567             :   (long *)(evaltyp(t_POL) | _evallg(4)), (long *)(evalvarn(0) | evalsigne(1)),
    1568             :   FLX_1, FLX_1
    1569             : };
    1570             : /* 1 */
    1571             : static const long *X1_30_r_d[3] = {
    1572             :   (long *)(evaltyp(t_POL) | _evallg(3)), (long *)(evalvarn(0) | evalsigne(1)),
    1573             :   FLX_1
    1574             : };
    1575             : /* 4*x^2 + (4*z + 4)*x + 4*z */
    1576             : static const long X1_30_s_n_0[4] = {
    1577             :   evaltyp(t_VECSMALL) | _evallg(4), vZ, 0, 4 }; /* 4*z */
    1578             : static const long X1_30_s_n_1[4] = {
    1579             :   evaltyp(t_VECSMALL) | _evallg(4), vZ, 4, 4 }; /* 4*z + 4 */
    1580             : static const long X1_30_s_n_2[3] = {
    1581             :   evaltyp(t_VECSMALL) | _evallg(3), vZ, 4 }; /* 4 */
    1582             : static const long *X1_30_s_n[5] = {
    1583             :   (long *)(evaltyp(t_POL) | _evallg(5)), (long *)(evalvarn(0) | evalsigne(1)),
    1584             :   X1_30_s_n_0, X1_30_s_n_1, X1_30_s_n_2
    1585             : };
    1586             : /* (z - 3)*x^3 - 6*x^2 + (-4*z - 4)*x - 4*z */
    1587             : static const long X1_30_s_d_0[4] = {
    1588             :   evaltyp(t_VECSMALL) | _evallg(4), vZ, 0, -4 }; /* -4*z */
    1589             : static const long X1_30_s_d_1[4] = {
    1590             :   evaltyp(t_VECSMALL) | _evallg(4), vZ, -4, -4 }; /* -4*z - 4 */
    1591             : static const long X1_30_s_d_2[3] = {
    1592             :   evaltyp(t_VECSMALL) | _evallg(3), vZ, -6 }; /* -6 */
    1593             : static const long X1_30_s_d_3[4] = {
    1594             :   evaltyp(t_VECSMALL) | _evallg(4), vZ, -3, 1 }; /* z - 3 */
    1595             : static const long *X1_30_s_d[6] = {
    1596             :   (long *)(evaltyp(t_POL) | _evallg(6)), (long *)(evalvarn(0) | evalsigne(1)),
    1597             :   X1_30_s_d_0, X1_30_s_d_1, X1_30_s_d_2, X1_30_s_d_3
    1598             : };
    1599             : /* u^12 + (z^10 - z^9 - 8*z^8 + 6*z^7 + 23*z^6 - 12*z^5 - 26*z^4 + 8*z^3 + 10*z^2 + 7*z - 3)*u^11 + (z^11 - 8*z^10 - 11*z^9 + 61*z^8 + 45*z^7 - 152*z^6 - 70*z^5 + 129*z^4 + 37*z^3 - 24*z + 3)*u^10 + (-8*z^11 + 17*z^10 + 105*z^9 - 93*z^8 - 387*z^7 + 145*z^6 + 453*z^5 - 57*z^4 - 91*z^3 - 73*z^2 + 31*z - 1)*u^9 + (-z^12 + 25*z^11 + 27*z^10 - 273*z^9 - 260*z^8 + 745*z^7 + 569*z^6 - 572*z^5 - 266*z^4 - 36*z^3 + 131*z^2 - 19*z)*u^8 + (5*z^12 - 32*z^11 - 162*z^10 + 193*z^9 + 911*z^8 - 147*z^7 - 1254*z^6 - 78*z^5 + 301*z^4 + 222*z^3 - 99*z^2 + 6*z)*u^7 + (-10*z^12 + 240*z^10 + 268*z^9 - 864*z^8 - 967*z^7 + 713*z^6 + 598*z^5 + 28*z^4 - 216*z^3 + 37*z^2 - z)*u^6 + (10*z^12 + 44*z^11 - 115*z^10 - 537*z^9 + 19*z^8 + 1033*z^7 + 242*z^6 - 351*z^5 - 200*z^4 + 91*z^3 - 6*z^2)*u^5 + (-5*z^12 - 47*z^11 - 52*z^10 + 293*z^9 + 448*z^8 - 266*z^7 - 390*z^6 - 17*z^5 + 112*z^4 - 15*z^3)*u^4 + (z^12 + 20*z^11 + 76*z^10 - z^9 - 247*z^8 - 119*z^7 + 103*z^6 + 68*z^5 - 20*z^4)*u^3 + (-3*z^11 - 27*z^10 - 49*z^9 + 25*z^8 + 67*z^7 + 13*z^6 - 15*z^5)*u^2 + (3*z^10 + 14*z^9 + 11*z^8 - 5*z^7 - 6*z^6)*u + (-z^9 - 2*z^8 - z^7) */
    1600             : static const long X1_31_crv_0[12] = {
    1601             :   evaltyp(t_VECSMALL) | _evallg(12), vZ, 0, 0, 0, 0, 0, 0, 0, -1, -2, -1 }; /* -z^9 - 2*z^8 - z^7 */
    1602             : static const long X1_31_crv_1[13] = {
    1603             :   evaltyp(t_VECSMALL) | _evallg(13), vZ, 0, 0, 0, 0, 0, 0, -6, -5, 11, 14, 3 }; /* 3*z^10 + 14*z^9 + 11*z^8 - 5*z^7 - 6*z^6 */
    1604             : static const long X1_31_crv_2[14] = {
    1605             :   evaltyp(t_VECSMALL) | _evallg(14), vZ, 0, 0, 0, 0, 0, -15, 13, 67, 25, -49, -27, -3 }; /* -3*z^11 - 27*z^10 - 49*z^9 + 25*z^8 + 67*z^7 + 13*z^6 - 15*z^5 */
    1606             : static const long X1_31_crv_3[15] = {
    1607             :   evaltyp(t_VECSMALL) | _evallg(15), vZ, 0, 0, 0, 0, -20, 68, 103, -119, -247, -1, 76, 20, 1 }; /* z^12 + 20*z^11 + 76*z^10 - z^9 - 247*z^8 - 119*z^7 + 103*z^6 + 68*z^5 - 20*z^4 */
    1608             : static const long X1_31_crv_4[15] = {
    1609             :   evaltyp(t_VECSMALL) | _evallg(15), vZ, 0, 0, 0, -15, 112, -17, -390, -266, 448, 293, -52, -47, -5 }; /* -5*z^12 - 47*z^11 - 52*z^10 + 293*z^9 + 448*z^8 - 266*z^7 - 390*z^6 - 17*z^5 + 112*z^4 - 15*z^3 */
    1610             : static const long X1_31_crv_5[15] = {
    1611             :   evaltyp(t_VECSMALL) | _evallg(15), vZ, 0, 0, -6, 91, -200, -351, 242, 1033, 19, -537, -115, 44, 10 }; /* 10*z^12 + 44*z^11 - 115*z^10 - 537*z^9 + 19*z^8 + 1033*z^7 + 242*z^6 - 351*z^5 - 200*z^4 + 91*z^3 - 6*z^2 */
    1612             : static const long X1_31_crv_6[15] = {
    1613             :   evaltyp(t_VECSMALL) | _evallg(15), vZ, 0, -1, 37, -216, 28, 598, 713, -967, -864, 268, 240, 0, -10 }; /* -10*z^12 + 240*z^10 + 268*z^9 - 864*z^8 - 967*z^7 + 713*z^6 + 598*z^5 + 28*z^4 - 216*z^3 + 37*z^2 - z */
    1614             : static const long X1_31_crv_7[15] = {
    1615             :   evaltyp(t_VECSMALL) | _evallg(15), vZ, 0, 6, -99, 222, 301, -78, -1254, -147, 911, 193, -162, -32, 5 }; /* 5*z^12 - 32*z^11 - 162*z^10 + 193*z^9 + 911*z^8 - 147*z^7 - 1254*z^6 - 78*z^5 + 301*z^4 + 222*z^3 - 99*z^2 + 6*z */
    1616             : static const long X1_31_crv_8[15] = {
    1617             :   evaltyp(t_VECSMALL) | _evallg(15), vZ, 0, -19, 131, -36, -266, -572, 569, 745, -260, -273, 27, 25, -1 }; /* -z^12 + 25*z^11 + 27*z^10 - 273*z^9 - 260*z^8 + 745*z^7 + 569*z^6 - 572*z^5 - 266*z^4 - 36*z^3 + 131*z^2 - 19*z */
    1618             : static const long X1_31_crv_9[14] = {
    1619             :   evaltyp(t_VECSMALL) | _evallg(14), vZ, -1, 31, -73, -91, -57, 453, 145, -387, -93, 105, 17, -8 }; /* -8*z^11 + 17*z^10 + 105*z^9 - 93*z^8 - 387*z^7 + 145*z^6 + 453*z^5 - 57*z^4 - 91*z^3 - 73*z^2 + 31*z - 1 */
    1620             : static const long X1_31_crv_10[14] = {
    1621             :   evaltyp(t_VECSMALL) | _evallg(14), vZ, 3, -24, 0, 37, 129, -70, -152, 45, 61, -11, -8, 1 }; /* z^11 - 8*z^10 - 11*z^9 + 61*z^8 + 45*z^7 - 152*z^6 - 70*z^5 + 129*z^4 + 37*z^3 - 24*z + 3 */
    1622             : static const long X1_31_crv_11[13] = {
    1623             :   evaltyp(t_VECSMALL) | _evallg(13), vZ, -3, 7, 10, 8, -26, -12, 23, 6, -8, -1, 1 }; /* z^10 - z^9 - 8*z^8 + 6*z^7 + 23*z^6 - 12*z^5 - 26*z^4 + 8*z^3 + 10*z^2 + 7*z - 3 */
    1624             : static const long *X1_31_crv[15] = {
    1625             :   (long *)(evaltyp(t_POL) | _evallg(15)), (long *)(evalvarn(0) | evalsigne(1)),
    1626             :   X1_31_crv_0, X1_31_crv_1, X1_31_crv_2, X1_31_crv_3, X1_31_crv_4, X1_31_crv_5, X1_31_crv_6, X1_31_crv_7, X1_31_crv_8, X1_31_crv_9, X1_31_crv_10, X1_31_crv_11, FLX_1
    1627             : };
    1628             : /* (-z^4 + 3*z^3 - 2*z^2 - z + 1)*u^7 + (-z^5 + 7*z^4 - 11*z^3 + 2*z^2 + 3*z)*u^6 + (5*z^5 - 18*z^4 + 12*z^3 + 3*z^2 - 1)*u^5 + (z^6 - 11*z^5 + 22*z^4 + z^3 - 6*z^2 - 4*z + 1)*u^4 + (-2*z^6 + 15*z^5 - 9*z^4 - 15*z^3 - 3*z^2 + 4*z)*u^3 + (3*z^6 - 11*z^5 - 10*z^4 + 4*z^3 + 6*z^2)*u^2 + (-3*z^6 + 6*z^4 + 4*z^3)*u + (z^6 + 2*z^5 + z^4) */
    1629             : static const long X1_31_r_n_0[9] = {
    1630             :   evaltyp(t_VECSMALL) | _evallg(9), vZ, 0, 0, 0, 0, 1, 2, 1 }; /* z^6 + 2*z^5 + z^4 */
    1631             : static const long X1_31_r_n_1[9] = {
    1632             :   evaltyp(t_VECSMALL) | _evallg(9), vZ, 0, 0, 0, 4, 6, 0, -3 }; /* -3*z^6 + 6*z^4 + 4*z^3 */
    1633             : static const long X1_31_r_n_2[9] = {
    1634             :   evaltyp(t_VECSMALL) | _evallg(9), vZ, 0, 0, 6, 4, -10, -11, 3 }; /* 3*z^6 - 11*z^5 - 10*z^4 + 4*z^3 + 6*z^2 */
    1635             : static const long X1_31_r_n_3[9] = {
    1636             :   evaltyp(t_VECSMALL) | _evallg(9), vZ, 0, 4, -3, -15, -9, 15, -2 }; /* -2*z^6 + 15*z^5 - 9*z^4 - 15*z^3 - 3*z^2 + 4*z */
    1637             : static const long X1_31_r_n_4[9] = {
    1638             :   evaltyp(t_VECSMALL) | _evallg(9), vZ, 1, -4, -6, 1, 22, -11, 1 }; /* z^6 - 11*z^5 + 22*z^4 + z^3 - 6*z^2 - 4*z + 1 */
    1639             : static const long X1_31_r_n_5[8] = {
    1640             :   evaltyp(t_VECSMALL) | _evallg(8), vZ, -1, 0, 3, 12, -18, 5 }; /* 5*z^5 - 18*z^4 + 12*z^3 + 3*z^2 - 1 */
    1641             : static const long X1_31_r_n_6[8] = {
    1642             :   evaltyp(t_VECSMALL) | _evallg(8), vZ, 0, 3, 2, -11, 7, -1 }; /* -z^5 + 7*z^4 - 11*z^3 + 2*z^2 + 3*z */
    1643             : static const long X1_31_r_n_7[7] = {
    1644             :   evaltyp(t_VECSMALL) | _evallg(7), vZ, 1, -1, -2, 3, -1 }; /* -z^4 + 3*z^3 - 2*z^2 - z + 1 */
    1645             : static const long *X1_31_r_n[10] = {
    1646             :   (long *)(evaltyp(t_POL) | _evallg(10)), (long *)(evalvarn(0) | evalsigne(1)),
    1647             :   X1_31_r_n_0, X1_31_r_n_1, X1_31_r_n_2, X1_31_r_n_3, X1_31_r_n_4, X1_31_r_n_5, X1_31_r_n_6, X1_31_r_n_7
    1648             : };
    1649             : /* (-z + 1)*u^6 + (-4*z^2 + 5*z - 1)*u^5 + (-z^6 - z^5 + 5*z^4 - z^3 + 6*z^2 - 7*z + 1)*u^4 + (3*z^6 + 10*z^5 - 6*z^4 - 8*z^3 - 10*z^2 + 5*z)*u^3 + (-z^6 - 14*z^5 - 10*z^4 + z^3 + 8*z^2)*u^2 + (-2*z^6 + 2*z^5 + 7*z^4 + 5*z^3)*u + (z^6 + 2*z^5 + z^4) */
    1650             : static const long X1_31_r_d_0[9] = {
    1651             :   evaltyp(t_VECSMALL) | _evallg(9), vZ, 0, 0, 0, 0, 1, 2, 1 }; /* z^6 + 2*z^5 + z^4 */
    1652             : static const long X1_31_r_d_1[9] = {
    1653             :   evaltyp(t_VECSMALL) | _evallg(9), vZ, 0, 0, 0, 5, 7, 2, -2 }; /* -2*z^6 + 2*z^5 + 7*z^4 + 5*z^3 */
    1654             : static const long X1_31_r_d_2[9] = {
    1655             :   evaltyp(t_VECSMALL) | _evallg(9), vZ, 0, 0, 8, 1, -10, -14, -1 }; /* -z^6 - 14*z^5 - 10*z^4 + z^3 + 8*z^2 */
    1656             : static const long X1_31_r_d_3[9] = {
    1657             :   evaltyp(t_VECSMALL) | _evallg(9), vZ, 0, 5, -10, -8, -6, 10, 3 }; /* 3*z^6 + 10*z^5 - 6*z^4 - 8*z^3 - 10*z^2 + 5*z */
    1658             : static const long X1_31_r_d_4[9] = {
    1659             :   evaltyp(t_VECSMALL) | _evallg(9), vZ, 1, -7, 6, -1, 5, -1, -1 }; /* -z^6 - z^5 + 5*z^4 - z^3 + 6*z^2 - 7*z + 1 */
    1660             : static const long X1_31_r_d_5[5] = {
    1661             :   evaltyp(t_VECSMALL) | _evallg(5), vZ, -1, 5, -4 }; /* -4*z^2 + 5*z - 1 */
    1662             : static const long X1_31_r_d_6[4] = {
    1663             :   evaltyp(t_VECSMALL) | _evallg(4), vZ, 1, -1 }; /* -z + 1 */
    1664             : static const long *X1_31_r_d[9] = {
    1665             :   (long *)(evaltyp(t_POL) | _evallg(9)), (long *)(evalvarn(0) | evalsigne(1)),
    1666             :   X1_31_r_d_0, X1_31_r_d_1, X1_31_r_d_2, X1_31_r_d_3, X1_31_r_d_4, X1_31_r_d_5, X1_31_r_d_6
    1667             : };
    1668             : /* (-z^3 + 3*z^2 - z - 2)*u^6 + (-z^4 + 7*z^3 - 8*z^2 - 3*z + 1)*u^5 + (5*z^4 - 15*z^3 + 2*z^2 + 5*z + 1)*u^4 + (z^5 - 11*z^4 + 9*z^3 + 9*z^2 - z - 1)*u^3 + (-3*z^5 + 8*z^4 + 6*z^3 - 4*z^2 - 2*z)*u^2 + (3*z^5 + z^4 - 4*z^3 - 2*z^2)*u + (-z^5 - 2*z^4 - z^3) */
    1669             : static const long X1_31_s_n_0[8] = {
    1670             :   evaltyp(t_VECSMALL) | _evallg(8), vZ, 0, 0, 0, -1, -2, -1 }; /* -z^5 - 2*z^4 - z^3 */
    1671             : static const long X1_31_s_n_1[8] = {
    1672             :   evaltyp(t_VECSMALL) | _evallg(8), vZ, 0, 0, -2, -4, 1, 3 }; /* 3*z^5 + z^4 - 4*z^3 - 2*z^2 */
    1673             : static const long X1_31_s_n_2[8] = {
    1674             :   evaltyp(t_VECSMALL) | _evallg(8), vZ, 0, -2, -4, 6, 8, -3 }; /* -3*z^5 + 8*z^4 + 6*z^3 - 4*z^2 - 2*z */
    1675             : static const long X1_31_s_n_3[8] = {
    1676             :   evaltyp(t_VECSMALL) | _evallg(8), vZ, -1, -1, 9, 9, -11, 1 }; /* z^5 - 11*z^4 + 9*z^3 + 9*z^2 - z - 1 */
    1677             : static const long X1_31_s_n_4[7] = {
    1678             :   evaltyp(t_VECSMALL) | _evallg(7), vZ, 1, 5, 2, -15, 5 }; /* 5*z^4 - 15*z^3 + 2*z^2 + 5*z + 1 */
    1679             : static const long X1_31_s_n_5[7] = {
    1680             :   evaltyp(t_VECSMALL) | _evallg(7), vZ, 1, -3, -8, 7, -1 }; /* -z^4 + 7*z^3 - 8*z^2 - 3*z + 1 */
    1681             : static const long X1_31_s_n_6[6] = {
    1682             :   evaltyp(t_VECSMALL) | _evallg(6), vZ, -2, -1, 3, -1 }; /* -z^3 + 3*z^2 - z - 2 */
    1683             : static const long *X1_31_s_n[9] = {
    1684             :   (long *)(evaltyp(t_POL) | _evallg(9)), (long *)(evalvarn(0) | evalsigne(1)),
    1685             :   X1_31_s_n_0, X1_31_s_n_1, X1_31_s_n_2, X1_31_s_n_3, X1_31_s_n_4, X1_31_s_n_5, X1_31_s_n_6
    1686             : };
    1687             : /* (z^2 - z - 1)*u^6 + (2*z^3 - 4*z^2 - z)*u^5 + (z^4 - 6*z^3 + 3*z^2 + z + 1)*u^4 + (-z^5 - 7*z^4 + 5*z^3 + 4*z^2 + 2*z - 1)*u^3 + (10*z^4 + 7*z^3 - z^2 - 3*z)*u^2 + (2*z^5 - z^4 - 5*z^3 - 3*z^2)*u + (-z^5 - 2*z^4 - z^3) */
    1688             : static const long X1_31_s_d_0[8] = {
    1689             :   evaltyp(t_VECSMALL) | _evallg(8), vZ, 0, 0, 0, -1, -2, -1 }; /* -z^5 - 2*z^4 - z^3 */
    1690             : static const long X1_31_s_d_1[8] = {
    1691             :   evaltyp(t_VECSMALL) | _evallg(8), vZ, 0, 0, -3, -5, -1, 2 }; /* 2*z^5 - z^4 - 5*z^3 - 3*z^2 */
    1692             : static const long X1_31_s_d_2[7] = {
    1693             :   evaltyp(t_VECSMALL) | _evallg(7), vZ, 0, -3, -1, 7, 10 }; /* 10*z^4 + 7*z^3 - z^2 - 3*z */
    1694             : static const long X1_31_s_d_3[8] = {
    1695             :   evaltyp(t_VECSMALL) | _evallg(8), vZ, -1, 2, 4, 5, -7, -1 }; /* -z^5 - 7*z^4 + 5*z^3 + 4*z^2 + 2*z - 1 */
    1696             : static const long X1_31_s_d_4[7] = {
    1697             :   evaltyp(t_VECSMALL) | _evallg(7), vZ, 1, 1, 3, -6, 1 }; /* z^4 - 6*z^3 + 3*z^2 + z + 1 */
    1698             : static const long X1_31_s_d_5[6] = {
    1699             :   evaltyp(t_VECSMALL) | _evallg(6), vZ, 0, -1, -4, 2 }; /* 2*z^3 - 4*z^2 - z */
    1700             : static const long X1_31_s_d_6[5] = {
    1701             :   evaltyp(t_VECSMALL) | _evallg(5), vZ, -1, -1, 1 }; /* z^2 - z - 1 */
    1702             : static const long *X1_31_s_d[9] = {
    1703             :   (long *)(evaltyp(t_POL) | _evallg(9)), (long *)(evalvarn(0) | evalsigne(1)),
    1704             :   X1_31_s_d_0, X1_31_s_d_1, X1_31_s_d_2, X1_31_s_d_3, X1_31_s_d_4, X1_31_s_d_5, X1_31_s_d_6
    1705             : };
    1706             : /* (z^8 - 4*z^7 + 6*z^6 - 4*z^5 + z^4)*x^8 + (16*z^8 - 48*z^7 + 48*z^6 - 16*z^5)*x^7 + (z^11 - 2*z^10 + z^9 + 104*z^8 - 208*z^7 + 96*z^6 + 16*z^5 - 8*z^4 - z^3 + 2*z^2 - z)*x^6 + (12*z^11 - 12*z^10 + 352*z^8 - 352*z^7 - 96*z^6 + 96*z^5 - 12*z^3 + 12*z^2)*x^5 + (54*z^11 - 6*z^9 + 664*z^8 - 432*z^6 + 24*z^4 - 54*z^3 + 6*z)*x^4 + (112*z^11 + 112*z^10 + 64*z^9 + 768*z^8 + 768*z^7 - 128*z^6 - 128*z^5 + 64*z^4 - 48*z^3 - 48*z^2)*x^3 + (106*z^11 + 212*z^10 + 198*z^9 + 600*z^8 + 1020*z^7 + 576*z^6 + 132*z^5 + 168*z^4 + 90*z^3 - 20*z^2 - 10*z)*x^2 + (40*z^11 + 120*z^10 + 144*z^9 + 240*z^8 + 480*z^7 + 480*z^6 + 240*z^5 + 144*z^4 + 120*z^3 + 40*z^2)*x + (-z^12 + 6*z^10 - 15*z^8 + 20*z^6 - 15*z^4 + 6*z^2 - 1) */
    1707             : static const long X1_32_crv_0[15] = {
    1708             :   evaltyp(t_VECSMALL) | _evallg(15), vZ, -1, 0, 6, 0, -15, 0, 20, 0, -15, 0, 6, 0, -1 }; /* -z^12 + 6*z^10 - 15*z^8 + 20*z^6 - 15*z^4 + 6*z^2 - 1 */
    1709             : static const long X1_32_crv_1[14] = {
    1710             :   evaltyp(t_VECSMALL) | _evallg(14), vZ, 0, 0, 40, 120, 144, 240, 480, 480, 240, 144, 120, 40 }; /* 40*z^11 + 120*z^10 + 144*z^9 + 240*z^8 + 480*z^7 + 480*z^6 + 240*z^5 + 144*z^4 + 120*z^3 + 40*z^2 */
    1711             : static const long X1_32_crv_2[14] = {
    1712             :   evaltyp(t_VECSMALL) | _evallg(14), vZ, 0, -10, -20, 90, 168, 132, 576, 1020, 600, 198, 212, 106 }; /* 106*z^11 + 212*z^10 + 198*z^9 + 600*z^8 + 1020*z^7 + 576*z^6 + 132*z^5 + 168*z^4 + 90*z^3 - 20*z^2 - 10*z */
    1713             : static const long X1_32_crv_3[14] = {
    1714             :   evaltyp(t_VECSMALL) | _evallg(14), vZ, 0, 0, -48, -48, 64, -128, -128, 768, 768, 64, 112, 112 }; /* 112*z^11 + 112*z^10 + 64*z^9 + 768*z^8 + 768*z^7 - 128*z^6 - 128*z^5 + 64*z^4 - 48*z^3 - 48*z^2 */
    1715             : static const long X1_32_crv_4[14] = {
    1716             :   evaltyp(t_VECSMALL) | _evallg(14), vZ, 0, 6, 0, -54, 24, 0, -432, 0, 664, -6, 0, 54 }; /* 54*z^11 - 6*z^9 + 664*z^8 - 432*z^6 + 24*z^4 - 54*z^3 + 6*z */
    1717             : static const long X1_32_crv_5[14] = {
    1718             :   evaltyp(t_VECSMALL) | _evallg(14), vZ, 0, 0, 12, -12, 0, 96, -96, -352, 352, 0, -12, 12 }; /* 12*z^11 - 12*z^10 + 352*z^8 - 352*z^7 - 96*z^6 + 96*z^5 - 12*z^3 + 12*z^2 */
    1719             : static const long X1_32_crv_6[14] = {
    1720             :   evaltyp(t_VECSMALL) | _evallg(14), vZ, 0, -1, 2, -1, -8, 16, 96, -208, 104, 1, -2, 1 }; /* z^11 - 2*z^10 + z^9 + 104*z^8 - 208*z^7 + 96*z^6 + 16*z^5 - 8*z^4 - z^3 + 2*z^2 - z */
    1721             : static const long X1_32_crv_7[11] = {
    1722             :   evaltyp(t_VECSMALL) | _evallg(11), vZ, 0, 0, 0, 0, 0, -16, 48, -48, 16 }; /* 16*z^8 - 48*z^7 + 48*z^6 - 16*z^5 */
    1723             : static const long X1_32_crv_8[11] = {
    1724             :   evaltyp(t_VECSMALL) | _evallg(11), vZ, 0, 0, 0, 0, 1, -4, 6, -4, 1 }; /* z^8 - 4*z^7 + 6*z^6 - 4*z^5 + z^4 */
    1725             : static const long *X1_32_crv[11] = {
    1726             :   (long *)(evaltyp(t_POL) | _evallg(11)), (long *)(evalvarn(0) | evalsigne(1)),
    1727             :   X1_32_crv_0, X1_32_crv_1, X1_32_crv_2, X1_32_crv_3, X1_32_crv_4, X1_32_crv_5, X1_32_crv_6, X1_32_crv_7, X1_32_crv_8
    1728             : };
    1729             : /* (z - 1)*x + 2*z */
    1730             : static const long X1_32_r_n_0[4] = {
    1731             :   evaltyp(t_VECSMALL) | _evallg(4), vZ, 0, 2 }; /* 2*z */
    1732             : static const long X1_32_r_n_1[4] = {
    1733             :   evaltyp(t_VECSMALL) | _evallg(4), vZ, -1, 1 }; /* z - 1 */
    1734             : static const long *X1_32_r_n[4] = {
    1735             :   (long *)(evaltyp(t_POL) | _evallg(4)), (long *)(evalvarn(0) | evalsigne(1)),
    1736             :   X1_32_r_n_0, X1_32_r_n_1
    1737             : };
    1738             : /* 2 */
    1739             : static const long X1_32_r_d_0[3] = {
    1740             :   evaltyp(t_VECSMALL) | _evallg(3), vZ, 2 }; /* 2 */
    1741             : static const long *X1_32_r_d[3] = {
    1742             :   (long *)(evaltyp(t_POL) | _evallg(3)), (long *)(evalvarn(0) | evalsigne(1)),
    1743             :   X1_32_r_d_0
    1744             : };
    1745             : /* (-z + 1)*x - 2*z */
    1746             : static const long X1_32_s_n_0[4] = {
    1747             :   evaltyp(t_VECSMALL) | _evallg(4), vZ, 0, -2 }; /* -2*z */
    1748             : static const long X1_32_s_n_1[4] = {
    1749             :   evaltyp(t_VECSMALL) | _evallg(4), vZ, 1, -1 }; /* -z + 1 */
    1750             : static const long *X1_32_s_n[4] = {
    1751             :   (long *)(evaltyp(t_POL) | _evallg(4)), (long *)(evalvarn(0) | evalsigne(1)),
    1752             :   X1_32_s_n_0, X1_32_s_n_1
    1753             : };
    1754             : /* 2*z */
    1755             : static const long X1_32_s_d_0[4] = {
    1756             :   evaltyp(t_VECSMALL) | _evallg(4), vZ, 0, 2 }; /* 2*z */
    1757             : static const long *X1_32_s_d[3] = {
    1758             :   (long *)(evaltyp(t_POL) | _evallg(3)), (long *)(evalvarn(0) | evalsigne(1)),
    1759             :   X1_32_s_d_0
    1760             : };
    1761             : /* z^8*x^10 + (-z^17 - 2*z^16 - 4*z^15 - 6*z^14 - 9*z^13 - 12*z^12 - 16*z^11 - 20*z^10 - 25*z^9 - 18*z^8)*x^9 + (-3*z^17 - 15*z^16 - 24*z^15 - 28*z^14 - 16*z^13 + 6*z^12 + 32*z^11 + 32*z^10 - 33*z^9 - 155*z^8 - 188*z^7 - 108*z^6 - 58*z^5 - 28*z^4 - 12*z^3 - 4*z^2 - z)*x^8 + (-6*z^17 - 48*z^16 - 144*z^15 - 226*z^14 - 225*z^13 - 39*z^12 + 402*z^11 + 1116*z^10 + 1854*z^9 + 2071*z^8 + 1536*z^7 + 852*z^6 + 476*z^5 + 249*z^4 + 114*z^3 + 40*z^2 + 9*z)*x^7 + (-10*z^17 - 110*z^16 - 520*z^15 - 1464*z^14 - 3006*z^13 - 5160*z^12 - 7660*z^11 - 9656*z^10 - 9778*z^9 - 7536*z^8 - 4500*z^7 - 2580*z^6 - 1696*z^5 - 1028*z^4 - 508*z^3 - 180*z^2 - 36*z)*x^6 + (z^20 + 10*z^19 + 60*z^18 + 255*z^17 + 795*z^16 + 1872*z^15 + 3576*z^14 + 6042*z^13 + 9198*z^12 + 11872*z^11 + 12028*z^10 + 8886*z^9 + 4847*z^8 + 3188*z^7 + 3762*z^6 + 3917*z^5 + 2801*z^4 + 1422*z^3 + 480*z^2 + 84*z)*x^5 + (10*z^17 + 60*z^16 + 120*z^15 - 64*z^14 - 690*z^13 - 1026*z^12 + 392*z^11 + 3456*z^10 + 4980*z^9 + 1576*z^8 - 5292*z^7 - 10032*z^6 - 9630*z^5 - 6174*z^4 - 2808*z^3 - 840*z^2 - 126*z)*x^4 + (6*z^17 + 54*z^16 + 192*z^15 + 254*z^14 - 419*z^13 - 2392*z^12 - 4432*z^11 - 3020*z^10 + 4499*z^9 + 15607*z^8 + 23336*z^7 + 22966*z^6 + 16391*z^5 + 8779*z^4 + 3458*z^3 + 896*z^2 + 112*z - 1)*x^3 + (3*z^17 + 36*z^16 + 192*z^15 + 572*z^14 + 884*z^13 - 150*z^12 - 4536*z^11 - 13080*z^10 - 23253*z^9 - 29900*z^8 - 29288*z^7 - 22380*z^6 - 13480*z^5 - 6328*z^4 - 2184*z^3 - 476*z^2 - 41*z + 3)*x^2 + (z^17 + 15*z^16 + 108*z^15 + 494*z^14 + 1605*z^13 + 3927*z^12 + 7490*z^11 + 11376*z^10 + 13938*z^9 + 13882*z^8 + 11292*z^7 + 7506*z^6 + 4025*z^5 + 1659*z^4 + 462*z^3 + 56*z^2 - 9*z - 3)*x + (z^8 + 8*z^7 + 28*z^6 + 56*z^5 + 70*z^4 + 56*z^3 + 28*z^2 + 8*z + 1) */
    1762             : static const long X1_33_crv_0[11] = {
    1763             :   evaltyp(t_VECSMALL) | _evallg(11), vZ, 1, 8, 28, 56, 70, 56, 28, 8, 1 }; /* z^8 + 8*z^7 + 28*z^6 + 56*z^5 + 70*z^4 + 56*z^3 + 28*z^2 + 8*z + 1 */
    1764             : static const long X1_33_crv_1[20] = {
    1765             :   evaltyp(t_VECSMALL) | _evallg(20), vZ, -3, -9, 56, 462, 1659, 4025, 7506, 11292, 13882, 13938, 11376, 7490, 3927, 1605, 494, 108, 15, 1 }; /* z^17 + 15*z^16 + 108*z^15 + 494*z^14 + 1605*z^13 + 3927*z^12 + 7490*z^11 + 11376*z^10 + 13938*z^9 + 13882*z^8 + 11292*z^7 + 7506*z^6 + 4025*z^5 + 1659*z^4 + 462*z^3 + 56*z^2 - 9*z - 3 */
    1766             : static const long X1_33_crv_2[20] = {
    1767             :   evaltyp(t_VECSMALL) | _evallg(20), vZ, 3, -41, -476, -2184, -6328, -13480, -22380, -29288, -29900, -23253, -13080, -4536, -150, 884, 572, 192, 36, 3 }; /* 3*z^17 + 36*z^16 + 192*z^15 + 572*z^14 + 884*z^13 - 150*z^12 - 4536*z^11 - 13080*z^10 - 23253*z^9 - 29900*z^8 - 29288*z^7 - 22380*z^6 - 13480*z^5 - 6328*z^4 - 2184*z^3 - 476*z^2 - 41*z + 3 */
    1768             : static const long X1_33_crv_3[20] = {
    1769             :   evaltyp(t_VECSMALL) | _evallg(20), vZ, -1, 112, 896, 3458, 8779, 16391, 22966, 23336, 15607, 4499, -3020, -4432, -2392, -419, 254, 192, 54, 6 }; /* 6*z^17 + 54*z^16 + 192*z^15 + 254*z^14 - 419*z^13 - 2392*z^12 - 4432*z^11 - 3020*z^10 + 4499*z^9 + 15607*z^8 + 23336*z^7 + 22966*z^6 + 16391*z^5 + 8779*z^4 + 3458*z^3 + 896*z^2 + 112*z - 1 */
    1770             : static const long X1_33_crv_4[20] = {
    1771             :   evaltyp(t_VECSMALL) | _evallg(20), vZ, 0, -126, -840, -2808, -6174, -9630, -10032, -5292, 1576, 4980, 3456, 392, -1026, -690, -64, 120, 60, 10 }; /* 10*z^17 + 60*z^16 + 120*z^15 - 64*z^14 - 690*z^13 - 1026*z^12 + 392*z^11 + 3456*z^10 + 4980*z^9 + 1576*z^8 - 5292*z^7 - 10032*z^6 - 9630*z^5 - 6174*z^4 - 2808*z^3 - 840*z^2 - 126*z */
    1772             : static const long X1_33_crv_5[23] = {
    1773             :   evaltyp(t_VECSMALL) | _evallg(23), vZ, 0, 84, 480, 1422, 2801, 3917, 3762, 3188, 4847, 8886, 12028, 11872, 9198, 6042, 3576, 1872, 795, 255, 60, 10, 1 }; /* z^20 + 10*z^19 + 60*z^18 + 255*z^17 + 795*z^16 + 1872*z^15 + 3576*z^14 + 6042*z^13 + 9198*z^12 + 11872*z^11 + 12028*z^10 + 8886*z^9 + 4847*z^8 + 3188*z^7 + 3762*z^6 + 3917*z^5 + 2801*z^4 + 1422*z^3 + 480*z^2 + 84*z */
    1774             : static const long X1_33_crv_6[20] = {
    1775             :   evaltyp(t_VECSMALL) | _evallg(20), vZ, 0, -36, -180, -508, -1028, -1696, -2580, -4500, -7536, -9778, -9656, -7660, -5160, -3006, -1464, -520, -110, -10 }; /* -10*z^17 - 110*z^16 - 520*z^15 - 1464*z^14 - 3006*z^13 - 5160*z^12 - 7660*z^11 - 9656*z^10 - 9778*z^9 - 7536*z^8 - 4500*z^7 - 2580*z^6 - 1696*z^5 - 1028*z^4 - 508*z^3 - 180*z^2 - 36*z */
    1776             : static const long X1_33_crv_7[20] = {
    1777             :   evaltyp(t_VECSMALL) | _evallg(20), vZ, 0, 9, 40, 114, 249, 476, 852, 1536, 2071, 1854, 1116, 402, -39, -225, -226, -144, -48, -6 }; /* -6*z^17 - 48*z^16 - 144*z^15 - 226*z^14 - 225*z^13 - 39*z^12 + 402*z^11 + 1116*z^10 + 1854*z^9 + 2071*z^8 + 1536*z^7 + 852*z^6 + 476*z^5 + 249*z^4 + 114*z^3 + 40*z^2 + 9*z */
    1778             : static const long X1_33_crv_8[20] = {
    1779             :   evaltyp(t_VECSMALL) | _evallg(20), vZ, 0, -1, -4, -12, -28, -58, -108, -188, -155, -33, 32, 32, 6, -16, -28, -24, -15, -3 }; /* -3*z^17 - 15*z^16 - 24*z^15 - 28*z^14 - 16*z^13 + 6*z^12 + 32*z^11 + 32*z^10 - 33*z^9 - 155*z^8 - 188*z^7 - 108*z^6 - 58*z^5 - 28*z^4 - 12*z^3 - 4*z^2 - z */
    1780             : static const long X1_33_crv_9[20] = {
    1781             :   evaltyp(t_VECSMALL) | _evallg(20), vZ, 0, 0, 0, 0, 0, 0, 0, 0, -18, -25, -20, -16, -12, -9, -6, -4, -2, -1 }; /* -z^17 - 2*z^16 - 4*z^15 - 6*z^14 - 9*z^13 - 12*z^12 - 16*z^11 - 20*z^10 - 25*z^9 - 18*z^8 */
    1782             : static const long X1_33_crv_10[11] = {
    1783             :   evaltyp(t_VECSMALL) | _evallg(11), vZ, 0, 0, 0, 0, 0, 0, 0, 0, 1 }; /* z^8 */
    1784             : static const long *X1_33_crv[13] = {
    1785             :   (long *)(evaltyp(t_POL) | _evallg(13)), (long *)(evalvarn(0) | evalsigne(1)),
    1786             :   X1_33_crv_0, X1_33_crv_1, X1_33_crv_2, X1_33_crv_3, X1_33_crv_4, X1_33_crv_5, X1_33_crv_6, X1_33_crv_7, X1_33_crv_8, X1_33_crv_9, X1_33_crv_10
    1787             : };
    1788             : /* (z + 1) */
    1789             : static const long X1_33_r_n_0[4] = {
    1790             :   evaltyp(t_VECSMALL) | _evallg(4), vZ, 1, 1 }; /* z + 1 */
    1791             : static const long *X1_33_r_n[3] = {
    1792             :   (long *)(evaltyp(t_POL) | _evallg(3)), (long *)(evalvarn(0) | evalsigne(1)),
    1793             :   X1_33_r_n_0
    1794             : };
    1795             : /* z */
    1796             : static const long *X1_33_r_d[3] = {
    1797             :   (long *)(evaltyp(t_POL) | _evallg(3)), (long *)(evalvarn(0) | evalsigne(1)),
    1798             :   FLX_Z
    1799             : };
    1800             : /* 1 */
    1801             : static const long *X1_33_s_n[3] = {
    1802             :   (long *)(evaltyp(t_POL) | _evallg(3)), (long *)(evalvarn(0) | evalsigne(1)),
    1803             :   FLX_1
    1804             : };
    1805             : /* (-z - 1)*x + (z + 1) */
    1806             : static const long X1_33_s_d_0[4] = {
    1807             :   evaltyp(t_VECSMALL) | _evallg(4), vZ, 1, 1 }; /* z + 1 */
    1808             : static const long X1_33_s_d_1[4] = {
    1809             :   evaltyp(t_VECSMALL) | _evallg(4), vZ, -1, -1 }; /* -z - 1 */
    1810             : static const long *X1_33_s_d[4] = {
    1811             :   (long *)(evaltyp(t_POL) | _evallg(4)), (long *)(evalvarn(0) | evalsigne(1)),
    1812             :   X1_33_s_d_0, X1_33_s_d_1
    1813             : };
    1814             : /* u^10 + (z^5 - z^2 - 4*z + 4)*u^9 + (8*z^5 - z^4 - 5*z^3 + z^2 - 12*z + 6)*u^8 + (5*z^7 - 2*z^6 + 16*z^5 - z^4 - 20*z^3 + 9*z^2 - 11*z + 4)*u^7 + (-z^8 + 24*z^7 + 2*z^6 + 7*z^5 - 36*z^3 + 8*z^2 + 1)*u^6 + (z^10 + z^9 - 7*z^8 + 40*z^7 + 26*z^6 + 2*z^5 + 8*z^4 - 29*z^3 - 3*z^2 + 5*z)*u^5 + (2*z^10 + 4*z^9 - 5*z^8 + 35*z^7 + 37*z^6 + 5*z^5 + 12*z^4 - 6*z^3 - 5*z^2 + 2*z)*u^4 + (z^10 + 4*z^9 + 7*z^8 + 28*z^7 + 29*z^6 + 7*z^5 + 5*z^4 + 3*z^3)*u^3 + (2*z^9 + 10*z^8 + 16*z^7 + 10*z^6 + 2*z^5 - z^4 + z^2)*u^2 + (z^9 + 5*z^8 + 5*z^7 - z^5 - z^4 - z^3)*u + (-z^7 - 2*z^6 - z^5) */
    1815             : static const long X1_34_crv_0[10] = {
    1816             :   evaltyp(t_VECSMALL) | _evallg(10), vZ, 0, 0, 0, 0, 0, -1, -2, -1 }; /* -z^7 - 2*z^6 - z^5 */
    1817             : static const long X1_34_crv_1[12] = {
    1818             :   evaltyp(t_VECSMALL) | _evallg(12), vZ, 0, 0, 0, -1, -1, -1, 0, 5, 5, 1 }; /* z^9 + 5*z^8 + 5*z^7 - z^5 - z^4 - z^3 */
    1819             : static const long X1_34_crv_2[12] = {
    1820             :   evaltyp(t_VECSMALL) | _evallg(12), vZ, 0, 0, 1, 0, -1, 2, 10, 16, 10, 2 }; /* 2*z^9 + 10*z^8 + 16*z^7 + 10*z^6 + 2*z^5 - z^4 + z^2 */
    1821             : static const long X1_34_crv_3[13] = {
    1822             :   evaltyp(t_VECSMALL) | _evallg(13), vZ, 0, 0, 0, 3, 5, 7, 29, 28, 7, 4, 1 }; /* z^10 + 4*z^9 + 7*z^8 + 28*z^7 + 29*z^6 + 7*z^5 + 5*z^4 + 3*z^3 */
    1823             : static const long X1_34_crv_4[13] = {
    1824             :   evaltyp(t_VECSMALL) | _evallg(13), vZ, 0, 2, -5, -6, 12, 5, 37, 35, -5, 4, 2 }; /* 2*z^10 + 4*z^9 - 5*z^8 + 35*z^7 + 37*z^6 + 5*z^5 + 12*z^4 - 6*z^3 - 5*z^2 + 2*z */
    1825             : static const long X1_34_crv_5[13] = {
    1826             :   evaltyp(t_VECSMALL) | _evallg(13), vZ, 0, 5, -3, -29, 8, 2, 26, 40, -7, 1, 1 }; /* z^10 + z^9 - 7*z^8 + 40*z^7 + 26*z^6 + 2*z^5 + 8*z^4 - 29*z^3 - 3*z^2 + 5*z */
    1827             : static const long X1_34_crv_6[11] = {
    1828             :   evaltyp(t_VECSMALL) | _evallg(11), vZ, 1, 0, 8, -36, 0, 7, 2, 24, -1 }; /* -z^8 + 24*z^7 + 2*z^6 + 7*z^5 - 36*z^3 + 8*z^2 + 1 */
    1829             : static const long X1_34_crv_7[10] = {
    1830             :   evaltyp(t_VECSMALL) | _evallg(10), vZ, 4, -11, 9, -20, -1, 16, -2, 5 }; /* 5*z^7 - 2*z^6 + 16*z^5 - z^4 - 20*z^3 + 9*z^2 - 11*z + 4 */
    1831             : static const long X1_34_crv_8[8] = {
    1832             :   evaltyp(t_VECSMALL) | _evallg(8), vZ, 6, -12, 1, -5, -1, 8 }; /* 8*z^5 - z^4 - 5*z^3 + z^2 - 12*z + 6 */
    1833             : static const long X1_34_crv_9[8] = {
    1834             :   evaltyp(t_VECSMALL) | _evallg(8), vZ, 4, -4, -1, 0, 0, 1 }; /* z^5 - z^2 - 4*z + 4 */
    1835             : static const long *X1_34_crv[13] = {
    1836             :   (long *)(evaltyp(t_POL) | _evallg(13)), (long *)(evalvarn(0) | evalsigne(1)),
    1837             :   X1_34_crv_0, X1_34_crv_1, X1_34_crv_2, X1_34_crv_3, X1_34_crv_4, X1_34_crv_5, X1_34_crv_6, X1_34_crv_7, X1_34_crv_8, X1_34_crv_9, FLX_1
    1838             : };
    1839             : /* u^8 + (-z^2 - 3*z + 3)*u^7 + (-z^3 + 3*z^2 - 5*z + 3)*u^6 + (-3*z^4 - 11*z^3 + 7*z^2 - 2*z + 1)*u^5 + (2*z^5 + 2*z^4 - 15*z^3 + z^2 - z)*u^4 + (-2*z^6 + 5*z^4 - 7*z^3 - 3*z^2 - 2*z)*u^3 + (z^7 + 2*z^4 - z)*u^2 + (z^5 + z^4 + z^3 + z^2)*u + (z^6 + 2*z^5 + z^4) */
    1840             : static const long X1_34_r_n_0[9] = {
    1841             :   evaltyp(t_VECSMALL) | _evallg(9), vZ, 0, 0, 0, 0, 1, 2, 1 }; /* z^6 + 2*z^5 + z^4 */
    1842             : static const long X1_34_r_n_1[8] = {
    1843             :   evaltyp(t_VECSMALL) | _evallg(8), vZ, 0, 0, 1, 1, 1, 1 }; /* z^5 + z^4 + z^3 + z^2 */
    1844             : static const long X1_34_r_n_2[10] = {
    1845             :   evaltyp(t_VECSMALL) | _evallg(10), vZ, 0, -1, 0, 0, 2, 0, 0, 1 }; /* z^7 + 2*z^4 - z */
    1846             : static const long X1_34_r_n_3[9] = {
    1847             :   evaltyp(t_VECSMALL) | _evallg(9), vZ, 0, -2, -3, -7, 5, 0, -2 }; /* -2*z^6 + 5*z^4 - 7*z^3 - 3*z^2 - 2*z */
    1848             : static const long X1_34_r_n_4[8] = {
    1849             :   evaltyp(t_VECSMALL) | _evallg(8), vZ, 0, -1, 1, -15, 2, 2 }; /* 2*z^5 + 2*z^4 - 15*z^3 + z^2 - z */
    1850             : static const long X1_34_r_n_5[7] = {
    1851             :   evaltyp(t_VECSMALL) | _evallg(7), vZ, 1, -2, 7, -11, -3 }; /* -3*z^4 - 11*z^3 + 7*z^2 - 2*z + 1 */
    1852             : static const long X1_34_r_n_6[6] = {
    1853             :   evaltyp(t_VECSMALL) | _evallg(6), vZ, 3, -5, 3, -1 }; /* -z^3 + 3*z^2 - 5*z + 3 */
    1854             : static const long X1_34_r_n_7[5] = {
    1855             :   evaltyp(t_VECSMALL) | _evallg(5), vZ, 3, -3, -1 }; /* -z^2 - 3*z + 3 */
    1856             : static const long *X1_34_r_n[11] = {
    1857             :   (long *)(evaltyp(t_POL) | _evallg(11)), (long *)(evalvarn(0) | evalsigne(1)),
    1858             :   X1_34_r_n_0, X1_34_r_n_1, X1_34_r_n_2, X1_34_r_n_3, X1_34_r_n_4, X1_34_r_n_5, X1_34_r_n_6, X1_34_r_n_7, FLX_1
    1859             : };
    1860             : /* (-z^3 + 1)*u^6 + (-z^4 - 4*z^3 + 2*z^2 + 3)*u^5 + (-2*z^5 - 2*z^4 - 4*z^3 + 2*z^2 - 3*z + 3)*u^4 + (-z^6 - 2*z^5 - 2*z^4 - 5*z^3 - 3*z^2 - 6*z + 1)*u^3 + (z^7 - z^5 - 2*z^4 - 2*z^3 - z^2 - 3*z)*u^2 + (2*z^5 + 3*z^4 + 3*z^3 + 2*z^2)*u + (z^6 + 2*z^5 + z^4) */
    1861             : static const long X1_34_r_d_0[9] = {
    1862             :   evaltyp(t_VECSMALL) | _evallg(9), vZ, 0, 0, 0, 0, 1, 2, 1 }; /* z^6 + 2*z^5 + z^4 */
    1863             : static const long X1_34_r_d_1[8] = {
    1864             :   evaltyp(t_VECSMALL) | _evallg(8), vZ, 0, 0, 2, 3, 3, 2 }; /* 2*z^5 + 3*z^4 + 3*z^3 + 2*z^2 */
    1865             : static const long X1_34_r_d_2[10] = {
    1866             :   evaltyp(t_VECSMALL) | _evallg(10), vZ, 0, -3, -1, -2, -2, -1, 0, 1 }; /* z^7 - z^5 - 2*z^4 - 2*z^3 - z^2 - 3*z */
    1867             : static const long X1_34_r_d_3[9] = {
    1868             :   evaltyp(t_VECSMALL) | _evallg(9), vZ, 1, -6, -3, -5, -2, -2, -1 }; /* -z^6 - 2*z^5 - 2*z^4 - 5*z^3 - 3*z^2 - 6*z + 1 */
    1869             : static const long X1_34_r_d_4[8] = {
    1870             :   evaltyp(t_VECSMALL) | _evallg(8), vZ, 3, -3, 2, -4, -2, -2 }; /* -2*z^5 - 2*z^4 - 4*z^3 + 2*z^2 - 3*z + 3 */
    1871             : static const long X1_34_r_d_5[7] = {
    1872             :   evaltyp(t_VECSMALL) | _evallg(7), vZ, 3, 0, 2, -4, -1 }; /* -z^4 - 4*z^3 + 2*z^2 + 3 */
    1873             : static const long X1_34_r_d_6[6] = {
    1874             :   evaltyp(t_VECSMALL) | _evallg(6), vZ, 1, 0, 0, -1 }; /* -z^3 + 1 */
    1875             : static const long *X1_34_r_d[9] = {
    1876             :   (long *)(evaltyp(t_POL) | _evallg(9)), (long *)(evalvarn(0) | evalsigne(1)),
    1877             :   X1_34_r_d_0, X1_34_r_d_1, X1_34_r_d_2, X1_34_r_d_3, X1_34_r_d_4, X1_34_r_d_5, X1_34_r_d_6
    1878             : };
    1879             : /* -u^7 + (z^2 + 3*z - 3)*u^6 + (z^3 - 2*z^2 + 5*z - 3)*u^5 + (3*z^4 + 10*z^3 - 4*z^2 + z - 1)*u^4 + (-2*z^5 + 2*z^4 + 14*z^3 - 2*z)*u^3 + (z^6 + z^4 + 6*z^3 + z^2 - z)*u^2 + (z^4 + z^3)*u + (z^5 + 2*z^4 + z^3) */
    1880             : static const long X1_34_s_n_0[8] = {
    1881             :   evaltyp(t_VECSMALL) | _evallg(8), vZ, 0, 0, 0, 1, 2, 1 }; /* z^5 + 2*z^4 + z^3 */
    1882             : static const long X1_34_s_n_1[7] = {
    1883             :   evaltyp(t_VECSMALL) | _evallg(7), vZ, 0, 0, 0, 1, 1 }; /* z^4 + z^3 */
    1884             : static const long X1_34_s_n_2[9] = {
    1885             :   evaltyp(t_VECSMALL) | _evallg(9), vZ, 0, -1, 1, 6, 1, 0, 1 }; /* z^6 + z^4 + 6*z^3 + z^2 - z */
    1886             : static const long X1_34_s_n_3[8] = {
    1887             :   evaltyp(t_VECSMALL) | _evallg(8), vZ, 0, -2, 0, 14, 2, -2 }; /* -2*z^5 + 2*z^4 + 14*z^3 - 2*z */
    1888             : static const long X1_34_s_n_4[7] = {
    1889             :   evaltyp(t_VECSMALL) | _evallg(7), vZ, -1, 1, -4, 10, 3 }; /* 3*z^4 + 10*z^3 - 4*z^2 + z - 1 */
    1890             : static const long X1_34_s_n_5[6] = {
    1891             :   evaltyp(t_VECSMALL) | _evallg(6), vZ, -3, 5, -2, 1 }; /* z^3 - 2*z^2 + 5*z - 3 */
    1892             : static const long X1_34_s_n_6[5] = {
    1893             :   evaltyp(t_VECSMALL) | _evallg(5), vZ, -3, 3, 1 }; /* z^2 + 3*z - 3 */
    1894             : static const long *X1_34_s_n[10] = {
    1895             :   (long *)(evaltyp(t_POL) | _evallg(10)), (long *)(evalvarn(0) | evalsigne(1)),
    1896             :   X1_34_s_n_0, X1_34_s_n_1, X1_34_s_n_2, X1_34_s_n_3, X1_34_s_n_4, X1_34_s_n_5, X1_34_s_n_6, FLX_m1
    1897             : };
    1898             : /* z*u^6 + (-z^2 + 3*z - 1)*u^5 + (4*z^3 - z^2 + z - 3)*u^4 + (-z^5 + 6*z^3 - z^2 - 2*z - 3)*u^3 + (z^6 + 3*z^3 + z^2 - 1)*u^2 + (2*z^4 + 3*z^3 + 2*z^2 + z)*u + (z^5 + 2*z^4 + z^3) */
    1899             : static const long X1_34_s_d_0[8] = {
    1900             :   evaltyp(t_VECSMALL) | _evallg(8), vZ, 0, 0, 0, 1, 2, 1 }; /* z^5 + 2*z^4 + z^3 */
    1901             : static const long X1_34_s_d_1[7] = {
    1902             :   evaltyp(t_VECSMALL) | _evallg(7), vZ, 0, 1, 2, 3, 2 }; /* 2*z^4 + 3*z^3 + 2*z^2 + z */
    1903             : static const long X1_34_s_d_2[9] = {
    1904             :   evaltyp(t_VECSMALL) | _evallg(9), vZ, -1, 0, 1, 3, 0, 0, 1 }; /* z^6 + 3*z^3 + z^2 - 1 */
    1905             : static const long X1_34_s_d_3[8] = {
    1906             :   evaltyp(t_VECSMALL) | _evallg(8), vZ, -3, -2, -1, 6, 0, -1 }; /* -z^5 + 6*z^3 - z^2 - 2*z - 3 */
    1907             : static const long X1_34_s_d_4[6] = {
    1908             :   evaltyp(t_VECSMALL) | _evallg(6), vZ, -3, 1, -1, 4 }; /* 4*z^3 - z^2 + z - 3 */
    1909             : static const long X1_34_s_d_5[5] = {
    1910             :   evaltyp(t_VECSMALL) | _evallg(5), vZ, -1, 3, -1 }; /* -z^2 + 3*z - 1 */
    1911             : static const long *X1_34_s_d[9] = {
    1912             :   (long *)(evaltyp(t_POL) | _evallg(9)), (long *)(evalvarn(0) | evalsigne(1)),
    1913             :   X1_34_s_d_0, X1_34_s_d_1, X1_34_s_d_2, X1_34_s_d_3, X1_34_s_d_4, X1_34_s_d_5, FLX_Z
    1914             : };
    1915             : /* z^3*u^12 + (-z^7 - 8*z^4 - 6*z^3 - z)*u^11 + (7*z^8 + 5*z^7 + 25*z^5 + 44*z^4 + 12*z^3 + 7*z^2 + 5*z)*u^10 + (-18*z^9 - 32*z^8 - 7*z^7 - 34*z^6 - 122*z^5 - 80*z^4 - 27*z^3 - 32*z^2 - 8*z + 1)*u^9 + (-z^11 + 19*z^10 + 72*z^9 + 41*z^8 + 3*z^7 + 141*z^6 + 193*z^5 + 71*z^4 + 75*z^3 + 47*z^2 - 2*z - 3)*u^8 + (4*z^12 + 4*z^11 - 59*z^10 - 79*z^9 + 44*z^8 + 5*z^7 - 178*z^6 - 100*z^5 - 72*z^4 - 99*z^3 - 9*z^2 + 17*z + 3)*u^7 + (-6*z^13 - 32*z^12 - 24*z^11 + 45*z^10 - 43*z^9 - 174*z^8 - 37*z^7 + 35*z^6 - z^5 + 90*z^4 + 34*z^3 - 35*z^2 - 15*z - 1)*u^6 + (4*z^14 + 33*z^13 + 80*z^12 + 42*z^11 + 9*z^10 + 145*z^9 + 183*z^8 + 73*z^7 + 60*z^6 - 27*z^5 - 52*z^4 + 32*z^3 + 27*z^2 + 3*z)*u^5 + (-z^15 - 14*z^14 - 57*z^13 - 72*z^12 - 6*z^10 - 100*z^9 - 84*z^8 - 47*z^7 - 3*z^6 + 50*z^5 - 6*z^4 - 27*z^3 + 2*z)*u^4 + (2*z^15 + 16*z^14 + 36*z^13 + 6*z^12 - 45*z^11 - 13*z^10 + 25*z^9 + 11*z^8 - 7*z^7 - 36*z^6 - 15*z^5 + 19*z^4 - 8*z^2 - z)*u^3 + (-z^15 - 6*z^14 - 3*z^13 + 21*z^12 + 26*z^11 + z^10 - 3*z^9 + 9*z^8 + 20*z^7 + 16*z^6 - 8*z^5 - 7*z^4 + 7*z^3 + 4*z^2)*u^2 + (-3*z^13 - 6*z^12 + z^11 + 7*z^10 + z^9 - 6*z^8 - 7*z^7 + z^6 + 7*z^5 + z^4 - 3*z^3 - z^2)*u + (-z^12 - 3*z^11 - 3*z^10 - z^9 - z^7 - 3*z^6 - 3*z^5 - z^4) */
    1916             : static const long X1_35_crv_0[15] = {
    1917             :   evaltyp(t_VECSMALL) | _evallg(15), vZ, 0, 0, 0, 0, -1, -3, -3, -1, 0, -1, -3, -3, -1 }; /* -z^12 - 3*z^11 - 3*z^10 - z^9 - z^7 - 3*z^6 - 3*z^5 - z^4 */
    1918             : static const long X1_35_crv_1[16] = {
    1919             :   evaltyp(t_VECSMALL) | _evallg(16), vZ, 0, 0, -1, -3, 1, 7, 1, -7, -6, 1, 7, 1, -6, -3 }; /* -3*z^13 - 6*z^12 + z^11 + 7*z^10 + z^9 - 6*z^8 - 7*z^7 + z^6 + 7*z^5 + z^4 - 3*z^3 - z^2 */
    1920             : static const long X1_35_crv_2[18] = {
    1921             :   evaltyp(t_VECSMALL) | _evallg(18), vZ, 0, 0, 4, 7, -7, -8, 16, 20, 9, -3, 1, 26, 21, -3, -6, -1 }; /* -z^15 - 6*z^14 - 3*z^13 + 21*z^12 + 26*z^11 + z^10 - 3*z^9 + 9*z^8 + 20*z^7 + 16*z^6 - 8*z^5 - 7*z^4 + 7*z^3 + 4*z^2 */
    1922             : static const long X1_35_crv_3[18] = {
    1923             :   evaltyp(t_VECSMALL) | _evallg(18), vZ, 0, -1, -8, 0, 19, -15, -36, -7, 11, 25, -13, -45, 6, 36, 16, 2 }; /* 2*z^15 + 16*z^14 + 36*z^13 + 6*z^12 - 45*z^11 - 13*z^10 + 25*z^9 + 11*z^8 - 7*z^7 - 36*z^6 - 15*z^5 + 19*z^4 - 8*z^2 - z */
    1924             : static const long X1_35_crv_4[18] = {
    1925             :   evaltyp(t_VECSMALL) | _evallg(18), vZ, 0, 2, 0, -27, -6, 50, -3, -47, -84, -100, -6, 0, -72, -57, -14, -1 }; /* -z^15 - 14*z^14 - 57*z^13 - 72*z^12 - 6*z^10 - 100*z^9 - 84*z^8 - 47*z^7 - 3*z^6 + 50*z^5 - 6*z^4 - 27*z^3 + 2*z */
    1926             : static const long X1_35_crv_5[17] = {
    1927             :   evaltyp(t_VECSMALL) | _evallg(17), vZ, 0, 3, 27, 32, -52, -27, 60, 73, 183, 145, 9, 42, 80, 33, 4 }; /* 4*z^14 + 33*z^13 + 80*z^12 + 42*z^11 + 9*z^10 + 145*z^9 + 183*z^8 + 73*z^7 + 60*z^6 - 27*z^5 - 52*z^4 + 32*z^3 + 27*z^2 + 3*z */
    1928             : static const long X1_35_crv_6[16] = {
    1929             :   evaltyp(t_VECSMALL) | _evallg(16), vZ, -1, -15, -35, 34, 90, -1, 35, -37, -174, -43, 45, -24, -32, -6 }; /* -6*z^13 - 32*z^12 - 24*z^11 + 45*z^10 - 43*z^9 - 174*z^8 - 37*z^7 + 35*z^6 - z^5 + 90*z^4 + 34*z^3 - 35*z^2 - 15*z - 1 */
    1930             : static const long X1_35_crv_7[15] = {
    1931             :   evaltyp(t_VECSMALL) | _evallg(15), vZ, 3, 17, -9, -99, -72, -100, -178, 5, 44, -79, -59, 4, 4 }; /* 4*z^12 + 4*z^11 - 59*z^10 - 79*z^9 + 44*z^8 + 5*z^7 - 178*z^6 - 100*z^5 - 72*z^4 - 99*z^3 - 9*z^2 + 17*z + 3 */
    1932             : static const long X1_35_crv_8[14] = {
    1933             :   evaltyp(t_VECSMALL) | _evallg(14), vZ, -3, -2, 47, 75, 71, 193, 141, 3, 41, 72, 19, -1 }; /* -z^11 + 19*z^10 + 72*z^9 + 41*z^8 + 3*z^7 + 141*z^6 + 193*z^5 + 71*z^4 + 75*z^3 + 47*z^2 - 2*z - 3 */
    1934             : static const long X1_35_crv_9[12] = {
    1935             :   evaltyp(t_VECSMALL) | _evallg(12), vZ, 1, -8, -32, -27, -80, -122, -34, -7, -32, -18 }; /* -18*z^9 - 32*z^8 - 7*z^7 - 34*z^6 - 122*z^5 - 80*z^4 - 27*z^3 - 32*z^2 - 8*z + 1 */
    1936             : static const long X1_35_crv_10[11] = {
    1937             :   evaltyp(t_VECSMALL) | _evallg(11), vZ, 0, 5, 7, 12, 44, 25, 0, 5, 7 }; /* 7*z^8 + 5*z^7 + 25*z^5 + 44*z^4 + 12*z^3 + 7*z^2 + 5*z */
    1938             : static const long X1_35_crv_11[10] = {
    1939             :   evaltyp(t_VECSMALL) | _evallg(10), vZ, 0, -1, 0, -6, -8, 0, 0, -1 }; /* -z^7 - 8*z^4 - 6*z^3 - z */
    1940             : static const long X1_35_crv_12[6] = {
    1941             :   evaltyp(t_VECSMALL) | _evallg(6), vZ, 0, 0, 0, 1 }; /* z^3 */
    1942             : static const long *X1_35_crv[15] = {
    1943             :   (long *)(evaltyp(t_POL) | _evallg(15)), (long *)(evalvarn(0) | evalsigne(1)),
    1944             :   X1_35_crv_0, X1_35_crv_1, X1_35_crv_2, X1_35_crv_3, X1_35_crv_4, X1_35_crv_5, X1_35_crv_6, X1_35_crv_7, X1_35_crv_8, X1_35_crv_9, X1_35_crv_10, X1_35_crv_11, X1_35_crv_12
    1945             : };
    1946             : /* -z^8*u^19 + (11*z^9 + 8*z^8 + 2*z^6)*u^18 + (-51*z^10 - 83*z^9 - 24*z^8 - 20*z^7 - 13*z^6 - z^4)*u^17 + (125*z^11 + 359*z^10 + 234*z^9 + 118*z^8 + 124*z^7 + 30*z^6 + 7*z^5 + 4*z^4)*u^16 + (-156*z^12 - 804*z^11 - 940*z^10 - 498*z^9 - 527*z^8 - 273*z^7 - 46*z^6 - 25*z^5 - 4*z^4 + 2*z^3 + z^2)*u^15 + (35*z^13 + 861*z^12 + 1909*z^11 + 1379*z^10 + 1322*z^9 + 1091*z^8 + 261*z^7 + 70*z^6 + 19*z^5 - 16*z^4 - 15*z^3 - 2*z^2)*u^14 + (174*z^14 + 19*z^13 - 1703*z^12 - 2223*z^11 - 2147*z^10 - 2523*z^9 - 972*z^8 - 162*z^7 - 62*z^6 + 61*z^5 + 79*z^4 + 21*z^3 - 2*z^2 - z - 1)*u^13 + (-232*z^15 - 1155*z^14 - 552*z^13 + 1490*z^12 + 2193*z^11 + 3700*z^10 + 2378*z^9 + 472*z^8 + 272*z^7 - 65*z^6 - 225*z^5 - 88*z^4 + 21*z^3 + 11*z^2 + 11*z + 2)*u^12 + (72*z^16 + 1175*z^15 + 2713*z^14 + 1080*z^13 - 944*z^12 - 3365*z^11 - 3864*z^10 - 1239*z^9 - 855*z^8 - 294*z^7 + 373*z^6 + 253*z^5 - 90*z^4 - 57*z^3 - 46*z^2 - 21*z - 1)*u^11 + (85*z^17 - 152*z^16 - 2096*z^15 - 2809*z^14 - 902*z^13 + 1269*z^12 + 3806*z^11 + 2152*z^10 + 1495*z^9 + 1142*z^8 - 339*z^7 - 614*z^6 + 111*z^5 + 181*z^4 + 84*z^3 + 81*z^2 + 11*z)*u^10 + (-85*z^18 - 520*z^17 - 149*z^16 + 1678*z^15 + 1797*z^14 + 1203*z^13 - 1299*z^12 - 2155*z^11 - 1471*z^10 - 1685*z^9 + 163*z^8 + 1172*z^7 + 249*z^6 - 319*z^5 - 62*z^4 - 132*z^3 - 43*z^2)*u^9 + (19*z^19 + 357*z^18 + 1085*z^17 + 381*z^16 - 1194*z^15 - 2243*z^14 - 1704*z^13 + 870*z^12 + 1000*z^11 + 1263*z^10 - 131*z^9 - 1589*z^8 - 952*z^7 + 278*z^6 + 36*z^5 + 65*z^4 + 75*z^3 - z^2 + 2*z)*u^8 + (7*z^20 - 40*z^19 - 522*z^18 - 898*z^17 + 184*z^16 + 1590*z^15 + 2413*z^14 + 396*z^13 - 950*z^12 - 708*z^11 + 188*z^10 + 1491*z^9 + 1264*z^8 - 100*z^7 - 187*z^6 + 53*z^5 - 73*z^4 + 12*z^3 - 9*z^2 - 2*z)*u^7 + (-3*z^21 - 34*z^20 - 2*z^19 + 314*z^18 + 201*z^17 - 523*z^16 - 1148*z^15 - 515*z^14 + 1090*z^13 + 767*z^12 - 67*z^11 - 980*z^10 - 905*z^9 + 43*z^8 + 463*z^7 - 23*z^6 + 39*z^5 - 27*z^4 + 2*z^3 + 11*z^2)*u^6 + (9*z^21 + 56*z^20 + 40*z^19 - 101*z^18 - 10*z^17 + 100*z^16 + 74*z^15 - 730*z^14 - 802*z^13 - 104*z^12 + 449*z^11 + 429*z^10 - 71*z^9 - 525*z^8 - 125*z^7 + 20*z^6 + 34*z^5 + 32*z^4 - 13*z^3)*u^5 + (-9*z^21 - 37*z^20 + 79*z^18 + 103*z^17 + 86*z^16 + 178*z^15 + 385*z^14 + 109*z^13 - 137*z^12 - 168*z^11 + 29*z^10 + 289*z^9 + 172*z^8 - 57*z^7 - 42*z^6 - 50*z^5 + 4*z^4 - z^3)*u^4 + (3*z^21 + 7*z^20 - 26*z^19 - 43*z^18 - 24*z^17 + 43*z^16 - 13*z^15 - 29*z^14 + 28*z^13 + 49*z^12 + 24*z^11 - 54*z^10 - 82*z^9 + 35*z^8 + 40*z^7 + 31*z^6 - 2*z^5 - 4*z^4 + z^3 - z^2)*u^3 + (z^20 + 9*z^19 - 4*z^18 - 30*z^17 - 44*z^16 - 5*z^15 - 6*z^13 - 25*z^12 - 17*z^11 + 9*z^10 - 5*z^9 - 19*z^8 - 11*z^7 + z^6 + 8*z^5 - z^4)*u^2 + (5*z^18 + 7*z^17 - 8*z^15 - 4*z^14 + 4*z^13 + 6*z^12 - 5*z^11 - 10*z^10 - 4*z^9 - z^8 - z^7 - 5*z^6 - 2*z^5)*u + (z^17 + 2*z^16 + z^15 - z^14 - 2*z^13 + 2*z^11 + z^10 - z^9 - 2*z^8 - z^7) */
    1947             : static const long X1_35_r_n_0[20] = {
    1948             :   evaltyp(t_VECSMALL) | _evallg(20), vZ, 0, 0, 0, 0, 0, 0, 0, -1, -2, -1, 1, 2, 0, -2, -1, 1, 2, 1 }; /* z^17 + 2*z^16 + z^15 - z^14 - 2*z^13 + 2*z^11 + z^10 - z^9 - 2*z^8 - z^7 */
    1949             : static const long X1_35_r_n_1[21] = {
    1950             :   evaltyp(t_VECSMALL) | _evallg(21), vZ, 0, 0, 0, 0, 0, -2, -5, -1, -1, -4, -10, -5, 6, 4, -4, -8, 0, 7, 5 }; /* 5*z^18 + 7*z^17 - 8*z^15 - 4*z^14 + 4*z^13 + 6*z^12 - 5*z^11 - 10*z^10 - 4*z^9 - z^8 - z^7 - 5*z^6 - 2*z^5 */
    1951             : static const long X1_35_r_n_2[23] = {
    1952             :   evaltyp(t_VECSMALL) | _evallg(23), vZ, 0, 0, 0, 0, -1, 8, 1, -11, -19, -5, 9, -17, -25, -6, 0, -5, -44, -30, -4, 9, 1 }; /* z^20 + 9*z^19 - 4*z^18 - 30*z^17 - 44*z^16 - 5*z^15 - 6*z^13 - 25*z^12 - 17*z^11 + 9*z^10 - 5*z^9 - 19*z^8 - 11*z^7 + z^6 + 8*z^5 - z^4 */
    1953             : static const long X1_35_r_n_3[24] = {
    1954             :   evaltyp(t_VECSMALL) | _evallg(24), vZ, 0, 0, -1, 1, -4, -2, 31, 40, 35, -82, -54, 24, 49, 28, -29, -13, 43, -24, -43, -26, 7, 3 }; /* 3*z^21 + 7*z^20 - 26*z^19 - 43*z^18 - 24*z^17 + 43*z^16 - 13*z^15 - 29*z^14 + 28*z^13 + 49*z^12 + 24*z^11 - 54*z^10 - 82*z^9 + 35*z^8 + 40*z^7 + 31*z^6 - 2*z^5 - 4*z^4 + z^3 - z^2 */
    1955             : static const long X1_35_r_n_4[24] = {
    1956             :   evaltyp(t_VECSMALL) | _evallg(24), vZ, 0, 0, 0, -1, 4, -50, -42, -57, 172, 289, 29, -168, -137, 109, 385, 178, 86, 103, 79, 0, -37, -9 }; /* -9*z^21 - 37*z^20 + 79*z^18 + 103*z^17 + 86*z^16 + 178*z^15 + 385*z^14 + 109*z^13 - 137*z^12 - 168*z^11 + 29*z^10 + 289*z^9 + 172*z^8 - 57*z^7 - 42*z^6 - 50*z^5 + 4*z^4 - z^3 */
    1957             : static const long X1_35_r_n_5[24] = {
    1958             :   evaltyp(t_VECSMALL) | _evallg(24), vZ, 0, 0, 0, -13, 32, 34, 20, -125, -525, -71, 429, 449, -104, -802, -730, 74, 100, -10, -101, 40, 56, 9 }; /* 9*z^21 + 56*z^20 + 40*z^19 - 101*z^18 - 10*z^17 + 100*z^16 + 74*z^15 - 730*z^14 - 802*z^13 - 104*z^12 + 449*z^11 + 429*z^10 - 71*z^9 - 525*z^8 - 125*z^7 + 20*z^6 + 34*z^5 + 32*z^4 - 13*z^3 */
    1959             : static const long X1_35_r_n_6[24] = {
    1960             :   evaltyp(t_VECSMALL) | _evallg(24), vZ, 0, 0, 11, 2, -27, 39, -23, 463, 43, -905, -980, -67, 767, 1090, -515, -1148, -523, 201, 314, -2, -34, -3 }; /* -3*z^21 - 34*z^20 - 2*z^19 + 314*z^18 + 201*z^17 - 523*z^16 - 1148*z^15 - 515*z^14 + 1090*z^13 + 767*z^12 - 67*z^11 - 980*z^10 - 905*z^9 + 43*z^8 + 463*z^7 - 23*z^6 + 39*z^5 - 27*z^4 + 2*z^3 + 11*z^2 */
    1961             : static const long X1_35_r_n_7[23] = {
    1962             :   evaltyp(t_VECSMALL) | _evallg(23), vZ, 0, -2, -9, 12, -73, 53, -187, -100, 1264, 1491, 188, -708, -950, 396, 2413, 1590, 184, -898, -522, -40, 7 }; /* 7*z^20 - 40*z^19 - 522*z^18 - 898*z^17 + 184*z^16 + 1590*z^15 + 2413*z^14 + 396*z^13 - 950*z^12 - 708*z^11 + 188*z^10 + 1491*z^9 + 1264*z^8 - 100*z^7 - 187*z^6 + 53*z^5 - 73*z^4 + 12*z^3 - 9*z^2 - 2*z */
    1963             : static const long X1_35_r_n_8[22] = {
    1964             :   evaltyp(t_VECSMALL) | _evallg(22), vZ, 0, 2, -1, 75, 65, 36, 278, -952, -1589, -131, 1263, 1000, 870, -1704, -2243, -1194, 381, 1085, 357, 19 }; /* 19*z^19 + 357*z^18 + 1085*z^17 + 381*z^16 - 1194*z^15 - 2243*z^14 - 1704*z^13 + 870*z^12 + 1000*z^11 + 1263*z^10 - 131*z^9 - 1589*z^8 - 952*z^7 + 278*z^6 + 36*z^5 + 65*z^4 + 75*z^3 - z^2 + 2*z */
    1965             : static const long X1_35_r_n_9[21] = {
    1966             :   evaltyp(t_VECSMALL) | _evallg(21), vZ, 0, 0, -43, -132, -62, -319, 249, 1172, 163, -1685, -1471, -2155, -1299, 1203, 1797, 1678, -149, -520, -85 }; /* -85*z^18 - 520*z^17 - 149*z^16 + 1678*z^15 + 1797*z^14 + 1203*z^13 - 1299*z^12 - 2155*z^11 - 1471*z^10 - 1685*z^9 + 163*z^8 + 1172*z^7 + 249*z^6 - 319*z^5 - 62*z^4 - 132*z^3 - 43*z^2 */
    1967             : static const long X1_35_r_n_10[20] = {
    1968             :   evaltyp(t_VECSMALL) | _evallg(20), vZ, 0, 11, 81, 84, 181, 111, -614, -339, 1142, 1495, 2152, 3806, 1269, -902, -2809, -2096, -152, 85 }; /* 85*z^17 - 152*z^16 - 2096*z^15 - 2809*z^14 - 902*z^13 + 1269*z^12 + 3806*z^11 + 2152*z^10 + 1495*z^9 + 1142*z^8 - 339*z^7 - 614*z^6 + 111*z^5 + 181*z^4 + 84*z^3 + 81*z^2 + 11*z */
    1969             : static const long X1_35_r_n_11[19] = {
    1970             :   evaltyp(t_VECSMALL) | _evallg(19), vZ, -1, -21, -46, -57, -90, 253, 373, -294, -855, -1239, -3864, -3365, -944, 1080, 2713, 1175, 72 }; /* 72*z^16 + 1175*z^15 + 2713*z^14 + 1080*z^13 - 944*z^12 - 3365*z^11 - 3864*z^10 - 1239*z^9 - 855*z^8 - 294*z^7 + 373*z^6 + 253*z^5 - 90*z^4 - 57*z^3 - 46*z^2 - 21*z - 1 */
    1971             : static const long X1_35_r_n_12[18] = {
    1972             :   evaltyp(t_VECSMALL) | _evallg(18), vZ, 2, 11, 11, 21, -88, -225, -65, 272, 472, 2378, 3700, 2193, 1490, -552, -1155, -232 }; /* -232*z^15 - 1155*z^14 - 552*z^13 + 1490*z^12 + 2193*z^11 + 3700*z^10 + 2378*z^9 + 472*z^8 + 272*z^7 - 65*z^6 - 225*z^5 - 88*z^4 + 21*z^3 + 11*z^2 + 11*z + 2 */
    1973             : static const long X1_35_r_n_13[17] = {
    1974             :   evaltyp(t_VECSMALL) | _evallg(17), vZ, -1, -1, -2, 21, 79, 61, -62, -162, -972, -2523, -2147, -2223, -1703, 19, 174 }; /* 174*z^14 + 19*z^13 - 1703*z^12 - 2223*z^11 - 2147*z^10 - 2523*z^9 - 972*z^8 - 162*z^7 - 62*z^6 + 61*z^5 + 79*z^4 + 21*z^3 - 2*z^2 - z - 1 */
    1975             : static const long X1_35_r_n_14[16] = {
    1976             :   evaltyp(t_VECSMALL) | _evallg(16), vZ, 0, 0, -2, -15, -16, 19, 70, 261, 1091, 1322, 1379, 1909, 861, 35 }; /* 35*z^13 + 861*z^12 + 1909*z^11 + 1379*z^10 + 1322*z^9 + 1091*z^8 + 261*z^7 + 70*z^6 + 19*z^5 - 16*z^4 - 15*z^3 - 2*z^2 */
    1977             : static const long X1_35_r_n_15[15] = {
    1978             :   evaltyp(t_VECSMALL) | _evallg(15), vZ, 0, 0, 1, 2, -4, -25, -46, -273, -527, -498, -940, -804, -156 }; /* -156*z^12 - 804*z^11 - 940*z^10 - 498*z^9 - 527*z^8 - 273*z^7 - 46*z^6 - 25*z^5 - 4*z^4 + 2*z^3 + z^2 */
    1979             : static const long X1_35_r_n_16[14] = {
    1980             :   evaltyp(t_VECSMALL) | _evallg(14), vZ, 0, 0, 0, 0, 4, 7, 30, 124, 118, 234, 359, 125 }; /* 125*z^11 + 359*z^10 + 234*z^9 + 118*z^8 + 124*z^7 + 30*z^6 + 7*z^5 + 4*z^4 */
    1981             : static const long X1_35_r_n_17[13] = {
    1982             :   evaltyp(t_VECSMALL) | _evallg(13), vZ, 0, 0, 0, 0, -1, 0, -13, -20, -24, -83, -51 }; /* -51*z^10 - 83*z^9 - 24*z^8 - 20*z^7 - 13*z^6 - z^4 */
    1983             : static const long X1_35_r_n_18[12] = {
    1984             :   evaltyp(t_VECSMALL) | _evallg(12), vZ, 0, 0, 0, 0, 0, 0, 2, 0, 8, 11 }; /* 11*z^9 + 8*z^8 + 2*z^6 */
    1985             : static const long X1_35_r_n_19[11] = {
    1986             :   evaltyp(t_VECSMALL) | _evallg(11), vZ, 0, 0, 0, 0, 0, 0, 0, 0, -1 }; /* -z^8 */
    1987             : static const long *X1_35_r_n[22] = {
    1988             :   (long *)(evaltyp(t_POL) | _evallg(22)), (long *)(evalvarn(0) | evalsigne(1)),
    1989             :   X1_35_r_n_0, X1_35_r_n_1, X1_35_r_n_2, X1_35_r_n_3, X1_35_r_n_4, X1_35_r_n_5, X1_35_r_n_6, X1_35_r_n_7, X1_35_r_n_8, X1_35_r_n_9, X1_35_r_n_10, X1_35_r_n_11, X1_35_r_n_12, X1_35_r_n_13, X1_35_r_n_14, X1_35_r_n_15, X1_35_r_n_16, X1_35_r_n_17, X1_35_r_n_18, X1_35_r_n_19
    1990             : };
    1991             : /* (-z^10 + z^7)*u^16 + (10*z^11 + 5*z^10 - 9*z^8 - 4*z^7 - 2*z^5 - z^4)*u^15 + (-40*z^12 - 47*z^11 - 8*z^10 + 32*z^9 + 35*z^8 + 4*z^7 + 19*z^6 + 17*z^5 + 4*z^4 + z^3 + 2*z^2)*u^14 + (-z^14 + 77*z^13 + 175*z^12 + 71*z^11 - 48*z^10 - 122*z^9 - 33*z^8 - 75*z^7 - 107*z^6 - 48*z^5 - 12*z^4 - 22*z^3 - 6*z^2 - 1)*u^13 + (7*z^15 - 50*z^14 - 307*z^13 - 248*z^12 - 21*z^11 + 193*z^10 + 109*z^9 + 149*z^8 + 348*z^7 + 235*z^6 + 71*z^5 + 95*z^4 + 63*z^3 + 3*z^2 + 9*z + 2)*u^12 + (-19*z^16 - 79*z^15 + 169*z^14 + 406*z^13 + 219*z^12 - 27*z^11 - 153*z^10 - 117*z^9 - 627*z^8 - 612*z^7 - 237*z^6 - 201*z^5 - 257*z^4 - 38*z^3 - 28*z^2 - 20*z - 1)*u^11 + (23*z^17 + 192*z^16 + 271*z^15 - 206*z^14 - 400*z^13 - 436*z^12 - 70*z^11 - 106*z^10 + 512*z^9 + 884*z^8 + 427*z^7 + 180*z^6 + 492*z^5 + 171*z^4 + 21*z^3 + 73*z^2 + 11*z)*u^10 + (-7*z^18 - 142*z^17 - 520*z^16 - 311*z^15 + 307*z^14 + 779*z^13 + 598*z^12 + 382*z^11 + 204*z^10 - 520*z^9 - 317*z^8 + 106*z^7 - 343*z^6 - 348*z^5 + 75*z^4 - 108*z^3 - 45*z^2)*u^9 + (-11*z^19 - 6*z^18 + 271*z^17 + 539*z^16 + 53*z^15 - 548*z^14 - 883*z^13 - 517*z^12 - 885*z^11 - 445*z^10 - 196*z^9 - 456*z^8 - 282*z^7 + 295*z^6 - 201*z^5 + 2*z^4 + 91*z^3 + 2*z)*u^8 + (11*z^20 + 75*z^19 + 84*z^18 - 240*z^17 - 307*z^16 - 33*z^15 + 466*z^14 + 459*z^13 + 840*z^12 + 1094*z^11 + 575*z^10 + 413*z^9 + 589*z^8 + 9*z^7 + 163*z^6 + 191*z^5 - 109*z^4 - z^3 - 10*z^2 - 2*z)*u^7 + (-3*z^21 - 45*z^20 - 158*z^19 - 94*z^18 + 231*z^17 + 363*z^16 + 171*z^15 - 237*z^14 - 385*z^13 - 810*z^12 - 341*z^11 + 132*z^10 - 60*z^9 - 109*z^8 + 43*z^7 - 218*z^6 + 86*z^5 + 11*z^4 + 11*z^3 + 12*z^2)*u^6 + (9*z^21 + 66*z^20 + 128*z^19 - 49*z^18 - 304*z^17 - 367*z^16 - 4*z^15 + 143*z^14 + 189*z^13 - 122*z^12 - 610*z^11 - 532*z^10 - 58*z^9 - 108*z^8 + 91*z^7 - 19*z^6 - 22*z^5 + 19*z^4 - 19*z^3)*u^5 + (-9*z^21 - 40*z^20 - 16*z^19 + 130*z^18 + 208*z^17 + 70*z^16 - 130*z^15 + 7*z^14 + 219*z^13 + 509*z^12 + 451*z^11 + 43*z^10 - 81*z^9 - 62*z^8 - 56*z^7 + 12*z^6 - 48*z^5 + 4*z^4)*u^4 + (3*z^21 + 7*z^20 - 27*z^19 - 58*z^18 - 16*z^17 + 104*z^16 + 68*z^15 - 67*z^14 - 162*z^13 - 115*z^12 + 88*z^11 + 186*z^10 + 80*z^9 + 36*z^8 - 18*z^7 + 18*z^6 + 6*z^5 - 3*z^4 - z^2)*u^3 + (z^20 + 9*z^19 - 4*z^18 - 36*z^17 - 51*z^16 + 2*z^15 + 26*z^14 + 8*z^13 - 60*z^12 - 85*z^11 - 24*z^10 + 28*z^9 + 38*z^8 + 19*z^7 + 4*z^5 - z^4 + z^3)*u^2 + (5*z^18 + 7*z^17 - z^16 - 10*z^15 - 4*z^14 + 9*z^13 + 14*z^12 - 3*z^11 - 19*z^10 - 17*z^9 - 7*z^8 + 3*z^7 + 2*z^6 + 2*z^5 + z^4)*u + (z^17 + 2*z^16 + z^15 - z^14 - 2*z^13 + 2*z^11 + z^10 - z^9 - 2*z^8 - z^7) */
    1992             : static const long X1_35_r_d_0[20] = {
    1993             :   evaltyp(t_VECSMALL) | _evallg(20), vZ, 0, 0, 0, 0, 0, 0, 0, -1, -2, -1, 1, 2, 0, -2, -1, 1, 2, 1 }; /* z^17 + 2*z^16 + z^15 - z^14 - 2*z^13 + 2*z^11 + z^10 - z^9 - 2*z^8 - z^7 */
    1994             : static const long X1_35_r_d_1[21] = {
    1995             :   evaltyp(t_VECSMALL) | _evallg(21), vZ, 0, 0, 0, 0, 1, 2, 2, 3, -7, -17, -19, -3, 14, 9, -4, -10, -1, 7, 5 }; /* 5*z^18 + 7*z^17 - z^16 - 10*z^15 - 4*z^14 + 9*z^13 + 14*z^12 - 3*z^11 - 19*z^10 - 17*z^9 - 7*z^8 + 3*z^7 + 2*z^6 + 2*z^5 + z^4 */
    1996             : static const long X1_35_r_d_2[23] = {
    1997             :   evaltyp(t_VECSMALL) | _evallg(23), vZ, 0, 0, 0, 1, -1, 4, 0, 19, 38, 28, -24, -85, -60, 8, 26, 2, -51, -36, -4, 9, 1 }; /* z^20 + 9*z^19 - 4*z^18 - 36*z^17 - 51*z^16 + 2*z^15 + 26*z^14 + 8*z^13 - 60*z^12 - 85*z^11 - 24*z^10 + 28*z^9 + 38*z^8 + 19*z^7 + 4*z^5 - z^4 + z^3 */
    1998             : static const long X1_35_r_d_3[24] = {
    1999             :   evaltyp(t_VECSMALL) | _evallg(24), vZ, 0, 0, -1, 0, -3, 6, 18, -18, 36, 80, 186, 88, -115, -162, -67, 68, 104, -16, -58, -27, 7, 3 }; /* 3*z^21 + 7*z^20 - 27*z^19 - 58*z^18 - 16*z^17 + 104*z^16 + 68*z^15 - 67*z^14 - 162*z^13 - 115*z^12 + 88*z^11 + 186*z^10 + 80*z^9 + 36*z^8 - 18*z^7 + 18*z^6 + 6*z^5 - 3*z^4 - z^2 */
    2000             : static const long X1_35_r_d_4[24] = {
    2001             :   evaltyp(t_VECSMALL) | _evallg(24), vZ, 0, 0, 0, 0, 4, -48, 12, -56, -62, -81, 43, 451, 509, 219, 7, -130, 70, 208, 130, -16, -40, -9 }; /* -9*z^21 - 40*z^20 - 16*z^19 + 130*z^18 + 208*z^17 + 70*z^16 - 130*z^15 + 7*z^14 + 219*z^13 + 509*z^12 + 451*z^11 + 43*z^10 - 81*z^9 - 62*z^8 - 56*z^7 + 12*z^6 - 48*z^5 + 4*z^4 */
    2002             : static const long X1_35_r_d_5[24] = {
    2003             :   evaltyp(t_VECSMALL) | _evallg(24), vZ, 0, 0, 0, -19, 19, -22, -19, 91, -108, -58, -532, -610, -122, 189, 143, -4, -367, -304, -49, 128, 66, 9 }; /* 9*z^21 + 66*z^20 + 128*z^19 - 49*z^18 - 304*z^17 - 367*z^16 - 4*z^15 + 143*z^14 + 189*z^13 - 122*z^12 - 610*z^11 - 532*z^10 - 58*z^9 - 108*z^8 + 91*z^7 - 19*z^6 - 22*z^5 + 19*z^4 - 19*z^3 */
    2004             : static const long X1_35_r_d_6[24] = {
    2005             :   evaltyp(t_VECSMALL) | _evallg(24), vZ, 0, 0, 12, 11, 11, 86, -218, 43, -109, -60, 132, -341, -810, -385, -237, 171, 363, 231, -94, -158, -45, -3 }; /* -3*z^21 - 45*z^20 - 158*z^19 - 94*z^18 + 231*z^17 + 363*z^16 + 171*z^15 - 237*z^14 - 385*z^13 - 810*z^12 - 341*z^11 + 132*z^10 - 60*z^9 - 109*z^8 + 43*z^7 - 218*z^6 + 86*z^5 + 11*z^4 + 11*z^3 + 12*z^2 */
    2006             : static const long X1_35_r_d_7[23] = {
    2007             :   evaltyp(t_VECSMALL) | _evallg(23), vZ, 0, -2, -10, -1, -109, 191, 163, 9, 589, 413, 575, 1094, 840, 459, 466, -33, -307, -240, 84, 75, 11 }; /* 11*z^20 + 75*z^19 + 84*z^18 - 240*z^17 - 307*z^16 - 33*z^15 + 466*z^14 + 459*z^13 + 840*z^12 + 1094*z^11 + 575*z^10 + 413*z^9 + 589*z^8 + 9*z^7 + 163*z^6 + 191*z^5 - 109*z^4 - z^3 - 10*z^2 - 2*z */
    2008             : static const long X1_35_r_d_8[22] = {
    2009             :   evaltyp(t_VECSMALL) | _evallg(22), vZ, 0, 2, 0, 91, 2, -201, 295, -282, -456, -196, -445, -885, -517, -883, -548, 53, 539, 271, -6, -11 }; /* -11*z^19 - 6*z^18 + 271*z^17 + 539*z^16 + 53*z^15 - 548*z^14 - 883*z^13 - 517*z^12 - 885*z^11 - 445*z^10 - 196*z^9 - 456*z^8 - 282*z^7 + 295*z^6 - 201*z^5 + 2*z^4 + 91*z^3 + 2*z */
    2010             : static const long X1_35_r_d_9[21] = {
    2011             :   evaltyp(t_VECSMALL) | _evallg(21), vZ, 0, 0, -45, -108, 75, -348, -343, 106, -317, -520, 204, 382, 598, 779, 307, -311, -520, -142, -7 }; /* -7*z^18 - 142*z^17 - 520*z^16 - 311*z^15 + 307*z^14 + 779*z^13 + 598*z^12 + 382*z^11 + 204*z^10 - 520*z^9 - 317*z^8 + 106*z^7 - 343*z^6 - 348*z^5 + 75*z^4 - 108*z^3 - 45*z^2 */
    2012             : static const long X1_35_r_d_10[20] = {
    2013             :   evaltyp(t_VECSMALL) | _evallg(20), vZ, 0, 11, 73, 21, 171, 492, 180, 427, 884, 512, -106, -70, -436, -400, -206, 271, 192, 23 }; /* 23*z^17 + 192*z^16 + 271*z^15 - 206*z^14 - 400*z^13 - 436*z^12 - 70*z^11 - 106*z^10 + 512*z^9 + 884*z^8 + 427*z^7 + 180*z^6 + 492*z^5 + 171*z^4 + 21*z^3 + 73*z^2 + 11*z */
    2014             : static const long X1_35_r_d_11[19] = {
    2015             :   evaltyp(t_VECSMALL) | _evallg(19), vZ, -1, -20, -28, -38, -257, -201, -237, -612, -627, -117, -153, -27, 219, 406, 169, -79, -19 }; /* -19*z^16 - 79*z^15 + 169*z^14 + 406*z^13 + 219*z^12 - 27*z^11 - 153*z^10 - 117*z^9 - 627*z^8 - 612*z^7 - 237*z^6 - 201*z^5 - 257*z^4 - 38*z^3 - 28*z^2 - 20*z - 1 */
    2016             : static const long X1_35_r_d_12[18] = {
    2017             :   evaltyp(t_VECSMALL) | _evallg(18), vZ, 2, 9, 3, 63, 95, 71, 235, 348, 149, 109, 193, -21, -248, -307, -50, 7 }; /* 7*z^15 - 50*z^14 - 307*z^13 - 248*z^12 - 21*z^11 + 193*z^10 + 109*z^9 + 149*z^8 + 348*z^7 + 235*z^6 + 71*z^5 + 95*z^4 + 63*z^3 + 3*z^2 + 9*z + 2 */
    2018             : static const long X1_35_r_d_13[17] = {
    2019             :   evaltyp(t_VECSMALL) | _evallg(17), vZ, -1, 0, -6, -22, -12, -48, -107, -75, -33, -122, -48, 71, 175, 77, -1 }; /* -z^14 + 77*z^13 + 175*z^12 + 71*z^11 - 48*z^10 - 122*z^9 - 33*z^8 - 75*z^7 - 107*z^6 - 48*z^5 - 12*z^4 - 22*z^3 - 6*z^2 - 1 */
    2020             : static const long X1_35_r_d_14[15] = {
    2021             :   evaltyp(t_VECSMALL) | _evallg(15), vZ, 0, 0, 2, 1, 4, 17, 19, 4, 35, 32, -8, -47, -40 }; /* -40*z^12 - 47*z^11 - 8*z^10 + 32*z^9 + 35*z^8 + 4*z^7 + 19*z^6 + 17*z^5 + 4*z^4 + z^3 + 2*z^2 */
    2022             : static const long X1_35_r_d_15[14] = {
    2023             :   evaltyp(t_VECSMALL) | _evallg(14), vZ, 0, 0, 0, 0, -1, -2, 0, -4, -9, 0, 5, 10 }; /* 10*z^11 + 5*z^10 - 9*z^8 - 4*z^7 - 2*z^5 - z^4 */
    2024             : static const long X1_35_r_d_16[13] = {
    2025             :   evaltyp(t_VECSMALL) | _evallg(13), vZ, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1 }; /* -z^10 + z^7 */
    2026             : static const long *X1_35_r_d[19] = {
    2027             :   (long *)(evaltyp(t_POL) | _evallg(19)), (long *)(evalvarn(0) | evalsigne(1)),
    2028             :   X1_35_r_d_0, X1_35_r_d_1, X1_35_r_d_2, X1_35_r_d_3, X1_35_r_d_4, X1_35_r_d_5, X1_35_r_d_6, X1_35_r_d_7, X1_35_r_d_8, X1_35_r_d_9, X1_35_r_d_10, X1_35_r_d_11, X1_35_r_d_12, X1_35_r_d_13, X1_35_r_d_14, X1_35_r_d_15, X1_35_r_d_16
    2029             : };
    2030             : /* z^4*u^10 + (-5*z^5 - 4*z^4 - z^2)*u^9 + (7*z^6 + 18*z^5 + 4*z^4 + 4*z^3 + 2*z^2)*u^8 + (3*z^7 - 22*z^6 - 16*z^5 - 5*z^4 - 6*z^3 + z + 1)*u^7 + (-14*z^8 - 10*z^7 + 17*z^6 + z^5 + 5*z^4 - 3*z^3 - 3*z^2 - 6*z - 1)*u^6 + (7*z^9 + 36*z^8 + 8*z^7 + 2*z^6 - z^5 + 5*z^4 + 3*z^3 + 10*z^2 + 6*z)*u^5 + (4*z^10 - 15*z^9 - 23*z^8 + 2*z^6 + 3*z^5 + z^4 - 3*z^3 - 9*z^2)*u^4 + (-3*z^11 - 9*z^10 + 8*z^9 - 2*z^8 - 4*z^7 - 9*z^6 - 5*z^5 - 6*z^4 + 6*z^3 - z^2)*u^3 + (6*z^11 + 5*z^10 + 3*z^8 + 4*z^7 + 3*z^6 + 5*z^5 - 3*z^4 + z^2 - z)*u^2 + (-3*z^11 + z^10 - z^8 - z^7 - 2*z^6 + z^4 - 2*z^3)*u + (-z^10 - z^5) */
    2031             : static const long X1_35_s_n_0[13] = {
    2032             :   evaltyp(t_VECSMALL) | _evallg(13), vZ, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1 }; /* -z^10 - z^5 */
    2033             : static const long X1_35_s_n_1[14] = {
    2034             :   evaltyp(t_VECSMALL) | _evallg(14), vZ, 0, 0, 0, -2, 1, 0, -2, -1, -1, 0, 1, -3 }; /* -3*z^11 + z^10 - z^8 - z^7 - 2*z^6 + z^4 - 2*z^3 */
    2035             : static const long X1_35_s_n_2[14] = {
    2036             :   evaltyp(t_VECSMALL) | _evallg(14), vZ, 0, -1, 1, 0, -3, 5, 3, 4, 3, 0, 5, 6 }; /* 6*z^11 + 5*z^10 + 3*z^8 + 4*z^7 + 3*z^6 + 5*z^5 - 3*z^4 + z^2 - z */
    2037             : static const long X1_35_s_n_3[14] = {
    2038             :   evaltyp(t_VECSMALL) | _evallg(14), vZ, 0, 0, -1, 6, -6, -5, -9, -4, -2, 8, -9, -3 }; /* -3*z^11 - 9*z^10 + 8*z^9 - 2*z^8 - 4*z^7 - 9*z^6 - 5*z^5 - 6*z^4 + 6*z^3 - z^2 */
    2039             : static const long X1_35_s_n_4[13] = {
    2040             :   evaltyp(t_VECSMALL) | _evallg(13), vZ, 0, 0, -9, -3, 1, 3, 2, 0, -23, -15, 4 }; /* 4*z^10 - 15*z^9 - 23*z^8 + 2*z^6 + 3*z^5 + z^4 - 3*z^3 - 9*z^2 */
    2041             : static const long X1_35_s_n_5[12] = {
    2042             :   evaltyp(t_VECSMALL) | _evallg(12), vZ, 0, 6, 10, 3, 5, -1, 2, 8, 36, 7 }; /* 7*z^9 + 36*z^8 + 8*z^7 + 2*z^6 - z^5 + 5*z^4 + 3*z^3 + 10*z^2 + 6*z */
    2043             : static const long X1_35_s_n_6[11] = {
    2044             :   evaltyp(t_VECSMALL) | _evallg(11), vZ, -1, -6, -3, -3, 5, 1, 17, -10, -14 }; /* -14*z^8 - 10*z^7 + 17*z^6 + z^5 + 5*z^4 - 3*z^3 - 3*z^2 - 6*z - 1 */
    2045             : static const long X1_35_s_n_7[10] = {
    2046             :   evaltyp(t_VECSMALL) | _evallg(10), vZ, 1, 1, 0, -6, -5, -16, -22, 3 }; /* 3*z^7 - 22*z^6 - 16*z^5 - 5*z^4 - 6*z^3 + z + 1 */
    2047             : static const long X1_35_s_n_8[9] = {
    2048             :   evaltyp(t_VECSMALL) | _evallg(9), vZ, 0, 0, 2, 4, 4, 18, 7 }; /* 7*z^6 + 18*z^5 + 4*z^4 + 4*z^3 + 2*z^2 */
    2049             : static const long X1_35_s_n_9[8] = {
    2050             :   evaltyp(t_VECSMALL) | _evallg(8), vZ, 0, 0, -1, 0, -4, -5 }; /* -5*z^5 - 4*z^4 - z^2 */
    2051             : static const long X1_35_s_n_10[7] = {
    2052             :   evaltyp(t_VECSMALL) | _evallg(7), vZ, 0, 0, 0, 0, 1 }; /* z^4 */
    2053             : static const long *X1_35_s_n[13] = {
    2054             :   (long *)(evaltyp(t_POL) | _evallg(13)), (long *)(evalvarn(0) | evalsigne(1)),
    2055             :   X1_35_s_n_0, X1_35_s_n_1, X1_35_s_n_2, X1_35_s_n_3, X1_35_s_n_4, X1_35_s_n_5, X1_35_s_n_6, X1_35_s_n_7, X1_35_s_n_8, X1_35_s_n_9, X1_35_s_n_10
    2056             : };
    2057             : /* z^5*u^9 + (-6*z^6 - 3*z^5 - z^3 - z^2)*u^8 + (13*z^7 + 16*z^6 + 2*z^5 + 5*z^4 + 8*z^3 + 2*z^2 + 1)*u^7 + (-10*z^8 - 31*z^7 - 9*z^6 - 10*z^5 - 22*z^4 - 13*z^3 + z^2 - 5*z - 1)*u^6 + (-3*z^9 + 21*z^8 + 16*z^7 + 10*z^6 + 30*z^5 + 28*z^4 - 3*z^3 + 6*z^2 + 6*z)*u^5 + (8*z^10 + 7*z^9 - 11*z^8 - 5*z^7 - 22*z^6 - 25*z^5 + 5*z^4 + 6*z^3 - 10*z^2)*u^4 + (-3*z^11 - 16*z^10 - 3*z^9 + z^8 + 7*z^7 + 6*z^6 - 8*z^5 - 20*z^4 + 5*z^3)*u^3 + (6*z^11 + 8*z^10 - z^9 + 3*z^7 + 7*z^6 + 16*z^5 + z^4 - 2*z^3 - z)*u^2 + (-3*z^11 + z^10 + z^9 - z^8 - 2*z^7 - 4*z^6 - z^5 + 3*z^4 + z^2)*u + (-z^10 - z^5) */
    2058             : static const long X1_35_s_d_0[13] = {
    2059             :   evaltyp(t_VECSMALL) | _evallg(13), vZ, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1 }; /* -z^10 - z^5 */
    2060             : static const long X1_35_s_d_1[14] = {
    2061             :   evaltyp(t_VECSMALL) | _evallg(14), vZ, 0, 0, 1, 0, 3, -1, -4, -2, -1, 1, 1, -3 }; /* -3*z^11 + z^10 + z^9 - z^8 - 2*z^7 - 4*z^6 - z^5 + 3*z^4 + z^2 */
    2062             : static const long X1_35_s_d_2[14] = {
    2063             :   evaltyp(t_VECSMALL) | _evallg(14), vZ, 0, -1, 0, -2, 1, 16, 7, 3, 0, -1, 8, 6 }; /* 6*z^11 + 8*z^10 - z^9 + 3*z^7 + 7*z^6 + 16*z^5 + z^4 - 2*z^3 - z */
    2064             : static const long X1_35_s_d_3[14] = {
    2065             :   evaltyp(t_VECSMALL) | _evallg(14), vZ, 0, 0, 0, 5, -20, -8, 6, 7, 1, -3, -16, -3 }; /* -3*z^11 - 16*z^10 - 3*z^9 + z^8 + 7*z^7 + 6*z^6 - 8*z^5 - 20*z^4 + 5*z^3 */
    2066             : static const long X1_35_s_d_4[13] = {
    2067             :   evaltyp(t_VECSMALL) | _evallg(13), vZ, 0, 0, -10, 6, 5, -25, -22, -5, -11, 7, 8 }; /* 8*z^10 + 7*z^9 - 11*z^8 - 5*z^7 - 22*z^6 - 25*z^5 + 5*z^4 + 6*z^3 - 10*z^2 */
    2068             : static const long X1_35_s_d_5[12] = {
    2069             :   evaltyp(t_VECSMALL) | _evallg(12), vZ, 0, 6, 6, -3, 28, 30, 10, 16, 21, -3 }; /* -3*z^9 + 21*z^8 + 16*z^7 + 10*z^6 + 30*z^5 + 28*z^4 - 3*z^3 + 6*z^2 + 6*z */
    2070             : static const long X1_35_s_d_6[11] = {
    2071             :   evaltyp(t_VECSMALL) | _evallg(11), vZ, -1, -5, 1, -13, -22, -10, -9, -31, -10 }; /* -10*z^8 - 31*z^7 - 9*z^6 - 10*z^5 - 22*z^4 - 13*z^3 + z^2 - 5*z - 1 */
    2072             : static const long X1_35_s_d_7[10] = {
    2073             :   evaltyp(t_VECSMALL) | _evallg(10), vZ, 1, 0, 2, 8, 5, 2, 16, 13 }; /* 13*z^7 + 16*z^6 + 2*z^5 + 5*z^4 + 8*z^3 + 2*z^2 + 1 */
    2074             : static const long X1_35_s_d_8[9] = {
    2075             :   evaltyp(t_VECSMALL) | _evallg(9), vZ, 0, 0, -1, -1, 0, -3, -6 }; /* -6*z^6 - 3*z^5 - z^3 - z^2 */
    2076             : static const long X1_35_s_d_9[8] = {
    2077             :   evaltyp(t_VECSMALL) | _evallg(8), vZ, 0, 0, 0, 0, 0, 1 }; /* z^5 */
    2078             : static const long *X1_35_s_d[12] = {
    2079             :   (long *)(evaltyp(t_POL) | _evallg(12)), (long *)(evalvarn(0) | evalsigne(1)),
    2080             :   X1_35_s_d_0, X1_35_s_d_1, X1_35_s_d_2, X1_35_s_d_3, X1_35_s_d_4, X1_35_s_d_5, X1_35_s_d_6, X1_35_s_d_7, X1_35_s_d_8, X1_35_s_d_9
    2081             : };
    2082             : /* (z^7 - 2*z^6 + 2*z^5 - z^4)*u^8 + (4*z^8 - 4*z^7 + 4*z^5 - 4*z^4)*u^7 + (6*z^9 + 2*z^8 - 10*z^7 + 10*z^6 + z^5 - 13*z^4 + 4*z^3 - z^2)*u^6 + (4*z^10 + 10*z^9 - 10*z^8 + 24*z^6 - 36*z^5 + 2*z^4 + 2*z^3 - 2*z^2)*u^5 + (z^11 + 8*z^10 + z^9 - 9*z^8 + 27*z^7 - 9*z^6 - 55*z^5 + 34*z^4 - 13*z^3)*u^4 + (2*z^11 + 4*z^10 - 4*z^9 + 8*z^8 + 26*z^7 - 54*z^6 - 24*z^5 + 50*z^4 - 38*z^3 + 12*z^2 - 2*z)*u^3 + (z^11 + 15*z^8 - 3*z^7 - 43*z^6 + 9*z^5 + 29*z^4 - 39*z^3 + 22*z^2 - 7*z + 1)*u^2 + (2*z^9 + 6*z^8 - 10*z^7 - 14*z^6 + 18*z^5 - 10*z^4 + 2*z^3)*u + (z^9 - 3*z^7 + z^6) */
    2083             : static const long X1_36_crv_0[12] = {
    2084             :   evaltyp(t_VECSMALL) | _evallg(12), vZ, 0, 0, 0, 0, 0, 0, 1, -3, 0, 1 }; /* z^9 - 3*z^7 + z^6 */
    2085             : static const long X1_36_crv_1[12] = {
    2086             :   evaltyp(t_VECSMALL) | _evallg(12), vZ, 0, 0, 0, 2, -10, 18, -14, -10, 6, 2 }; /* 2*z^9 + 6*z^8 - 10*z^7 - 14*z^6 + 18*z^5 - 10*z^4 + 2*z^3 */
    2087             : static const long X1_36_crv_2[14] = {
    2088             :   evaltyp(t_VECSMALL) | _evallg(14), vZ, 1, -7, 22, -39, 29, 9, -43, -3, 15, 0, 0, 1 }; /* z^11 + 15*z^8 - 3*z^7 - 43*z^6 + 9*z^5 + 29*z^4 - 39*z^3 + 22*z^2 - 7*z + 1 */
    2089             : static const long X1_36_crv_3[14] = {
    2090             :   evaltyp(t_VECSMALL) | _evallg(14), vZ, 0, -2, 12, -38, 50, -24, -54, 26, 8, -4, 4, 2 }; /* 2*z^11 + 4*z^10 - 4*z^9 + 8*z^8 + 26*z^7 - 54*z^6 - 24*z^5 + 50*z^4 - 38*z^3 + 12*z^2 - 2*z */
    2091             : static const long X1_36_crv_4[14] = {
    2092             :   evaltyp(t_VECSMALL) | _evallg(14), vZ, 0, 0, 0, -13, 34, -55, -9, 27, -9, 1, 8, 1 }; /* z^11 + 8*z^10 + z^9 - 9*z^8 + 27*z^7 - 9*z^6 - 55*z^5 + 34*z^4 - 13*z^3 */
    2093             : static const long X1_36_crv_5[13] = {
    2094             :   evaltyp(t_VECSMALL) | _evallg(13), vZ, 0, 0, -2, 2, 2, -36, 24, 0, -10, 10, 4 }; /* 4*z^10 + 10*z^9 - 10*z^8 + 24*z^6 - 36*z^5 + 2*z^4 + 2*z^3 - 2*z^2 */
    2095             : static const long X1_36_crv_6[12] = {
    2096             :   evaltyp(t_VECSMALL) | _evallg(12), vZ, 0, 0, -1, 4, -13, 1, 10, -10, 2, 6 }; /* 6*z^9 + 2*z^8 - 10*z^7 + 10*z^6 + z^5 - 13*z^4 + 4*z^3 - z^2 */
    2097             : static const long X1_36_crv_7[11] = {
    2098             :   evaltyp(t_VECSMALL) | _evallg(11), vZ, 0, 0, 0, 0, -4, 4, 0, -4, 4 }; /* 4*z^8 - 4*z^7 + 4*z^5 - 4*z^4 */
    2099             : static const long X1_36_crv_8[10] = {
    2100             :   evaltyp(t_VECSMALL) | _evallg(10), vZ, 0, 0, 0, 0, -1, 2, -2, 1 }; /* z^7 - 2*z^6 + 2*z^5 - z^4 */
    2101             : static const long *X1_36_crv[11] = {
    2102             :   (long *)(evaltyp(t_POL) | _evallg(11)), (long *)(evalvarn(0) | evalsigne(1)),
    2103             :   X1_36_crv_0, X1_36_crv_1, X1_36_crv_2, X1_36_crv_3, X1_36_crv_4, X1_36_crv_5, X1_36_crv_6, X1_36_crv_7, X1_36_crv_8
    2104             : };
    2105             : /* (z^3 - z)*u^4 + (4*z^4 - 4*z^2)*u^3 + (5*z^5 + z^4 - 6*z^3 - z^2 - 1)*u^2 + (2*z^6 + 2*z^5 - 4*z^4 - 2*z^3 - 2*z)*u + (z^6 - z^5 - 2*z^4 + 3*z^3 - 5*z^2 + 3*z - 1) */
    2106             : static const long X1_36_r_n_0[9] = {
    2107             :   evaltyp(t_VECSMALL) | _evallg(9), vZ, -1, 3, -5, 3, -2, -1, 1 }; /* z^6 - z^5 - 2*z^4 + 3*z^3 - 5*z^2 + 3*z - 1 */
    2108             : static const long X1_36_r_n_1[9] = {
    2109             :   evaltyp(t_VECSMALL) | _evallg(9), vZ, 0, -2, 0, -2, -4, 2, 2 }; /* 2*z^6 + 2*z^5 - 4*z^4 - 2*z^3 - 2*z */
    2110             : static const long X1_36_r_n_2[8] = {
    2111             :   evaltyp(t_VECSMALL) | _evallg(8), vZ, -1, 0, -1, -6, 1, 5 }; /* 5*z^5 + z^4 - 6*z^3 - z^2 - 1 */
    2112             : static const long X1_36_r_n_3[7] = {
    2113             :   evaltyp(t_VECSMALL) | _evallg(7), vZ, 0, 0, -4, 0, 4 }; /* 4*z^4 - 4*z^2 */
    2114             : static const long X1_36_r_n_4[6] = {
    2115             :   evaltyp(t_VECSMALL) | _evallg(6), vZ, 0, -1, 0, 1 }; /* z^3 - z */
    2116             : static const long *X1_36_r_n[7] = {
    2117             :   (long *)(evaltyp(t_POL) | _evallg(7)), (long *)(evalvarn(0) | evalsigne(1)),
    2118             :   X1_36_r_n_0, X1_36_r_n_1, X1_36_r_n_2, X1_36_r_n_3, X1_36_r_n_4
    2119             : };
    2120             : /* (z^3 - z)*u^4 + (6*z^4 - 2*z^3 - 4*z^2 + z)*u^3 + (7*z^5 + 3*z^4 - 12*z^3 + 3*z^2 + z - 1)*u^2 + (2*z^6 + 5*z^5 - 5*z^4 - 8*z^3 + 9*z^2 - 5*z + 1)*u + (z^6 - 3*z^4 + z^3) */
    2121             : static const long X1_36_r_d_0[9] = {
    2122             :   evaltyp(t_VECSMALL) | _evallg(9), vZ, 0, 0, 0, 1, -3, 0, 1 }; /* z^6 - 3*z^4 + z^3 */
    2123             : static const long X1_36_r_d_1[9] = {
    2124             :   evaltyp(t_VECSMALL) | _evallg(9), vZ, 1, -5, 9, -8, -5, 5, 2 }; /* 2*z^6 + 5*z^5 - 5*z^4 - 8*z^3 + 9*z^2 - 5*z + 1 */
    2125             : static const long X1_36_r_d_2[8] = {
    2126             :   evaltyp(t_VECSMALL) | _evallg(8), vZ, -1, 1, 3, -12, 3, 7 }; /* 7*z^5 + 3*z^4 - 12*z^3 + 3*z^2 + z - 1 */
    2127             : static const long X1_36_r_d_3[7] = {
    2128             :   evaltyp(t_VECSMALL) | _evallg(7), vZ, 0, 1, -4, -2, 6 }; /* 6*z^4 - 2*z^3 - 4*z^2 + z */
    2129             : static const long X1_36_r_d_4[6] = {
    2130             :   evaltyp(t_VECSMALL) | _evallg(6), vZ, 0, -1, 0, 1 }; /* z^3 - z */
    2131             : static const long *X1_36_r_d[7] = {
    2132             :   (long *)(evaltyp(t_POL) | _evallg(7)), (long *)(evalvarn(0) | evalsigne(1)),
    2133             :   X1_36_r_d_0, X1_36_r_d_1, X1_36_r_d_2, X1_36_r_d_3, X1_36_r_d_4
    2134             : };
    2135             : /* (z^3 - z)*u^4 + (2*z^4 + 2*z^3 - 4*z^2 - z)*u^3 + (z^5 + 3*z^4 - 2*z^3 - 6*z^2 - 1)*u^2 + (z^5 + z^4 - 4*z^3 - 5*z^2 + z - 1)*u + (-2*z^3 - 2*z^2 + 2*z - 1) */
    2136             : static const long X1_36_s_n_0[6] = {
    2137             :   evaltyp(t_VECSMALL) | _evallg(6), vZ, -1, 2, -2, -2 }; /* -2*z^3 - 2*z^2 + 2*z - 1 */
    2138             : static const long X1_36_s_n_1[8] = {
    2139             :   evaltyp(t_VECSMALL) | _evallg(8), vZ, -1, 1, -5, -4, 1, 1 }; /* z^5 + z^4 - 4*z^3 - 5*z^2 + z - 1 */
    2140             : static const long X1_36_s_n_2[8] = {
    2141             :   evaltyp(t_VECSMALL) | _evallg(8), vZ, -1, 0, -6, -2, 3, 1 }; /* z^5 + 3*z^4 - 2*z^3 - 6*z^2 - 1 */
    2142             : static const long X1_36_s_n_3[7] = {
    2143             :   evaltyp(t_VECSMALL) | _evallg(7), vZ, 0, -1, -4, 2, 2 }; /* 2*z^4 + 2*z^3 - 4*z^2 - z */
    2144             : static const long X1_36_s_n_4[6] = {
    2145             :   evaltyp(t_VECSMALL) | _evallg(6), vZ, 0, -1, 0, 1 }; /* z^3 - z */
    2146             : static const long *X1_36_s_n[7] = {
    2147             :   (long *)(evaltyp(t_POL) | _evallg(7)), (long *)(evalvarn(0) | evalsigne(1)),
    2148             :   X1_36_s_n_0, X1_36_s_n_1, X1_36_s_n_2, X1_36_s_n_3, X1_36_s_n_4
    2149             : };
    2150             : /* (z^3 - z)*u^4 + (4*z^4 - 4*z^2)*u^3 + (3*z^5 + 5*z^4 - 8*z^3 - 2*z^2 + z - 1)*u^2 + (4*z^5 - 10*z^3 + 4*z^2 - 2*z)*u + (z^5 - z^4 - 4*z^3 + 3*z^2 - z) */
    2151             : static const long X1_36_s_d_0[8] = {
    2152             :   evaltyp(t_VECSMALL) | _evallg(8), vZ, 0, -1, 3, -4, -1, 1 }; /* z^5 - z^4 - 4*z^3 + 3*z^2 - z */
    2153             : static const long X1_36_s_d_1[8] = {
    2154             :   evaltyp(t_VECSMALL) | _evallg(8), vZ, 0, -2, 4, -10, 0, 4 }; /* 4*z^5 - 10*z^3 + 4*z^2 - 2*z */
    2155             : static const long X1_36_s_d_2[8] = {
    2156             :   evaltyp(t_VECSMALL) | _evallg(8), vZ, -1, 1, -2, -8, 5, 3 }; /* 3*z^5 + 5*z^4 - 8*z^3 - 2*z^2 + z - 1 */
    2157             : static const long X1_36_s_d_3[7] = {
    2158             :   evaltyp(t_VECSMALL) | _evallg(7), vZ, 0, 0, -4, 0, 4 }; /* 4*z^4 - 4*z^2 */
    2159             : static const long X1_36_s_d_4[6] = {
    2160             :   evaltyp(t_VECSMALL) | _evallg(6), vZ, 0, -1, 0, 1 }; /* z^3 - z */
    2161             : static const long *X1_36_s_d[7] = {
    2162             :   (long *)(evaltyp(t_POL) | _evallg(7)), (long *)(evalvarn(0) | evalsigne(1)),
    2163             :   X1_36_s_d_0, X1_36_s_d_1, X1_36_s_d_2, X1_36_s_d_3, X1_36_s_d_4
    2164             : };
    2165             : /* (z^4 + 4*z^3 + 6*z^2 + 4*z + 1)*x^18 + (4*z^6 + 27*z^5 + 61*z^4 + 53*z^3 + 3*z^2 - 20*z - 8)*x^17 + (6*z^8 + 64*z^7 + 227*z^6 + 318*z^5 + 86*z^4 - 186*z^3 - 123*z^2 + 28*z + 28)*x^16 + (4*z^10 + 70*z^9 + 390*z^8 + 899*z^7 + 697*z^6 - 460*z^5 - 878*z^4 - 71*z^3 + 299*z^2 + 18*z - 56)*x^15 + (z^12 + 36*z^11 + 334*z^10 + 1256*z^9 + 1944*z^8 + 227*z^7 - 2560*z^6 - 1975*z^5 + 530*z^4 + 635*z^3 - 205*z^2 - 65*z + 70)*x^14 + (7*z^13 + 137*z^12 + 885*z^11 + 2414*z^10 + 2085*z^9 - 2931*z^8 - 6951*z^7 - 2982*z^6 + 2372*z^5 + 2034*z^4 + 306*z^3 + 38*z^2 - 50*z - 56)*x^13 + (21*z^14 + 294*z^13 + 1420*z^12 + 2579*z^11 - 870*z^10 - 9749*z^9 - 11481*z^8 + 664*z^7 + 10483*z^6 + 6962*z^5 - 527*z^4 - 2730*z^3 - 733*z^2 + 322*z + 28)*x^12 + (35*z^15 + 363*z^14 + 1210*z^13 + 414*z^12 - 6515*z^11 - 14529*z^10 - 6010*z^9 + 16913*z^8 + 23552*z^7 + 4413*z^6 - 13117*z^5 - 8675*z^4 + 2488*z^3 + 2270*z^2 - 494*z - 8)*x^11 + (26*z^16 + 184*z^15 + 129*z^14 - 2320*z^13 - 8129*z^12 - 7355*z^11 + 12096*z^10 + 31592*z^9 + 16424*z^8 - 20987*z^7 - 29776*z^6 - 1252*z^5 + 14573*z^4 + 1991*z^3 - 3145*z^2 + 412*z + 1)*x^10 + (-z^18 - 5*z^17 - 52*z^16 - 501*z^15 - 2023*z^14 - 2681*z^13 + 4715*z^12 + 19581*z^11 + 18001*z^10 - 14660*z^9 - 40593*z^8 - 16842*z^7 + 25005*z^6 + 20440*z^5 - 8210*z^4 - 5975*z^3 + 2525*z^2 - 210*z)*x^9 + (-z^19 - 10*z^18 - 52*z^17 - 172*z^16 - 162*z^15 + 1311*z^14 + 5622*z^13 + 7317*z^12 - 5435*z^11 - 25859*z^10 - 20839*z^9 + 16281*z^8 + 34475*z^7 + 2999*z^6 - 20366*z^5 - 2065*z^4 + 5725*z^3 - 1264*z^2 + 66*z)*x^8 + (3*z^18 + 32*z^17 + 180*z^16 + 595*z^15 + 789*z^14 - 1585*z^13 - 7639*z^12 - 9008*z^11 + 5183*z^10 + 22272*z^9 + 12561*z^8 - 16256*z^7 - 16253*z^6 + 7183*z^5 + 5741*z^4 - 3053*z^3 + 395*z^2 - 12*z)*x^7 + (-3*z^17 - 39*z^16 - 243*z^15 - 807*z^14 - 1079*z^13 + 1278*z^12 + 6267*z^11 + 6155*z^10 - 4834*z^9 - 13100*z^8 - 1905*z^7 + 9941*z^6 + 1372*z^5 - 3726*z^4 + 978*z^3 - 72*z^2 + z)*x^6 + (z^16 + 22*z^15 + 166*z^14 + 564*z^13 + 678*z^12 - 891*z^11 - 3469*z^10 - 2293*z^9 + 3656*z^8 + 4495*z^7 - 2053*z^6 - 2249*z^5 + 1275*z^4 - 180*z^3 + 6*z^2)*x^5 + (-5*z^14 - 60*z^13 - 210*z^12 - 180*z^11 + 555*z^10 + 1350*z^9 + 185*z^8 - 1655*z^7 - 400*z^6 + 910*z^5 - 240*z^4 + 15*z^3)*x^4 + (10*z^12 + 35*z^11 - 15*z^10 - 265*z^9 - 325*z^8 + 201*z^7 + 321*z^6 - 180*z^5 + 20*z^4)*x^3 + (26*z^9 + 77*z^8 + 30*z^7 - 72*z^6 + 15*z^5)*x^2 + (-z^9 - 7*z^8 - 12*z^7 + 6*z^6)*x + z^7 */
    2166             : static const long X1_37_crv_0[10] = {
    2167             :   evaltyp(t_VECSMALL) | _evallg(10), vZ, 0, 0, 0, 0, 0, 0, 0, 1 }; /* z^7 */
    2168             : static const long X1_37_crv_1[12] = {
    2169             :   evaltyp(t_VECSMALL) | _evallg(12), vZ, 0, 0, 0, 0, 0, 0, 6, -12, -7, -1 }; /* -z^9 - 7*z^8 - 12*z^7 + 6*z^6 */
    2170             : static const long X1_37_crv_2[12] = {
    2171             :   evaltyp(t_VECSMALL) | _evallg(12), vZ, 0, 0, 0, 0, 0, 15, -72, 30, 77, 26 }; /* 26*z^9 + 77*z^8 + 30*z^7 - 72*z^6 + 15*z^5 */
    2172             : static const long X1_37_crv_3[15] = {
    2173             :   evaltyp(t_VECSMALL) | _evallg(15), vZ, 0, 0, 0, 0, 20, -180, 321, 201, -325, -265, -15, 35, 10 }; /* 10*z^12 + 35*z^11 - 15*z^10 - 265*z^9 - 325*z^8 + 201*z^7 + 321*z^6 - 180*z^5 + 20*z^4 */
    2174             : static const long X1_37_crv_4[17] = {
    2175             :   evaltyp(t_VECSMALL) | _evallg(17), vZ, 0, 0, 0, 15, -240, 910, -400, -1655, 185, 1350, 555, -180, -210, -60, -5 }; /* -5*z^14 - 60*z^13 - 210*z^12 - 180*z^11 + 555*z^10 + 1350*z^9 + 185*z^8 - 1655*z^7 - 400*z^6 + 910*z^5 - 240*z^4 + 15*z^3 */
    2176             : static const long X1_37_crv_5[19] = {
    2177             :   evaltyp(t_VECSMALL) | _evallg(19), vZ, 0, 0, 6, -180, 1275, -2249, -2053, 4495, 3656, -2293, -3469, -891, 678, 564, 166, 22, 1 }; /* z^16 + 22*z^15 + 166*z^14 + 564*z^13 + 678*z^12 - 891*z^11 - 3469*z^10 - 2293*z^9 + 3656*z^8 + 4495*z^7 - 2053*z^6 - 2249*z^5 + 1275*z^4 - 180*z^3 + 6*z^2 */
    2178             : static const long X1_37_crv_6[20] = {
    2179             :   evaltyp(t_VECSMALL) | _evallg(20), vZ, 0, 1, -72, 978, -3726, 1372, 9941, -1905, -13100, -4834, 6155, 6267, 1278, -1079, -807, -243, -39, -3 }; /* -3*z^17 - 39*z^16 - 243*z^15 - 807*z^14 - 1079*z^13 + 1278*z^12 + 6267*z^11 + 6155*z^10 - 4834*z^9 - 13100*z^8 - 1905*z^7 + 9941*z^6 + 1372*z^5 - 3726*z^4 + 978*z^3 - 72*z^2 + z */
    2180             : static const long X1_37_crv_7[21] = {
    2181             :   evaltyp(t_VECSMALL) | _evallg(21), vZ, 0, -12, 395, -3053, 5741, 7183, -16253, -16256, 12561, 22272, 5183, -9008, -7639, -1585, 789, 595, 180, 32, 3 }; /* 3*z^18 + 32*z^17 + 180*z^16 + 595*z^15 + 789*z^14 - 1585*z^13 - 7639*z^12 - 9008*z^11 + 5183*z^10 + 22272*z^9 + 12561*z^8 - 16256*z^7 - 16253*z^6 + 7183*z^5 + 5741*z^4 - 3053*z^3 + 395*z^2 - 12*z */
    2182             : static const long X1_37_crv_8[22] = {
    2183             :   evaltyp(t_VECSMALL) | _evallg(22), vZ, 0, 66, -1264, 5725, -2065, -20366, 2999, 34475, 16281, -20839, -25859, -5435, 7317, 5622, 1311, -162, -172, -52, -10, -1 }; /* -z^19 - 10*z^18 - 52*z^17 - 172*z^16 - 162*z^15 + 1311*z^14 + 5622*z^13 + 7317*z^12 - 5435*z^11 - 25859*z^10 - 20839*z^9 + 16281*z^8 + 34475*z^7 + 2999*z^6 - 20366*z^5 - 2065*z^4 + 5725*z^3 - 1264*z^2 + 66*z */
    2184             : static const long X1_37_crv_9[21] = {
    2185             :   evaltyp(t_VECSMALL) | _evallg(21), vZ, 0, -210, 2525, -5975, -8210, 20440, 25005, -16842, -40593, -14660, 18001, 19581, 4715, -2681, -2023, -501, -52, -5, -1 }; /* -z^18 - 5*z^17 - 52*z^16 - 501*z^15 - 2023*z^14 - 2681*z^13 + 4715*z^12 + 19581*z^11 + 18001*z^10 - 14660*z^9 - 40593*z^8 - 16842*z^7 + 25005*z^6 + 20440*z^5 - 8210*z^4 - 5975*z^3 + 2525*z^2 - 210*z */
    2186             : static const long X1_37_crv_10[19] = {
    2187             :   evaltyp(t_VECSMALL) | _evallg(19), vZ, 1, 412, -3145, 1991, 14573, -1252, -29776, -20987, 16424, 31592, 12096, -7355, -8129, -2320, 129, 184, 26 }; /* 26*z^16 + 184*z^15 + 129*z^14 - 2320*z^13 - 8129*z^12 - 7355*z^11 + 12096*z^10 + 31592*z^9 + 16424*z^8 - 20987*z^7 - 29776*z^6 - 1252*z^5 + 14573*z^4 + 1991*z^3 - 3145*z^2 + 412*z + 1 */
    2188             : static const long X1_37_crv_11[18] = {
    2189             :   evaltyp(t_VECSMALL) | _evallg(18), vZ, -8, -494, 2270, 2488, -8675, -13117, 4413, 23552, 16913, -6010, -14529, -6515, 414, 1210, 363, 35 }; /* 35*z^15 + 363*z^14 + 1210*z^13 + 414*z^12 - 6515*z^11 - 14529*z^10 - 6010*z^9 + 16913*z^8 + 23552*z^7 + 4413*z^6 - 13117*z^5 - 8675*z^4 + 2488*z^3 + 2270*z^2 - 494*z - 8 */
    2190             : static const long X1_37_crv_12[17] = {
    2191             :   evaltyp(t_VECSMALL) | _evallg(17), vZ, 28, 322, -733, -2730, -527, 6962, 10483, 664, -11481, -9749, -870, 2579, 1420, 294, 21 }; /* 21*z^14 + 294*z^13 + 1420*z^12 + 2579*z^11 - 870*z^10 - 9749*z^9 - 11481*z^8 + 664*z^7 + 10483*z^6 + 6962*z^5 - 527*z^4 - 2730*z^3 - 733*z^2 + 322*z + 28 */
    2192             : static const long X1_37_crv_13[16] = {
    2193             :   evaltyp(t_VECSMALL) | _evallg(16), vZ, -56, -50, 38, 306, 2034, 2372, -2982, -6951, -2931, 2085, 2414, 885, 137, 7 }; /* 7*z^13 + 137*z^12 + 885*z^11 + 2414*z^10 + 2085*z^9 - 2931*z^8 - 6951*z^7 - 2982*z^6 + 2372*z^5 + 2034*z^4 + 306*z^3 + 38*z^2 - 50*z - 56 */
    2194             : static const long X1_37_crv_14[15] = {
    2195             :   evaltyp(t_VECSMALL) | _evallg(15), vZ, 70, -65, -205, 635, 530, -1975, -2560, 227, 1944, 1256, 334, 36, 1 }; /* z^12 + 36*z^11 + 334*z^10 + 1256*z^9 + 1944*z^8 + 227*z^7 - 2560*z^6 - 1975*z^5 + 530*z^4 + 635*z^3 - 205*z^2 - 65*z + 70 */
    2196             : static const long X1_37_crv_15[13] = {
    2197             :   evaltyp(t_VECSMALL) | _evallg(13), vZ, -56, 18, 299, -71, -878, -460, 697, 899, 390, 70, 4 }; /* 4*z^10 + 70*z^9 + 390*z^8 + 899*z^7 + 697*z^6 - 460*z^5 - 878*z^4 - 71*z^3 + 299*z^2 + 18*z - 56 */
    2198             : static const long X1_37_crv_16[11] = {
    2199             :   evaltyp(t_VECSMALL) | _evallg(11), vZ, 28, 28, -123, -186, 86, 318, 227, 64, 6 }; /* 6*z^8 + 64*z^7 + 227*z^6 + 318*z^5 + 86*z^4 - 186*z^3 - 123*z^2 + 28*z + 28 */
    2200             : static const long X1_37_crv_17[9] = {
    2201             :   evaltyp(t_VECSMALL) | _evallg(9), vZ, -8, -20, 3, 53, 61, 27, 4 }; /* 4*z^6 + 27*z^5 + 61*z^4 + 53*z^3 + 3*z^2 - 20*z - 8 */
    2202             : static const long X1_37_crv_18[7] = {
    2203             :   evaltyp(t_VECSMALL) | _evallg(7), vZ, 1, 4, 6, 4, 1 }; /* z^4 + 4*z^3 + 6*z^2 + 4*z + 1 */
    2204             : static const long *X1_37_crv[21] = {
    2205             :   (long *)(evaltyp(t_POL) | _evallg(21)), (long *)(evalvarn(0) | evalsigne(1)),
    2206             :   X1_37_crv_0, X1_37_crv_1, X1_37_crv_2, X1_37_crv_3, X1_37_crv_4, X1_37_crv_5, X1_37_crv_6, X1_37_crv_7, X1_37_crv_8, X1_37_crv_9, X1_37_crv_10, X1_37_crv_11, X1_37_crv_12, X1_37_crv_13, X1_37_crv_14, X1_37_crv_15, X1_37_crv_16, X1_37_crv_17, X1_37_crv_18
    2207             : };
    2208             : /* (z^2 + z + 1)*x - 1 */
    2209             : static const long X1_37_r_n_1[5] = {
    2210             :   evaltyp(t_VECSMALL) | _evallg(5), vZ, 1, 1, 1 }; /* z^2 + z + 1 */
    2211             : static const long *X1_37_r_n[4] = {
    2212             :   (long *)(evaltyp(t_POL) | _evallg(4)), (long *)(evalvarn(0) | evalsigne(1)),
    2213             :   FLX_m1, X1_37_r_n_1
    2214             : };
    2215             : /* x + (z^2 + z - 1) */
    2216             : static const long X1_37_r_d_0[5] = {
    2217             :   evaltyp(t_VECSMALL) | _evallg(5), vZ, -1, 1, 1 }; /* z^2 + z - 1 */
    2218             : static const long *X1_37_r_d[4] = {
    2219             :   (long *)(evaltyp(t_POL) | _evallg(4)), (long *)(evalvarn(0) | evalsigne(1)),
    2220             :   X1_37_r_d_0, FLX_1
    2221             : };
    2222             : /* (z + 1)*x - 1 */
    2223             : static const long X1_37_s_n_1[4] = {
    2224             :   evaltyp(t_VECSMALL) | _evallg(4), vZ, 1, 1 }; /* z + 1 */
    2225             : static const long *X1_37_s_n[4] = {
    2226             :   (long *)(evaltyp(t_POL) | _evallg(4)), (long *)(evalvarn(0) | evalsigne(1)),
    2227             :   FLX_m1, X1_37_s_n_1
    2228             : };
    2229             : /* x + (z - 1) */
    2230             : static const long X1_37_s_d_0[4] = {
    2231             :   evaltyp(t_VECSMALL) | _evallg(4), vZ, -1, 1 }; /* z - 1 */
    2232             : static const long *X1_37_s_d[4] = {
    2233             :   (long *)(evaltyp(t_POL) | _evallg(4)), (long *)(evalvarn(0) | evalsigne(1)),
    2234             :   X1_37_s_d_0, FLX_1
    2235             : };
    2236             : /* z^3*u^12 + (z^6 + 4*z^4 + 10*z^3 - z^2 + z)*u^11 + (4*z^7 + 10*z^6 + 2*z^5 + 39*z^4 + 41*z^3 - 5*z^2 + 7*z - 1)*u^10 + (z^9 + 4*z^8 + 38*z^7 + 32*z^6 + 26*z^5 + 167*z^4 + 88*z^3 - 10*z^2 + 17*z - 6)*u^9 + (4*z^10 + 3*z^9 + 39*z^8 + 141*z^7 + 28*z^6 + 144*z^5 + 396*z^4 + 94*z^3 - 18*z^2 + 12*z - 15)*u^8 + (6*z^11 + 14*z^10 + 173*z^8 + 234*z^7 - 44*z^6 + 421*z^5 + 545*z^4 - 4*z^3 - 50*z^2 - 17*z - 20)*u^7 + (4*z^12 + 25*z^11 - z^10 + 41*z^9 + 368*z^8 + 91*z^7 - 39*z^6 + 691*z^5 + 383*z^4 - 168*z^3 - 91*z^2 - 38*z - 15)*u^6 + (z^13 + 17*z^12 + 30*z^11 - 33*z^10 + 171*z^9 + 326*z^8 - 163*z^7 + 166*z^6 + 594*z^5 + 24*z^4 - 236*z^3 - 82*z^2 - 28*z - 6)*u^5 + (4*z^13 + 26*z^12 + 4*z^11 - 7*z^10 + 202*z^9 + 61*z^8 - 135*z^7 + 249*z^6 + 210*z^5 - 153*z^4 - 146*z^3 - 34*z^2 - 9*z - 1)*u^4 + (6*z^13 + 17*z^12 - 10*z^11 + 27*z^10 + 78*z^9 - 34*z^8 - 10*z^7 + 107*z^6 - 17*z^5 - 90*z^4 - 39*z^3 - 5*z^2 - z)*u^3 + (4*z^13 + 4*z^12 - 3*z^11 + 12*z^10 + 10*z^9 - 9*z^8 + 6*z^7 + 6*z^6 - 25*z^5 - 15*z^4 - 3*z^3)*u^2 + (z^13 + z^10 + z^9 - 3*z^7 - 3*z^6 - 3*z^5)*u - z^7 */
    2237             : static const long X1_38_crv_0[10] = {
    2238             :   evaltyp(t_VECSMALL) | _evallg(10), vZ, 0, 0, 0, 0, 0, 0, 0, -1 }; /* -z^7 */
    2239             : static const long X1_38_crv_1[16] = {
    2240             :   evaltyp(t_VECSMALL) | _evallg(16), vZ, 0, 0, 0, 0, 0, -3, -3, -3, 0, 1, 1, 0, 0, 1 }; /* z^13 + z^10 + z^9 - 3*z^7 - 3*z^6 - 3*z^5 */
    2241             : static const long X1_38_crv_2[16] = {
    2242             :   evaltyp(t_VECSMALL) | _evallg(16), vZ, 0, 0, 0, -3, -15, -25, 6, 6, -9, 10, 12, -3, 4, 4 }; /* 4*z^13 + 4*z^12 - 3*z^11 + 12*z^10 + 10*z^9 - 9*z^8 + 6*z^7 + 6*z^6 - 25*z^5 - 15*z^4 - 3*z^3 */
    2243             : static const long X1_38_crv_3[16] = {
    2244             :   evaltyp(t_VECSMALL) | _evallg(16), vZ, 0, -1, -5, -39, -90, -17, 107, -10, -34, 78, 27, -10, 17, 6 }; /* 6*z^13 + 17*z^12 - 10*z^11 + 27*z^10 + 78*z^9 - 34*z^8 - 10*z^7 + 107*z^6 - 17*z^5 - 90*z^4 - 39*z^3 - 5*z^2 - z */
    2245             : static const long X1_38_crv_4[16] = {
    2246             :   evaltyp(t_VECSMALL) | _evallg(16), vZ, -1, -9, -34, -146, -153, 210, 249, -135, 61, 202, -7, 4, 26, 4 }; /* 4*z^13 + 26*z^12 + 4*z^11 - 7*z^10 + 202*z^9 + 61*z^8 - 135*z^7 + 249*z^6 + 210*z^5 - 153*z^4 - 146*z^3 - 34*z^2 - 9*z - 1 */
    2247             : static const long X1_38_crv_5[16] = {
    2248             :   evaltyp(t_VECSMALL) | _evallg(16), vZ, -6, -28, -82, -236, 24, 594, 166, -163, 326, 171, -33, 30, 17, 1 }; /* z^13 + 17*z^12 + 30*z^11 - 33*z^10 + 171*z^9 + 326*z^8 - 163*z^7 + 166*z^6 + 594*z^5 + 24*z^4 - 236*z^3 - 82*z^2 - 28*z - 6 */
    2249             : static const long X1_38_crv_6[15] = {
    2250             :   evaltyp(t_VECSMALL) | _evallg(15), vZ, -15, -38, -91, -168, 383, 691, -39, 91, 368, 41, -1, 25, 4 }; /* 4*z^12 + 25*z^11 - z^10 + 41*z^9 + 368*z^8 + 91*z^7 - 39*z^6 + 691*z^5 + 383*z^4 - 168*z^3 - 91*z^2 - 38*z - 15 */
    2251             : static const long X1_38_crv_7[14] = {
    2252             :   evaltyp(t_VECSMALL) | _evallg(14), vZ, -20, -17, -50, -4, 545, 421, -44, 234, 173, 0, 14, 6 }; /* 6*z^11 + 14*z^10 + 173*z^8 + 234*z^7 - 44*z^6 + 421*z^5 + 545*z^4 - 4*z^3 - 50*z^2 - 17*z - 20 */
    2253             : static const long X1_38_crv_8[13] = {
    2254             :   evaltyp(t_VECSMALL) | _evallg(13), vZ, -15, 12, -18, 94, 396, 144, 28, 141, 39, 3, 4 }; /* 4*z^10 + 3*z^9 + 39*z^8 + 141*z^7 + 28*z^6 + 144*z^5 + 396*z^4 + 94*z^3 - 18*z^2 + 12*z - 15 */
    2255             : static const long X1_38_crv_9[12] = {
    2256             :   evaltyp(t_VECSMALL) | _evallg(12), vZ, -6, 17, -10, 88, 167, 26, 32, 38, 4, 1 }; /* z^9 + 4*z^8 + 38*z^7 + 32*z^6 + 26*z^5 + 167*z^4 + 88*z^3 - 10*z^2 + 17*z - 6 */
    2257             : static const long X1_38_crv_10[10] = {
    2258             :   evaltyp(t_VECSMALL) | _evallg(10), vZ, -1, 7, -5, 41, 39, 2, 10, 4 }; /* 4*z^7 + 10*z^6 + 2*z^5 + 39*z^4 + 41*z^3 - 5*z^2 + 7*z - 1 */
    2259             : static const long X1_38_crv_11[9] = {
    2260             :   evaltyp(t_VECSMALL) | _evallg(9), vZ, 0, 1, -1, 10, 4, 0, 1 }; /* z^6 + 4*z^4 + 10*z^3 - z^2 + z */
    2261             : static const long X1_38_crv_12[6] = {
    2262             :   evaltyp(t_VECSMALL) | _evallg(6), vZ, 0, 0, 0, 1 }; /* z^3 */
    2263             : static const long *X1_38_crv[15] = {
    2264             :   (long *)(evaltyp(t_POL) | _evallg(15)), (long *)(evalvarn(0) | evalsigne(1)),
    2265             :   X1_38_crv_0, X1_38_crv_1, X1_38_crv_2, X1_38_crv_3, X1_38_crv_4, X1_38_crv_5, X1_38_crv_6, X1_38_crv_7, X1_38_crv_8, X1_38_crv_9, X1_38_crv_10, X1_38_crv_11, X1_38_crv_12
    2266             : };
    2267             : /* (z^3 - z^2)*u^10 + (z^5 + 4*z^4 + 2*z^3 - 8*z^2 + 2*z)*u^9 + (6*z^6 + 10*z^5 + 14*z^4 - 13*z^3 - 17*z^2 + 9*z - 1)*u^8 + (15*z^7 + 25*z^6 + 22*z^5 + 10*z^4 - 45*z^3 - 11*z^2 + 13*z - 2)*u^7 + (21*z^8 + 46*z^7 + 21*z^6 + 33*z^5 - 20*z^4 - 63*z^3 + 5*z^2 + 12*z - 1)*u^6 + (17*z^9 + 58*z^8 + 14*z^7 + 25*z^6 + 39*z^5 - 67*z^4 - 42*z^3 + 21*z^2 + 10*z)*u^5 + (7*z^10 + 45*z^9 + 24*z^8 - 27*z^7 + 75*z^6 - 9*z^5 - 71*z^4 + 23*z^2 + 4*z)*u^4 + (z^11 + 17*z^10 + 30*z^9 - 32*z^8 + 9*z^7 + 68*z^6 - 49*z^5 - 32*z^4 + 17*z^3 + 8*z^2)*u^3 + (2*z^11 + 12*z^10 - 2*z^9 - 24*z^8 + 33*z^7 + 16*z^6 - 38*z^5 - z^4 + 6*z^3)*u^2 + (z^11 + 2*z^10 - 6*z^9 - z^8 + 13*z^7 - 6*z^6 - 9*z^5 + 2*z^4)*u + (-z^9 + z^8 + z^7 - 2*z^6) */
    2268             : static const long X1_38_r_n_0[12] = {
    2269             :   evaltyp(t_VECSMALL) | _evallg(12), vZ, 0, 0, 0, 0, 0, 0, -2, 1, 1, -1 }; /* -z^9 + z^8 + z^7 - 2*z^6 */
    2270             : static const long X1_38_r_n_1[14] = {
    2271             :   evaltyp(t_VECSMALL) | _evallg(14), vZ, 0, 0, 0, 0, 2, -9, -6, 13, -1, -6, 2, 1 }; /* z^11 + 2*z^10 - 6*z^9 - z^8 + 13*z^7 - 6*z^6 - 9*z^5 + 2*z^4 */
    2272             : static const long X1_38_r_n_2[14] = {
    2273             :   evaltyp(t_VECSMALL) | _evallg(14), vZ, 0, 0, 0, 6, -1, -38, 16, 33, -24, -2, 12, 2 }; /* 2*z^11 + 12*z^10 - 2*z^9 - 24*z^8 + 33*z^7 + 16*z^6 - 38*z^5 - z^4 + 6*z^3 */
    2274             : static const long X1_38_r_n_3[14] = {
    2275             :   evaltyp(t_VECSMALL) | _evallg(14), vZ, 0, 0, 8, 17, -32, -49, 68, 9, -32, 30, 17, 1 }; /* z^11 + 17*z^10 + 30*z^9 - 32*z^8 + 9*z^7 + 68*z^6 - 49*z^5 - 32*z^4 + 17*z^3 + 8*z^2 */
    2276             : static const long X1_38_r_n_4[13] = {
    2277             :   evaltyp(t_VECSMALL) | _evallg(13), vZ, 0, 4, 23, 0, -71, -9, 75, -27, 24, 45, 7 }; /* 7*z^10 + 45*z^9 + 24*z^8 - 27*z^7 + 75*z^6 - 9*z^5 - 71*z^4 + 23*z^2 + 4*z */
    2278             : static const long X1_38_r_n_5[12] = {
    2279             :   evaltyp(t_VECSMALL) | _evallg(12), vZ, 0, 10, 21, -42, -67, 39, 25, 14, 58, 17 }; /* 17*z^9 + 58*z^8 + 14*z^7 + 25*z^6 + 39*z^5 - 67*z^4 - 42*z^3 + 21*z^2 + 10*z */
    2280             : static const long X1_38_r_n_6[11] = {
    2281             :   evaltyp(t_VECSMALL) | _evallg(11), vZ, -1, 12, 5, -63, -20, 33, 21, 46, 21 }; /* 21*z^8 + 46*z^7 + 21*z^6 + 33*z^5 - 20*z^4 - 63*z^3 + 5*z^2 + 12*z - 1 */
    2282             : static const long X1_38_r_n_7[10] = {
    2283             :   evaltyp(t_VECSMALL) | _evallg(10), vZ, -2, 13, -11, -45, 10, 22, 25, 15 }; /* 15*z^7 + 25*z^6 + 22*z^5 + 10*z^4 - 45*z^3 - 11*z^2 + 13*z - 2 */
    2284             : static const long X1_38_r_n_8[9] = {
    2285             :   evaltyp(t_VECSMALL) | _evallg(9), vZ, -1, 9, -17, -13, 14, 10, 6 }; /* 6*z^6 + 10*z^5 + 14*z^4 - 13*z^3 - 17*z^2 + 9*z - 1 */
    2286             : static const long X1_38_r_n_9[8] = {
    2287             :   evaltyp(t_VECSMALL) | _evallg(8), vZ, 0, 2, -8, 2, 4, 1 }; /* z^5 + 4*z^4 + 2*z^3 - 8*z^2 + 2*z */
    2288             : static const long X1_38_r_n_10[6] = {
    2289             :   evaltyp(t_VECSMALL) | _evallg(6), vZ, 0, 0, -1, 1 }; /* z^3 - z^2 */
    2290             : static const long *X1_38_r_n[13] = {
    2291             :   (long *)(evaltyp(t_POL) | _evallg(13)), (long *)(evalvarn(0) | evalsigne(1)),
    2292             :   X1_38_r_n_0, X1_38_r_n_1, X1_38_r_n_2, X1_38_r_n_3, X1_38_r_n_4, X1_38_r_n_5, X1_38_r_n_6, X1_38_r_n_7, X1_38_r_n_8, X1_38_r_n_9, X1_38_r_n_10
    2293             : };
    2294             : /* (z^3 - z^2)*u^10 + (z^5 + 5*z^4 + z^3 - 8*z^2 + 2*z)*u^9 + (7*z^6 + 12*z^5 + 17*z^4 - 20*z^3 - 15*z^2 + 9*z - 1)*u^8 + (19*z^7 + 28*z^6 + 30*z^5 + 10*z^4 - 61*z^3 - 3*z^2 + 13*z - 2)*u^7 + (26*z^8 + 58*z^7 + 19*z^6 + 54*z^5 - 32*z^4 - 82*z^3 + 20*z^2 + 12*z - 1)*u^6 + (19*z^9 + 74*z^8 + 21*z^7 + 16*z^6 + 75*z^5 - 93*z^4 - 53*z^3 + 36*z^2 + 10*z)*u^5 + (7*z^10 + 51*z^9 + 43*z^8 - 41*z^7 + 72*z^6 + 35*z^5 - 106*z^4 - 2*z^3 + 31*z^2 + 4*z)*u^4 + (z^11 + 17*z^10 + 37*z^9 - 26*z^8 - 14*z^7 + 90*z^6 - 33*z^5 - 59*z^4 + 19*z^3 + 10*z^2)*u^3 + (2*z^11 + 12*z^10 + z^9 - 29*z^8 + 31*z^7 + 27*z^6 - 41*z^5 - 10*z^4 + 8*z^3)*u^2 + (z^11 + 2*z^10 - 6*z^9 - 2*z^8 + 14*z^7 - 5*z^6 - 11*z^5 + 2*z^4)*u + (-z^9 + z^8 + z^7 - 2*z^6) */
    2295             : static const long X1_38_r_d_0[12] = {
    2296             :   evaltyp(t_VECSMALL) | _evallg(12), vZ, 0, 0, 0, 0, 0, 0, -2, 1, 1, -1 }; /* -z^9 + z^8 + z^7 - 2*z^6 */
    2297             : static const long X1_38_r_d_1[14] = {
    2298             :   evaltyp(t_VECSMALL) | _evallg(14), vZ, 0, 0, 0, 0, 2, -11, -5, 14, -2, -6, 2, 1 }; /* z^11 + 2*z^10 - 6*z^9 - 2*z^8 + 14*z^7 - 5*z^6 - 11*z^5 + 2*z^4 */
    2299             : static const long X1_38_r_d_2[14] = {
    2300             :   evaltyp(t_VECSMALL) | _evallg(14), vZ, 0, 0, 0, 8, -10, -41, 27, 31, -29, 1, 12, 2 }; /* 2*z^11 + 12*z^10 + z^9 - 29*z^8 + 31*z^7 + 27*z^6 - 41*z^5 - 10*z^4 + 8*z^3 */
    2301             : static const long X1_38_r_d_3[14] = {
    2302             :   evaltyp(t_VECSMALL) | _evallg(14), vZ, 0, 0, 10, 19, -59, -33, 90, -14, -26, 37, 17, 1 }; /* z^11 + 17*z^10 + 37*z^9 - 26*z^8 - 14*z^7 + 90*z^6 - 33*z^5 - 59*z^4 + 19*z^3 + 10*z^2 */
    2303             : static const long X1_38_r_d_4[13] = {
    2304             :   evaltyp(t_VECSMALL) | _evallg(13), vZ, 0, 4, 31, -2, -106, 35, 72, -41, 43, 51, 7 }; /* 7*z^10 + 51*z^9 + 43*z^8 - 41*z^7 + 72*z^6 + 35*z^5 - 106*z^4 - 2*z^3 + 31*z^2 + 4*z */
    2305             : static const long X1_38_r_d_5[12] = {
    2306             :   evaltyp(t_VECSMALL) | _evallg(12), vZ, 0, 10, 36, -53, -93, 75, 16, 21, 74, 19 }; /* 19*z^9 + 74*z^8 + 21*z^7 + 16*z^6 + 75*z^5 - 93*z^4 - 53*z^3 + 36*z^2 + 10*z */
    2307             : static const long X1_38_r_d_6[11] = {
    2308             :   evaltyp(t_VECSMALL) | _evallg(11), vZ, -1, 12, 20, -82, -32, 54, 19, 58, 26 }; /* 26*z^8 + 58*z^7 + 19*z^6 + 54*z^5 - 32*z^4 - 82*z^3 + 20*z^2 + 12*z - 1 */
    2309             : static const long X1_38_r_d_7[10] = {
    2310             :   evaltyp(t_VECSMALL) | _evallg(10), vZ, -2, 13, -3, -61, 10, 30, 28, 19 }; /* 19*z^7 + 28*z^6 + 30*z^5 + 10*z^4 - 61*z^3 - 3*z^2 + 13*z - 2 */
    2311             : static const long X1_38_r_d_8[9] = {
    2312             :   evaltyp(t_VECSMALL) | _evallg(9), vZ, -1, 9, -15, -20, 17, 12, 7 }; /* 7*z^6 + 12*z^5 + 17*z^4 - 20*z^3 - 15*z^2 + 9*z - 1 */
    2313             : static const long X1_38_r_d_9[8] = {
    2314             :   evaltyp(t_VECSMALL) | _evallg(8), vZ, 0, 2, -8, 1, 5, 1 }; /* z^5 + 5*z^4 + z^3 - 8*z^2 + 2*z */
    2315             : static const long X1_38_r_d_10[6] = {
    2316             :   evaltyp(t_VECSMALL) | _evallg(6), vZ, 0, 0, -1, 1 }; /* z^3 - z^2 */
    2317             : static const long *X1_38_r_d[13] = {
    2318             :   (long *)(evaltyp(t_POL) | _evallg(13)), (long *)(evalvarn(0) | evalsigne(1)),
    2319             :   X1_38_r_d_0, X1_38_r_d_1, X1_38_r_d_2, X1_38_r_d_3, X1_38_r_d_4, X1_38_r_d_5, X1_38_r_d_6, X1_38_r_d_7, X1_38_r_d_8, X1_38_r_d_9, X1_38_r_d_10
    2320             : };
    2321             : /* (z^3 - z^2)*u^9 + (z^5 + 3*z^4 + 3*z^3 - 8*z^2 + 2*z)*u^8 + (5*z^6 + 7*z^5 + 12*z^4 - 6*z^3 - 19*z^2 + 9*z - 1)*u^7 + (10*z^7 + 20*z^6 + 11*z^5 + 17*z^4 - 31*z^3 - 19*z^2 + 13*z - 2)*u^6 + (12*z^8 + 31*z^7 + 15*z^6 + 12*z^5 + 8*z^4 - 52*z^3 - 10*z^2 + 12*z - 1)*u^5 + (10*z^9 + 30*z^8 + 9*z^7 + 13*z^6 + 15*z^5 - 22*z^4 - 46*z^3 + 6*z^2 + 10*z)*u^4 + (5*z^10 + 23*z^9 - 2*z^8 - 4*z^7 + 42*z^6 - 27*z^5 - 25*z^4 - 13*z^3 + 15*z^2 + 4*z)*u^3 + (z^11 + 11*z^10 + 4*z^9 - 24*z^8 + 35*z^7 + 2*z^6 - 30*z^5 - 3*z^4 + 7*z^3 + 6*z^2)*u^2 + (2*z^11 + 5*z^10 - 11*z^9 + 4*z^8 + 13*z^7 - 11*z^6 - 8*z^5 + 6*z^4 + 2*z^3)*u + (z^11 - z^10 - z^9 + 2*z^8 + z^7 - 4*z^6 + 2*z^5) */
    2322             : static const long X1_38_s_n_0[14] = {
    2323             :   evaltyp(t_VECSMALL) | _evallg(14), vZ, 0, 0, 0, 0, 0, 2, -4, 1, 2, -1, -1, 1 }; /* z^11 - z^10 - z^9 + 2*z^8 + z^7 - 4*z^6 + 2*z^5 */
    2324             : static const long X1_38_s_n_1[14] = {
    2325             :   evaltyp(t_VECSMALL) | _evallg(14), vZ, 0, 0, 0, 2, 6, -8, -11, 13, 4, -11, 5, 2 }; /* 2*z^11 + 5*z^10 - 11*z^9 + 4*z^8 + 13*z^7 - 11*z^6 - 8*z^5 + 6*z^4 + 2*z^3 */
    2326             : static const long X1_38_s_n_2[14] = {
    2327             :   evaltyp(t_VECSMALL) | _evallg(14), vZ, 0, 0, 6, 7, -3, -30, 2, 35, -24, 4, 11, 1 }; /* z^11 + 11*z^10 + 4*z^9 - 24*z^8 + 35*z^7 + 2*z^6 - 30*z^5 - 3*z^4 + 7*z^3 + 6*z^2 */
    2328             : static const long X1_38_s_n_3[13] = {
    2329             :   evaltyp(t_VECSMALL) | _evallg(13), vZ, 0, 4, 15, -13, -25, -27, 42, -4, -2, 23, 5 }; /* 5*z^10 + 23*z^9 - 2*z^8 - 4*z^7 + 42*z^6 - 27*z^5 - 25*z^4 - 13*z^3 + 15*z^2 + 4*z */
    2330             : static const long X1_38_s_n_4[12] = {
    2331             :   evaltyp(t_VECSMALL) | _evallg(12), vZ, 0, 10, 6, -46, -22, 15, 13, 9, 30, 10 }; /* 10*z^9 + 30*z^8 + 9*z^7 + 13*z^6 + 15*z^5 - 22*z^4 - 46*z^3 + 6*z^2 + 10*z */
    2332             : static const long X1_38_s_n_5[11] = {
    2333             :   evaltyp(t_VECSMALL) | _evallg(11), vZ, -1, 12, -10, -52, 8, 12, 15, 31, 12 }; /* 12*z^8 + 31*z^7 + 15*z^6 + 12*z^5 + 8*z^4 - 52*z^3 - 10*z^2 + 12*z - 1 */
    2334             : static const long X1_38_s_n_6[10] = {
    2335             :   evaltyp(t_VECSMALL) | _evallg(10), vZ, -2, 13, -19, -31, 17, 11, 20, 10 }; /* 10*z^7 + 20*z^6 + 11*z^5 + 17*z^4 - 31*z^3 - 19*z^2 + 13*z - 2 */
    2336             : static const long X1_38_s_n_7[9] = {
    2337             :   evaltyp(t_VECSMALL) | _evallg(9), vZ, -1, 9, -19, -6, 12, 7, 5 }; /* 5*z^6 + 7*z^5 + 12*z^4 - 6*z^3 - 19*z^2 + 9*z - 1 */
    2338             : static const long X1_38_s_n_8[8] = {
    2339             :   evaltyp(t_VECSMALL) | _evallg(8), vZ, 0, 2, -8, 3, 3, 1 }; /* z^5 + 3*z^4 + 3*z^3 - 8*z^2 + 2*z */
    2340             : static const long X1_38_s_n_9[6] = {
    2341             :   evaltyp(t_VECSMALL) | _evallg(6), vZ, 0, 0, -1, 1 }; /* z^3 - z^2 */
    2342             : static const long *X1_38_s_n[12] = {
    2343             :   (long *)(evaltyp(t_POL) | _evallg(12)), (long *)(evalvarn(0) | evalsigne(1)),
    2344             :   X1_38_s_n_0, X1_38_s_n_1, X1_38_s_n_2, X1_38_s_n_3, X1_38_s_n_4, X1_38_s_n_5, X1_38_s_n_6, X1_38_s_n_7, X1_38_s_n_8, X1_38_s_n_9
    2345             : };
    2346             : /* (z^3 - z^2)*u^9 + (z^5 + 4*z^4 + 2*z^3 - 8*z^2 + 2*z)*u^8 + (6*z^6 + 9*z^5 + 15*z^4 - 13*z^3 - 17*z^2 + 9*z - 1)*u^7 + (14*z^7 + 23*z^6 + 19*z^5 + 17*z^4 - 47*z^3 - 11*z^2 + 13*z - 2)*u^6 + (17*z^8 + 43*z^7 + 13*z^6 + 33*z^5 - 4*z^4 - 71*z^3 + 5*z^2 + 12*z - 1)*u^5 + (12*z^9 + 46*z^8 + 16*z^7 + 4*z^6 + 51*z^5 - 48*z^4 - 57*z^3 + 21*z^2 + 10*z)*u^4 + (5*z^10 + 29*z^9 + 17*z^8 - 18*z^7 + 39*z^6 + 17*z^5 - 60*z^4 - 15*z^3 + 23*z^2 + 4*z)*u^3 + (z^11 + 11*z^10 + 11*z^9 - 18*z^8 + 12*z^7 + 24*z^6 - 14*z^5 - 30*z^4 + 9*z^3 + 8*z^2)*u^2 + (2*z^11 + 5*z^10 - 8*z^9 - z^8 + 11*z^7 - 11*z^5 - 3*z^4 + 4*z^3)*u + (z^11 - z^10 - z^9 + z^8 + 2*z^7 - 3*z^6) */
    2347             : static const long X1_38_s_d_0[14] = {
    2348             :   evaltyp(t_VECSMALL) | _evallg(14), vZ, 0, 0, 0, 0, 0, 0, -3, 2, 1, -1, -1, 1 }; /* z^11 - z^10 - z^9 + z^8 + 2*z^7 - 3*z^6 */
    2349             : static const long X1_38_s_d_1[14] = {
    2350             :   evaltyp(t_VECSMALL) | _evallg(14), vZ, 0, 0, 0, 4, -3, -11, 0, 11, -1, -8, 5, 2 }; /* 2*z^11 + 5*z^10 - 8*z^9 - z^8 + 11*z^7 - 11*z^5 - 3*z^4 + 4*z^3 */
    2351             : static const long X1_38_s_d_2[14] = {
    2352             :   evaltyp(t_VECSMALL) | _evallg(14), vZ, 0, 0, 8, 9, -30, -14, 24, 12, -18, 11, 11, 1 }; /* z^11 + 11*z^10 + 11*z^9 - 18*z^8 + 12*z^7 + 24*z^6 - 14*z^5 - 30*z^4 + 9*z^3 + 8*z^2 */
    2353             : static const long X1_38_s_d_3[13] = {
    2354             :   evaltyp(t_VECSMALL) | _evallg(13), vZ, 0, 4, 23, -15, -60, 17, 39, -18, 17, 29, 5 }; /* 5*z^10 + 29*z^9 + 17*z^8 - 18*z^7 + 39*z^6 + 17*z^5 - 60*z^4 - 15*z^3 + 23*z^2 + 4*z */
    2355             : static const long X1_38_s_d_4[12] = {
    2356             :   evaltyp(t_VECSMALL) | _evallg(12), vZ, 0, 10, 21, -57, -48, 51, 4, 16, 46, 12 }; /* 12*z^9 + 46*z^8 + 16*z^7 + 4*z^6 + 51*z^5 - 48*z^4 - 57*z^3 + 21*z^2 + 10*z */
    2357             : static const long X1_38_s_d_5[11] = {
    2358             :   evaltyp(t_VECSMALL) | _evallg(11), vZ, -1, 12, 5, -71, -4, 33, 13, 43, 17 }; /* 17*z^8 + 43*z^7 + 13*z^6 + 33*z^5 - 4*z^4 - 71*z^3 + 5*z^2 + 12*z - 1 */
    2359             : static const long X1_38_s_d_6[10] = {
    2360             :   evaltyp(t_VECSMALL) | _evallg(10), vZ, -2, 13, -11, -47, 17, 19, 23, 14 }; /* 14*z^7 + 23*z^6 + 19*z^5 + 17*z^4 - 47*z^3 - 11*z^2 + 13*z - 2 */
    2361             : static const long X1_38_s_d_7[9] = {
    2362             :   evaltyp(t_VECSMALL) | _evallg(9), vZ, -1, 9, -17, -13, 15, 9, 6 }; /* 6*z^6 + 9*z^5 + 15*z^4 - 13*z^3 - 17*z^2 + 9*z - 1 */
    2363             : static const long X1_38_s_d_8[8] = {
    2364             :   evaltyp(t_VECSMALL) | _evallg(8), vZ, 0, 2, -8, 2, 4, 1 }; /* z^5 + 4*z^4 + 2*z^3 - 8*z^2 + 2*z */
    2365             : static const long X1_38_s_d_9[6] = {
    2366             :   evaltyp(t_VECSMALL) | _evallg(6), vZ, 0, 0, -1, 1 }; /* z^3 - z^2 */
    2367             : static const long *X1_38_s_d[12] = {
    2368             :   (long *)(evaltyp(t_POL) | _evallg(12)), (long *)(evalvarn(0) | evalsigne(1)),
    2369             :   X1_38_s_d_0, X1_38_s_d_1, X1_38_s_d_2, X1_38_s_d_3, X1_38_s_d_4, X1_38_s_d_5, X1_38_s_d_6, X1_38_s_d_7, X1_38_s_d_8, X1_38_s_d_9
    2370             : };
    2371             : /* z^12*x^14 + (-z^23 - 2*z^22 - 4*z^21 - 6*z^20 - 9*z^19 - 12*z^18 - 16*z^17 - 20*z^16 - 25*z^15 - 30*z^14 - 36*z^13 - 12*z^12)*x^13 + (-18*z^23 - 52*z^22 - 100*z^21 - 147*z^20 - 187*z^19 - 208*z^18 - 216*z^17 - 218*z^16 - 248*z^15 - 348*z^14 - 596*z^13 - 650*z^12 - 483*z^11 - 308*z^10 - 188*z^9 - 108*z^8 - 58*z^7 - 28*z^6 - 12*z^5 - 4*z^4 - z^3)*x^12 + (-153*z^23 - 594*z^22 - 1300*z^21 - 2055*z^20 - 2574*z^19 - 2556*z^18 - 1806*z^17 - 261*z^16 + 1845*z^15 + 3786*z^14 + 3780*z^13 + 2178*z^12 + 849*z^11 + 360*z^10 + 266*z^9 + 243*z^8 + 192*z^7 + 124*z^6 + 60*z^5 + 21*z^4 + 3*z^3)*x^11 + (-816*z^23 - 4080*z^22 - 10860*z^21 - 20535*z^20 - 31080*z^19 - 39972*z^18 - 44924*z^17 - 43894*z^16 - 34940*z^15 - 17560*z^14 + 268*z^13 + 8717*z^12 + 7806*z^11 + 3780*z^10 + 720*z^9 - 616*z^8 - 818*z^7 - 544*z^6 - 240*z^5 - 60*z^4 - 6*z^3)*x^10 + (z^28 + 10*z^27 + 60*z^26 + 270*z^25 + 1005*z^24 + 192*z^23 - 9736*z^22 - 38140*z^21 - 87840*z^20 - 151485*z^19 - 216012*z^18 - 269898*z^17 - 306131*z^16 - 316700*z^15 - 284760*z^14 - 207128*z^13 - 114251*z^12 - 43146*z^11 - 5820*z^10 + 6900*z^9 + 7806*z^8 + 5035*z^7 + 2314*z^6 + 720*z^5 + 130*z^4 + 10*z^3)*x^9 + (9*z^28 + 91*z^27 + 540*z^26 + 2400*z^25 + 8890*z^24 + 20526*z^23 + 21288*z^22 - 23112*z^21 - 140013*z^20 - 320022*z^19 - 516680*z^18 - 678672*z^17 - 787386*z^16 - 859748*z^15 - 893172*z^14 - 842244*z^13 - 686088*z^12 - 474318*z^11 - 280656*z^10 - 144524*z^9 - 65124*z^8 - 25122*z^7 - 7784*z^6 - 1740*z^5 - 240*z^4 - 15*z^3)*x^8 + (36*z^28 + 369*z^27 + 2164*z^26 + 9452*z^25 + 34678*z^24 + 96449*z^23 + 188602*z^22 + 245336*z^21 + 166136*z^20 - 94892*z^19 - 461620*z^18 - 768278*z^17 - 883369*z^16 - 829121*z^15 - 743626*z^14 - 706388*z^13 - 669214*z^12 - 565402*z^11 - 404852*z^10 - 245998*z^9 - 129905*z^8 - 61105*z^7 - 25634*z^6 - 9268*z^5 - 2744*z^4 - 637*z^3 - 112*z^2 - 14*z - 1)*x^7 + (84*z^28 + 876*z^27 + 5076*z^26 + 21640*z^25 + 77944*z^24 + 230394*z^23 + 528492*z^22 + 922068*z^21 + 1213200*z^20 + 1162575*z^19 + 693252*z^18 + 6228*z^17 - 521846*z^16 - 626120*z^15 - 375720*z^14 - 68172*z^13 + 79677*z^12 + 72513*z^11 + 20760*z^10 - 6456*z^9 - 7416*z^8 - 1916*z^7 + 496*z^6 + 480*z^5 + 135*z^4 + 15*z^3)*x^6 + (126*z^28 + 1344*z^27 + 7704*z^26 + 31770*z^25 + 110495*z^24 + 332211*z^23 + 826386*z^22 + 1650292*z^21 + 2628990*z^20 + 3341835*z^19 + 3353964*z^18 + 2539962*z^17 + 1236231*z^16 + 55910*z^15 - 540060*z^14 - 540912*z^13 - 271552*z^12 - 44343*z^11 + 39780*z^10 + 34350*z^9 + 11565*z^8 + 333*z^7 - 1366*z^6 - 600*z^5 - 120*z^4 - 10*z^3)*x^5 + (126*z^28 + 1386*z^27 + 7896*z^26 + 31200*z^25 + 101730*z^24 + 297098*z^23 + 765412*z^22 + 1667408*z^21 + 3004995*z^20 + 4469310*z^19 + 5505000*z^18 + 5608136*z^17 + 4657354*z^16 + 3031220*z^15 + 1391660*z^14 + 270580*z^13 - 204565*z^12 - 244602*z^11 - 134160*z^10 - 41460*z^9 - 2842*z^8 + 4030*z^7 + 2216*z^6 + 600*z^5 + 90*z^4 + 6*z^3)*x^4 + (84*z^28 + 966*z^27 + 5544*z^26 + 21000*z^25 + 61860*z^24 + 161856*z^23 + 398596*z^22 + 897424*z^21 + 1758603*z^20 + 2925262*z^19 + 4115740*z^18 + 4919796*z^17 + 5012510*z^16 + 4342211*z^15 + 3166854*z^14 + 1907052*z^13 + 913956*z^12 + 320100*z^11 + 58652*z^10 - 14782*z^9 - 17649*z^8 - 8090*z^7 - 2360*z^6 - 456*z^5 - 54*z^4 - 3*z^3)*x^3 + (36*z^28 + 443*z^27 + 2640*z^26 + 9912*z^25 + 26488*z^24 + 56208*z^23 + 108084*z^22 + 209364*z^21 + 405039*z^20 + 723204*z^19 + 1128252*z^18 + 1513356*z^17 + 1749258*z^16 + 1752384*z^15 + 1525872*z^14 + 1153404*z^13 + 753402*z^12 + 422268*z^11 + 201168*z^10 + 80432*z^9 + 26520*z^8 + 7032*z^7 + 1444*z^6 + 216*z^5 + 21*z^4 + z^3)*x^2 + (9*z^28 + 123*z^27 + 800*z^26 + 3220*z^25 + 8834*z^24 + 17206*z^23 + 23900*z^22 + 22600*z^21 + 11580*z^20 - 2916*z^19 - 12024*z^18 - 12470*z^17 - 7885*z^16 - 3335*z^15 - 930*z^14 - 156*z^13 - 12*z^12)*x + (z^28 + 16*z^27 + 120*z^26 + 560*z^25 + 1820*z^24 + 4368*z^23 + 8008*z^22 + 11440*z^21 + 12870*z^20 + 11440*z^19 + 8008*z^18 + 4368*z^17 + 1820*z^16 + 560*z^15 + 120*z^14 + 16*z^13 + z^12) */
    2372             : static const long X1_39_crv_0[31] = {
    2373             :   evaltyp(t_VECSMALL) | _evallg(31), vZ, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 16, 120, 560, 1820, 4368, 8008, 11440, 12870, 11440, 8008, 4368, 1820, 560, 120, 16, 1 }; /* z^28 + 16*z^27 + 120*z^26 + 560*z^25 + 1820*z^24 + 4368*z^23 + 8008*z^22 + 11440*z^21 + 12870*z^20 + 11440*z^19 + 8008*z^18 + 4368*z^17 + 1820*z^16 + 560*z^15 + 120*z^14 + 16*z^13 + z^12 */
    2374             : static const long X1_39_crv_1[31] = {
    2375             :   evaltyp(t_VECSMALL) | _evallg(31), vZ, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -12, -156, -930, -3335, -7885, -12470, -12024, -2916, 11580, 22600, 23900, 17206, 8834, 3220, 800, 123, 9 }; /* 9*z^28 + 123*z^27 + 800*z^26 + 3220*z^25 + 8834*z^24 + 17206*z^23 + 23900*z^22 + 22600*z^21 + 11580*z^20 - 2916*z^19 - 12024*z^18 - 12470*z^17 - 7885*z^16 - 3335*z^15 - 930*z^14 - 156*z^13 - 12*z^12 */
    2376             : static const long X1_39_crv_2[31] = {
    2377             :   evaltyp(t_VECSMALL) | _evallg(31), vZ, 0, 0, 0, 1, 21, 216, 1444, 7032, 26520, 80432, 201168, 422268, 753402, 1153404, 1525872, 1752384, 1749258, 1513356, 1128252, 723204, 405039, 209364, 108084, 56208, 26488, 9912, 2640, 443, 36 }; /* 36*z^28 + 443*z^27 + 2640*z^26 + 9912*z^25 + 26488*z^24 + 56208*z^23 + 108084*z^22 + 209364*z^21 + 405039*z^20 + 723204*z^19 + 1128252*z^18 + 1513356*z^17 + 1749258*z^16 + 1752384*z^15 + 1525872*z^14 + 1153404*z^13 + 753402*z^12 + 422268*z^11 + 201168*z^10 + 80432*z^9 + 26520*z^8 + 7032*z^7 + 1444*z^6 + 216*z^5 + 21*z^4 + z^3 */
    2378             : static const long X1_39_crv_3[31] = {
    2379             :   evaltyp(t_VECSMALL) | _evallg(31), vZ, 0, 0, 0, -3, -54, -456, -2360, -8090, -17649, -14782, 58652, 320100, 913956, 1907052, 3166854, 4342211, 5012510, 4919796, 4115740, 2925262, 1758603, 897424, 398596, 161856, 61860, 21000, 5544, 966, 84 }; /* 84*z^28 + 966*z^27 + 5544*z^26 + 21000*z^25 + 61860*z^24 + 161856*z^23 + 398596*z^22 + 897424*z^21 + 1758603*z^20 + 2925262*z^19 + 4115740*z^18 + 4919796*z^17 + 5012510*z^16 + 4342211*z^15 + 3166854*z^14 + 1907052*z^13 + 913956*z^12 + 320100*z^11 + 58652*z^10 - 14782*z^9 - 17649*z^8 - 8090*z^7 - 2360*z^6 - 456*z^5 - 54*z^4 - 3*z^3 */
    2380             : static const long X1_39_crv_4[31] = {
    2381             :   evaltyp(t_VECSMALL) | _evallg(31), vZ, 0, 0, 0, 6, 90, 600, 2216, 4030, -2842, -41460, -134160, -244602, -204565, 270580, 1391660, 3031220, 4657354, 5608136, 5505000, 4469310, 3004995, 1667408, 765412, 297098, 101730, 31200, 7896, 1386, 126 }; /* 126*z^28 + 1386*z^27 + 7896*z^26 + 31200*z^25 + 101730*z^24 + 297098*z^23 + 765412*z^22 + 1667408*z^21 + 3004995*z^20 + 4469310*z^19 + 5505000*z^18 + 5608136*z^17 + 4657354*z^16 + 3031220*z^15 + 1391660*z^14 + 270580*z^13 - 204565*z^12 - 244602*z^11 - 134160*z^10 - 41460*z^9 - 2842*z^8 + 4030*z^7 + 2216*z^6 + 600*z^5 + 90*z^4 + 6*z^3 */
    2382             : static const long X1_39_crv_5[31] = {
    2383             :   evaltyp(t_VECSMALL) | _evallg(31), vZ, 0, 0, 0, -10, -120, -600, -1366, 333, 11565, 34350, 39780, -44343, -271552, -540912, -540060, 55910, 1236231, 2539962, 3353964, 3341835, 2628990, 1650292, 826386, 332211, 110495, 31770, 7704, 1344, 126 }; /* 126*z^28 + 1344*z^27 + 7704*z^26 + 31770*z^25 + 110495*z^24 + 332211*z^23 + 826386*z^22 + 1650292*z^21 + 2628990*z^20 + 3341835*z^19 + 3353964*z^18 + 2539962*z^17 + 1236231*z^16 + 55910*z^15 - 540060*z^14 - 540912*z^13 - 271552*z^12 - 44343*z^11 + 39780*z^10 + 34350*z^9 + 11565*z^8 + 333*z^7 - 1366*z^6 - 600*z^5 - 120*z^4 - 10*z^3 */
    2384             : static const long X1_39_crv_6[31] = {
    2385             :   evaltyp(t_VECSMALL) | _evallg(31), vZ, 0, 0, 0, 15, 135, 480, 496, -1916, -7416, -6456, 20760, 72513, 79677, -68172, -375720, -626120, -521846, 6228, 693252, 1162575, 1213200, 922068, 528492, 230394, 77944, 21640, 5076, 876, 84 }; /* 84*z^28 + 876*z^27 + 5076*z^26 + 21640*z^25 + 77944*z^24 + 230394*z^23 + 528492*z^22 + 922068*z^21 + 1213200*z^20 + 1162575*z^19 + 693252*z^18 + 6228*z^17 - 521846*z^16 - 626120*z^15 - 375720*z^14 - 68172*z^13 + 79677*z^12 + 72513*z^11 + 20760*z^10 - 6456*z^9 - 7416*z^8 - 1916*z^7 + 496*z^6 + 480*z^5 + 135*z^4 + 15*z^3 */
    2386             : static const long X1_39_crv_7[31] = {
    2387             :   evaltyp(t_VECSMALL) | _evallg(31), vZ, -1, -14, -112, -637, -2744, -9268, -25634, -61105, -129905, -245998, -404852, -565402, -669214, -706388, -743626, -829121, -883369, -768278, -461620, -94892, 166136, 245336, 188602, 96449, 34678, 9452, 2164, 369, 36 }; /* 36*z^28 + 369*z^27 + 2164*z^26 + 9452*z^25 + 34678*z^24 + 96449*z^23 + 188602*z^22 + 245336*z^21 + 166136*z^20 - 94892*z^19 - 461620*z^18 - 768278*z^17 - 883369*z^16 - 829121*z^15 - 743626*z^14 - 706388*z^13 - 669214*z^12 - 565402*z^11 - 404852*z^10 - 245998*z^9 - 129905*z^8 - 61105*z^7 - 25634*z^6 - 9268*z^5 - 2744*z^4 - 637*z^3 - 112*z^2 - 14*z - 1 */
    2388             : static const long X1_39_crv_8[31] = {
    2389             :   evaltyp(t_VECSMALL) | _evallg(31), vZ, 0, 0, 0, -15, -240, -1740, -7784, -25122, -65124, -144524, -280656, -474318, -686088, -842244, -893172, -859748, -787386, -678672, -516680, -320022, -140013, -23112, 21288, 20526, 8890, 2400, 540, 91, 9 }; /* 9*z^28 + 91*z^27 + 540*z^26 + 2400*z^25 + 8890*z^24 + 20526*z^23 + 21288*z^22 - 23112*z^21 - 140013*z^20 - 320022*z^19 - 516680*z^18 - 678672*z^17 - 787386*z^16 - 859748*z^15 - 893172*z^14 - 842244*z^13 - 686088*z^12 - 474318*z^11 - 280656*z^10 - 144524*z^9 - 65124*z^8 - 25122*z^7 - 7784*z^6 - 1740*z^5 - 240*z^4 - 15*z^3 */
    2390             : static const long X1_39_crv_9[31] = {
    2391             :   evaltyp(t_VECSMALL) | _evallg(31), vZ, 0, 0, 0, 10, 130, 720, 2314, 5035, 7806, 6900, -5820, -43146, -114251, -207128, -284760, -316700, -306131, -269898, -216012, -151485, -87840, -38140, -9736, 192, 1005, 270, 60, 10, 1 }; /* z^28 + 10*z^27 + 60*z^26 + 270*z^25 + 1005*z^24 + 192*z^23 - 9736*z^22 - 38140*z^21 - 87840*z^20 - 151485*z^19 - 216012*z^18 - 269898*z^17 - 306131*z^16 - 316700*z^15 - 284760*z^14 - 207128*z^13 - 114251*z^12 - 43146*z^11 - 5820*z^10 + 6900*z^9 + 7806*z^8 + 5035*z^7 + 2314*z^6 + 720*z^5 + 130*z^4 + 10*z^3 */
    2392             : static const long X1_39_crv_10[26] = {
    2393             :   evaltyp(t_VECSMALL) | _evallg(26), vZ, 0, 0, 0, -6, -60, -240, -544, -818, -616, 720, 3780, 7806, 8717, 268, -17560, -34940, -43894, -44924, -39972, -31080, -20535, -10860, -4080, -816 }; /* -816*z^23 - 4080*z^22 - 10860*z^21 - 20535*z^20 - 31080*z^19 - 39972*z^18 - 44924*z^17 - 43894*z^16 - 34940*z^15 - 17560*z^14 + 268*z^13 + 8717*z^12 + 7806*z^11 + 3780*z^10 + 720*z^9 - 616*z^8 - 818*z^7 - 544*z^6 - 240*z^5 - 60*z^4 - 6*z^3 */
    2394             : static const long X1_39_crv_11[26] = {
    2395             :   evaltyp(t_VECSMALL) | _evallg(26), vZ, 0, 0, 0, 3, 21, 60, 124, 192, 243, 266, 360, 849, 2178, 3780, 3786, 1845, -261, -1806, -2556, -2574, -2055, -1300, -594, -153 }; /* -153*z^23 - 594*z^22 - 1300*z^21 - 2055*z^20 - 2574*z^19 - 2556*z^18 - 1806*z^17 - 261*z^16 + 1845*z^15 + 3786*z^14 + 3780*z^13 + 2178*z^12 + 849*z^11 + 360*z^10 + 266*z^9 + 243*z^8 + 192*z^7 + 124*z^6 + 60*z^5 + 21*z^4 + 3*z^3 */
    2396             : static const long X1_39_crv_12[26] = {
    2397             :   evaltyp(t_VECSMALL) | _evallg(26), vZ, 0, 0, 0, -1, -4, -12, -28, -58, -108, -188, -308, -483, -650, -596, -348, -248, -218, -216, -208, -187, -147, -100, -52, -18 }; /* -18*z^23 - 52*z^22 - 100*z^21 - 147*z^20 - 187*z^19 - 208*z^18 - 216*z^17 - 218*z^16 - 248*z^15 - 348*z^14 - 596*z^13 - 650*z^12 - 483*z^11 - 308*z^10 - 188*z^9 - 108*z^8 - 58*z^7 - 28*z^6 - 12*z^5 - 4*z^4 - z^3 */
    2398             : static const long X1_39_crv_13[26] = {
    2399             :   evaltyp(t_VECSMALL) | _evallg(26), vZ, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -12, -36, -30, -25, -20, -16, -12, -9, -6, -4, -2, -1 }; /* -z^23 - 2*z^22 - 4*z^21 - 6*z^20 - 9*z^19 - 12*z^18 - 16*z^17 - 20*z^16 - 25*z^15 - 30*z^14 - 36*z^13 - 12*z^12 */
    2400             : static const long X1_39_crv_14[15] = {
    2401             :   evaltyp(t_VECSMALL) | _evallg(15), vZ, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 }; /* z^12 */
    2402             : static const long *X1_39_crv[17] = {
    2403             :   (long *)(evaltyp(t_POL) | _evallg(17)), (long *)(evalvarn(0) | evalsigne(1)),
    2404             :   X1_39_crv_0, X1_39_crv_1, X1_39_crv_2, X1_39_crv_3, X1_39_crv_4, X1_39_crv_5, X1_39_crv_6, X1_39_crv_7, X1_39_crv_8, X1_39_crv_9, X1_39_crv_10, X1_39_crv_11, X1_39_crv_12, X1_39_crv_13, X1_39_crv_14
    2405             : };
    2406             : /* -z */
    2407             : static const long *X1_39_r_n[3] = {
    2408             :   (long *)(evaltyp(t_POL) | _evallg(3)), (long *)(evalvarn(0) | evalsigne(1)),
    2409             :   FLX_mZ
    2410             : };
    2411             : /* 1 */
    2412             : static const long *X1_39_r_d[3] = {
    2413             :   (long *)(evaltyp(t_POL) | _evallg(3)), (long *)(evalvarn(0) | evalsigne(1)),
    2414             :   FLX_1
    2415             : };
    2416             : /* (z + 1)*x + (z + 1) */
    2417             : static const long X1_39_s_n_0[4] = {
    2418             :   evaltyp(t_VECSMALL) | _evallg(4), vZ, 1, 1 }; /* z + 1 */
    2419             : static const long X1_39_s_n_1[4] = {
    2420             :   evaltyp(t_VECSMALL) | _evallg(4), vZ, 1, 1 }; /* z + 1 */
    2421             : static const long *X1_39_s_n[4] = {
    2422             :   (long *)(evaltyp(t_POL) | _evallg(4)), (long *)(evalvarn(0) | evalsigne(1)),
    2423             :   X1_39_s_n_0, X1_39_s_n_1
    2424             : };
    2425             : /* z */
    2426             : static const long *X1_39_s_d[3] = {
    2427             :   (long *)(evaltyp(t_POL) | _evallg(3)), (long *)(evalvarn(0) | evalsigne(1)),
    2428             :   FLX_Z
    2429             : };
    2430             : 
    2431             : 
    2432             : static const X1_info X1_table[LAST_X1_LEVEL - FIRST_X1_LEVEL + 1] = {
    2433             :   { (GEN)X1_13_crv, (GEN)X1_13_r_n, (GEN)X1_13_r_d, 0, (GEN)X1_13_s_n, (GEN)X1_13_s_d, 1, RS_MAP },
    2434             :   { (GEN)X1_14_crv, (GEN)X1_14_r_n, (GEN)X1_14_r_d, 1, (GEN)X1_14_s_n, (GEN)X1_14_s_d, 0, RS_MAP },
    2435             :   { (GEN)X1_15_crv, (GEN)X1_15_r_n, (GEN)X1_15_r_d, 1, (GEN)X1_15_s_n, (GEN)X1_15_s_d, 1, RS_MAP },
    2436             :   { (GEN)X1_16_crv, (GEN)X1_16_r_n, (GEN)X1_16_r_d, 0, (GEN)X1_16_s_n, (GEN)X1_16_s_d, 0, RS_MAP },
    2437             :   { (GEN)X1_17_crv, (GEN)X1_17_r_n, (GEN)X1_17_r_d, 0, (GEN)X1_17_s_n, (GEN)X1_17_s_d, 0, RS_MAP },
    2438             :   { (GEN)X1_18_crv, (GEN)X1_18_r_n, (GEN)X1_18_r_d, 0, (GEN)X1_18_s_n, (GEN)X1_18_s_d, 0, RS_MAP },
    2439             :   { (GEN)X1_19_crv, (GEN)X1_19_r_n, (GEN)X1_19_r_d, 1, (GEN)X1_19_s_n, (GEN)X1_19_s_d, 1, RS_MAP },
    2440             :   { (GEN)X1_20_crv, (GEN)X1_20_r_n, (GEN)X1_20_r_d, 0, (GEN)X1_20_s_n, (GEN)X1_20_s_d, 0, TQ_MAP },
    2441             :   { (GEN)X1_21_crv, (GEN)X1_21_r_n, (GEN)X1_21_r_d, 1, (GEN)X1_21_s_n, (GEN)X1_21_s_d, 1, RS_MAP },
    2442             :   { (GEN)X1_22_crv, (GEN)X1_22_r_n, (GEN)X1_22_r_d, 0, (GEN)X1_22_s_n, (GEN)X1_22_s_d, 0, RS_MAP },
    2443             :   { (GEN)X1_23_crv, (GEN)X1_23_r_n, (GEN)X1_23_r_d, 0, (GEN)X1_23_s_n, (GEN)X1_23_s_d, 0, RS_MAP },
    2444             :   { (GEN)X1_24_crv, (GEN)X1_24_r_n, (GEN)X1_24_r_d, 0, (GEN)X1_24_s_n, (GEN)X1_24_s_d, 0, TQ_MAP },
    2445             :   { (GEN)X1_25_crv, (GEN)X1_25_r_n, (GEN)X1_25_r_d, 0, (GEN)X1_25_s_n, (GEN)X1_25_s_d, 0, RS_MAP },
    2446             :   { (GEN)X1_26_crv, (GEN)X1_26_r_n, (GEN)X1_26_r_d, 0, (GEN)X1_26_s_n, (GEN)X1_26_s_d, 0, RS_MAP },
    2447             :   { (GEN)X1_27_crv, (GEN)X1_27_r_n, (GEN)X1_27_r_d, 0, (GEN)X1_27_s_n, (GEN)X1_27_s_d, 0, RS_MAP },
    2448             :   { (GEN)X1_28_crv, (GEN)X1_28_r_n, (GEN)X1_28_r_d, 0, (GEN)X1_28_s_n, (GEN)X1_28_s_d, 0, QT_MAP },
    2449             :   { (GEN)X1_29_crv, (GEN)X1_29_r_n, (GEN)X1_29_r_d, 0, (GEN)X1_29_s_n, (GEN)X1_29_s_d, 1, RS_MAP },
    2450             :   { (GEN)X1_30_crv, (GEN)X1_30_r_n, (GEN)X1_30_r_d, 0, (GEN)X1_30_s_n, (GEN)X1_30_s_d, 0, TQ_MAP },
    2451             :   { (GEN)X1_31_crv, (GEN)X1_31_r_n, (GEN)X1_31_r_d, 0, (GEN)X1_31_s_n, (GEN)X1_31_s_d, 0, RS_MAP },
    2452             :   { (GEN)X1_32_crv, (GEN)X1_32_r_n, (GEN)X1_32_r_d, 0, (GEN)X1_32_s_n, (GEN)X1_32_s_d, 0, QT_MAP },
    2453             :   { (GEN)X1_33_crv, (GEN)X1_33_r_n, (GEN)X1_33_r_d, 0, (GEN)X1_33_s_n, (GEN)X1_33_s_d, 0, T_MAP},
    2454             :   { (GEN)X1_34_crv, (GEN)X1_34_r_n, (GEN)X1_34_r_d, 0, (GEN)X1_34_s_n, (GEN)X1_34_s_d, 0, RS_MAP },
    2455             :   { (GEN)X1_35_crv, (GEN)X1_35_r_n, (GEN)X1_35_r_d, 0, (GEN)X1_35_s_n, (GEN)X1_35_s_d, 0, RS_MAP },
    2456             :   { (GEN)X1_36_crv, (GEN)X1_36_r_n, (GEN)X1_36_r_d, 0, (GEN)X1_36_s_n, (GEN)X1_36_s_d, 0, RS_MAP },
    2457             :   { (GEN)X1_37_crv, (GEN)X1_37_r_n, (GEN)X1_37_r_d, 0, (GEN)X1_37_s_n, (GEN)X1_37_s_d, 0, RS_MAP },
    2458             :   { (GEN)X1_38_crv, (GEN)X1_38_r_n, (GEN)X1_38_r_d, 0, (GEN)X1_38_s_n, (GEN)X1_38_s_d, 0, RS_MAP },
    2459             :   { (GEN)X1_39_crv, (GEN)X1_39_r_n, (GEN)X1_39_r_d, 0, (GEN)X1_39_s_n, (GEN)X1_39_s_d, 0, T_MAP }
    2460             : };
    2461             : 
    2462             : INLINE const X1_info *
    2463      167412 : get_X1_info(ulong N)
    2464             : {
    2465      167412 :   return &X1_table[N - FIRST_X1_LEVEL];
    2466             : }

Generated by: LCOV version 1.11