1 /* Copyright (C) 1999-2004 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; either version 2 of the License, or (at your option) any later 8 version. It is distributed in the hope that it will be useful, but WITHOUT 9 ANY WARRANTY WHATSOEVER. 10 11 Check the License for details. You should have received a copy of it, along 12 with the package; see the file 'COPYING'. If not, write to the Free Software 13 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ 14 15 /*******************************************************************/ 16 /* */ 17 /* DECLARATIONS of PUBLIC FUNCTIONS */ 18 /* */ 19 /*******************************************************************/ 20 #include "parinf.h" 21 22 /* black box groups */ 23 struct bb_group 24 { 25 GEN (*mul)(void *E, GEN, GEN); 26 GEN (*pow)(void *E, GEN, GEN); 27 GEN (*rand)(void *E); 28 ulong (*hash)(GEN); 29 int (*equal)(GEN,GEN); 30 int (*equal1)(GEN); 31 GEN (*easylog)(void *E, GEN, GEN, GEN); 32 }; 33 34 /* black box fields */ 35 struct bb_field 36 { 37 GEN (*red)(void *E ,GEN); 38 GEN (*add)(void *E ,GEN, GEN); 39 GEN (*mul)(void *E ,GEN, GEN); 40 GEN (*neg)(void *E ,GEN); 41 GEN (*inv)(void *E ,GEN); 42 int (*equal0)(GEN); 43 GEN (*s)(void *E, long); 44 }; 45 46 /* black box algebra */ 47 struct bb_algebra 48 { 49 GEN (*red)(void *E, GEN x); 50 GEN (*add)(void *E, GEN x, GEN y); 51 GEN (*sub)(void *E, GEN x, GEN y); 52 GEN (*mul)(void *E, GEN x, GEN y); 53 GEN (*sqr)(void *E, GEN x); 54 GEN (*one)(void *E); 55 GEN (*zero)(void *E); 56 }; 57 58 /* black box ring */ 59 struct bb_ring 60 { 61 GEN (*add)(void *E, GEN x, GEN y); 62 GEN (*mul)(void *E, GEN x, GEN y); 63 GEN (*sqr)(void *E, GEN x); 64 }; 65 66 /* OBSOLETE */ 67 GEN buchimag(GEN D, GEN c1, GEN c2, GEN gCO); 68 GEN buchreal(GEN D, GEN gsens, GEN c1, GEN c2, GEN gRELSUP, long prec); 69 GEN zidealstar(GEN nf, GEN x); 70 GEN zidealstarinit(GEN nf, GEN x); 71 GEN zidealstarinitgen(GEN nf, GEN x); 72 GEN factmod(GEN f, GEN p); 73 void mpbern(long n, long prec); 74 GEN simplefactmod(GEN f, GEN p); 75 void listkill(GEN list); 76 GEN isprincipalforce(GEN bnf,GEN x); 77 GEN isprincipalgen(GEN bnf, GEN x); 78 GEN isprincipalgenforce(GEN bnf,GEN x); 79 80 /* F2v.c */ 81 82 GEN F2Ms_ker(GEN M, long nrows); 83 GEN F2Ms_to_F2m(GEN M, long nrows); 84 GEN F2c_to_ZC(GEN x); 85 GEN F2c_to_mod(GEN x); 86 GEN F2m_F2c_gauss(GEN a, GEN b); 87 GEN F2m_F2c_invimage(GEN A, GEN y); 88 GEN F2m_F2c_mul(GEN x, GEN y); 89 GEN F2m_deplin(GEN x); 90 ulong F2m_det(GEN x); 91 ulong F2m_det_sp(GEN x); 92 GEN F2m_gauss(GEN a, GEN b); 93 GEN F2m_inv(GEN x); 94 GEN F2m_invimage(GEN A, GEN B); 95 GEN F2m_ker(GEN x); 96 GEN F2m_ker_sp(GEN x, long deplin); 97 GEN F2m_mul(GEN x, GEN y); 98 GEN F2m_powu(GEN x, ulong n); 99 long F2m_rank(GEN x); 100 GEN F2m_row(GEN x, long j); 101 GEN F2m_rowslice(GEN x, long a, long b); 102 GEN F2m_to_F2Ms(GEN M); 103 GEN F2m_to_Flm(GEN z); 104 GEN F2m_to_ZM(GEN z); 105 GEN F2m_to_mod(GEN z); 106 GEN F2m_transpose(GEN x); 107 void F2v_add_inplace(GEN x, GEN y); 108 void F2v_and_inplace(GEN x, GEN y); 109 ulong F2v_dotproduct(GEN x, GEN y); 110 int F2v_equal0(GEN a); 111 ulong F2v_hamming(GEN H); 112 void F2v_negimply_inplace(GEN x, GEN y); 113 void F2v_or_inplace(GEN x, GEN y); 114 GEN F2v_slice(GEN x, long a, long b); 115 GEN F2v_to_Flv(GEN x); 116 GEN matid_F2m(long n); 117 118 /* F2x.c */ 119 120 GEN F2x_F2xq_eval(GEN Q, GEN x, GEN T); 121 GEN F2x_F2xqV_eval(GEN P, GEN V, GEN T); 122 GEN F2x_Frobenius(GEN T); 123 GEN F2x_1_add(GEN y); 124 GEN F2x_add(GEN x, GEN y); 125 GEN F2x_deflate(GEN x0, long d); 126 GEN F2x_degfact(GEN f); 127 long F2x_degree(GEN x); 128 GEN F2x_deriv(GEN x); 129 GEN F2x_divrem(GEN x, GEN y, GEN *pr); 130 ulong F2x_eval(GEN P, ulong x); 131 void F2x_even_odd(GEN p, GEN *pe, GEN *po); 132 GEN F2x_extgcd(GEN a, GEN b, GEN *ptu, GEN *ptv); 133 GEN F2x_gcd(GEN a, GEN b); 134 GEN F2x_get_red(GEN T); 135 GEN F2x_halfgcd(GEN a, GEN b); 136 int F2x_issquare(GEN a); 137 GEN F2x_matFrobenius(GEN T); 138 GEN F2x_mul(GEN x, GEN y); 139 GEN F2x_recip(GEN T); 140 GEN F2x_rem(GEN x, GEN y); 141 GEN F2x_shift(GEN y, long d); 142 GEN F2x_sqr(GEN x); 143 GEN F2x_sqrt(GEN x); 144 GEN F2x_to_F2v(GEN x, long n); 145 GEN F2x_to_F2xX(GEN z, long sv); 146 GEN F2x_to_Flx(GEN x); 147 GEN F2x_to_ZX(GEN x); 148 long F2x_valrem(GEN x, GEN *Z); 149 GEN F2xC_to_FlxC(GEN v); 150 GEN F2xC_to_ZXC(GEN x); 151 GEN F2xV_to_F2m(GEN v, long n); 152 void F2xV_to_FlxV_inplace(GEN v); 153 void F2xV_to_ZXV_inplace(GEN v); 154 GEN F2xX_F2x_add(GEN x, GEN y); 155 GEN F2xX_F2x_mul(GEN P, GEN U); 156 GEN F2xX_add(GEN x, GEN y); 157 GEN F2xX_deriv(GEN z); 158 GEN F2xX_renormalize(GEN /*in place*/ x, long lx); 159 GEN F2xX_to_Kronecker(GEN P, long d); 160 GEN F2xX_to_FlxX(GEN B); 161 GEN F2xX_to_ZXX(GEN B); 162 GEN F2xX_to_F2xC(GEN x, long N, long sv); 163 GEN F2xXV_to_F2xM(GEN v, long n, long sv); 164 GEN F2xXC_to_ZXXC(GEN B); 165 GEN F2xY_F2xq_evalx(GEN P, GEN x, GEN T); 166 GEN F2xY_F2xqV_evalx(GEN P, GEN x, GEN T); 167 long F2xY_degreex(GEN b); 168 GEN F2xn_inv(GEN f, long e); 169 GEN F2xn_red(GEN a, long n); 170 GEN F2xq_Artin_Schreier(GEN a, GEN T); 171 GEN F2xq_autpow(GEN x, long n, GEN T); 172 GEN F2xq_conjvec(GEN x, GEN T); 173 GEN F2xq_div(GEN x,GEN y,GEN T); 174 GEN F2xq_inv(GEN x, GEN T); 175 GEN F2xq_invsafe(GEN x, GEN T); 176 GEN F2xq_log(GEN a, GEN g, GEN ord, GEN T); 177 GEN F2xq_matrix_pow(GEN y, long n, long m, GEN P); 178 GEN F2xq_mul(GEN x, GEN y, GEN pol); 179 GEN F2xq_order(GEN a, GEN ord, GEN T); 180 GEN F2xq_pow(GEN x, GEN n, GEN pol); 181 GEN F2xq_pow_init(GEN x, GEN n, long k, GEN T); 182 GEN F2xq_pow_table(GEN R, GEN n, GEN T); 183 GEN F2xq_powu(GEN x, ulong n, GEN pol); 184 GEN F2xq_powers(GEN x, long l, GEN T); 185 GEN F2xq_sqr(GEN x,GEN pol); 186 GEN F2xq_sqrt(GEN a, GEN T); 187 GEN F2xq_sqrt_fast(GEN c, GEN sqx, GEN T); 188 GEN F2xq_sqrtn(GEN a, GEN n, GEN T, GEN *zeta); 189 ulong F2xq_trace(GEN x, GEN T); 190 GEN F2xqX_F2xq_mul(GEN P, GEN U, GEN T); 191 GEN F2xqX_F2xq_mul_to_monic(GEN P, GEN U, GEN T); 192 GEN F2xqX_F2xqXQ_eval(GEN Q, GEN x, GEN S, GEN T); 193 GEN F2xqX_F2xqXQV_eval(GEN P, GEN V, GEN S, GEN T); 194 GEN F2xqX_disc(GEN x, GEN T); 195 GEN F2xqX_divrem(GEN x, GEN y, GEN T, GEN *pr); 196 GEN F2xqX_extgcd(GEN x, GEN y, GEN T, GEN *ptu, GEN *ptv); 197 GEN F2xqX_gcd(GEN a, GEN b, GEN T); 198 GEN F2xqX_get_red(GEN S, GEN T); 199 GEN F2xqX_halfgcd(GEN x, GEN y, GEN T); 200 GEN F2xqX_invBarrett(GEN T, GEN Q); 201 long F2xqX_ispower(GEN f, long k, GEN T, GEN *pt_r); 202 GEN F2xqX_mul(GEN x, GEN y, GEN T); 203 GEN F2xqX_normalize(GEN z, GEN T); 204 GEN F2xqX_powu(GEN x, ulong n, GEN T); 205 GEN F2xqX_red(GEN z, GEN T); 206 GEN F2xqX_rem(GEN x, GEN S, GEN T); 207 GEN F2xqX_resultant(GEN x, GEN y, GEN T); 208 GEN F2xqX_sqr(GEN x, GEN T); 209 GEN F2xqXQ_inv(GEN x, GEN S, GEN T); 210 GEN F2xqXQ_invsafe(GEN x, GEN S, GEN T); 211 GEN F2xqXQ_mul(GEN x, GEN y, GEN S, GEN T); 212 GEN F2xqXQ_sqr(GEN x, GEN S, GEN T); 213 GEN F2xqXQ_pow(GEN x, GEN n, GEN S, GEN T); 214 GEN F2xqXQ_powers(GEN x, long l, GEN S, GEN T); 215 GEN F2xqXQ_autpow(GEN aut, long n, GEN S, GEN T); 216 GEN F2xqXQ_auttrace(GEN aut, long n, GEN S, GEN T); 217 GEN F2xqXQV_red(GEN z, GEN S, GEN T); 218 GEN Flm_to_F2m(GEN x); 219 GEN Flv_to_F2v(GEN x); 220 GEN Flx_to_F2x(GEN x); 221 GEN FlxC_to_F2xC(GEN x); 222 GEN FlxX_to_F2xX(GEN B); 223 GEN FlxXC_to_F2xXC(GEN B); 224 GEN Kronecker_to_F2xqX(GEN z, GEN T); 225 GEN Rg_to_F2xq(GEN x, GEN T); 226 GEN RgM_to_F2m(GEN x); 227 GEN RgV_to_F2v(GEN x); 228 GEN RgX_to_F2x(GEN x); 229 GEN Z_to_F2x(GEN x, long v); 230 GEN ZM_to_F2m(GEN x); 231 GEN ZV_to_F2v(GEN x); 232 GEN ZX_to_F2x(GEN x); 233 GEN ZXX_to_F2xX(GEN B, long v); 234 GEN const_F2v(long m); 235 GEN gener_F2xq(GEN T, GEN *po); 236 const struct bb_field *get_F2xq_field(void **E, GEN T); 237 GEN monomial_F2x(long d, long vs); 238 GEN pol1_F2xX(long v, long sv); 239 GEN polx_F2xX(long v, long sv); 240 GEN random_F2xqX(long d1, long v, GEN T); 241 242 /* F2xqE.c */ 243 244 GEN F2x_Teichmuller(GEN P, long n); 245 GEN F2xq_ellcard(GEN a2, GEN a6, GEN T); 246 GEN F2xq_ellgens(GEN a2, GEN a6, GEN ch, GEN D, GEN m, GEN T); 247 GEN F2xq_ellgroup(GEN a2, GEN a6, GEN N, GEN T, GEN *pt_m); 248 void F2xq_elltwist(GEN a, GEN a6, GEN T, GEN *pt_a, GEN *pt_a6); 249 GEN F2xqE_add(GEN P, GEN Q, GEN a2, GEN T); 250 GEN F2xqE_changepoint(GEN x, GEN ch, GEN T); 251 GEN F2xqE_changepointinv(GEN x, GEN ch, GEN T); 252 GEN F2xqE_dbl(GEN P, GEN a2, GEN T); 253 GEN F2xqE_log(GEN a, GEN b, GEN o, GEN a2, GEN T); 254 GEN F2xqE_mul(GEN P, GEN n, GEN a2, GEN T); 255 GEN F2xqE_neg(GEN P, GEN a2, GEN T); 256 GEN F2xqE_order(GEN z, GEN o, GEN a2, GEN T); 257 GEN F2xqE_sub(GEN P, GEN Q, GEN a2, GEN T); 258 GEN F2xqE_tatepairing(GEN t, GEN s, GEN m, GEN a2, GEN T); 259 GEN F2xqE_weilpairing(GEN t, GEN s, GEN m, GEN a2, GEN T); 260 const struct bb_group * get_F2xqE_group(void **E, GEN a2, GEN a6, GEN T); 261 GEN RgE_to_F2xqE(GEN x, GEN T); 262 GEN random_F2xqE(GEN a2, GEN a6, GEN T); 263 264 /* Fle.c */ 265 266 ulong Fl_elldisc(ulong a4, ulong a6, ulong p); 267 ulong Fl_elldisc_pre(ulong a4, ulong a6, ulong p, ulong pi); 268 ulong Fl_ellj(ulong a4, ulong a6, ulong p); 269 void Fl_ellj_to_a4a6(ulong j, ulong p, ulong *pt_a4, ulong *pt_a6); 270 void Fl_elltwist(ulong a4, ulong a6, ulong p, ulong *pt_a4, ulong *pt_a6); 271 void Fl_elltwist_disc(ulong a4, ulong a6, ulong D, ulong p, ulong *pt_a4, ulong *pt_a6); 272 GEN Fle_add(GEN P, GEN Q, ulong a4, ulong p); 273 GEN Fle_dbl(GEN P, ulong a4, ulong p); 274 GEN Fle_changepoint(GEN x, GEN ch, ulong p); 275 GEN Fle_changepointinv(GEN x, GEN ch, ulong p); 276 GEN Fle_log(GEN a, GEN b, GEN o, ulong a4, ulong p); 277 GEN Fle_mul(GEN P, GEN n, ulong a4, ulong p); 278 GEN Fle_mulu(GEN P, ulong n, ulong a4, ulong p); 279 GEN Fle_order(GEN z, GEN o, ulong a4, ulong p); 280 GEN Fle_sub(GEN P, GEN Q, ulong a4, ulong p); 281 GEN Fle_to_Flj(GEN P); 282 GEN Flj_add_pre(GEN P, GEN Q, ulong a4, ulong p, ulong pi); 283 GEN Flj_changepointinv_pre(GEN P, GEN ch, ulong p, ulong pi); 284 GEN Flj_dbl_pre(GEN P, ulong a4, ulong p, ulong pi); 285 GEN Flj_mulu_pre(GEN P, ulong n, ulong a4, ulong p, ulong pi); 286 GEN Flj_neg(GEN Q, ulong p); 287 GEN Flj_to_Fle_pre(GEN P, ulong p, ulong pi); 288 GEN FljV_factorback_pre(GEN P, GEN L, ulong a4, ulong p, ulong pi); 289 GEN random_Fle(ulong a4, ulong a6, ulong p); 290 GEN random_Fle_pre(ulong a4, ulong a6, ulong p, ulong pi); 291 GEN random_Flj_pre(ulong a4, ulong a6, ulong p, ulong pi); 292 293 /* Flv.c */ 294 295 GEN Flc_to_ZC(GEN z); 296 GEN Flc_to_ZC_inplace(GEN z); 297 GEN Flm_Flc_gauss(GEN a, GEN b, ulong p); 298 GEN Flm_Flc_invimage(GEN mat, GEN y, ulong p); 299 GEN Flm_adjoint(GEN A, ulong p); 300 GEN Flm_deplin(GEN x, ulong p); 301 ulong Flm_det(GEN x, ulong p); 302 ulong Flm_det_sp(GEN x, ulong p); 303 GEN Flm_gauss(GEN a, GEN b, ulong p); 304 GEN Flm_intersect(GEN x, GEN y, ulong p); 305 GEN Flm_inv(GEN x, ulong p); 306 GEN Flm_invimage(GEN m, GEN v, ulong p); 307 GEN Flm_ker(GEN x, ulong p); 308 GEN Flm_ker_sp(GEN x, ulong p, long deplin); 309 long Flm_rank(GEN x, ulong p); 310 GEN Flm_to_ZM(GEN z); 311 GEN Flm_to_ZM_inplace(GEN z); 312 GEN Flv_to_ZV(GEN z); 313 314 /* Flx.c */ 315 316 GEN Fl_to_Flx(ulong x, long sv); 317 int Fl2_equal1(GEN x); 318 GEN Fl2_inv_pre(GEN x, ulong D, ulong p, ulong pi); 319 GEN Fl2_mul_pre(GEN x, GEN y, ulong D, ulong p, ulong pi); 320 ulong Fl2_norm_pre(GEN x, ulong D, ulong p, ulong pi); 321 GEN Fl2_pow_pre(GEN x, GEN n, ulong D, ulong p, ulong pi); 322 GEN Fl2_sqr_pre(GEN x, ulong D, ulong p, ulong pi); 323 GEN Fl2_sqrtn_pre(GEN a, GEN n, ulong D, ulong p, ulong pi, GEN *zeta); 324 GEN Flm_to_FlxV(GEN x, long sv); 325 GEN Flm_to_FlxX(GEN x, long v,long w); 326 GEN Flv_Flm_polint(GEN xa, GEN ya, ulong p, long vs); 327 GEN Flv_inv(GEN x, ulong p); 328 void Flv_inv_inplace(GEN x, ulong p); 329 void Flv_inv_pre_inplace(GEN x, ulong p, ulong pi); 330 GEN Flv_inv_pre(GEN x, ulong p, ulong pi); 331 GEN Flv_invVandermonde(GEN L, ulong den, ulong p); 332 GEN Flv_polint(GEN xa, GEN ya, ulong p, long vs); 333 ulong Flv_prod(GEN v, ulong p); 334 ulong Flv_prod_pre(GEN x, ulong p, ulong pi); 335 GEN Flv_roots_to_pol(GEN a, ulong p, long vs); 336 GEN Flv_to_Flx(GEN x, long vs); 337 GEN Flx_Fl_add(GEN y, ulong x, ulong p); 338 GEN Flx_Fl_mul(GEN y, ulong x, ulong p); 339 GEN Flx_Fl_mul_to_monic(GEN y, ulong x, ulong p); 340 GEN Flx_Fl_sub(GEN y, ulong x, ulong p); 341 GEN Flx_Fl2_eval_pre(GEN x, GEN y, ulong D, ulong p, ulong pi); 342 GEN Flx_Flv_multieval(GEN P, GEN v, ulong p); 343 GEN Flx_Flxq_eval(GEN f,GEN x,GEN T,ulong p); 344 GEN Flx_FlxqV_eval(GEN f,GEN x,GEN T,ulong p); 345 GEN Flx_Frobenius(GEN T, ulong p); 346 GEN Flx_Laplace(GEN x, ulong p); 347 GEN Flx_Newton(GEN P, long n, ulong p); 348 GEN Flx_add(GEN x, GEN y, ulong p); 349 GEN Flx_blocks(GEN P, long n, long m); 350 GEN Flx_deflate(GEN x0, long d); 351 GEN Flx_deriv(GEN z, ulong p); 352 GEN Flx_diff1(GEN P, ulong p); 353 GEN Flx_digits(GEN x, GEN T, ulong p); 354 GEN Flx_div_by_X_x(GEN a, ulong x, ulong p, ulong *rem); 355 GEN Flx_divrem(GEN x, GEN y, ulong p, GEN *pr); 356 GEN Flx_double(GEN y, ulong p); 357 int Flx_equal(GEN V, GEN W); 358 ulong Flx_eval(GEN x, ulong y, ulong p); 359 ulong Flx_eval_powers_pre(GEN x, GEN y, ulong p, ulong pi); 360 ulong Flx_eval_pre(GEN x, ulong y, ulong p, ulong pi); 361 GEN Flx_extgcd(GEN a, GEN b, ulong p, GEN *ptu, GEN *ptv); 362 ulong Flx_extresultant(GEN a, GEN b, ulong p, GEN *ptU, GEN *ptV); 363 GEN Flx_fromNewton(GEN P, ulong p); 364 GEN Flx_gcd(GEN a, GEN b, ulong p); 365 GEN Flx_get_red(GEN T, ulong p); 366 GEN Flx_halfgcd(GEN a, GEN b, ulong p); 367 GEN Flx_halve(GEN y, ulong p); 368 GEN Flx_inflate(GEN x0, long d); 369 GEN Flx_integ(GEN z, ulong p); 370 GEN Flx_invBarrett(GEN T, ulong p); 371 GEN Flx_invLaplace(GEN x, ulong p); 372 int Flx_is_squarefree(GEN z, ulong p); 373 int Flx_is_smooth(GEN g, long r, ulong p); 374 GEN Flx_matFrobenius(GEN T, ulong p); 375 GEN Flx_mod_Xn1(GEN T, ulong n, ulong p); 376 GEN Flx_mod_Xnm1(GEN T, ulong n, ulong p); 377 GEN Flx_mul(GEN x, GEN y, ulong p); 378 GEN Flx_neg(GEN x, ulong p); 379 GEN Flx_neg_inplace(GEN x, ulong p); 380 GEN Flx_normalize(GEN z, ulong p); 381 GEN Flx_powu(GEN x, ulong n, ulong p); 382 GEN Flx_recip(GEN x); 383 GEN Flx_red(GEN z, ulong p); 384 GEN Flx_rem(GEN x, GEN y, ulong p); 385 GEN Flx_renormalize(GEN x, long l); 386 GEN Flx_rescale(GEN P, ulong h, ulong p); 387 ulong Flx_resultant(GEN a, GEN b, ulong p); 388 GEN Flx_shift(GEN a, long n); 389 GEN Flx_splitting(GEN p, long k); 390 GEN Flx_sqr(GEN x, ulong p); 391 GEN Flx_sub(GEN x, GEN y, ulong p); 392 GEN Flx_translate1(GEN P, ulong p); 393 GEN Flx_translate1_basecase(GEN P, ulong p); 394 GEN Flx_to_Flv(GEN x, long N); 395 GEN Flx_to_FlxX(GEN z, long v); 396 GEN Flx_to_ZX(GEN z); 397 GEN Flx_to_ZX_inplace(GEN z); 398 GEN Flx_triple(GEN y, ulong p); 399 long Flx_val(GEN x); 400 long Flx_valrem(GEN x, GEN *Z); 401 GEN FlxC_FlxqV_eval(GEN x, GEN v, GEN T, ulong p); 402 GEN FlxC_Flxq_eval(GEN x, GEN F, GEN T, ulong p); 403 GEN FlxC_eval_powers_pre(GEN z, GEN x, ulong p, ulong pi); 404 GEN FlxC_neg(GEN x, ulong p); 405 GEN FlxC_sub(GEN x, GEN y, ulong p); 406 GEN FlxC_to_ZXC(GEN x); 407 GEN FlxM_Flx_add_shallow(GEN x, GEN y, ulong p); 408 GEN FlxM_eval_powers_pre(GEN z, GEN x, ulong p, ulong pi); 409 GEN FlxM_neg(GEN x, ulong p); 410 GEN FlxM_sub(GEN x, GEN y, ulong p); 411 GEN FlxM_to_ZXM(GEN z); 412 GEN FlxT_red(GEN z, ulong p); 413 GEN FlxV_Flc_mul(GEN V, GEN W, ulong p); 414 GEN FlxV_Flv_multieval(GEN P, GEN v, ulong p); 415 GEN FlxV_Flx_fromdigits(GEN x, GEN T, ulong p); 416 GEN FlxV_prod(GEN V, ulong p); 417 GEN FlxV_red(GEN z, ulong p); 418 GEN FlxV_to_Flm(GEN v, long n); 419 GEN FlxV_to_FlxX(GEN x, long v); 420 GEN FlxV_to_ZXV(GEN x); 421 void FlxV_to_ZXV_inplace(GEN v); 422 GEN Flxn_exp(GEN h, long e, ulong p); 423 GEN Flxn_expint(GEN h, long e, ulong p); 424 GEN Flxn_inv(GEN f, long e, ulong p); 425 GEN Flxn_mul(GEN a, GEN b, long n, ulong p); 426 GEN Flxn_sqr(GEN a, long n, ulong p); 427 GEN Flxn_red(GEN a, long n); 428 GEN Flxq_autpow(GEN x, ulong n, GEN T, ulong p); 429 GEN Flxq_autpowers(GEN x, ulong n, GEN T, ulong p); 430 GEN Flxq_autsum(GEN x, ulong n, GEN T, ulong p); 431 GEN Flxq_auttrace(GEN x, ulong n, GEN T, ulong p); 432 GEN Flxq_charpoly(GEN x, GEN T, ulong p); 433 GEN Flxq_conjvec(GEN x, GEN T, ulong p); 434 GEN Flxq_div(GEN x, GEN y, GEN T, ulong p); 435 GEN Flxq_inv(GEN x,GEN T,ulong p); 436 GEN Flxq_invsafe(GEN x, GEN T, ulong p); 437 int Flxq_issquare(GEN x, GEN T, ulong p); 438 int Flxq_is2npower(GEN x, long n, GEN T, ulong p); 439 GEN Flxq_log(GEN a, GEN g, GEN ord, GEN T, ulong p); 440 GEN Flxq_lroot(GEN a, GEN T, long p); 441 GEN Flxq_lroot_fast(GEN a, GEN sqx, GEN T, long p); 442 GEN Flxq_matrix_pow(GEN y, long n, long m, GEN P, ulong l); 443 GEN Flxq_minpoly(GEN x, GEN T, ulong p); 444 GEN Flxq_mul(GEN x, GEN y, GEN T, ulong p); 445 ulong Flxq_norm(GEN x, GEN T, ulong p); 446 GEN Flxq_order(GEN a, GEN ord, GEN T, ulong p); 447 GEN Flxq_pow(GEN x, GEN n, GEN T, ulong p); 448 GEN Flxq_pow_init(GEN x, GEN n, long k, GEN T, ulong p); 449 GEN Flxq_pow_table(GEN R, GEN n, GEN T, ulong p); 450 GEN Flxq_powu(GEN x, ulong n, GEN T, ulong p); 451 GEN Flxq_powers(GEN x, long l, GEN T, ulong p); 452 GEN Flxq_sqr(GEN y,GEN T,ulong p); 453 GEN Flxq_sqrt(GEN a, GEN T, ulong p); 454 GEN Flxq_sqrtn(GEN a, GEN n, GEN T, ulong p, GEN *zetan); 455 ulong Flxq_trace(GEN x, GEN T, ulong p); 456 GEN FlxqC_Flxq_mul(GEN x, GEN y, GEN T, ulong p); 457 GEN FlxqM_Flxq_mul(GEN x, GEN y, GEN T, ulong p); 458 GEN FlxqV_dotproduct(GEN x, GEN y, GEN T, ulong p); 459 ulong Rg_to_F2(GEN x); 460 ulong Rg_to_Fl(GEN x, ulong p); 461 GEN Rg_to_Flxq(GEN x, GEN T, ulong p); 462 GEN RgX_to_Flx(GEN x, ulong p); 463 GEN RgXV_to_FlxV(GEN x, ulong p); 464 GEN Z_to_Flx(GEN x, ulong p, long sv); 465 GEN ZX_to_Flx(GEN x, ulong p); 466 GEN ZXV_to_FlxV(GEN v, ulong p); 467 GEN ZXT_to_FlxT(GEN z, ulong p); 468 GEN gener_Flxq(GEN T, ulong p, GEN *o); 469 const struct bb_field *get_Flxq_field(void **E, GEN T, ulong p); 470 const struct bb_group *get_Flxq_star(void **E, GEN T, ulong p); 471 GEN monomial_Flx(ulong a, long d, long vs); 472 GEN random_Flx(long d1, long v, ulong p); 473 GEN zero_FlxC(long n, long sv); 474 GEN zero_FlxM(long r, long c, long sv); 475 GEN zlx_translate1(GEN P, ulong p, long e); 476 GEN zx_to_Flx(GEN x, ulong p); 477 478 /* FlxX.c */ 479 480 GEN FlxX_Fl_mul(GEN x, ulong y, ulong p); 481 GEN FlxX_Flx_add(GEN y, GEN x, ulong p); 482 GEN FlxX_Flx_mul(GEN x, GEN y, ulong p); 483 GEN FlxX_Flx_sub(GEN y, GEN x, ulong p); 484 GEN FlxX_Laplace(GEN x, ulong p); 485 GEN FlxX_add(GEN P, GEN Q, ulong p); 486 GEN FlxX_blocks(GEN P, long n, long m, long vs); 487 GEN FlxX_deriv(GEN z, ulong p); 488 GEN FlxX_double(GEN x, ulong p); 489 GEN FlxX_invLaplace(GEN x, ulong p); 490 GEN FlxX_neg(GEN x, ulong p); 491 GEN FlxX_renormalize(GEN x, long lx); 492 GEN FlxX_shift(GEN a, long n, long vs); 493 GEN FlxX_sub(GEN P, GEN Q, ulong p); 494 GEN FlxX_swap(GEN x, long n, long ws); 495 GEN FlxX_to_Flm(GEN v, long n); 496 GEN FlxX_to_Flx(GEN f); 497 GEN FlxX_to_FlxC(GEN x, long N, long sv); 498 GEN FlxX_to_ZXX(GEN B); 499 GEN FlxX_translate1(GEN P, long p, long n); 500 GEN FlxX_triple(GEN x, ulong p); 501 GEN FlxXC_to_ZXXC(GEN B); 502 GEN FlxXM_to_ZXXM(GEN B); 503 GEN FlxXV_to_FlxM(GEN v, long n, long sv); 504 GEN FlxXn_red(GEN a, long n); 505 GEN FlxY_Flx_div(GEN x, GEN y, ulong p); 506 GEN FlxY_Flx_translate(GEN P, GEN c, ulong p); 507 GEN FlxY_Flxq_evalx(GEN P, GEN x, GEN T, ulong p); 508 GEN FlxY_FlxqV_evalx(GEN P, GEN x, GEN T, ulong p); 509 long FlxY_degreex(GEN b); 510 ulong FlxY_eval_powers_pre(GEN pol, GEN ypowers, GEN xpowers, ulong p, ulong pi); 511 GEN FlxY_evalx(GEN Q, ulong x, ulong p); 512 GEN FlxY_evalx_powers_pre(GEN pol, GEN ypowers, ulong p, ulong pi); 513 GEN FlxYqq_pow(GEN x, GEN n, GEN S, GEN T, ulong p); 514 GEN FlxqV_roots_to_pol(GEN V, GEN T, ulong p, long v); 515 GEN FlxqX_FlxqXQ_eval(GEN Q, GEN x, GEN S, GEN T, ulong p); 516 GEN FlxqX_FlxqXQV_eval(GEN P, GEN V, GEN S, GEN T, ulong p); 517 GEN FlxqX_Flxq_mul(GEN P, GEN U, GEN T, ulong p); 518 GEN FlxqX_Flxq_mul_to_monic(GEN P, GEN U, GEN T, ulong p); 519 GEN FlxqX_Newton(GEN P, long n, GEN T, ulong p); 520 GEN FlxqX_divrem(GEN x, GEN y, GEN T, ulong p, GEN *pr); 521 GEN FlxqX_disc(GEN x, GEN T, ulong p); 522 GEN FlxqX_dotproduct(GEN x, GEN y, GEN T, ulong p); 523 GEN FlxqX_extgcd(GEN a, GEN b, GEN T, ulong p, GEN *ptu, GEN *ptv); 524 GEN FlxqX_fromNewton(GEN P, GEN T, ulong p); 525 GEN FlxqX_gcd(GEN P, GEN Q, GEN T, ulong p); 526 GEN FlxqX_get_red(GEN S, GEN T, ulong p); 527 GEN FlxqX_halfgcd(GEN x, GEN y, GEN T, ulong p); 528 GEN FlxqX_invBarrett(GEN T, GEN Q, ulong p); 529 GEN FlxqX_mul(GEN x, GEN y, GEN T, ulong p); 530 GEN FlxqX_normalize(GEN z, GEN T, ulong p); 531 GEN FlxqX_powu(GEN V, ulong n, GEN T, ulong p); 532 GEN FlxqX_red(GEN z, GEN T, ulong p); 533 GEN FlxqX_rem(GEN x, GEN y, GEN T, ulong p); 534 GEN FlxqX_resultant(GEN x, GEN y, GEN T, ulong p); 535 GEN FlxqX_safegcd(GEN P, GEN Q, GEN T, ulong p); 536 GEN FlxqX_saferesultant(GEN a, GEN b, GEN T, ulong p); 537 GEN FlxqX_sqr(GEN x, GEN T, ulong p); 538 GEN FlxqXQ_div(GEN x, GEN y, GEN S, GEN T, ulong p); 539 GEN FlxqXQ_inv(GEN x, GEN S, GEN T, ulong p); 540 GEN FlxqXQ_invsafe(GEN x, GEN S, GEN T, ulong p); 541 GEN FlxqXQ_matrix_pow(GEN x, long n, long m, GEN S, GEN T, ulong p); 542 GEN FlxqXQ_minpoly(GEN x, GEN S, GEN T, ulong p); 543 GEN FlxqXQ_mul(GEN x, GEN y, GEN S, GEN T, ulong p); 544 GEN FlxqXQ_pow(GEN x, GEN n, GEN S, GEN T, ulong p); 545 GEN FlxqXQ_powu(GEN x, ulong n, GEN S, GEN T, ulong p); 546 GEN FlxqXQ_powers(GEN x, long n, GEN S, GEN T, ulong p); 547 GEN FlxqXQ_sqr(GEN x, GEN S, GEN T, ulong p); 548 GEN FlxqXQ_autpow(GEN x, long n, GEN S, GEN T, ulong p); 549 GEN FlxqXQ_autsum(GEN aut, long n, GEN S, GEN T, ulong p); 550 GEN FlxqXQ_auttrace(GEN x, ulong n, GEN S, GEN T, ulong p); 551 GEN FlxqXV_prod(GEN V, GEN T, ulong p); 552 GEN FlxqXn_expint(GEN h, long e, GEN T, ulong p); 553 GEN FlxqXn_inv(GEN f, long e, GEN T, ulong p); 554 GEN FlxqXn_mul(GEN a, GEN b, long n, GEN T, ulong p); 555 GEN FlxqXn_sqr(GEN a, long n, GEN T, ulong p); 556 GEN Fly_to_FlxY(GEN B, long v); 557 GEN Kronecker_to_FlxqX(GEN z, GEN T, ulong p); 558 GEN RgX_to_FlxqX(GEN x, GEN T, ulong p); 559 const struct bb_algebra *get_FlxqXQ_algebra(void **E, GEN S, GEN T, ulong p); 560 GEN pol1_FlxX(long v, long sv); 561 GEN polx_FlxX(long v, long sv); 562 GEN random_FlxqX(long d1, long v, GEN T, ulong p); 563 GEN zlxX_translate1(GEN P, long p, long e, long n); 564 GEN zxX_to_FlxX(GEN B, ulong p); 565 GEN zxX_to_Kronecker(GEN P, GEN Q); 566 567 /* FlxqE.c */ 568 569 GEN Flxq_ellcard(GEN a4, GEN a6, GEN T, ulong p); 570 GEN Flxq_ellgens(GEN a4, GEN a6, GEN ch, GEN D, GEN m, GEN T, ulong p); 571 GEN Flxq_ellgroup(GEN a4, GEN a6, GEN N, GEN T, ulong p, GEN *pt_m); 572 void Flxq_elltwist(GEN a, GEN a6, GEN T, ulong p, GEN *pt_a, GEN *pt_a6); 573 GEN Flxq_ellj(GEN a4, GEN a6, GEN T, ulong p); 574 void Flxq_ellj_to_a4a6(GEN j, GEN T, ulong p, GEN *pt_a4, GEN *pt_a6); 575 GEN FlxqE_add(GEN P, GEN Q, GEN a4, GEN T, ulong p); 576 GEN FlxqE_changepoint(GEN x, GEN ch, GEN T, ulong p); 577 GEN FlxqE_changepointinv(GEN x, GEN ch, GEN T, ulong p); 578 GEN FlxqE_dbl(GEN P, GEN a4, GEN T, ulong p); 579 GEN FlxqE_log(GEN a, GEN b, GEN o, GEN a4, GEN T, ulong p); 580 GEN FlxqE_mul(GEN P, GEN n, GEN a4, GEN T, ulong p); 581 GEN FlxqE_neg(GEN P, GEN T, ulong p); 582 GEN FlxqE_order(GEN z, GEN o, GEN a4, GEN T, ulong p); 583 GEN FlxqE_sub(GEN P, GEN Q, GEN a4, GEN T, ulong p); 584 GEN FlxqE_tatepairing(GEN t, GEN s, GEN m, GEN a4, GEN T, ulong p); 585 GEN FlxqE_weilpairing(GEN t, GEN s, GEN m, GEN a4, GEN T, ulong p); 586 GEN ZXX_to_FlxX(GEN B, ulong p, long v); 587 GEN ZXXT_to_FlxXT(GEN z, ulong p, long v); 588 GEN ZXXV_to_FlxXV(GEN V, ulong p, long v); 589 const struct bb_group * get_FlxqE_group(void **E, GEN a4, GEN a6, GEN T, ulong p); 590 GEN RgE_to_FlxqE(GEN x, GEN T, ulong p); 591 GEN random_FlxqE(GEN a4, GEN a6, GEN T, ulong p); 592 593 /* FpE.c */ 594 595 long Fl_elltrace(ulong a4, ulong a6, ulong p); 596 long Fl_elltrace_CM(long CM, ulong a4, ulong a6, ulong p); 597 GEN Fp_ellcard(GEN a4, GEN a6, GEN p); 598 GEN Fp_elldivpol(GEN a4, GEN a6, long n, GEN p); 599 GEN Fp_ellgens(GEN a4, GEN a6, GEN ch, GEN D, GEN m, GEN p); 600 GEN Fp_ellgroup(GEN a4, GEN a6, GEN N, GEN p, GEN *pt_m); 601 GEN Fp_ellj(GEN a4, GEN a6, GEN p); 602 int Fp_elljissupersingular(GEN j, GEN p); 603 void Fp_elltwist(GEN a4, GEN a6, GEN p, GEN *pt_a4, GEN *pt_a6); 604 GEN Fp_ffellcard(GEN a4, GEN a6, GEN q, long n, GEN p); 605 GEN FpE_add(GEN P, GEN Q, GEN a4, GEN p); 606 GEN FpE_changepoint(GEN x, GEN ch, GEN p); 607 GEN FpE_changepointinv(GEN x, GEN ch, GEN p); 608 GEN FpE_dbl(GEN P, GEN a4, GEN p); 609 GEN FpE_log(GEN a, GEN b, GEN o, GEN a4, GEN p); 610 GEN FpE_mul(GEN P, GEN n, GEN a4, GEN p); 611 GEN FpE_neg(GEN P, GEN p); 612 GEN FpE_order(GEN z, GEN o, GEN a4, GEN p); 613 GEN FpE_sub(GEN P, GEN Q, GEN a4, GEN p); 614 GEN FpE_to_FpJ(GEN P); 615 GEN FpE_to_mod(GEN P, GEN p); 616 GEN FpE_tatepairing(GEN t, GEN s, GEN m, GEN a4, GEN p); 617 GEN FpE_weilpairing(GEN t, GEN s, GEN m, GEN a4, GEN p); 618 GEN FpJ_add(GEN P, GEN Q, GEN a4, GEN p); 619 GEN FpJ_dbl(GEN P, GEN a4, GEN p); 620 GEN FpJ_mul(GEN P, GEN n, GEN a4, GEN p); 621 GEN FpJ_neg(GEN Q, GEN p); 622 GEN FpJ_to_FpE(GEN P, GEN p); 623 GEN FpXQ_ellcard(GEN a4, GEN a6, GEN T, GEN p); 624 GEN FpXQ_elldivpol(GEN a4, GEN a6, long n, GEN T, GEN p); 625 GEN FpXQ_ellgens(GEN a4, GEN a6, GEN ch, GEN D, GEN m, GEN T, GEN p); 626 GEN FpXQ_ellgroup(GEN a4, GEN a6, GEN N, GEN T, GEN p, GEN *pt_m); 627 GEN FpXQ_ellj(GEN a4, GEN a6, GEN T, GEN p); 628 int FpXQ_elljissupersingular(GEN j, GEN T, GEN p); 629 void FpXQ_elltwist(GEN a4, GEN a6, GEN T, GEN p, GEN *pt_a4, GEN *pt_a6); 630 GEN FpXQE_add(GEN P, GEN Q, GEN a4, GEN T, GEN p); 631 GEN FpXQE_changepoint(GEN x, GEN ch, GEN T, GEN p); 632 GEN FpXQE_changepointinv(GEN x, GEN ch, GEN T, GEN p); 633 GEN FpXQE_dbl(GEN P, GEN a4, GEN T, GEN p); 634 GEN FpXQE_log(GEN a, GEN b, GEN o, GEN a4, GEN T, GEN p); 635 GEN FpXQE_mul(GEN P, GEN n, GEN a4, GEN T, GEN p); 636 GEN FpXQE_neg(GEN P, GEN T, GEN p); 637 GEN FpXQE_order(GEN z, GEN o, GEN a4, GEN T, GEN p); 638 GEN FpXQE_sub(GEN P, GEN Q, GEN a4, GEN T, GEN p); 639 GEN FpXQE_tatepairing(GEN t, GEN s, GEN m, GEN a4, GEN T, GEN p); 640 GEN FpXQE_weilpairing(GEN t, GEN s, GEN m, GEN a4, GEN T, GEN p); 641 GEN Fq_elldivpolmod(GEN a4, GEN a6, long n, GEN h, GEN T, GEN p); 642 GEN RgE_to_FpE(GEN x, GEN p); 643 GEN RgE_to_FpXQE(GEN x, GEN T, GEN p); 644 const struct bb_group * get_FpE_group(void **E, GEN a4, GEN a6, GEN p); 645 const struct bb_group * get_FpXQE_group(void **E, GEN a4, GEN a6, GEN T, GEN p); 646 GEN elltrace_extension(GEN t, long n, GEN p); 647 GEN random_FpE(GEN a4, GEN a6, GEN p); 648 GEN random_FpXQE(GEN a4, GEN a6, GEN T, GEN p); 649 650 /* FpX.c */ 651 652 int Fp_issquare(GEN x, GEN p); 653 GEN Fp_FpX_sub(GEN x, GEN y, GEN p); 654 GEN Fp_FpXQ_log(GEN a, GEN g, GEN ord, GEN T, GEN p); 655 GEN FpV_FpM_polint(GEN xa, GEN ya, GEN p, long vs); 656 GEN FpV_inv(GEN x, GEN p); 657 GEN FpV_invVandermonde(GEN L, GEN den, GEN p); 658 GEN FpV_polint(GEN xa, GEN ya, GEN p, long v); 659 GEN FpV_roots_to_pol(GEN V, GEN p, long v); 660 GEN FpX_Fp_add(GEN x, GEN y, GEN p); 661 GEN FpX_Fp_add_shallow(GEN y,GEN x,GEN p); 662 GEN FpX_Fp_div(GEN x, GEN y, GEN p); 663 GEN FpX_Fp_mul(GEN x, GEN y, GEN p); 664 GEN FpX_Fp_mul_to_monic(GEN y,GEN x,GEN p); 665 GEN FpX_Fp_mulspec(GEN y,GEN x,GEN p,long ly); 666 GEN FpX_Fp_sub(GEN x, GEN y, GEN p); 667 GEN FpX_Fp_sub_shallow(GEN y,GEN x,GEN p); 668 GEN FpX_FpV_multieval(GEN P, GEN xa, GEN p); 669 GEN FpX_FpXQ_eval(GEN f,GEN x,GEN T,GEN p); 670 GEN FpX_FpXQV_eval(GEN f,GEN x,GEN T,GEN p); 671 GEN FpX_FpXV_multirem(GEN P, GEN xa, GEN p); 672 GEN FpX_Frobenius(GEN T, GEN p); 673 GEN FpX_Laplace(GEN x, GEN p); 674 GEN FpX_Newton(GEN P, long n, GEN p); 675 GEN FpX_add(GEN x, GEN y, GEN p); 676 GEN FpX_center(GEN x, GEN p, GEN pov2); 677 GEN FpX_center_i(GEN T, GEN p, GEN pov2); 678 GEN FpX_chinese_coprime(GEN x,GEN y,GEN Tx,GEN Ty,GEN Tz,GEN p); 679 GEN FpX_convol(GEN x, GEN y, GEN p); 680 GEN FpX_deriv(GEN x, GEN p); 681 GEN FpX_digits(GEN x, GEN y, GEN p); 682 GEN FpX_disc(GEN x, GEN p); 683 GEN FpX_div_by_X_x(GEN a, GEN x, GEN p, GEN *r); 684 GEN FpX_divrem(GEN x, GEN y, GEN p, GEN *pr); 685 GEN FpX_divu(GEN x, ulong y, GEN p); 686 GEN FpX_dotproduct(GEN x, GEN y, GEN p); 687 GEN FpX_eval(GEN x,GEN y,GEN p); 688 GEN FpX_extgcd(GEN x, GEN y, GEN p, GEN *ptu, GEN *ptv); 689 GEN FpX_fromNewton(GEN P, GEN p); 690 GEN FpX_gcd(GEN x, GEN y, GEN p); 691 GEN FpX_gcd_check(GEN x, GEN y, GEN p); 692 GEN FpX_get_red(GEN T, GEN p); 693 GEN FpX_halve(GEN y, GEN p); 694 GEN FpX_halfgcd(GEN x, GEN y, GEN p); 695 GEN FpX_integ(GEN x, GEN p); 696 GEN FpX_invBarrett(GEN T, GEN p); 697 GEN FpX_invLaplace(GEN x, GEN p); 698 int FpX_is_squarefree(GEN f, GEN p); 699 long FpX_ispower(GEN f, ulong k, GEN p, GEN *pt_r); 700 GEN FpX_matFrobenius(GEN T, GEN p); 701 GEN FpX_mul(GEN x, GEN y, GEN p); 702 GEN FpX_mulspec(GEN a, GEN b, GEN p, long na, long nb); 703 GEN FpX_mulu(GEN x, ulong y, GEN p); 704 GEN FpX_neg(GEN x, GEN p); 705 GEN FpX_normalize(GEN z, GEN p); 706 GEN FpX_powu(GEN x, ulong n, GEN p); 707 GEN FpX_red(GEN z, GEN p); 708 GEN FpX_rem(GEN x, GEN y, GEN p); 709 GEN FpX_rescale(GEN P, GEN h, GEN p); 710 GEN FpX_resultant(GEN a, GEN b, GEN p); 711 GEN FpX_sqr(GEN x, GEN p); 712 GEN FpX_sub(GEN x, GEN y, GEN p); 713 long FpX_valrem(GEN x0, GEN t, GEN p, GEN *py); 714 GEN FpXC_FpXQ_eval(GEN Q, GEN x, GEN T, GEN p); 715 GEN FpXC_FpXQV_eval(GEN Q, GEN x, GEN T, GEN p); 716 GEN FpXM_FpXQV_eval(GEN Q, GEN x, GEN T, GEN p); 717 GEN FpXQ_autpow(GEN x, ulong n, GEN T, GEN p); 718 GEN FpXQ_autpowers(GEN aut, long f, GEN T, GEN p); 719 GEN FpXQ_autsum(GEN x, ulong n, GEN T, GEN p); 720 GEN FpXQ_auttrace(GEN x, ulong n, GEN T, GEN p); 721 GEN FpXQ_charpoly(GEN x, GEN T, GEN p); 722 GEN FpXQ_conjvec(GEN x, GEN T, GEN p); 723 GEN FpXQ_div(GEN x,GEN y,GEN T,GEN p); 724 GEN FpXQ_inv(GEN x,GEN T,GEN p); 725 GEN FpXQ_invsafe(GEN x, GEN T, GEN p); 726 int FpXQ_issquare(GEN x, GEN T, GEN p); 727 GEN FpXQ_log(GEN a, GEN g, GEN ord, GEN T, GEN p); 728 GEN FpXQ_matrix_pow(GEN y, long n, long m, GEN P, GEN l); 729 GEN FpXQ_minpoly(GEN x, GEN T, GEN p); 730 GEN FpXQ_mul(GEN y,GEN x,GEN T,GEN p); 731 GEN FpXQ_norm(GEN x, GEN T, GEN p); 732 GEN FpXQ_order(GEN a, GEN ord, GEN T, GEN p); 733 GEN FpXQ_pow(GEN x, GEN n, GEN T, GEN p); 734 GEN FpXQ_powu(GEN x, ulong n, GEN T, GEN p); 735 GEN FpXQ_powers(GEN x, long l, GEN T, GEN p); 736 GEN FpXQ_red(GEN x, GEN T, GEN p); 737 GEN FpXQ_sqr(GEN y, GEN T, GEN p); 738 GEN FpXQ_sqrt(GEN a, GEN T, GEN p); 739 GEN FpXQ_sqrtn(GEN a, GEN n, GEN T, GEN p, GEN *zetan); 740 GEN FpXQ_trace(GEN x, GEN T, GEN p); 741 GEN FpXQC_to_mod(GEN z, GEN T, GEN p); 742 GEN FpXQM_autsum(GEN x, ulong n, GEN T, GEN p); 743 GEN FpXT_red(GEN z, GEN p); 744 GEN FpXV_FpX_fromdigits(GEN x, GEN T, GEN p); 745 GEN FpXV_chinese(GEN A, GEN P, GEN p, GEN *pt_mod); 746 GEN FpXV_prod(GEN V, GEN p); 747 GEN FpXV_red(GEN z, GEN p); 748 GEN FpXn_exp(GEN x, long n, GEN p); 749 GEN FpXn_expint(GEN x, long n, GEN p); 750 GEN FpXn_inv(GEN x, long n, GEN p); 751 GEN FpXn_mul(GEN a, GEN b, long n, GEN p); 752 GEN FpXn_sqr(GEN a, long n, GEN p); 753 int Fq_issquare(GEN x, GEN T, GEN p); 754 long Fq_ispower(GEN x, GEN K, GEN T, GEN p); 755 GEN Fq_log(GEN a, GEN g, GEN ord, GEN T, GEN p); 756 GEN FqC_to_mod(GEN z, GEN T, GEN p); 757 GEN FqM_to_mod(GEN z, GEN T, GEN p); 758 GEN FqV_inv(GEN x, GEN T, GEN p); 759 GEN Z_to_FpX(GEN a, GEN p, long v); 760 GEN gener_FpXQ(GEN T, GEN p, GEN *o); 761 GEN gener_FpXQ_local(GEN T, GEN p, GEN L); 762 const struct bb_group * get_FpXQ_star(void **E, GEN T, GEN p); 763 const struct bb_algebra * get_FpX_algebra(void **E, GEN p, long v); 764 const struct bb_algebra * get_FpXQ_algebra(void **E, GEN T, GEN p); 765 GEN random_FpX(long d, long v, GEN p); 766 767 /* FpX_factor.c */ 768 769 GEN F2x_ddf(GEN f); 770 GEN F2x_factor(GEN f); 771 GEN F2x_factor_squarefree(GEN f); 772 int F2x_is_irred(GEN f); 773 GEN Flx_ddf(GEN T, ulong p); 774 int Flx_is_irred(GEN f, ulong p); 775 int Flx_is_totally_split(GEN f, ulong p); 776 long Flx_ispower(GEN f, ulong k, ulong p, GEN *pt_r); 777 GEN Flx_degfact(GEN f, ulong p); 778 GEN Flx_factor(GEN f, ulong p); 779 GEN Flx_factor_squarefree(GEN f, ulong p); 780 long Flx_nbfact(GEN z, ulong p); 781 long Flx_nbfact_Frobenius(GEN T, GEN XP, ulong p); 782 GEN Flx_nbfact_by_degree(GEN z, long *nb, ulong p); 783 long Flx_nbroots(GEN f, ulong p); 784 ulong Flx_oneroot(GEN f, ulong p); 785 ulong Flx_oneroot_split(GEN f, ulong p); 786 GEN Flx_roots(GEN f, ulong p); 787 GEN Flx_rootsff(GEN P, GEN T, ulong p); 788 GEN FpX_ddf(GEN f, GEN p); 789 long FpX_ddf_degree(GEN T, GEN XP, GEN p); 790 GEN FpX_degfact(GEN f, GEN p); 791 GEN FpX_factor(GEN f, GEN p); 792 GEN FpX_factor_squarefree(GEN T, GEN p); 793 int FpX_is_irred(GEN f, GEN p); 794 int FpX_is_totally_split(GEN f, GEN p); 795 long FpX_nbfact(GEN f, GEN p); 796 long FpX_nbfact_Frobenius(GEN T, GEN XP, GEN p); 797 long FpX_nbroots(GEN f, GEN p); 798 GEN FpX_oneroot(GEN f, GEN p); 799 GEN FpX_oneroot_split(GEN fact, GEN p); 800 GEN FpX_roots(GEN f, GEN p); 801 GEN FpX_rootsff(GEN P, GEN T, GEN p); 802 GEN FpX_split_part(GEN f, GEN p); 803 804 /* FpXQX_factor.c */ 805 806 GEN F2xqX_ddf(GEN S, GEN T); 807 GEN F2xqX_degfact(GEN S, GEN T); 808 GEN F2xqX_factor(GEN x, GEN T); 809 GEN F2xqX_factor_squarefree(GEN x, GEN T); 810 GEN F2xqX_roots(GEN x, GEN T); 811 GEN Flx_factorff_irred(GEN P, GEN Q, ulong p); 812 void Flx_ffintersect(GEN P,GEN Q,long n,ulong l,GEN *SP,GEN *SQ,GEN MA,GEN MB); 813 GEN Flx_ffisom(GEN P,GEN Q,ulong l); 814 GEN Flxq_ffisom_inv(GEN S,GEN Tp, ulong p); 815 GEN FlxqX_Frobenius(GEN S, GEN T, ulong p); 816 GEN FlxqX_ddf(GEN S, GEN T, ulong p); 817 long FlxqX_ddf_degree(GEN S, GEN XP, GEN T, ulong p); 818 GEN FlxqX_degfact(GEN S, GEN T, ulong p); 819 GEN FlxqX_factor(GEN x, GEN T, ulong p); 820 GEN FlxqX_factor_squarefree(GEN x, GEN T, ulong p); 821 long FlxqX_ispower(GEN f, ulong k, GEN T, ulong p, GEN *pt_r); 822 long FlxqX_is_squarefree(GEN P, GEN T, ulong p); 823 long FlxqX_nbfact(GEN S, GEN T, ulong p); 824 long FlxqX_nbfact_Frobenius(GEN S, GEN Xq, GEN T, ulong p); 825 long FlxqX_nbroots(GEN f, GEN T, ulong p); 826 GEN FlxqX_roots(GEN S, GEN T, ulong p); 827 GEN FlxqXQ_halfFrobenius(GEN a, GEN S, GEN T, ulong p); 828 GEN FpX_factorff(GEN P, GEN T, GEN p); 829 GEN FpX_factorff_irred(GEN P, GEN Q, GEN p); 830 void FpX_ffintersect(GEN P,GEN Q,long n,GEN l,GEN *SP,GEN *SQ,GEN MA,GEN MB); 831 GEN FpX_ffisom(GEN P,GEN Q,GEN l); 832 GEN FpXQ_ffisom_inv(GEN S,GEN Tp, GEN p); 833 GEN FpXQX_Frobenius(GEN S, GEN T, GEN p); 834 GEN FpXQX_ddf(GEN S, GEN T, GEN p); 835 long FpXQX_ddf_degree(GEN S, GEN XP, GEN T, GEN p); 836 GEN FpXQX_degfact(GEN S, GEN T, GEN p); 837 GEN FpXQX_factor(GEN x, GEN T, GEN p); 838 GEN FpXQX_factor_squarefree(GEN x, GEN T, GEN p); 839 long FpXQX_ispower(GEN f, ulong k, GEN T, GEN p, GEN *pt); 840 long FpXQX_nbfact(GEN u, GEN T, GEN p); 841 long FpXQX_nbfact_Frobenius(GEN S, GEN Xq, GEN T, GEN p); 842 long FpXQX_nbroots(GEN f, GEN T, GEN p); 843 GEN FpXQX_roots(GEN f, GEN T, GEN p); 844 GEN FpXQX_split_part(GEN f, GEN T, GEN p); 845 GEN FpXQXQ_halfFrobenius(GEN a, GEN S, GEN T, GEN p); 846 long FqX_is_squarefree(GEN P, GEN T, GEN p); 847 long FqX_ispower(GEN f, ulong k, GEN T, GEN p, GEN *pt); 848 long FqX_nbfact(GEN u, GEN T, GEN p); 849 long FqX_nbroots(GEN f, GEN T, GEN p); 850 GEN factorff(GEN f, GEN p, GEN a); 851 GEN factormod0(GEN f, GEN p,long flag); 852 GEN factormodDDF(GEN f, GEN D); 853 GEN factormodSQF(GEN f, GEN D); 854 int ff_parse_Tp(GEN Tp, GEN *T, GEN *p, long red); 855 GEN polrootsff(GEN f, GEN p, GEN T); 856 GEN polrootsmod(GEN f, GEN p); 857 GEN rootmod0(GEN f, GEN p,long flag); 858 859 /* FpXX.c */ 860 861 GEN FpXQX_FpXQ_mul(GEN P, GEN U, GEN T, GEN p); 862 GEN FpXQX_FpXQXQV_eval(GEN P, GEN V, GEN S, GEN T, GEN p); 863 GEN FpXQX_FpXQXQ_eval(GEN P, GEN x, GEN S, GEN T, GEN p); 864 GEN FpXQX_digits(GEN x, GEN B, GEN T, GEN p); 865 GEN FpXQX_disc(GEN x, GEN T, GEN p); 866 GEN FpXQX_div_by_X_x(GEN a, GEN x, GEN T, GEN p, GEN *pr); 867 GEN FpXQX_divrem(GEN x, GEN y, GEN T, GEN p, GEN *pr); 868 GEN FpXQX_dotproduct(GEN x, GEN y, GEN T, GEN p); 869 GEN FpXQX_extgcd(GEN x, GEN y, GEN T, GEN p, GEN *ptu, GEN *ptv); 870 GEN FpXQX_gcd(GEN P, GEN Q, GEN T, GEN p); 871 GEN FpXQX_get_red(GEN S, GEN T, GEN p); 872 GEN FpXQX_halfgcd(GEN x, GEN y, GEN T, GEN p); 873 GEN FpXQX_invBarrett(GEN S, GEN T, GEN p); 874 GEN FpXQX_mul(GEN x, GEN y, GEN T, GEN p); 875 GEN FpXQX_powu(GEN x, ulong n, GEN T, GEN p); 876 GEN FpXQX_red(GEN z, GEN T, GEN p); 877 GEN FpXQX_rem(GEN x, GEN S, GEN T, GEN p); 878 GEN FpXQX_resultant(GEN a, GEN b, GEN T, GEN p); 879 GEN FpXQX_sqr(GEN x, GEN T, GEN p); 880 GEN FpXQX_to_mod(GEN z, GEN T, GEN p); 881 GEN FpXQXQ_div(GEN x,GEN y,GEN S, GEN T,GEN p); 882 GEN FpXQXQ_inv(GEN x, GEN S, GEN T,GEN p); 883 GEN FpXQXQ_invsafe(GEN x, GEN S, GEN T, GEN p); 884 GEN FpXQXQ_matrix_pow(GEN y, long n, long m, GEN S, GEN T, GEN p); 885 GEN FpXQXQ_minpoly(GEN x, GEN S, GEN T, GEN p); 886 GEN FpXQXQ_mul(GEN x, GEN y, GEN S, GEN T, GEN p); 887 GEN FpXQXQ_pow(GEN x, GEN n, GEN S, GEN T, GEN p); 888 GEN FpXQXQ_powers(GEN x, long n, GEN S, GEN T, GEN p); 889 GEN FpXQXQ_sqr(GEN x, GEN S, GEN T, GEN p); 890 GEN FpXQXQ_autpow(GEN aut, long n, GEN S, GEN T, GEN p); 891 GEN FpXQXQ_autsum(GEN aut, long n, GEN S, GEN T, GEN p); 892 GEN FpXQXQ_auttrace(GEN aut, long n, GEN S, GEN T, GEN p); 893 GEN FpXQXV_FpXQX_fromdigits(GEN x, GEN B, GEN T, GEN p); 894 GEN FpXQXV_prod(GEN V, GEN Tp, GEN p); 895 GEN FpXQXn_exp(GEN x, long n, GEN T, GEN p); 896 GEN FpXQXn_expint(GEN x, long n, GEN T, GEN p); 897 GEN FpXQXn_inv(GEN x, long n, GEN T, GEN p); 898 GEN FpXQXn_mul(GEN x, GEN y, long n, GEN T, GEN p); 899 GEN FpXQXn_sqr(GEN x, long n, GEN T, GEN p); 900 GEN FpXX_Fp_mul(GEN x, GEN y, GEN p); 901 GEN FpXX_FpX_mul(GEN x, GEN y, GEN p); 902 GEN FpXX_add(GEN x, GEN y, GEN p); 903 GEN FpXX_deriv(GEN P, GEN p); 904 GEN FpXX_halve(GEN P, GEN p); 905 GEN FpXX_integ(GEN P, GEN p); 906 GEN FpXX_mulu(GEN P, ulong u, GEN p); 907 GEN FpXX_neg(GEN x, GEN p); 908 GEN FpXX_red(GEN z, GEN p); 909 GEN FpXX_sub(GEN x, GEN y, GEN p); 910 GEN FpXY_FpXQ_evalx(GEN P, GEN x, GEN T, GEN p); 911 GEN FpXY_FpXQV_evalx(GEN P, GEN x, GEN T, GEN p); 912 GEN FpXY_eval(GEN Q, GEN y, GEN x, GEN p); 913 GEN FpXY_evalx(GEN Q, GEN x, GEN p); 914 GEN FpXY_evaly(GEN Q, GEN y, GEN p, long vy); 915 GEN FpXYQQ_pow(GEN x, GEN n, GEN S, GEN T, GEN p); 916 GEN FqXC_to_mod(GEN z, GEN T, GEN p); 917 GEN FqXM_to_mod(GEN z, GEN T, GEN p); 918 GEN Kronecker_to_FpXQX(GEN z, GEN pol, GEN p); 919 const struct bb_algebra * get_FpXQX_algebra(void **E, GEN T, GEN p, long v); 920 const struct bb_algebra * get_FpXQXQ_algebra(void **E, GEN S, GEN T, GEN p); 921 GEN random_FpXQX(long d1, long v, GEN T, GEN p); 922 923 /* FpV.c */ 924 925 GEN Flc_Flv_mul(GEN x, GEN y, ulong p); 926 GEN Flc_to_mod(GEN z, ulong pp); 927 GEN Flm_Fl_add(GEN x, ulong y, ulong p); 928 GEN Flm_Fl_mul(GEN y, ulong x, ulong p); 929 void Flm_Fl_mul_inplace(GEN y, ulong x, ulong p); 930 GEN Flm_Fl_mul_pre(GEN y, ulong x, ulong p, ulong pi); 931 GEN Flm_Fl_sub(GEN x, ulong y, ulong p); 932 GEN Flm_Flc_mul(GEN x, GEN y, ulong p); 933 GEN Flm_Flc_mul_pre(GEN x, GEN y, ulong p, ulong pi); 934 GEN Flm_Flc_mul_pre_Flx(GEN x, GEN y, ulong p, ulong pi, long sv); 935 GEN Flm_add(GEN x, GEN y, ulong p); 936 GEN Flm_center(GEN z, ulong p, ulong ps2); 937 GEN Flm_mul(GEN x, GEN y, ulong p); 938 GEN Flm_mul_pre(GEN x, GEN y, ulong p, ulong pi); 939 GEN Flm_neg(GEN y, ulong p); 940 GEN Flm_powers(GEN x, ulong n, ulong p); 941 GEN Flm_powu(GEN x, ulong n, ulong p); 942 GEN Flm_sub(GEN x, GEN y, ulong p); 943 GEN Flm_to_mod(GEN z, ulong pp); 944 GEN Flm_transpose(GEN x); 945 GEN Flv_Fl_div(GEN x, ulong y, ulong p); 946 void Flv_Fl_div_inplace(GEN x, ulong y, ulong p); 947 GEN Flv_Fl_mul(GEN x, ulong y, ulong p); 948 void Flv_Fl_mul_inplace(GEN x, ulong y, ulong p); 949 void Flv_Fl_mul_part_inplace(GEN x, ulong y, ulong p, long l); 950 GEN Flv_add(GEN x, GEN y, ulong p); 951 void Flv_add_inplace(GEN x, GEN y, ulong p); 952 GEN Flv_center(GEN z, ulong p, ulong ps2); 953 ulong Flv_dotproduct(GEN x, GEN y, ulong p); 954 ulong Flv_dotproduct_pre(GEN x, GEN y, ulong p, ulong pi); 955 GEN Flv_neg(GEN v, ulong p); 956 void Flv_neg_inplace(GEN v, ulong p); 957 GEN Flv_sub(GEN x, GEN y, ulong p); 958 void Flv_sub_inplace(GEN x, GEN y, ulong p); 959 ulong Flv_sum(GEN x, ulong p); 960 ulong Flx_dotproduct(GEN x, GEN y, ulong p); 961 GEN Fp_to_mod(GEN z, GEN p); 962 GEN FpC_FpV_mul(GEN x, GEN y, GEN p); 963 GEN FpC_Fp_mul(GEN x, GEN y, GEN p); 964 GEN FpC_center(GEN z, GEN p, GEN pov2); 965 void FpC_center_inplace(GEN z, GEN p, GEN pov2); 966 GEN FpC_red(GEN z, GEN p); 967 GEN FpC_to_mod(GEN z, GEN p); 968 GEN FpM_add(GEN x, GEN y, GEN p); 969 GEN FpM_Fp_mul(GEN X, GEN c, GEN p); 970 GEN FpM_FpC_mul(GEN x, GEN y, GEN p); 971 GEN FpM_FpC_mul_FpX(GEN x, GEN y, GEN p, long v); 972 GEN FpM_center(GEN z, GEN p, GEN pov2); 973 void FpM_center_inplace(GEN z, GEN p, GEN pov2); 974 GEN FpM_mul(GEN x, GEN y, GEN p); 975 GEN FpM_powu(GEN x, ulong n, GEN p); 976 GEN FpM_red(GEN z, GEN p); 977 GEN FpM_sub(GEN x, GEN y, GEN p); 978 GEN FpM_to_mod(GEN z, GEN p); 979 GEN FpMs_FpC_mul(GEN M, GEN B, GEN p); 980 GEN FpMs_FpCs_solve(GEN M, GEN B, long nbrow, GEN p); 981 GEN FpMs_FpCs_solve_safe(GEN M, GEN A, long nbrow, GEN p); 982 GEN FpMs_leftkernel_elt(GEN M, long nbrow, GEN p); 983 GEN FpC_add(GEN x, GEN y, GEN p); 984 GEN FpC_sub(GEN x, GEN y, GEN p); 985 GEN FpV_FpMs_mul(GEN B, GEN M, GEN p); 986 GEN FpV_add(GEN x, GEN y, GEN p); 987 GEN FpV_sub(GEN x, GEN y, GEN p); 988 GEN FpV_dotproduct(GEN x, GEN y, GEN p); 989 GEN FpV_dotsquare(GEN x, GEN p); 990 GEN FpV_red(GEN z, GEN p); 991 GEN FpV_to_mod(GEN z, GEN p); 992 GEN FpVV_to_mod(GEN z, GEN p); 993 GEN FpX_to_mod(GEN z, GEN p); 994 GEN FpXC_to_mod(GEN x, GEN p); 995 GEN FpXM_to_mod(GEN x, GEN p); 996 GEN ZabM_ker(GEN M, GEN P, long n); 997 GEN ZabM_indexrank(GEN M, GEN P, long n); 998 GEN ZabM_inv(GEN M, GEN P, long n, GEN *pden); 999 GEN ZabM_inv_ratlift(GEN M, GEN P, long n, GEN *pden); 1000 GEN ZabM_pseudoinv(GEN M, GEN P, long n, GEN *pv, GEN *den); 1001 GEN ZV_zMs_mul(GEN B, GEN M); 1002 GEN ZpMs_ZpCs_solve(GEN M, GEN B, long nbrow, GEN p, long e); 1003 GEN gen_FpM_Wiedemann(void *E, GEN (*f)(void*, GEN), GEN B, GEN p); 1004 GEN gen_ZpM_Dixon_Wiedemann(void *E, GEN (*f)(void*, GEN), GEN B, GEN p, long e); 1005 GEN gen_matid(long n, void *E, const struct bb_field *S); 1006 GEN matid_Flm(long n); 1007 GEN matid_F2xqM(long n, GEN T); 1008 GEN matid_FlxqM(long n, GEN T, ulong p); 1009 GEN random_Flv(long n, ulong p); 1010 GEN random_FpC(long d, GEN p); 1011 GEN random_FpV(long d, GEN p); 1012 GEN scalar_Flm(long s, long n); 1013 GEN zCs_to_ZC(GEN C, long nbrow); 1014 GEN zMs_to_ZM(GEN M, long nbrow); 1015 GEN zMs_ZC_mul(GEN M, GEN B); 1016 GEN ZMV_to_FlmV(GEN z, ulong m); 1017 1018 /* Hensel.c */ 1019 1020 GEN Flx_Teichmuller(GEN P, ulong p, long n); 1021 GEN Z2_sqrt(GEN x, long e); 1022 GEN Zp_sqrt(GEN x, GEN p, long e); 1023 GEN Zp_sqrtlift(GEN b, GEN a, GEN p, long e); 1024 GEN Zp_sqrtnlift(GEN b, GEN n, GEN a, GEN p, long e); 1025 GEN ZpM_invlift(GEN M, GEN C, GEN p, long n); 1026 GEN ZpX_Frobenius(GEN T, GEN p, long e); 1027 GEN ZpX_ZpXQ_liftroot(GEN P, GEN S, GEN T, GEN p, long e); 1028 GEN ZpX_ZpXQ_liftroot_ea(GEN P, GEN S, GEN T, GEN p, long n, void *E, 1029 GEN early(void *E, GEN x, GEN q)); 1030 GEN ZpX_liftfact(GEN pol, GEN Q, GEN pe, GEN p, long e); 1031 GEN ZpX_liftroot(GEN f, GEN a, GEN p, long e); 1032 GEN ZpX_liftroots(GEN f, GEN S, GEN p, long e); 1033 GEN ZpX_roots(GEN f, GEN p, long e); 1034 GEN ZpXQ_div(GEN a, GEN b, GEN T, GEN q, GEN p, long e); 1035 GEN ZpXQ_inv(GEN a, GEN T, GEN p, long e); 1036 GEN ZpXQ_invlift(GEN b, GEN a, GEN T, GEN p, long e); 1037 GEN ZpXQ_log(GEN a, GEN T, GEN p, long N); 1038 GEN ZpXQ_sqrt(GEN a, GEN T, GEN p, long e); 1039 GEN ZpXQ_sqrtnlift(GEN b, GEN n, GEN a, GEN T, GEN p, long e); 1040 GEN ZpXQM_prodFrobenius(GEN M, GEN T, GEN p, long e); 1041 GEN ZpXQX_digits(GEN x, GEN B, GEN T, GEN q, GEN p, long e); 1042 GEN ZpXQX_divrem(GEN x, GEN S, GEN T, GEN q, GEN p, long e, GEN *pr); 1043 GEN ZpXQX_liftfact(GEN pol, GEN Q, GEN T, GEN pe, GEN p, long e); 1044 GEN ZpXQX_liftroot(GEN f, GEN a, GEN T, GEN p, long e); 1045 GEN ZpXQX_liftroot_vald(GEN f, GEN a, long v, GEN T, GEN p, long e); 1046 GEN ZpXQX_liftroots(GEN f, GEN S, GEN T, GEN p, long e); 1047 GEN ZpXQX_roots(GEN F, GEN T, GEN p, long e); 1048 GEN Zq_sqrtnlift(GEN a, GEN n, GEN x, GEN T, GEN p, long e); 1049 GEN ZqX_liftfact(GEN pol, GEN Q, GEN T, GEN pe, GEN p, long e); 1050 GEN ZqX_liftroot(GEN f, GEN a, GEN T, GEN p, long e); 1051 GEN ZqX_roots(GEN F, GEN T, GEN p, long e); 1052 GEN gen_ZpM_Dixon(GEN F, GEN V, GEN q, GEN p, long N, void *E, 1053 GEN lin(void *E, GEN F, GEN d, GEN q), 1054 GEN invl(void *E, GEN d)); 1055 GEN gen_ZpM_Newton(GEN x, GEN p, long n, void *E, 1056 GEN eval(void *E, GEN f, GEN q), 1057 GEN invd(void *E, GEN V, GEN v, GEN q, long M)); 1058 GEN gen_ZpX_Dixon(GEN F, GEN V, GEN q, GEN p, long N, void *E, 1059 GEN lin(void *E, GEN F, GEN d, GEN q), 1060 GEN invl(void *E, GEN d)); 1061 GEN gen_ZpX_Newton(GEN x, GEN p, long n, void *E, 1062 GEN eval(void *E, GEN f, GEN q), 1063 GEN invd(void *E, GEN V, GEN v, GEN q, long M)); 1064 GEN polteichmuller(GEN P, ulong p, long n); 1065 GEN polhensellift(GEN pol, GEN fct, GEN p, long exp); 1066 ulong quadratic_prec_mask(long n); 1067 1068 /* QX_factor.c */ 1069 1070 GEN QX_factor(GEN x); 1071 GEN ZX_factor(GEN x); 1072 long ZX_is_irred(GEN x); 1073 GEN ZX_squff(GEN f, GEN *ex); 1074 GEN polcyclofactors(GEN f); 1075 long poliscyclo(GEN f); 1076 long poliscycloprod(GEN f); 1077 1078 1079 /* RgV.c */ 1080 1081 GEN Rg_RgC_sub(GEN a, GEN x); 1082 GEN RgC_Rg_add(GEN x, GEN y); 1083 GEN RgC_Rg_div(GEN x, GEN y); 1084 GEN RgC_Rg_mul(GEN x, GEN y); 1085 GEN RgC_Rg_sub(GEN x, GEN y); 1086 GEN RgC_RgM_mul(GEN x, GEN y); 1087 GEN RgC_RgV_mul(GEN x, GEN y); 1088 GEN RgC_add(GEN x, GEN y); 1089 long RgC_is_ei(GEN x); 1090 GEN RgC_neg(GEN x); 1091 GEN RgC_sub(GEN x, GEN y); 1092 GEN RgM_Rg_add(GEN x, GEN y); 1093 GEN RgM_Rg_add_shallow(GEN x, GEN y); 1094 GEN RgM_Rg_div(GEN x, GEN y); 1095 GEN RgM_Rg_mul(GEN x, GEN y); 1096 GEN RgM_Rg_sub(GEN x, GEN y); 1097 GEN RgM_Rg_sub_shallow(GEN x, GEN y); 1098 GEN RgM_RgC_mul(GEN x, GEN y); 1099 GEN RgM_RgV_mul(GEN x, GEN y); 1100 GEN RgM_ZM_mul(GEN x, GEN y); 1101 GEN RgM_add(GEN x, GEN y); 1102 GEN RgM_det_triangular(GEN x); 1103 int RgM_is_QM(GEN x); 1104 int RgM_is_ZM(GEN x); 1105 int RgM_isdiagonal(GEN x); 1106 int RgM_isidentity(GEN x); 1107 int RgM_isscalar(GEN x, GEN s); 1108 GEN RgM_mul(GEN x, GEN y); 1109 GEN RgM_multosym(GEN x, GEN y); 1110 GEN RgM_neg(GEN x); 1111 GEN RgM_powers(GEN x, long l); 1112 GEN RgM_sqr(GEN x); 1113 GEN RgM_sub(GEN x, GEN y); 1114 GEN RgM_sumcol(GEN A); 1115 GEN RgM_transmul(GEN x, GEN y); 1116 GEN RgM_transmultosym(GEN x, GEN y); 1117 GEN RgMrow_zc_mul(GEN x, GEN y, long i); 1118 GEN RgM_zc_mul(GEN x, GEN y); 1119 GEN RgM_zm_mul(GEN x, GEN y); 1120 GEN RgMrow_RgC_mul(GEN x, GEN y, long i); 1121 GEN RgV_RgM_mul(GEN x, GEN y); 1122 GEN RgV_RgC_mul(GEN x, GEN y); 1123 GEN RgV_Rg_mul(GEN x, GEN y); 1124 GEN RgV_add(GEN x, GEN y); 1125 GEN RgV_dotproduct(GEN x, GEN y); 1126 GEN RgV_dotsquare(GEN x); 1127 int RgV_is_ZMV(GEN V); 1128 GEN RgV_kill0(GEN v); 1129 GEN RgV_neg(GEN x); 1130 GEN RgV_prod(GEN v); 1131 GEN RgV_sub(GEN x, GEN y); 1132 GEN RgV_sum(GEN v); 1133 GEN RgV_sumpart(GEN v, long n); 1134 GEN RgV_sumpart2(GEN v, long m, long n); 1135 GEN RgV_zc_mul(GEN x, GEN y); 1136 GEN RgV_zm_mul(GEN x, GEN y); 1137 GEN RgX_RgM_eval(GEN x, GEN y); 1138 GEN RgX_RgMV_eval(GEN x, GEN y); 1139 int isdiagonal(GEN x); 1140 GEN matid(long n); 1141 GEN scalarcol(GEN x, long n); 1142 GEN scalarcol_shallow(GEN x, long n); 1143 GEN scalarmat(GEN x, long n); 1144 GEN scalarmat_shallow(GEN x, long n); 1145 GEN scalarmat_s(long x, long n); 1146 1147 /* RgX.c */ 1148 1149 GEN Kronecker_to_mod(GEN z, GEN pol); 1150 GEN QX_ZXQV_eval(GEN P, GEN V, GEN dV); 1151 GEN QXQ_charpoly(GEN A, GEN T, long v); 1152 GEN QXQ_powers(GEN a, long n, GEN T); 1153 GEN QXQ_to_mod_shallow(GEN x, GEN T); 1154 GEN QXQC_to_mod_shallow(GEN V, GEN T); 1155 GEN QXQM_to_mod_shallow(GEN V, GEN T); 1156 GEN QXQV_to_mod(GEN V, GEN T); 1157 GEN QXQX_to_mod_shallow(GEN z, GEN T); 1158 GEN QXQXV_to_mod(GEN V, GEN T); 1159 GEN QXV_QXQ_eval(GEN v, GEN a, GEN T); 1160 GEN QXX_QXQ_eval(GEN v, GEN a, GEN T); 1161 GEN Rg_RgX_sub(GEN x, GEN y); 1162 GEN Rg_get_0(GEN x); 1163 GEN Rg_get_1(GEN x); 1164 GEN Rg_to_RgC(GEN x, long N); 1165 GEN RgM_to_RgXV(GEN x, long v); 1166 GEN RgM_to_RgXX(GEN x, long v,long w); 1167 GEN RgV_to_RgX(GEN x, long v); 1168 GEN RgV_to_RgM(GEN v, long n); 1169 GEN RgV_to_RgX_reverse(GEN x, long v); 1170 GEN RgX_RgXQ_eval(GEN f, GEN x, GEN T); 1171 GEN RgX_RgXQV_eval(GEN P, GEN V, GEN T); 1172 GEN RgX_RgXn_eval(GEN Q, GEN x, long n); 1173 GEN RgX_RgXnV_eval(GEN Q, GEN x, long n); 1174 GEN RgX_Rg_add(GEN y, GEN x); 1175 GEN RgX_Rg_add_shallow(GEN y, GEN x); 1176 GEN RgX_Rg_div(GEN y, GEN x); 1177 GEN RgX_Rg_divexact(GEN x, GEN y); 1178 GEN RgX_Rg_eval_bk(GEN Q, GEN x); 1179 GEN RgX_Rg_mul(GEN y, GEN x); 1180 GEN RgX_Rg_sub(GEN y, GEN x); 1181 GEN RgX_RgV_eval(GEN Q, GEN x); 1182 GEN RgX_add(GEN x, GEN y); 1183 GEN RgX_addmulXn_shallow(GEN x, GEN y, long d); 1184 GEN RgX_addmulXn(GEN x, GEN y, long d); 1185 GEN RgX_addspec(GEN x, GEN y, long nx, long ny); 1186 GEN RgX_addspec_shallow(GEN x, GEN y, long nx, long ny); 1187 GEN RgX_blocks(GEN P, long n, long m); 1188 GEN RgX_deflate(GEN x0, long d); 1189 GEN RgX_deriv(GEN x); 1190 GEN RgX_digits(GEN A, GEN B); 1191 GEN RgX_div_by_X_x(GEN a, GEN x, GEN *r); 1192 GEN RgX_divrem(GEN x,GEN y,GEN *r); 1193 GEN RgX_divs(GEN y, long x); 1194 long RgX_equal(GEN x, GEN y); 1195 void RgX_even_odd(GEN p, GEN *pe, GEN *po); 1196 GEN RgX_inflate(GEN x0, long d); 1197 GEN RgX_mul(GEN x,GEN y); 1198 GEN RgX_mul_i(GEN x,GEN y); 1199 GEN RgX_mul_normalized(GEN A, long a, GEN B, long b); 1200 GEN RgX_mulXn(GEN x, long d); 1201 GEN RgX_mulhigh_i(GEN f, GEN g, long n); 1202 GEN RgX_muls(GEN y, long x); 1203 GEN RgX_mulspec(GEN a, GEN b, long na, long nb); 1204 GEN RgX_neg(GEN x); 1205 GEN RgX_normalize(GEN x); 1206 GEN RgX_pseudodivrem(GEN x, GEN y, GEN *ptr); 1207 GEN RgX_pseudorem(GEN x, GEN y); 1208 GEN RgX_recip(GEN x); 1209 GEN RgX_recip_shallow(GEN x); 1210 GEN RgX_rem(GEN x, GEN y); 1211 GEN RgX_renormalize_lg(GEN x, long lx); 1212 GEN RgX_rescale(GEN P, GEN h); 1213 GEN RgX_rotate_shallow(GEN P, long k, long p); 1214 GEN RgX_shift(GEN a, long n); 1215 GEN RgX_shift_shallow(GEN x, long n); 1216 GEN RgX_splitting(GEN p, long k); 1217 GEN RgX_sqr(GEN x); 1218 GEN RgX_sqr_i(GEN x); 1219 GEN RgX_sqrhigh_i(GEN f, long n); 1220 GEN RgX_sqrspec(GEN a, long na); 1221 GEN RgX_sub(GEN x, GEN y); 1222 GEN RgX_to_RgC(GEN x, long N); 1223 GEN RgX_translate(GEN P, GEN c); 1224 GEN RgX_unscale(GEN P, GEN h); 1225 GEN RgXQ_matrix_pow(GEN y, long n, long m, GEN P); 1226 GEN RgXQ_norm(GEN x, GEN T); 1227 GEN RgXQ_pow(GEN x, GEN n, GEN T); 1228 GEN RgXQ_powers(GEN x, long l, GEN T); 1229 GEN RgXQ_powu(GEN x, ulong n, GEN T); 1230 GEN RgXQC_red(GEN P, GEN T); 1231 GEN RgXQM_mul(GEN P, GEN Q, GEN T); 1232 GEN RgXQM_red(GEN P, GEN T); 1233 GEN RgXQV_RgXQ_mul(GEN v, GEN x, GEN T); 1234 GEN RgXQV_red(GEN P, GEN T); 1235 GEN RgXQX_RgXQ_mul(GEN x, GEN y, GEN T); 1236 GEN RgXQX_divrem(GEN x,GEN y,GEN T,GEN *r); 1237 GEN RgXQX_mul(GEN x,GEN y,GEN T); 1238 GEN RgXQX_powers(GEN P, long n, GEN T); 1239 GEN RgXQX_pseudodivrem(GEN x, GEN y, GEN T, GEN *ptr); 1240 GEN RgXQX_pseudorem(GEN x, GEN y, GEN T); 1241 GEN RgXQX_red(GEN P, GEN T); 1242 GEN RgXQX_sqr(GEN x, GEN T); 1243 GEN RgXQX_translate(GEN P, GEN c, GEN T); 1244 GEN RgXV_RgV_eval(GEN Q, GEN x); 1245 GEN RgXV_to_RgM(GEN v, long n); 1246 GEN RgXV_unscale(GEN v, GEN h); 1247 GEN RgXX_to_RgM(GEN v, long n); 1248 long RgXY_degreex(GEN bpol); 1249 GEN RgXY_swap(GEN x, long n, long w); 1250 GEN RgXY_swapspec(GEN x, long n, long w, long nx); 1251 GEN RgXn_eval(GEN Q, GEN x, long n); 1252 GEN RgXn_exp(GEN f, long e); 1253 GEN RgXn_expint(GEN f, long e); 1254 GEN RgXn_inv(GEN f, long e); 1255 GEN RgXn_inv_i(GEN f, long e); 1256 GEN RgXn_mul(GEN f, GEN g, long n); 1257 GEN RgXn_powers(GEN f, long m, long n); 1258 GEN RgXn_recip_shallow(GEN P, long n); 1259 GEN RgXn_red_shallow(GEN a, long n); 1260 GEN RgXn_reverse(GEN f, long e); 1261 GEN RgXn_sqr(GEN f, long n); 1262 GEN RgXn_sqrt(GEN f, long n); 1263 GEN RgXnV_red_shallow(GEN P, long n); 1264 GEN RgXn_powu(GEN x, ulong m, long n); 1265 GEN RgXn_powu_i(GEN x, ulong m, long n); 1266 GEN ZX_translate(GEN P, GEN c); 1267 GEN ZX_unscale2n(GEN P, long n); 1268 GEN ZX_unscale(GEN P, GEN h); 1269 GEN ZX_unscale_div(GEN P, GEN h); 1270 GEN ZX_z_unscale(GEN P, long h); 1271 GEN ZXQ_powers(GEN x, long l, GEN T); 1272 GEN ZXQ_powu(GEN x, ulong n, GEN T); 1273 int ZXQX_dvd(GEN x, GEN y, GEN T); 1274 long brent_kung_optpow(long d, long n, long m); 1275 GEN gen_bkeval(GEN Q, long d, GEN x, int use_sqr, void *E, 1276 const struct bb_algebra *ff, GEN cmul(void *E, GEN P, long a, GEN x)); 1277 GEN gen_bkeval_powers(GEN P, long d, GEN V, void *E, 1278 const struct bb_algebra *ff, GEN cmul(void *E, GEN P, long a, GEN x)); 1279 const struct bb_algebra * get_Rg_algebra(void); 1280 long rfrac_deflate_order(GEN F); 1281 GEN rfrac_deflate_max(GEN F, long *m); 1282 GEN rfrac_deflate(GEN F, long m); 1283 1284 /* ZG.c */ 1285 void ZGC_G_mul_inplace(GEN v, GEN x); 1286 GEN ZGCs_add(GEN x, GEN y); 1287 GEN G_ZGC_mul(GEN x, GEN v); 1288 GEN G_ZG_mul(GEN x, GEN y); 1289 GEN ZGC_G_mul(GEN v, GEN x); 1290 GEN ZGC_Z_mul(GEN v, GEN x); 1291 GEN ZG_G_mul(GEN x, GEN y); 1292 GEN ZG_Z_mul(GEN x, GEN c); 1293 GEN ZG_add(GEN x, GEN y); 1294 GEN ZG_mul(GEN x, GEN y); 1295 GEN ZG_neg(GEN x); 1296 GEN ZG_normalize(GEN x); 1297 GEN ZG_sub(GEN x, GEN y); 1298 1299 /* ZV.c */ 1300 1301 void Flc_lincomb1_inplace(GEN X, GEN Y, ulong v, ulong q); 1302 GEN vecsmall_prod(GEN v); 1303 GEN QM_QC_mul(GEN x, GEN y); 1304 GEN QM_det(GEN x); 1305 GEN QM_ker(GEN M); 1306 GEN QM_mul(GEN x, GEN y); 1307 GEN QM_sqr(GEN x); 1308 void RgM_check_ZM(GEN A, const char *s); 1309 void RgV_check_ZV(GEN A, const char *s); 1310 GEN Z_ZC_sub(GEN a, GEN x); 1311 GEN ZV_zc_mul(GEN x, GEN y); 1312 GEN ZC_Q_mul(GEN A, GEN z); 1313 GEN ZC_Z_add(GEN x, GEN y); 1314 GEN ZC_Z_div(GEN x, GEN c); 1315 GEN ZC_Z_divexact(GEN X, GEN c); 1316 GEN ZC_Z_mul(GEN X, GEN c); 1317 GEN ZC_Z_sub(GEN x, GEN y); 1318 GEN ZC_ZV_mul(GEN x, GEN y); 1319 GEN ZC_u_divexact(GEN x, ulong c); 1320 GEN ZC_add(GEN x, GEN y); 1321 GEN ZC_copy(GEN x); 1322 GEN ZC_hnfremdiv(GEN x, GEN y, GEN *Q); 1323 long ZC_is_ei(GEN x); 1324 GEN ZC_lincomb(GEN u, GEN v, GEN X, GEN Y); 1325 void ZC_lincomb1_inplace(GEN X, GEN Y, GEN v); 1326 void ZC_lincomb1_inplace_i(GEN X, GEN Y, GEN v, long n); 1327 GEN ZC_neg(GEN M); 1328 GEN ZC_reducemodlll(GEN x,GEN y); 1329 GEN ZC_reducemodmatrix(GEN v, GEN y); 1330 GEN ZC_sub(GEN x, GEN y); 1331 GEN ZC_z_mul(GEN X, long c); 1332 GEN ZM_Q_mul(GEN A, GEN z); 1333 GEN ZM_ZC_mul(GEN x, GEN y); 1334 GEN ZM_Z_div(GEN X, GEN c); 1335 GEN ZM_Z_divexact(GEN X, GEN c); 1336 GEN ZM_Z_mul(GEN X, GEN c); 1337 GEN ZM_add(GEN x, GEN y); 1338 GEN ZM_copy(GEN x); 1339 GEN ZM_det_triangular(GEN mat); 1340 GEN ZM_diag_mul(GEN m, GEN d); 1341 int ZM_equal(GEN A, GEN B); 1342 int ZM_equal0(GEN A); 1343 GEN ZM_hnfdivrem(GEN x, GEN y, GEN *Q); 1344 int ZM_ishnf(GEN x); 1345 int ZM_isdiagonal(GEN x); 1346 int ZM_isidentity(GEN x); 1347 int ZM_isscalar(GEN x, GEN s); 1348 long ZM_max_lg(GEN x); 1349 GEN ZM_mul(GEN x, GEN y); 1350 GEN ZM_mul_diag(GEN m, GEN d); 1351 GEN ZM_multosym(GEN x, GEN y); 1352 GEN ZM_neg(GEN x); 1353 GEN ZM_nm_mul(GEN x, GEN y); 1354 GEN ZM_pow(GEN x, GEN n); 1355 GEN ZM_powu(GEN x, ulong n); 1356 GEN ZM_reducemodlll(GEN x,GEN y); 1357 GEN ZM_reducemodmatrix(GEN v, GEN y); 1358 GEN ZM_sqr(GEN x); 1359 GEN ZM_sub(GEN x, GEN y); 1360 GEN ZM_supnorm(GEN x); 1361 GEN ZM_to_Flm(GEN x, ulong p); 1362 GEN ZM_to_zm(GEN z); 1363 GEN ZM_transmul(GEN x, GEN y); 1364 GEN ZM_transmultosym(GEN x, GEN y); 1365 GEN ZMV_to_zmV(GEN z); 1366 void ZM_togglesign(GEN M); 1367 GEN ZM_zc_mul(GEN x, GEN y); 1368 GEN ZM_zm_mul(GEN x, GEN y); 1369 GEN ZMrow_ZC_mul(GEN x, GEN y, long i); 1370 int ZMrow_equal0(GEN V, long i); 1371 GEN ZV_ZM_mul(GEN x, GEN y); 1372 int ZV_abscmp(GEN x, GEN y); 1373 int ZV_cmp(GEN x, GEN y); 1374 GEN ZV_content(GEN x); 1375 GEN ZV_dotproduct(GEN x,GEN y); 1376 GEN ZV_dotsquare(GEN x); 1377 int ZV_equal(GEN V, GEN W); 1378 int ZV_equal0(GEN V); 1379 long ZV_max_lg(GEN x); 1380 void ZV_neg_inplace(GEN M); 1381 GEN ZV_prod(GEN v); 1382 GEN ZV_sum(GEN v); 1383 GEN ZV_to_Flv(GEN x, ulong p); 1384 GEN ZV_to_nv(GEN z); 1385 void ZV_togglesign(GEN M); 1386 GEN gram_matrix(GEN M); 1387 GEN nm_Z_mul(GEN X, GEN c); 1388 GEN zm_mul(GEN x, GEN y); 1389 GEN zm_to_Flm(GEN z, ulong p); 1390 GEN zm_to_ZM(GEN z); 1391 GEN zm_zc_mul(GEN x, GEN y); 1392 GEN zmV_to_ZMV(GEN z); 1393 long zv_content(GEN x); 1394 long zv_dotproduct(GEN x, GEN y); 1395 int zv_equal(GEN V, GEN W); 1396 int zv_equal0(GEN V); 1397 GEN zv_neg(GEN x); 1398 GEN zv_neg_inplace(GEN M); 1399 long zv_prod(GEN v); 1400 GEN zv_prod_Z(GEN v); 1401 long zv_sum(GEN v); 1402 long zv_sumpart(GEN v, long n); 1403 GEN zv_to_Flv(GEN z, ulong p); 1404 GEN zv_z_mul(GEN v, long n); 1405 GEN zv_ZM_mul(GEN x, GEN y); 1406 int zvV_equal(GEN V, GEN W); 1407 1408 /* ZX.c */ 1409 1410 GEN Kronecker_to_ZXQX(GEN z, GEN T); 1411 GEN Kronecker_to_ZXX(GEN z, long N, long v); 1412 GEN QX_ZX_rem(GEN x, GEN y); 1413 GEN QX_mul(GEN x, GEN y); 1414 GEN QX_sqr(GEN x); 1415 GEN QXQM_mul(GEN x, GEN y, GEN T); 1416 GEN QXQM_sqr(GEN x, GEN T); 1417 GEN QXQX_QXQ_mul(GEN P, GEN U, GEN T); 1418 GEN QXQX_mul(GEN x, GEN y, GEN T); 1419 GEN QXQX_powers(GEN P, long n, GEN T); 1420 GEN QXQX_sqr(GEN x, GEN T); 1421 void RgX_check_QX(GEN x, const char *s); 1422 void RgX_check_ZX(GEN x, const char *s); 1423 void RgX_check_ZXX(GEN x, const char *s); 1424 GEN Z_ZX_sub(GEN x, GEN y); 1425 GEN ZX_Z_add(GEN y,GEN x); 1426 GEN ZX_Z_add_shallow(GEN y, GEN x); 1427 GEN ZX_Z_divexact(GEN y,GEN x); 1428 GEN ZX_Z_mul(GEN y,GEN x); 1429 GEN ZX_Z_sub(GEN y, GEN x); 1430 GEN ZX_add(GEN x, GEN y); 1431 GEN ZX_copy(GEN x); 1432 GEN ZX_deriv(GEN x); 1433 GEN ZX_div_by_X_1(GEN a, GEN *r); 1434 GEN ZX_divuexact(GEN y, ulong x); 1435 int ZX_equal(GEN V, GEN W); 1436 GEN ZX_eval1(GEN x); 1437 long ZX_max_lg(GEN x); 1438 GEN ZX_mod_Xnm1(GEN T, ulong n); 1439 GEN ZX_mul(GEN x, GEN y); 1440 GEN ZX_mulspec(GEN a, GEN b, long na, long nb); 1441 GEN ZX_mulu(GEN y, ulong x); 1442 GEN ZX_neg(GEN x); 1443 GEN ZX_rem(GEN x, GEN y); 1444 GEN ZX_remi2n(GEN y, long n); 1445 GEN ZX_rescale2n(GEN P, long n); 1446 GEN ZX_rescale(GEN P, GEN h); 1447 GEN ZX_rescale_lt(GEN P); 1448 GEN ZX_shifti(GEN x, long n); 1449 GEN ZX_sqr(GEN x); 1450 GEN ZX_sqrspec(GEN a, long na); 1451 GEN ZX_sub(GEN x, GEN y); 1452 long ZX_val(GEN x); 1453 long ZX_valrem(GEN x, GEN *Z); 1454 GEN ZXQM_mul(GEN x, GEN y, GEN T); 1455 GEN ZXQM_sqr(GEN x, GEN T); 1456 GEN ZXQX_ZXQ_mul(GEN P, GEN U, GEN T); 1457 GEN ZXQX_sqr(GEN x, GEN T); 1458 GEN ZXQX_mul(GEN x, GEN y, GEN T); 1459 GEN ZXT_remi2n(GEN z, long n); 1460 GEN ZXV_Z_mul(GEN y, GEN x); 1461 GEN ZXV_dotproduct(GEN V, GEN W); 1462 int ZXV_equal(GEN V, GEN W); 1463 GEN ZXV_remi2n(GEN x, long n); 1464 GEN ZXX_Z_divexact(GEN y, GEN x); 1465 GEN ZXX_Z_mul(GEN y, GEN x); 1466 GEN ZXX_Z_add_shallow(GEN x, GEN y); 1467 GEN ZXX_evalx0(GEN y); 1468 long ZXX_max_lg(GEN x); 1469 GEN ZXX_mul_Kronecker(GEN x, GEN y, long n); 1470 GEN ZXX_renormalize(GEN x, long lx); 1471 GEN ZXX_sqr_Kronecker(GEN x, long n); 1472 GEN ZXX_to_Kronecker(GEN P, long n); 1473 GEN ZXX_to_Kronecker_spec(GEN P, long lP, long n); 1474 GEN ZXn_mul(GEN x, GEN y, long n); 1475 GEN ZXn_sqr(GEN x, long n); 1476 GEN scalar_ZX(GEN x, long v); 1477 GEN scalar_ZX_shallow(GEN x, long v); 1478 GEN zx_to_ZX(GEN z); 1479 GEN zx_z_divexact(GEN y, long x); 1480 1481 /* algebras.c */ 1482 1483 GEN alg_centralproj(GEN al, GEN z, long maps); 1484 GEN alg_changeorder(GEN al, GEN ord); 1485 GEN alg_complete(GEN rnf, GEN aut, GEN hi, GEN hf, long maxord); 1486 GEN alg_csa_table(GEN nf, GEN mt, long v, long maxord); 1487 GEN alg_cyclic(GEN rnf, GEN aut, GEN b, long maxord); 1488 long alg_get_absdim(GEN al); 1489 GEN alg_get_abssplitting(GEN al); 1490 GEN alg_get_aut(GEN al); 1491 GEN algaut(GEN al); 1492 GEN alg_get_auts(GEN al); 1493 GEN alg_get_b(GEN al); 1494 GEN algb(GEN al); 1495 GEN algcenter(GEN al); 1496 GEN alg_get_center(GEN al); 1497 GEN alg_get_char(GEN al); 1498 GEN algchar(GEN al); 1499 long alg_get_degree(GEN al); 1500 long algdegree(GEN al); 1501 long alg_get_dim(GEN al); 1502 long algdim(GEN al, long abs); 1503 GEN alg_get_hasse_f(GEN al); 1504 GEN alghassef(GEN al); 1505 GEN alg_get_hasse_i(GEN al); 1506 GEN alghassei(GEN al); 1507 GEN alg_get_invbasis(GEN al); 1508 GEN alginvbasis(GEN al); 1509 GEN alg_get_multable(GEN al); 1510 GEN alg_get_basis(GEN al); 1511 GEN algbasis(GEN al); 1512 GEN alg_get_relmultable(GEN al); 1513 GEN algrelmultable(GEN al); 1514 GEN alg_get_splitpol(GEN al); 1515 GEN alg_get_splittingfield(GEN al); 1516 GEN algsplittingfield(GEN al); 1517 GEN alg_get_splittingbasis(GEN al); 1518 GEN alg_get_splittingbasisinv(GEN al); 1519 GEN alg_get_splittingdata(GEN al); 1520 GEN algsplittingdata(GEN al); 1521 GEN alg_get_tracebasis(GEN al); 1522 GEN alg_hasse(GEN nf, long n, GEN hi, GEN hf, long var, long maxord); 1523 GEN alg_hilbert(GEN nf, GEN a, GEN b, long v, long maxord); 1524 GEN alg_matrix(GEN nf, long n, long v, GEN L, long maxord); 1525 long alg_model(GEN al, GEN x); 1526 GEN alg_quotient(GEN al, GEN I, long maps); 1527 GEN algradical(GEN al); 1528 GEN algsimpledec(GEN al, long maps); 1529 GEN algsimpledec_ss(GEN al, long maps); 1530 GEN algsubalg(GEN al, GEN basis); 1531 long alg_type(GEN al); 1532 GEN algadd(GEN al, GEN x, GEN y); 1533 GEN algalgtobasis(GEN al, GEN x); 1534 GEN algbasistoalg(GEN al, GEN x); 1535 GEN algcharpoly(GEN al, GEN x, long v, long abs); 1536 GEN algdisc(GEN al); 1537 GEN algdivl(GEN al, GEN x, GEN y); 1538 GEN algdivr(GEN al, GEN x, GEN y); 1539 GEN alggroup(GEN gal, GEN p); 1540 GEN alggroupcenter(GEN gal, GEN p, GEN* ptr_conjclasses); 1541 GEN alghasse(GEN al, GEN pl); 1542 GEN alginit(GEN A, GEN B, long v, long maxord); 1543 long algindex(GEN al, GEN pl); 1544 GEN alginv(GEN al, GEN x); 1545 int algisassociative(GEN mt0, GEN p); 1546 int algiscommutative(GEN al); 1547 int algisdivision(GEN al, GEN pl); 1548 int algisramified(GEN al, GEN pl); 1549 int algissemisimple(GEN al); 1550 int algissimple(GEN al, long ss); 1551 int algissplit(GEN al, GEN pl); 1552 int algisdivl(GEN al, GEN x, GEN y, GEN* ptz); 1553 int algisinv(GEN al, GEN x, GEN* ptix); 1554 GEN algmakeintegral(GEN mt0, long maps); 1555 GEN algmul(GEN al, GEN x, GEN y); 1556 GEN algmultable(GEN al); 1557 GEN alglat_get_primbasis(GEN lat); 1558 GEN alglat_get_scalar(GEN lat); 1559 GEN alglatadd(GEN al, GEN lat1, GEN lat2, GEN* ptinter); 1560 int alglatcontains(GEN al, GEN lat, GEN x, GEN* ptc); 1561 GEN alglatelement(GEN al, GEN lat, GEN c); 1562 GEN alglathnf(GEN al, GEN m, GEN d); 1563 GEN alglatindex(GEN al, GEN lat1, GEN lat2); 1564 GEN alglatinter(GEN al, GEN lat1, GEN lat2, GEN* ptsum); 1565 GEN alglatmul(GEN al, GEN lat1, GEN lat2); 1566 GEN alglatlefttransporter(GEN al, GEN lat1, GEN lat2); 1567 GEN alglatrighttransporter(GEN al, GEN lat1, GEN lat2); 1568 int alglatsubset(GEN al, GEN lat1, GEN lat2, GEN* ptindex); 1569 GEN algneg(GEN al, GEN x); 1570 GEN algnorm(GEN al, GEN x, long abs); 1571 GEN algpoleval(GEN al, GEN pol, GEN x); 1572 GEN algpow(GEN al, GEN x, GEN n); 1573 GEN algprimesubalg(GEN al); 1574 GEN algramifiedplaces(GEN al); 1575 GEN algrandom(GEN al, GEN b); 1576 GEN algsplit(GEN al, long v); 1577 GEN algtomatrix(GEN al, GEN x, long abs); 1578 GEN algsqr(GEN al, GEN x); 1579 GEN algsub(GEN al, GEN x, GEN y); 1580 GEN algtableinit(GEN mt, GEN p); 1581 GEN algtensor(GEN al1, GEN al2, long maxord); 1582 GEN algtrace(GEN al, GEN x, long abs); 1583 long algtype(GEN al); 1584 GEN bnfgwgeneric(GEN bnf, GEN Lpr, GEN Ld, GEN pl, long var); 1585 void checkalg(GEN x); 1586 void checkhasse(GEN nf, GEN hi, GEN hf, long n); 1587 void checklat(GEN al, GEN lat); 1588 GEN conjclasses_algcenter(GEN cc, GEN p); 1589 GEN galoischardet(GEN gal, GEN ch, long o); 1590 GEN galoischarpoly(GEN gal, GEN ch, long o); 1591 GEN galoischartable(GEN gal); 1592 GEN nfgrunwaldwang(GEN nf0, GEN Lpr, GEN Ld, GEN pl, long var); 1593 GEN nfgwkummer(GEN nf, GEN Lpr, GEN Ld, GEN pl, long var); 1594 1595 /* alglin1.c */ 1596 1597 GEN F2Ms_colelim(GEN M, long nbrow); 1598 GEN F2m_image(GEN x); 1599 GEN F2m_indexrank(GEN x); 1600 GEN F2m_suppl(GEN x); 1601 GEN F2xqM_F2xqC_gauss(GEN a, GEN b, GEN T); 1602 GEN F2xqM_F2xqC_invimage(GEN a, GEN b, GEN T); 1603 GEN F2xqM_F2xqC_mul(GEN a, GEN b, GEN T); 1604 GEN F2xqM_deplin(GEN x, GEN T); 1605 GEN F2xqM_det(GEN a, GEN T); 1606 GEN F2xqM_gauss(GEN a, GEN b, GEN T); 1607 GEN F2xqM_ker(GEN x, GEN T); 1608 GEN F2xqM_image(GEN x, GEN T); 1609 GEN F2xqM_indexrank(GEN x, GEN T); 1610 GEN F2xqM_inv(GEN a, GEN T); 1611 GEN F2xqM_invimage(GEN a, GEN b, GEN T); 1612 GEN F2xqM_mul(GEN a, GEN b, GEN T); 1613 long F2xqM_rank(GEN x, GEN T); 1614 GEN F2xqM_suppl(GEN x, GEN T); 1615 GEN Flm_image(GEN x, ulong p); 1616 GEN Flm_indexrank(GEN x, ulong p); 1617 GEN Flm_suppl(GEN x, ulong p); 1618 GEN FlxqM_FlxqC_gauss(GEN a, GEN b, GEN T, ulong p); 1619 GEN FlxqM_FlxqC_invimage(GEN a, GEN b, GEN T, ulong p); 1620 GEN FlxqM_FlxqC_mul(GEN a, GEN b, GEN T, ulong p); 1621 GEN FlxqM_deplin(GEN x, GEN T, ulong p); 1622 GEN FlxqM_det(GEN a, GEN T, ulong p); 1623 GEN FlxqM_gauss(GEN a, GEN b, GEN T, ulong p); 1624 GEN FlxqM_ker(GEN x, GEN T, ulong p); 1625 GEN FlxqM_image(GEN x, GEN T, ulong p); 1626 GEN FlxqM_indexrank(GEN x, GEN T, ulong p); 1627 GEN FlxqM_inv(GEN x, GEN T, ulong p); 1628 GEN FlxqM_invimage(GEN a, GEN b, GEN T, ulong p); 1629 GEN FlxqM_mul(GEN a, GEN b, GEN T, ulong p); 1630 long FlxqM_rank(GEN x, GEN T, ulong p); 1631 GEN FlxqM_suppl(GEN x, GEN T, ulong p); 1632 GEN FpM_FpC_gauss(GEN a, GEN b, GEN p); 1633 GEN FpM_FpC_invimage(GEN m, GEN v, GEN p); 1634 GEN FpM_deplin(GEN x, GEN p); 1635 GEN FpM_det(GEN x, GEN p); 1636 GEN FpM_gauss(GEN a, GEN b, GEN p); 1637 GEN FpM_image(GEN x, GEN p); 1638 GEN FpM_indexrank(GEN x, GEN p); 1639 GEN FpM_intersect(GEN x, GEN y, GEN p); 1640 GEN FpM_inv(GEN x, GEN p); 1641 GEN FpM_invimage(GEN m, GEN v, GEN p); 1642 GEN FpM_ker(GEN x, GEN p); 1643 long FpM_rank(GEN x, GEN p); 1644 GEN FpM_suppl(GEN x, GEN p); 1645 GEN FqM_FqC_gauss(GEN a, GEN b, GEN T, GEN p); 1646 GEN FqM_FqC_invimage(GEN a, GEN b, GEN T, GEN p); 1647 GEN FqM_FqC_mul(GEN a, GEN b, GEN T, GEN p); 1648 GEN FqM_deplin(GEN x, GEN T, GEN p); 1649 GEN FqM_det(GEN x, GEN T, GEN p); 1650 GEN FqM_gauss(GEN a, GEN b, GEN T, GEN p); 1651 GEN FqM_ker(GEN x, GEN T, GEN p); 1652 GEN FqM_image(GEN x, GEN T, GEN p); 1653 GEN FqM_indexrank(GEN x, GEN T, GEN p); 1654 GEN FqM_inv(GEN x, GEN T, GEN p); 1655 GEN FqM_invimage(GEN a, GEN b, GEN T, GEN p); 1656 GEN FqM_mul(GEN a, GEN b, GEN T, GEN p); 1657 long FqM_rank(GEN a, GEN T, GEN p); 1658 GEN FqM_suppl(GEN x, GEN T, GEN p); 1659 GEN QM_image_shallow(GEN A); 1660 GEN QM_image(GEN A); 1661 GEN QM_gauss(GEN a, GEN b); 1662 GEN QM_gauss_i(GEN M, GEN B, long flag); 1663 GEN QM_indexrank(GEN x); 1664 GEN QM_inv(GEN M); 1665 long QM_rank(GEN x); 1666 GEN RgM_Fp_init(GEN a, GEN p, ulong *pp); 1667 GEN RgM_Hadamard(GEN a); 1668 GEN RgM_RgC_invimage(GEN A, GEN B); 1669 GEN RgM_diagonal(GEN m); 1670 GEN RgM_diagonal_shallow(GEN m); 1671 GEN RgM_inv(GEN a); 1672 GEN RgM_inv_upper(GEN a); 1673 GEN RgM_invimage(GEN A, GEN B); 1674 GEN RgM_solve(GEN a, GEN b); 1675 GEN RgM_solve_realimag(GEN x, GEN y); 1676 void RgMs_structelim(GEN M, long nbrow, GEN A, GEN *p_col, GEN *p_lin); 1677 GEN ZM_det(GEN a); 1678 GEN ZM_detmult(GEN A); 1679 GEN ZM_gauss(GEN a, GEN b); 1680 GEN ZM_ker(GEN M); 1681 GEN ZM_imagecompl(GEN x); 1682 GEN ZM_indeximage(GEN x); 1683 GEN ZM_indexrank(GEN x); 1684 GEN ZM_inv(GEN M, GEN *den); 1685 GEN ZM_inv_ratlift(GEN M, GEN *pden); 1686 GEN ZM_pseudoinv(GEN M, GEN *pv, GEN *den); 1687 long ZM_rank(GEN x); 1688 GEN ZlM_gauss(GEN a, GEN b, ulong p, long e, GEN C); 1689 GEN closemodinvertible(GEN x, GEN y); 1690 GEN deplin(GEN x); 1691 GEN det(GEN a); 1692 GEN det0(GEN a,long flag); 1693 GEN det2(GEN a); 1694 GEN detint(GEN x); 1695 GEN eigen(GEN x, long prec); 1696 GEN gauss(GEN a, GEN b); 1697 GEN gaussmodulo(GEN M, GEN D, GEN Y); 1698 GEN gaussmodulo2(GEN M, GEN D, GEN Y); 1699 GEN gen_Gauss(GEN a, GEN b, void *E, const struct bb_field *ff); 1700 GEN gen_Gauss_pivot(GEN x, long *rr, void *E, const struct bb_field *ff); 1701 GEN gen_det(GEN a, void *E, const struct bb_field *ff); 1702 GEN gen_ker(GEN x, long deplin, void *E, const struct bb_field *ff); 1703 GEN gen_matcolinvimage(GEN a, GEN b, void *E, const struct bb_field *ff); 1704 GEN gen_matcolmul(GEN a, GEN b, void *E, const struct bb_field *ff); 1705 GEN gen_matinvimage(GEN a, GEN b, void *E, const struct bb_field *ff); 1706 GEN gen_matmul(GEN a, GEN b, void *E, const struct bb_field *ff); 1707 GEN image(GEN x); 1708 GEN image2(GEN x); 1709 GEN imagecompl(GEN x); 1710 GEN indexrank(GEN x); 1711 GEN inverseimage(GEN mat, GEN y); 1712 GEN ker(GEN x); 1713 GEN mateigen(GEN x, long flag, long prec); 1714 GEN matimage0(GEN x,long flag); 1715 GEN matker0(GEN x, long flag); 1716 long rank(GEN x); 1717 GEN reducemodinvertible(GEN x, GEN y); 1718 GEN reducemodlll(GEN x,GEN y); 1719 GEN split_realimag(GEN x, long r1, long r2); 1720 GEN suppl(GEN x); 1721 1722 /* alglin2.c */ 1723 1724 GEN Flm_charpoly(GEN x, ulong p); 1725 GEN Flm_hess(GEN x, ulong p); 1726 GEN FpM_charpoly(GEN x, GEN p); 1727 GEN FpM_hess(GEN x, GEN p); 1728 GEN Frobeniusform(GEN V, long n); 1729 GEN QM_minors_coprime(GEN x, GEN pp); 1730 GEN QM_ImZ(GEN x); 1731 GEN QM_ImZ_all(GEN x, GEN *U, long remove, long hnf); 1732 GEN QM_ImZ_hnf(GEN x); 1733 GEN QM_ImZ_hnfall(GEN x, GEN *U, long remove); 1734 GEN QM_ImQ(GEN x); 1735 GEN QM_ImQ_all(GEN x, GEN *U, long remove, long hnf); 1736 GEN QM_ImQ_hnf(GEN x); 1737 GEN QM_ImQ_hnfall(GEN x, GEN *U, long remove); 1738 GEN QM_charpoly_ZX(GEN M); 1739 GEN QM_charpoly_ZX_bound(GEN M, long bit); 1740 GEN ZM_charpoly(GEN x); 1741 GEN adj(GEN x); 1742 GEN adjsafe(GEN x); 1743 GEN caract(GEN x, long v); 1744 GEN caradj(GEN x, long v, GEN *py); 1745 GEN carberkowitz(GEN x, long v); 1746 GEN carhess(GEN x, long v); 1747 GEN charpoly(GEN x, long v); 1748 GEN charpoly0(GEN x, long v,long flag); 1749 GEN gnorm(GEN x); 1750 GEN gnorml1(GEN x,long prec); 1751 GEN gnorml1_fake(GEN x); 1752 GEN gnormlp(GEN x, GEN p, long prec); 1753 GEN gnorml2(GEN x); 1754 GEN gsupnorm(GEN x, long prec); 1755 void gsupnorm_aux(GEN x, GEN *m, GEN *msq, long prec); 1756 GEN gtrace(GEN x); 1757 GEN hess(GEN x); 1758 GEN intersect(GEN x, GEN y); 1759 GEN jacobi(GEN a, long prec); 1760 GEN matadjoint0(GEN x, long flag); 1761 GEN matcompanion(GEN x); 1762 GEN matrixqz0(GEN x, GEN pp); 1763 GEN minpoly(GEN x, long v); 1764 GEN qfgaussred(GEN a); 1765 GEN qfgaussred_positive(GEN a); 1766 GEN qfsign(GEN a); 1767 1768 /* alglin3.c */ 1769 1770 GEN apply0(GEN f, GEN A); 1771 GEN diagonal(GEN x); 1772 GEN diagonal_shallow(GEN x); 1773 GEN extract0(GEN x, GEN l1, GEN l2); 1774 GEN fold0(GEN f, GEN A); 1775 GEN genapply(void *E, GEN (*f)(void *E, GEN x), GEN A); 1776 GEN genfold(void *E, GEN (*f)(void *E, GEN x, GEN y), GEN A); 1777 GEN genindexselect(void *E, long (*f)(void *E, GEN x), GEN A); 1778 GEN genselect(void *E, long (*f)(void *E, GEN x), GEN A); 1779 GEN gtomat(GEN x); 1780 GEN gtrans(GEN x); 1781 GEN matmuldiagonal(GEN x, GEN d); 1782 GEN matmultodiagonal(GEN x, GEN y); 1783 GEN matslice0(GEN A, long x1, long x2, long y1, long y2); 1784 GEN parapply(GEN V, GEN C); 1785 void parfor(GEN a, GEN b, GEN code, void *E, long call(void*, GEN, GEN)); 1786 void parfor_init(parfor_t *T, GEN a, GEN b, GEN code); 1787 GEN parfor_next(parfor_t *T); 1788 void parfor_stop(parfor_t *T); 1789 void parforeach(GEN x, GEN code, void *E, long call(void*, GEN, GEN)); 1790 void parforeach_init(parforeach_t *T, GEN x, GEN code); 1791 GEN parforeach_next(parforeach_t *T); 1792 void parforeach_stop(parforeach_t *T); 1793 void parforprime(GEN a, GEN b, GEN code, void *E, long call(void*, GEN, GEN)); 1794 void parforprime_init(parforprime_t *T, GEN a, GEN b, GEN code); 1795 GEN parforprime_next(parforprime_t *T); 1796 void parforprime_stop(parforprime_t *T); 1797 void parforprimestep(GEN a, GEN b, GEN q, GEN code, void *E, long call(void*, GEN, GEN)); 1798 void parforprimestep_init(parforprime_t *T, GEN a, GEN b, GEN q, GEN code); 1799 void parforvec(GEN x, GEN code, long flag, void *E, long call(void*, GEN, GEN)); 1800 void parforvec_init(parforvec_t *T, GEN x, GEN code, long flag); 1801 GEN parforvec_next(parforvec_t *T); 1802 void parforvec_stop(parforvec_t *T); 1803 GEN parselect(GEN C, GEN D, long flag); 1804 GEN select0(GEN A, GEN f, long flag); 1805 GEN shallowextract(GEN x, GEN L); 1806 GEN shallowmatextract(GEN x, GEN l1, GEN l2); 1807 GEN shallowtrans(GEN x); 1808 GEN vecapply(void *E, GEN (*f)(void* E, GEN x), GEN x); 1809 GEN veccatapply(void *E, GEN (*f)(void* E, GEN x), GEN x); 1810 GEN veccatselapply(void *Epred, long (*pred)(void* E, GEN x), void *Efun, 1811 GEN (*fun)(void* E, GEN x), GEN A); 1812 GEN vecrange(GEN a, GEN b); 1813 GEN vecrangess(long a, long b); 1814 GEN vecselapply(void *Epred, long (*pred)(void* E, GEN x), void *Efun, 1815 GEN (*fun)(void* E, GEN x), GEN A); 1816 GEN vecselect(void *E, long (*f)(void* E, GEN x), GEN A); 1817 GEN vecslice0(GEN A, long y1, long y2); 1818 GEN vecsum(GEN v); 1819 GEN zv_diagonal(GEN x); 1820 1821 /* anal.c */ 1822 1823 void addhelp(const char *e, char *s); 1824 GEN arity0(GEN C); 1825 void alias0(const char *s, const char *old); 1826 GEN compile_str(const char *s); 1827 long delete_var(void); 1828 long fetch_user_var(const char *s); 1829 long fetch_var(void); 1830 long fetch_var_higher(void); 1831 GEN fetch_var_value(long vx, GEN t); 1832 char * gp_embedded(const char *s); 1833 void gp_embedded_init(long rsize, long vsize); 1834 GEN gp_read_str(const char *t); 1835 GEN gp_read_str_bitprec(const char *s, long bitprec); 1836 GEN gp_read_str_prec(const char *s, long prec); 1837 entree* install(void *f, const char *name, const char *code); 1838 entree* is_entry(const char *s); 1839 void kill0(const char *e); 1840 void pari_var_close(void); 1841 void pari_var_init(void); 1842 long pari_var_next(void); 1843 long pari_var_next_temp(void); 1844 long pari_var_create(entree *ep); 1845 void name_var(long n, const char *s); 1846 GEN readseq(char *t); 1847 GEN* safegel(GEN x, long l); 1848 long* safeel(GEN x, long l); 1849 GEN* safelistel(GEN x, long l); 1850 GEN* safegcoeff(GEN x, long a, long b); 1851 GEN strtoi(const char *s); 1852 GEN strtor(const char *s, long prec); 1853 GEN varhigher(const char *s, long v); 1854 GEN varlower(const char *s, long v); 1855 1856 /* aprcl.c */ 1857 1858 GEN divisorslenstra(GEN N, GEN r, GEN s); 1859 long isprimeAPRCL(GEN N); 1860 1861 /* Qfb.c */ 1862 1863 GEN Qfb0(GEN x, GEN y, GEN z, GEN d, long prec); 1864 void check_quaddisc(GEN x, long *s, long *r, const char *f); 1865 void check_quaddisc_imag(GEN x, long *r, const char *f); 1866 void check_quaddisc_real(GEN x, long *r, const char *f); 1867 long cornacchia(GEN d, GEN p, GEN *px, GEN *py); 1868 long cornacchia2(GEN d, GEN p, GEN *px, GEN *py); 1869 long cornacchia2_sqrt(GEN d, GEN p, GEN b, GEN *px, GEN *py); 1870 GEN nucomp(GEN x, GEN y, GEN L); 1871 GEN nudupl(GEN x, GEN L); 1872 GEN nupow(GEN x, GEN n, GEN L); 1873 GEN primeform(GEN x, GEN p, long prec); 1874 GEN primeform_u(GEN x, ulong p); 1875 int qfb_equal1(GEN f); 1876 GEN qfbcompraw(GEN x, GEN y); 1877 GEN qfbpowraw(GEN x, long n); 1878 GEN qfbred0(GEN x, long flag, GEN D, GEN isqrtD, GEN sqrtD); 1879 GEN qfbredsl2(GEN q, GEN S); 1880 GEN qfbsolve(GEN Q, GEN n, long flag); 1881 GEN qfi(GEN x, GEN y, GEN z); 1882 GEN qfi_1(GEN x); 1883 GEN qfi_Shanks(GEN a, GEN g, long n); 1884 GEN qfi_log(GEN a, GEN g, GEN o); 1885 GEN qfi_order(GEN q, GEN o); 1886 GEN qficomp(GEN x, GEN y); 1887 GEN qficompraw(GEN x, GEN y); 1888 GEN qfipowraw(GEN x, long n); 1889 GEN qfisolvep(GEN Q, GEN p); 1890 GEN qfisqr(GEN x); 1891 GEN qfisqrraw(GEN x); 1892 GEN qfr(GEN x, GEN y, GEN z, GEN d); 1893 GEN qfr3_comp(GEN x, GEN y, struct qfr_data *S); 1894 GEN qfr3_pow(GEN x, GEN n, struct qfr_data *S); 1895 GEN qfr3_red(GEN x, struct qfr_data *S); 1896 GEN qfr3_rho(GEN x, struct qfr_data *S); 1897 GEN qfr3_to_qfr(GEN x, GEN z); 1898 GEN qfr5_comp(GEN x, GEN y, struct qfr_data *S); 1899 GEN qfr5_dist(GEN e, GEN d, long prec); 1900 GEN qfr5_pow(GEN x, GEN n, struct qfr_data *S); 1901 GEN qfr5_red(GEN x, struct qfr_data *S); 1902 GEN qfr5_rho(GEN x, struct qfr_data *S); 1903 GEN qfr5_to_qfr(GEN x, GEN d0); 1904 GEN qfr_1(GEN x); 1905 void qfr_data_init(GEN D, long prec, struct qfr_data *S); 1906 GEN qfr_to_qfr5(GEN x, long prec); 1907 GEN qfrcomp(GEN x, GEN y); 1908 GEN qfrcompraw(GEN x, GEN y); 1909 GEN qfrpow(GEN x, GEN n); 1910 GEN qfrpowraw(GEN x, long n); 1911 GEN qfrsolvep(GEN Q, GEN p); 1912 GEN qfrsqr(GEN x); 1913 GEN qfrsqrraw(GEN x); 1914 GEN quadgen(GEN x); 1915 GEN quadgen0(GEN x, long v); 1916 GEN quadpoly(GEN x); 1917 GEN quadpoly0(GEN x, long v); 1918 GEN redimag(GEN x); 1919 GEN redreal(GEN x); 1920 GEN redrealnod(GEN x, GEN isqrtD); 1921 GEN rhoreal(GEN x); 1922 GEN rhorealnod(GEN x, GEN isqrtD); 1923 1924 /* arith1.c */ 1925 1926 ulong Fl_2gener_pre(ulong p, ulong pi); 1927 ulong Fl_log(ulong a, ulong g, ulong ord, ulong p); 1928 ulong Fl_log_pre(ulong a, ulong g, ulong ord, ulong p, ulong pi); 1929 ulong Fl_order(ulong a, ulong o, ulong p); 1930 GEN Fl_powers(ulong x, long n, ulong p); 1931 GEN Fl_powers_pre(ulong x, long n, ulong p, ulong pi); 1932 ulong Fl_powu(ulong x, ulong n, ulong p); 1933 ulong Fl_powu_pre(ulong x, ulong n, ulong p, ulong pi); 1934 ulong Fl_sqrt(ulong a, ulong p); 1935 ulong Fl_sqrt_pre(ulong a, ulong p, ulong pi); 1936 ulong Fl_sqrt_pre_i(ulong a, ulong s2, ulong p, ulong pi); 1937 ulong Fl_sqrtl(ulong a, ulong l, ulong p); 1938 ulong Fl_sqrtl_pre(ulong a, ulong l, ulong p, ulong pi); 1939 ulong Fl_sqrtn(ulong a, long n, ulong p, ulong *zetan); 1940 ulong Fl_sqrtn_pre(ulong a, long n, ulong p, ulong pi, ulong *zetan); 1941 GEN Fp_2gener(GEN p); 1942 GEN Fp_factored_order(GEN a, GEN o, GEN p); 1943 int Fp_ispower(GEN x, GEN K, GEN p); 1944 GEN Fp_log(GEN a, GEN g, GEN ord, GEN p); 1945 GEN Fp_order(GEN a, GEN o, GEN p); 1946 GEN Fp_pow(GEN a, GEN n, GEN m); 1947 GEN Fp_pow_init(GEN x, GEN n, long k, GEN p); 1948 GEN Fp_pow_table(GEN R, GEN n, GEN p); 1949 GEN Fp_powers(GEN x, long n, GEN p); 1950 GEN Fp_pows(GEN A, long k, GEN N); 1951 GEN Fp_powu(GEN x, ulong k, GEN p); 1952 GEN Fp_sqrt(GEN a, GEN p); 1953 GEN Fp_sqrt_i(GEN a, GEN y, GEN p); 1954 GEN Fp_sqrtn(GEN a, GEN n, GEN p, GEN *zetan); 1955 GEN FpV_prod(GEN V, GEN p); 1956 GEN Z_ZV_mod(GEN P, GEN xa); 1957 GEN Z_ZV_mod_tree(GEN P, GEN xa, GEN T); 1958 GEN Z_chinese(GEN a, GEN b, GEN A, GEN B); 1959 GEN Z_chinese_all(GEN a, GEN b, GEN A, GEN B, GEN *pC); 1960 GEN Z_chinese_coprime(GEN a, GEN b, GEN A, GEN B, GEN C); 1961 GEN Z_chinese_post(GEN a, GEN b, GEN C, GEN U, GEN d); 1962 void Z_chinese_pre(GEN A, GEN B, GEN *pC, GEN *pU, GEN *pd); 1963 GEN Z_factor_listP(GEN N, GEN L); 1964 long Z_isanypower(GEN x, GEN *y); 1965 long Z_isfundamental(GEN x); 1966 long Z_ispow2(GEN x); 1967 long Z_ispowerall(GEN x, ulong k, GEN *pt); 1968 long Z_issquareall(GEN x, GEN *pt); 1969 GEN Z_nv_mod(GEN P, GEN xa); 1970 GEN ZM_nv_mod_tree(GEN M, GEN xa, GEN T); 1971 GEN ZV_allpnqn(GEN x); 1972 GEN ZV_chinese(GEN A, GEN P, GEN *pt_mod); 1973 GEN ZV_chinese_tree(GEN A, GEN P, GEN T, GEN R); 1974 GEN ZV_chinesetree(GEN P, GEN T); 1975 GEN ZV_nv_mod_tree(GEN V, GEN xa, GEN T); 1976 GEN ZV_producttree(GEN xa); 1977 GEN ZX_nv_mod_tree(GEN P, GEN xa, GEN T); 1978 GEN ZXC_nv_mod_tree(GEN P, GEN xa, GEN T, long w); 1979 GEN ZXM_nv_mod_tree(GEN M, GEN xa, GEN T, long w); 1980 GEN ZXX_nv_mod_tree(GEN P, GEN xa, GEN T, long w); 1981 GEN Zideallog(GEN bid, GEN x); 1982 long Zp_issquare(GEN a, GEN p); 1983 GEN bestappr(GEN x, GEN k); 1984 GEN bestapprPade(GEN x, long B); 1985 GEN chinese(GEN x, GEN y); 1986 GEN chinese1(GEN x); 1987 GEN chinese1_coprime_Z(GEN x); 1988 GEN classno(GEN x); 1989 GEN classno2(GEN x); 1990 GEN contfrac0(GEN x, GEN b, long flag); 1991 GEN contfracpnqn(GEN x, long n); 1992 GEN fibo(long n); 1993 GEN gboundcf(GEN x, long k); 1994 GEN gcf(GEN x); 1995 GEN gcf2(GEN b, GEN x); 1996 const struct bb_field *get_Fp_field(void **E, GEN p); 1997 long gisanypower(GEN x, GEN *pty); 1998 GEN gissquare(GEN x); 1999 GEN gissquareall(GEN x, GEN *pt); 2000 GEN hclassno(GEN x); 2001 GEN hclassno6(GEN x); 2002 long hilbert(GEN x, GEN y, GEN p); 2003 long hilbertii(GEN x, GEN y, GEN p); 2004 long isfundamental(GEN x); 2005 long ispolygonal(GEN x, GEN S, GEN *N); 2006 long ispower(GEN x, GEN k, GEN *pty); 2007 long isprimepower(GEN x, GEN *pty); 2008 long ispseudoprimepower(GEN n, GEN *pt); 2009 long issquare(GEN x); 2010 long issquareall(GEN x, GEN *pt); 2011 long krois(GEN x, long y); 2012 long kroiu(GEN x, ulong y); 2013 long kronecker(GEN x, GEN y); 2014 long krosi(long s, GEN x); 2015 long kross(long x, long y); 2016 long kroui(ulong x, GEN y); 2017 long krouu(ulong x, ulong y); 2018 GEN lcmii(GEN a, GEN b); 2019 GEN Fp_invgen(GEN x, GEN N, GEN *pd); 2020 long logint0(GEN B, GEN y, GEN *ptq); 2021 long logintall(GEN B, GEN y, GEN *ptq); 2022 GEN mpfact(long n); 2023 ulong factorial_Fl(long n, ulong p); 2024 GEN factorial_Fp(long n, GEN p); 2025 GEN muls_interval(long a, long b); 2026 GEN mulu_interval(ulong a, ulong b); 2027 GEN mulu_interval_step(ulong a, ulong b, ulong step); 2028 GEN ncV_chinese_center(GEN A, GEN P, GEN *pt_mod); 2029 GEN ncV_chinese_center_tree(GEN A, GEN P, GEN T, GEN R); 2030 GEN nmV_chinese_center(GEN A, GEN P, GEN *pt_mod); 2031 GEN nmV_chinese_center_tree(GEN A, GEN P, GEN T, GEN R); 2032 ulong nonsquare_Fl(ulong p); 2033 GEN nxCV_chinese_center(GEN A, GEN P, GEN *pt_mod); 2034 GEN nxCV_chinese_center_tree(GEN A, GEN P, GEN T, GEN R); 2035 GEN nxMV_chinese_center(GEN A, GEN P, GEN *pt_mod); 2036 GEN nxV_chinese_center(GEN A, GEN P, GEN *pt_mod); 2037 GEN nxV_chinese_center_tree(GEN A, GEN P, GEN T, GEN R); 2038 GEN ZV_chinese_center(GEN A, GEN P, GEN *pt_mod); 2039 GEN odd_prime_divisors(GEN q); 2040 GEN order(GEN x); 2041 ulong pgener_Fl(ulong p); 2042 ulong pgener_Fl_local(ulong p, GEN L); 2043 GEN pgener_Fp(GEN p); 2044 GEN pgener_Fp_local(GEN p, GEN L); 2045 ulong pgener_Zl(ulong p); 2046 GEN pgener_Zp(GEN p); 2047 GEN pnqn(GEN x); 2048 GEN qfbclassno0(GEN x,long flag); 2049 GEN quadclassno(GEN x); 2050 GEN quaddisc(GEN x); 2051 GEN quadregulator(GEN x, long prec); 2052 GEN quadunit(GEN x); 2053 GEN quadunit0(GEN x, long v); 2054 GEN ramanujantau(GEN n); 2055 ulong rootsof1_Fl(ulong n, ulong p); 2056 GEN rootsof1_Fp(GEN n, GEN p); 2057 GEN rootsof1u_Fp(ulong n, GEN p); 2058 long sisfundamental(long x); 2059 GEN sqrtint(GEN a); 2060 GEN sqrtint0(GEN a, GEN *r); 2061 ulong u_chinese_coprime(ulong a, ulong b, ulong A, ulong B, ulong C); 2062 long uisprimepower(ulong n, ulong *p); 2063 long uissquare(ulong A); 2064 long uissquareall(ulong A, ulong *sqrtA); 2065 long ulogintall(ulong B, ulong y, ulong *ptq); 2066 long unegisfundamental(ulong x); 2067 long uposisfundamental(ulong x); 2068 GEN znlog(GEN x, GEN g, GEN o); 2069 GEN znorder(GEN x, GEN o); 2070 GEN znprimroot(GEN m); 2071 GEN znstar(GEN x); 2072 GEN znstar0(GEN N, long flag); 2073 GEN Zn_quad_roots(GEN N, GEN B, GEN C); 2074 2075 /* arith2.c */ 2076 2077 int RgV_is_ZVpos(GEN v); 2078 int RgV_is_ZVnon0(GEN v); 2079 GEN Z_smoothen(GEN N, GEN L, GEN *pP, GEN *pe); 2080 GEN boundfact(GEN n, ulong lim); 2081 GEN check_arith_pos(GEN n, const char *f); 2082 GEN check_arith_non0(GEN n, const char *f); 2083 GEN check_arith_all(GEN n, const char *f); 2084 GEN clean_Z_factor(GEN f); 2085 GEN corepartial(GEN n, long l); 2086 GEN core0(GEN n,long flag); 2087 GEN core2(GEN n); 2088 GEN core2partial(GEN n, long l); 2089 GEN coredisc(GEN n); 2090 GEN coredisc0(GEN n,long flag); 2091 GEN coredisc2(GEN n); 2092 long corediscs(long D, ulong *f); 2093 GEN digits(GEN N, GEN B); 2094 GEN divisors(GEN n); 2095 GEN divisors_factored(GEN N); 2096 GEN divisors0(GEN N, long flag); 2097 GEN divisorsu(ulong n); 2098 GEN divisorsu_moebius(GEN P); 2099 GEN divisorsu_fact(GEN fa); 2100 GEN divisorsu_fact_factored(GEN fa); 2101 GEN factor_pn_1(GEN p, ulong n); 2102 GEN factor_pn_1_limit(GEN p, long n, ulong lim); 2103 GEN factoru_pow(ulong n); 2104 GEN fromdigits(GEN x, GEN B); 2105 GEN fromdigitsu(GEN x, GEN B); 2106 GEN fuse_Z_factor(GEN f, GEN B); 2107 GEN gen_digits(GEN x, GEN B, long n, void *E, struct bb_ring *r, 2108 GEN (*div)(void *E, GEN x, GEN y, GEN *r)); 2109 GEN gen_fromdigits(GEN x, GEN B, void *E, struct bb_ring *r); 2110 int is_Z_factor(GEN f); 2111 int is_Z_factornon0(GEN f); 2112 int is_Z_factorpos(GEN f); 2113 int is_nf_factor(GEN F); 2114 int is_nf_extfactor(GEN F); 2115 GEN sumdigits(GEN n); 2116 GEN sumdigits0(GEN n, GEN B); 2117 ulong sumdigitsu(ulong n); 2118 GEN usumdiv_fact(GEN f); 2119 GEN usumdivk_fact(GEN f, ulong k); 2120 2121 /* base1.c */ 2122 2123 GEN FpX_FpC_nfpoleval(GEN nf, GEN pol, GEN a, GEN p); 2124 GEN embed_T2(GEN x, long r1); 2125 GEN embednorm_T2(GEN x, long r1); 2126 GEN embed_norm(GEN x, long r1); 2127 void check_ZKmodule(GEN x, const char *s); 2128 void checkbid(GEN bid); 2129 GEN checkbid_i(GEN bid); 2130 GEN checkbnf(GEN bnf); 2131 GEN checkbnf_i(GEN bnf); 2132 void checkbnr(GEN bnr); 2133 GEN checkbnr_i(GEN bnr); 2134 void checkabgrp(GEN v); 2135 void checksqmat(GEN x, long N); 2136 GEN checknf(GEN nf); 2137 GEN checknf_i(GEN nf); 2138 GEN checknfelt_mod(GEN nf, GEN x, const char *s); 2139 void checkprid(GEN bid); 2140 int checkprid_i(GEN x); 2141 void checkrnf(GEN rnf); 2142 int checkrnf_i(GEN rnf); 2143 GEN factoredpolred(GEN x, GEN fa); 2144 GEN factoredpolred2(GEN x, GEN fa); 2145 GEN galoisapply(GEN nf, GEN aut, GEN x); 2146 GEN get_bnf(GEN x, long *t); 2147 GEN get_bnfpol(GEN x, GEN *bnf, GEN *nf); 2148 GEN get_nf(GEN x, long *t); 2149 GEN get_nfpol(GEN x, GEN *nf); 2150 GEN get_prid(GEN x); 2151 GEN idealfrobenius(GEN nf, GEN gal, GEN pr); 2152 GEN idealfrobenius_aut(GEN nf, GEN gal, GEN pr, GEN aut); 2153 GEN idealramfrobenius(GEN nf, GEN gal, GEN pr, GEN ram); 2154 GEN idealramfrobenius_aut(GEN nf, GEN gal, GEN pr, GEN ram, GEN aut); 2155 GEN idealramgroups(GEN nf, GEN gal, GEN pr); 2156 GEN idealramgroups_aut(GEN nf, GEN gal, GEN pr, GEN aut); 2157 GEN nf_get_allroots(GEN nf); 2158 long nf_get_prec(GEN x); 2159 GEN nfmaxord_to_nf(nfmaxord_t *T, GEN ro, long prec); 2160 GEN nfcertify(GEN x); 2161 GEN nfgaloismatrix(GEN nf, GEN s); 2162 GEN nfgaloismatrixapply(GEN nf, GEN M, GEN x); 2163 GEN nfgaloispermtobasis(GEN nf, GEN gal); 2164 void nfinit_basic(nfmaxord_t *T, GEN x); 2165 GEN nfinit_complete(nfmaxord_t *T, long flag, long prec); 2166 GEN nfinit(GEN x, long prec); 2167 GEN nfinit0(GEN x, long flag, long prec); 2168 GEN nfinitall(GEN x, long flag, long prec); 2169 GEN nfinitred(GEN x, long prec); 2170 GEN nfinitred2(GEN x, long prec); 2171 GEN nfisincl(GEN a, GEN b); 2172 GEN nfisincl0(GEN fa, GEN fb, long flag); 2173 GEN nfisisom(GEN a, GEN b); 2174 GEN nfnewprec(GEN nf, long prec); 2175 GEN nfnewprec_shallow(GEN nf, long prec); 2176 GEN nfpoleval(GEN nf, GEN pol, GEN a); 2177 GEN nfsplitting(GEN T, GEN D); 2178 long nftyp(GEN x); 2179 GEN polredord(GEN x); 2180 GEN polred(GEN x); 2181 GEN polred0(GEN x, long flag, GEN fa); 2182 GEN polred2(GEN x); 2183 GEN polredabs(GEN x); 2184 GEN polredabs0(GEN x, long flag); 2185 GEN polredabs2(GEN x); 2186 GEN polredabsall(GEN x, long flun); 2187 GEN polredbest(GEN x, long flag); 2188 GEN rnfpolredabs(GEN nf, GEN pol, long flag); 2189 GEN rnfpolredbest(GEN nf, GEN R, long flag); 2190 GEN smallpolred(GEN x); 2191 GEN smallpolred2(GEN x); 2192 GEN tschirnhaus(GEN x); 2193 GEN ZX_Q_mul(GEN A, GEN z); 2194 GEN ZX_Q_normalize(GEN pol, GEN *ptlc); 2195 GEN ZX_Z_normalize(GEN pol, GEN *ptk); 2196 GEN ZX_to_monic(GEN pol, GEN *lead); 2197 GEN ZX_primitive_to_monic(GEN pol, GEN *lead); 2198 GEN ZXX_Q_mul(GEN A, GEN z); 2199 2200 /* base2.c */ 2201 2202 GEN Fq_to_nf(GEN x, GEN modpr); 2203 GEN FqM_to_nfM(GEN z, GEN modpr); 2204 GEN FqV_to_nfV(GEN z, GEN modpr); 2205 GEN FqX_to_nfX(GEN x, GEN modpr); 2206 GEN Rg_nffix(const char *f, GEN T, GEN c, int lift); 2207 GEN RgV_nffix(const char *f, GEN T, GEN P, int lift); 2208 GEN RgX_nffix(const char *s, GEN nf, GEN x, int lift); 2209 GEN ZX_compositum_disjoint(GEN A, GEN B); 2210 GEN ZX_compositum(GEN A, GEN B, long *lambda); 2211 long ZpX_disc_val(GEN f, GEN p); 2212 GEN ZpX_gcd(GEN f1,GEN f2,GEN p, GEN pm); 2213 GEN ZpX_monic_factor(GEN f, GEN p, long prec); 2214 GEN ZpX_primedec(GEN T, GEN p); 2215 GEN ZpX_reduced_resultant(GEN x, GEN y, GEN p, GEN pm); 2216 GEN ZpX_reduced_resultant_fast(GEN f, GEN g, GEN p, long M); 2217 long ZpX_resultant_val(GEN f, GEN g, GEN p, long M); 2218 void checkmodpr(GEN modpr); 2219 GEN compositum(GEN P, GEN Q); 2220 GEN compositum2(GEN P, GEN Q); 2221 GEN nfdisc(GEN x); 2222 GEN get_modpr(GEN x); 2223 GEN indexpartial(GEN P, GEN DP); 2224 GEN modpr_genFq(GEN modpr); 2225 GEN nf_to_Fq_init(GEN nf, GEN *pr, GEN *T, GEN *p); 2226 GEN nf_to_Fq(GEN nf, GEN x, GEN modpr); 2227 GEN nfM_to_FqM(GEN z, GEN nf,GEN modpr); 2228 GEN nfV_to_FqV(GEN z, GEN nf,GEN modpr); 2229 GEN nfX_to_FqX(GEN x, GEN nf,GEN modpr); 2230 GEN nfX_to_monic(GEN nf, GEN T, GEN *pL); 2231 GEN nfbasis(GEN x, GEN *y); 2232 GEN nfcompositum(GEN nf, GEN A, GEN B, long flag); 2233 GEN nfdiscfactors(GEN x); 2234 void nfmaxord(nfmaxord_t *S, GEN T, long flag); 2235 GEN nfmodpr(GEN nf, GEN x, GEN pr); 2236 GEN nfmodprinit(GEN nf, GEN pr); 2237 GEN nfmodprinit0(GEN nf, GEN pr, long v); 2238 GEN nfmodprlift(GEN nf, GEN x, GEN pr); 2239 GEN nfreducemodpr(GEN nf, GEN x, GEN modpr); 2240 GEN polcompositum0(GEN P, GEN Q,long flag); 2241 GEN idealprimedec(GEN nf,GEN p); 2242 GEN idealprimedec_galois(GEN nf, GEN p); 2243 GEN idealprimedec_degrees(GEN nf, GEN p); 2244 GEN idealprimedec_kummer(GEN nf,GEN pol,long e,GEN p); 2245 GEN idealprimedec_limit_f(GEN nf, GEN p, long f); 2246 GEN idealprimedec_limit_norm(GEN nf, GEN p, GEN B); 2247 GEN poldiscfactors(GEN T, long flag); 2248 GEN rnfbasis(GEN bnf, GEN order); 2249 GEN rnfdedekind(GEN nf, GEN T, GEN pr, long flag); 2250 GEN rnfdet(GEN nf, GEN order); 2251 GEN rnfdisc_factored(GEN nf, GEN pol, GEN *pd); 2252 GEN rnfdiscf(GEN nf, GEN pol); 2253 GEN rnfequation(GEN nf, GEN pol); 2254 GEN rnfequation0(GEN nf, GEN pol, long flall); 2255 GEN rnfequation2(GEN nf, GEN pol); 2256 GEN nf_pV_to_prV(GEN nf, GEN P); 2257 GEN nf_rnfeq(GEN nf, GEN R); 2258 GEN nf_rnfeqsimple(GEN nf, GEN R); 2259 GEN rnfequationall(GEN A, GEN B, long *pk, GEN *pLPRS); 2260 GEN rnfhnfbasis(GEN bnf, GEN order); 2261 long rnfisfree(GEN bnf, GEN order); 2262 GEN rnflllgram(GEN nf, GEN pol, GEN order,long prec); 2263 GEN rnfpolred(GEN nf, GEN pol, long prec); 2264 GEN rnfpseudobasis(GEN nf, GEN pol); 2265 GEN rnfsimplifybasis(GEN bnf, GEN order); 2266 GEN rnfsteinitz(GEN nf, GEN order); 2267 long factorial_lval(ulong n, ulong p); 2268 GEN zk_to_Fq_init(GEN nf, GEN *pr, GEN *T, GEN *p); 2269 GEN zk_to_Fq(GEN x, GEN modpr); 2270 GEN QXQV_to_FpM(GEN basis, GEN T, GEN p); 2271 GEN zkmodprinit(GEN nf, GEN pr); 2272 2273 /* base3.c */ 2274 2275 GEN Idealstar(GEN nf, GEN x,long flun); 2276 GEN Idealstarmod(GEN nf, GEN ideal, long flag, GEN MOD); 2277 GEN Idealstarprk(GEN nf, GEN pr, long k, long flag); 2278 GEN RgC_to_nfC(GEN nf,GEN x); 2279 GEN RgM_RgX_mul(GEN A, GEN x); 2280 GEN RgM_to_nfM(GEN nf,GEN x); 2281 GEN RgX_to_nfX(GEN nf,GEN pol); 2282 long ZC_nfval(GEN x, GEN P); 2283 long ZC_nfvalrem(GEN x, GEN P, GEN *t); 2284 int ZC_prdvd(GEN x, GEN P); 2285 GEN ZM_ZX_mul(GEN A, GEN x); 2286 GEN ZV_snf_gcd(GEN x, GEN mod); 2287 GEN algtobasis(GEN nf, GEN x); 2288 GEN basistoalg(GEN nf, GEN x); 2289 GEN ei_multable(GEN nf, long i); 2290 const struct bb_field *get_nf_field(void **E, GEN nf); 2291 GEN famat_nfvalrem(GEN nf, GEN x, GEN pr, GEN *py); 2292 GEN gpnfvalrem(GEN nf, GEN x, GEN pr, GEN *py); 2293 GEN ideallist(GEN nf,long bound); 2294 GEN ideallist0(GEN nf,long bound, long flag); 2295 GEN ideallistarch(GEN nf, GEN list, GEN arch); 2296 GEN ideallog(GEN nf,GEN x,GEN bid); 2297 GEN ideallogmod(GEN nf,GEN x,GEN bid, GEN mod); 2298 GEN ideallog_units(GEN bnf, GEN bid); 2299 GEN ideallog_units0(GEN bnf, GEN bid, GEN MOD); 2300 GEN idealprincipalunits(GEN nf, GEN pr, long e); 2301 GEN idealstar0(GEN nf, GEN x,long flag); 2302 GEN idealstarmod(GEN nf, GEN ideal, long flag, GEN MOD); 2303 GEN indices_to_vec01(GEN archp, long r); 2304 GEN matalgtobasis(GEN nf, GEN x); 2305 GEN matbasistoalg(GEN nf, GEN x); 2306 GEN multable(GEN nf, GEN x); 2307 GEN nf_to_scalar_or_alg(GEN nf, GEN x); 2308 GEN nf_to_scalar_or_basis(GEN nf, GEN x); 2309 GEN nf_cxlog(GEN nf, GEN x, long prec); 2310 GEN nfV_cxlog(GEN nf, GEN x, long prec); 2311 GEN nfadd(GEN nf, GEN x, GEN y); 2312 int nfchecksigns(GEN nf, GEN x, GEN pl); 2313 GEN nfdiv(GEN nf, GEN x, GEN y); 2314 GEN nfdiveuc(GEN nf, GEN a, GEN b); 2315 GEN nfdivrem(GEN nf, GEN a, GEN b); 2316 GEN nfembed(GEN nf, GEN x, long k); 2317 GEN nfeltembed(GEN nf, GEN x, GEN ind0, long prec); 2318 GEN nfeltsign(GEN nf, GEN x, GEN ind0); 2319 GEN nfinv(GEN nf, GEN x); 2320 GEN nfinvmodideal(GEN nf, GEN x, GEN ideal); 2321 GEN nflogembed(GEN nf, GEN x, GEN *emb, long prec); 2322 GEN nfM_det(GEN nf, GEN M); 2323 GEN nfM_inv(GEN nf, GEN M); 2324 GEN nfM_mul(GEN nf, GEN A, GEN B); 2325 GEN nfM_nfC_mul(GEN nf, GEN A, GEN B); 2326 GEN nfmod(GEN nf, GEN a, GEN b); 2327 GEN nfmul(GEN nf,GEN x,GEN y); 2328 GEN nfmuli(GEN nf,GEN x,GEN y); 2329 GEN nfnorm(GEN nf, GEN x); 2330 GEN nfpolsturm(GEN nf, GEN f, GEN ind0); 2331 GEN nfpow(GEN nf,GEN x,GEN k); 2332 GEN nfpow_u(GEN nf, GEN z, ulong n); 2333 GEN nfpowmodideal(GEN nf,GEN x,GEN k,GEN ideal); 2334 GEN nfsign(GEN nf,GEN alpha); 2335 GEN nfsign_arch(GEN nf,GEN alpha,GEN arch); 2336 GEN nfsign_from_logarch(GEN Larch, GEN invpi, GEN archp); 2337 GEN nfsqr(GEN nf,GEN x); 2338 GEN nfsqri(GEN nf, GEN x); 2339 GEN nfsub(GEN nf, GEN x, GEN y); 2340 GEN nftrace(GEN nf, GEN x); 2341 long nfval(GEN nf, GEN x, GEN vp); 2342 long nfvalrem(GEN nf, GEN x, GEN pr, GEN *py); 2343 GEN polmod_nffix(const char *f, GEN rnf, GEN x,int lift); 2344 GEN polmod_nffix2(const char *f, GEN T, GEN R, GEN x, int lift); 2345 GEN pr_basis_perm(GEN nf, GEN pr); 2346 int pr_equal(GEN P, GEN Q); 2347 GEN rnfalgtobasis(GEN rnf, GEN x); 2348 GEN rnfbasistoalg(GEN rnf, GEN x); 2349 GEN rnfeltnorm(GEN rnf, GEN x); 2350 GEN rnfelttrace(GEN rnf, GEN x); 2351 GEN set_sign_mod_divisor(GEN nf, GEN x, GEN y, GEN sarch); 2352 GEN tablemul(GEN TAB, GEN x, GEN y); 2353 GEN tablemul_ei(GEN M, GEN x, long i); 2354 GEN tablemul_ei_ej(GEN M, long i, long j); 2355 GEN tablemulvec(GEN M, GEN x, GEN v); 2356 GEN tablesqr(GEN tab, GEN x); 2357 GEN vec01_to_indices(GEN arch); 2358 GEN vecmodii(GEN a, GEN b); 2359 GEN vecmoduu(GEN a, GEN b); 2360 GEN vecsmall01_to_indices(GEN v); 2361 GEN zk_inv(GEN nf, GEN x); 2362 GEN zk_multable(GEN nf, GEN x); 2363 GEN zk_scalar_or_multable(GEN, GEN x); 2364 GEN zkchinese(GEN zkc, GEN x, GEN y); 2365 GEN zkchinese1(GEN zkc, GEN x); 2366 GEN zkchineseinit(GEN nf, GEN A, GEN B, GEN AB); 2367 GEN zkmultable_capZ(GEN mx); 2368 GEN zkmultable_inv(GEN mx); 2369 2370 /* base4.c */ 2371 2372 ulong Fl_invgen(ulong x, ulong p, ulong *pg); 2373 GEN Z_cba(GEN a, GEN b); 2374 GEN Z_ppgle(GEN a, GEN b); 2375 GEN Z_ppio(GEN a, GEN b); 2376 GEN Z_ppo(GEN x, GEN f); 2377 GEN ZV_cba_extend(GEN P, GEN b); 2378 GEN ZV_cba(GEN v); 2379 GEN RM_round_maxrank(GEN G); 2380 GEN ZM_famat_limit(GEN fa, GEN limit); 2381 GEN famat_Z_gcd(GEN M, GEN n); 2382 GEN famat_div_shallow(GEN f, GEN g); 2383 GEN famat_div(GEN f, GEN g); 2384 GEN famat_idealfactor(GEN nf, GEN x); 2385 GEN famat_inv(GEN f); 2386 GEN famat_inv_shallow(GEN f); 2387 GEN famat_makecoprime(GEN nf, GEN g, GEN e, GEN pr, GEN prk, GEN EX); 2388 GEN famat_mul(GEN f, GEN g); 2389 GEN famat_mul_shallow(GEN f, GEN g); 2390 GEN famat_mulpow_shallow(GEN f, GEN g, GEN e); 2391 GEN famat_mulpows_shallow(GEN f, GEN g, long e); 2392 GEN famat_pow(GEN f, GEN n); 2393 GEN famat_pow_shallow(GEN f, GEN n); 2394 GEN famat_pows_shallow(GEN f, long n); 2395 GEN famat_sqr(GEN f); 2396 GEN famat_reduce(GEN fa); 2397 GEN famat_remove_trivial(GEN fa); 2398 GEN famat_to_nf(GEN nf, GEN f); 2399 GEN famat_to_nf_modideal_coprime(GEN nf, GEN g, GEN e, GEN id, GEN EX); 2400 GEN famat_to_nf_moddivisor(GEN nf, GEN g, GEN e, GEN bid); 2401 GEN famatV_factorback(GEN v, GEN e); 2402 GEN famatV_zv_factorback(GEN v, GEN e); 2403 GEN famatsmall_reduce(GEN fa); 2404 GEN gpidealval(GEN nf, GEN ix, GEN P); 2405 GEN gpidealfactor(GEN nf, GEN x, GEN lim); 2406 GEN idealHNF_Z_factor(GEN x, GEN *pvN, GEN *pvZ); 2407 GEN idealHNF_Z_factor_i(GEN x, GEN f, GEN *pvN, GEN *pvZ); 2408 GEN idealtwoelt(GEN nf, GEN ix); 2409 GEN idealtwoelt0(GEN nf, GEN ix, GEN a); 2410 GEN idealtwoelt2(GEN nf, GEN x, GEN a); 2411 GEN idealadd(GEN nf, GEN x, GEN y); 2412 GEN idealaddmultoone(GEN nf, GEN list); 2413 GEN idealaddtoone(GEN nf, GEN x, GEN y); 2414 GEN idealaddtoone_i(GEN nf, GEN x, GEN y); 2415 GEN idealaddtoone_raw(GEN nf, GEN x, GEN y); 2416 GEN idealaddtoone0(GEN nf, GEN x, GEN y); 2417 GEN idealappr(GEN nf, GEN x); 2418 GEN idealappr0(GEN nf, GEN x, long fl); 2419 GEN idealapprfact(GEN nf, GEN x); 2420 GEN idealchinese(GEN nf, GEN x, GEN y); 2421 GEN idealcoprime(GEN nf, GEN x, GEN y); 2422 GEN idealcoprimefact(GEN nf, GEN x, GEN fy); 2423 GEN idealdiv(GEN nf, GEN x, GEN y); 2424 GEN idealdiv0(GEN nf, GEN x, GEN y,long flag); 2425 GEN idealdivexact(GEN nf, GEN x, GEN y); 2426 GEN idealdivpowprime(GEN nf, GEN x, GEN vp, GEN n); 2427 GEN idealdown(GEN nf, GEN x); 2428 GEN idealismaximal(GEN nf, GEN x); 2429 GEN idealmulpowprime(GEN nf, GEN x, GEN vp, GEN n); 2430 GEN idealfactor(GEN nf, GEN x); 2431 GEN idealfactor_limit(GEN nf, GEN x, ulong lim); 2432 GEN idealfactor_partial(GEN nf, GEN x, GEN L); 2433 GEN idealhnf(GEN nf, GEN x); 2434 GEN idealhnf_principal(GEN nf, GEN x); 2435 GEN idealhnf_shallow(GEN nf, GEN x); 2436 GEN idealhnf_two(GEN nf, GEN vp); 2437 GEN idealhnf0(GEN nf, GEN a, GEN b); 2438 GEN idealintersect(GEN nf, GEN x, GEN y); 2439 GEN idealinv(GEN nf, GEN ix); 2440 GEN idealHNF_inv(GEN nf, GEN I); 2441 GEN idealHNF_inv_Z(GEN nf, GEN I); 2442 long idealispower(GEN nf, GEN A, long n, GEN *pB); 2443 GEN idealred0(GEN nf, GEN I,GEN vdir); 2444 GEN idealmul(GEN nf, GEN ix, GEN iy); 2445 GEN idealmul0(GEN nf, GEN ix, GEN iy, long flag); 2446 GEN idealHNF_mul(GEN nf, GEN ix, GEN iy); 2447 GEN idealmulred(GEN nf, GEN ix, GEN iy); 2448 GEN idealnorm(GEN nf, GEN x); 2449 GEN idealnumden(GEN nf, GEN x); 2450 GEN idealpow(GEN nf, GEN ix, GEN n); 2451 GEN idealpow0(GEN nf, GEN ix, GEN n, long flag); 2452 GEN idealpowred(GEN nf, GEN ix, GEN n); 2453 GEN idealpows(GEN nf, GEN ideal, long iexp); 2454 long idealprodval(GEN nf, GEN I, GEN pr); 2455 GEN idealprodprime(GEN nf, GEN L); 2456 GEN idealsqr(GEN nf, GEN x); 2457 long idealtyp(GEN *ideal, GEN *arch); 2458 long idealval(GEN nf,GEN ix,GEN vp); 2459 GEN idealprod(GEN nf, GEN I); 2460 long isideal(GEN nf,GEN x); 2461 GEN idealmin(GEN nf,GEN ix,GEN vdir); 2462 GEN matreduce(GEN fa); 2463 GEN nf_get_Gtwist(GEN nf, GEN vdir); 2464 GEN nf_get_Gtwist1(GEN nf, long i); 2465 GEN nf_to_Fp_coprime(GEN nf, GEN x, GEN modpr); 2466 GEN nfC_multable_mul(GEN v, GEN x); 2467 GEN nfC_nf_mul(GEN nf, GEN v, GEN x); 2468 GEN nfdetint(GEN nf,GEN pseudo); 2469 GEN nfdivmodpr(GEN nf, GEN x, GEN y, GEN modpr); 2470 GEN idealredmodpower(GEN nf, GEN x, ulong k, ulong B); 2471 GEN nfhnf(GEN nf, GEN x); 2472 GEN nfhnf0(GEN nf, GEN x, long flag); 2473 GEN nfhnfmod(GEN nf, GEN x, GEN d); 2474 GEN nfkermodpr(GEN nf, GEN x, GEN modpr); 2475 GEN nfmulmodpr(GEN nf, GEN x, GEN y, GEN modpr); 2476 GEN nfpowmodpr(GEN nf, GEN x, GEN k, GEN modpr); 2477 GEN nfreduce(GEN nf, GEN x, GEN ideal); 2478 GEN nfsnf(GEN nf, GEN x); 2479 GEN nfsnf0(GEN nf, GEN x, long flag); 2480 GEN nfsolvemodpr(GEN nf, GEN a, GEN b, GEN modpr); 2481 GEN pr_hnf(GEN nf, GEN pr); 2482 GEN pr_inv(GEN pr); 2483 GEN pr_inv_p(GEN pr); 2484 GEN pr_uniformizer(GEN pr, GEN F); 2485 GEN prV_lcm_capZ(GEN L); 2486 GEN sunits_makecoprime(GEN X, GEN pr, GEN prk); 2487 GEN to_famat(GEN x, GEN y); 2488 GEN to_famat_shallow(GEN x, GEN y); 2489 ulong u_ppo(ulong x, ulong f); 2490 GEN vecdiv(GEN x, GEN y); 2491 GEN vecinv(GEN x); 2492 GEN vecmul(GEN x, GEN y); 2493 GEN vecpow(GEN x, GEN n); 2494 GEN zkC_multable_mul(GEN v, GEN x); 2495 2496 /* base5.c */ 2497 2498 GEN eltreltoabs(GEN rnfeq, GEN x); 2499 GEN eltabstorel(GEN eq, GEN P); 2500 GEN eltabstorel_lift(GEN rnfeq, GEN P); 2501 GEN nf_nfzk(GEN nf, GEN rnfeq); 2502 GEN rnf_build_nfabs(GEN rnf, long prec); 2503 GEN rnf_zkabs(GEN rnf); 2504 GEN nfeltup(GEN nf, GEN x, GEN zknf); 2505 void rnfcomplete(GEN rnf); 2506 GEN rnfeltabstorel(GEN rnf, GEN x); 2507 GEN rnfeltdown(GEN rnf, GEN x); 2508 GEN rnfeltdown0(GEN rnf, GEN x, long flag); 2509 GEN rnfeltreltoabs(GEN rnf, GEN x); 2510 GEN rnfeltup(GEN rnf, GEN x); 2511 GEN rnfeltup0(GEN rnf, GEN x, long flag); 2512 GEN rnfidealabstorel(GEN rnf, GEN x); 2513 GEN rnfidealdown(GEN rnf, GEN x); 2514 GEN rnfidealfactor(GEN rnf, GEN x); 2515 GEN rnfidealhnf(GEN rnf, GEN x); 2516 GEN rnfidealmul(GEN rnf,GEN x,GEN y); 2517 GEN rnfidealnormabs(GEN rnf, GEN x); 2518 GEN rnfidealnormrel(GEN rnf, GEN x); 2519 GEN rnfidealprimedec(GEN rnf, GEN pr); 2520 GEN rnfidealreltoabs(GEN rnf, GEN x); 2521 GEN rnfidealreltoabs0(GEN rnf, GEN x, long flag); 2522 GEN rnfidealtwoelement(GEN rnf,GEN x); 2523 GEN rnfidealup(GEN rnf, GEN x); 2524 GEN rnfidealup0(GEN rnf,GEN x, long flag); 2525 GEN rnfinit(GEN nf,GEN pol); 2526 GEN rnfinit0(GEN nf,GEN pol,long flag); 2527 2528 /* bb_group.c */ 2529 2530 GEN get_arith_ZZM(GEN o); 2531 GEN get_arith_Z(GEN o); 2532 GEN gen_PH_log(GEN a, GEN g, GEN ord, void *E, const struct bb_group *grp); 2533 GEN gen_Shanks_init(GEN g, long n, void *E, const struct bb_group *grp); 2534 GEN gen_Shanks(GEN T, GEN x, ulong N, void *E, const struct bb_group *grp); 2535 GEN gen_Shanks_sqrtn(GEN a, GEN n, GEN q, GEN *zetan, void *E, const struct bb_group *grp); 2536 GEN gen_gener(GEN o, void *E, const struct bb_group *grp); 2537 GEN gen_ellgens(GEN d1, GEN d2, GEN m, void *E, const struct bb_group *grp, 2538 GEN pairorder(void *E, GEN P, GEN Q, GEN m, GEN F)); 2539 GEN gen_ellgroup(GEN N, GEN F, GEN *pt_m, void *E, const struct bb_group *grp, 2540 GEN pairorder(void *E, GEN P, GEN Q, GEN m, GEN F)); 2541 GEN gen_factored_order(GEN a, GEN o, void *E, const struct bb_group *grp); 2542 GEN gen_order(GEN x, GEN o, void *E, const struct bb_group *grp); 2543 GEN gen_select_order(GEN o, void *E, const struct bb_group *grp); 2544 2545 GEN gen_plog(GEN x,GEN g0,GEN q, void *E, const struct bb_group *grp); 2546 GEN gen_pow(GEN x, GEN n, void *E, GEN (*sqr)(void*,GEN), GEN (*mul)(void*,GEN,GEN)); 2547 GEN gen_pow_fold(GEN x, GEN n, void *E, GEN (*sqr)(void*,GEN), GEN (*msqr)(void*,GEN)); 2548 GEN gen_pow_fold_i(GEN x, GEN n, void *E, GEN (*sqr)(void*,GEN), GEN (*msqr)(void*,GEN)); 2549 GEN gen_pow_i(GEN x, GEN n, void *E, GEN (*sqr)(void*,GEN), GEN (*mul)(void*,GEN,GEN)); 2550 GEN gen_pow_init(GEN x, GEN n, long k, void *E, GEN (*sqr)(void*,GEN), GEN (*mul)(void*,GEN,GEN)); 2551 GEN gen_pow_table(GEN R, GEN n, void *E, GEN (*one)(void*), GEN (*mul)(void*,GEN,GEN)); 2552 GEN gen_powers(GEN x, long l, int use_sqr, void *E, GEN (*sqr)(void*,GEN), GEN (*mul)(void*,GEN,GEN), GEN (*one)(void*)); 2553 GEN gen_powu(GEN x, ulong n, void *E, GEN (*sqr)(void*,GEN), GEN (*mul)(void*,GEN,GEN)); 2554 GEN gen_powu_fold(GEN x, ulong n, void *E, GEN (*sqr)(void*,GEN), GEN (*msqr)(void*,GEN)); 2555 GEN gen_powu_fold_i(GEN x, ulong n, void *E, GEN (*sqr)(void*,GEN), GEN (*msqr)(void*,GEN)); 2556 GEN gen_powu_i(GEN x, ulong n, void *E, GEN (*sqr)(void*,GEN), GEN (*mul)(void*,GEN,GEN)); 2557 GEN gen_product(GEN x, void *data, GEN (*mul)(void*,GEN,GEN)); 2558 2559 /* bb_hnf.c */ 2560 2561 GEN matdetmod(GEN A, GEN d); 2562 GEN matimagemod(GEN A, GEN d, GEN* U); 2563 GEN matinvmod(GEN A, GEN d); 2564 GEN matkermod(GEN A, GEN d, GEN* im); 2565 GEN matsolvemod(GEN M, GEN D, GEN Y, long flag); 2566 2567 /* bern.c */ 2568 2569 GEN bernfrac(long n); 2570 GEN bernpol(long k, long v); 2571 GEN bernreal(long n, long prec); 2572 GEN bernvec(long nomb); 2573 void constbern(long n); 2574 GEN eulerpol(long k, long v); 2575 GEN eulervec(long n); 2576 2577 /* bibli1.c */ 2578 2579 int QR_init(GEN x, GEN *pB, GEN *pQ, GEN *pL, long prec); 2580 GEN R_from_QR(GEN x, long prec); 2581 GEN RgM_Babai(GEN B, GEN t); 2582 int RgM_QR_init(GEN x, GEN *pB, GEN *pQ, GEN *pL, long prec); 2583 GEN RgM_gram_schmidt(GEN e, GEN *ptB); 2584 GEN lindep_Xadic(GEN x); 2585 GEN algdep(GEN x, long n); 2586 GEN algdep0(GEN x, long n, long bit); 2587 void forqfvec(void *E, long (*fun)(void *, GEN, GEN, double), GEN a, GEN BORNE); 2588 void forqfvec1(void *E, long (*fun)(void *, GEN), GEN a, GEN BORNE); 2589 void forqfvec0(GEN a, GEN BORNE, GEN code); 2590 GEN bestapprnf(GEN x, GEN T, GEN rootsT, long prec); 2591 GEN gaussred_from_QR(GEN x, long prec); 2592 GEN lindep0(GEN x, long flag); 2593 GEN lindep(GEN x); 2594 GEN lindep_bit(GEN x, long bit); 2595 GEN lindepfull_bit(GEN x, long bit); 2596 GEN lindep2(GEN x, long bit); 2597 GEN mathouseholder(GEN Q, GEN v); 2598 GEN matqr(GEN x, long flag, long prec); 2599 GEN minim(GEN a, GEN borne, GEN stockmax); 2600 GEN minim_raw(GEN a, GEN borne, GEN stockmax); 2601 GEN minim_zm(GEN a, GEN borne, GEN stockmax); 2602 GEN minim2(GEN a, GEN borne, GEN stockmax); 2603 GEN lindep_padic(GEN x); 2604 GEN qfperfection(GEN a); 2605 GEN qfrep0(GEN a, GEN borne, long flag); 2606 GEN qfminim0(GEN a, GEN borne, GEN stockmax,long flag, long prec); 2607 GEN seralgdep(GEN s, long p, long r); 2608 GEN zncoppersmith(GEN P0, GEN N, GEN X, GEN B) ; 2609 2610 /* bibli2.c */ 2611 2612 GEN QXQ_reverse(GEN a, GEN T); 2613 GEN vec_equiv(GEN F); 2614 GEN RgV_polint(GEN X, GEN Y, long v); 2615 GEN vec_reduce(GEN v, GEN *pE); 2616 GEN RgXQ_reverse(GEN a, GEN T); 2617 GEN ZC_union_shallow(GEN x, GEN y); 2618 GEN ZV_indexsort(GEN L); 2619 long ZV_search(GEN x, GEN y); 2620 GEN ZV_sort(GEN L); 2621 void ZV_sort_inplace(GEN L); 2622 GEN ZV_sort_uniq(GEN L); 2623 GEN ZV_union_shallow(GEN x, GEN y); 2624 GEN binomial(GEN x, long k); 2625 GEN binomial0(GEN x, GEN k); 2626 GEN binomialuu(ulong n, ulong k); 2627 int cmp_Flx(GEN x, GEN y); 2628 int cmp_RgX(GEN x, GEN y); 2629 int cmp_nodata(void *data, GEN x, GEN y); 2630 int cmp_prime_ideal(GEN x, GEN y); 2631 int cmp_prime_over_p(GEN x, GEN y); 2632 int cmp_universal(GEN x, GEN y); 2633 GEN convol(GEN x, GEN y); 2634 int gen_cmp_RgX(void *data, GEN x, GEN y); 2635 GEN polcyclo(long n, long v); 2636 GEN polcyclo_eval(long n, GEN x); 2637 GEN dirdiv(GEN x, GEN y); 2638 GEN dirmul(GEN x, GEN y); 2639 GEN eulerianpol(long N, long v); 2640 GEN gprec_wensure(GEN x, long pr); 2641 GEN gen_indexsort(GEN x, void *E, int (*cmp)(void*,GEN,GEN)); 2642 GEN gen_indexsort_uniq(GEN x, void *E, int (*cmp)(void*,GEN,GEN)); 2643 long gen_search(GEN x, GEN y, long flag, void *data, int (*cmp)(void*,GEN,GEN)); 2644 GEN gen_setminus(GEN set1, GEN set2, int (*cmp)(GEN,GEN)); 2645 GEN gen_sort(GEN x, void *E, int (*cmp)(void*,GEN,GEN)); 2646 void gen_sort_inplace(GEN x, void *E, int (*cmp)(void*,GEN,GEN), GEN *perm); 2647 GEN gen_sort_shallow(GEN x, void *E, int (*cmp)(void*,GEN,GEN)); 2648 GEN gen_sort_uniq(GEN x, void *E, int (*cmp)(void*,GEN,GEN)); 2649 long getstack(void); 2650 long gettime(void); 2651 long getabstime(void); 2652 GEN getwalltime(void); 2653 GEN gprec(GEN x, long l); 2654 GEN gprec_wtrunc(GEN x, long pr); 2655 GEN gprec_w(GEN x, long pr); 2656 GEN gtoset(GEN x); 2657 GEN indexlexsort(GEN x); 2658 GEN indexsort(GEN x); 2659 GEN indexvecsort(GEN x, GEN k); 2660 GEN laplace(GEN x); 2661 GEN lexsort(GEN x); 2662 GEN mathilbert(long n); 2663 GEN matqpascal(long n, GEN q); 2664 GEN merge_factor(GEN fx, GEN fy, void *data, int (*cmp)(void *,GEN,GEN)); 2665 GEN merge_sort_uniq(GEN x, GEN y, void *data, int (*cmp)(void *,GEN,GEN)); 2666 GEN modreverse(GEN x); 2667 GEN polhermite(long n, long v); 2668 GEN polhermite_eval0(long n, GEN x, long flag); 2669 GEN polhermite_eval(long n, GEN x); 2670 GEN pollaguerre(long n, GEN a, long v); 2671 GEN pollaguerre_eval(long n, GEN a, GEN x); 2672 GEN pollaguerre_eval0(long n, GEN a, GEN x, long flag); 2673 GEN pollegendre(long n, long v); 2674 GEN pollegendre_reduced(long n, long v); 2675 GEN pollegendre_eval(long n, GEN x); 2676 GEN pollegendre_eval0(long n, GEN x, long flag); 2677 GEN polint(GEN xa, GEN ya, GEN x, GEN *pe); 2678 GEN polint_i(GEN X, GEN Y, GEN t, long *pe); 2679 GEN polintspec(GEN xa, GEN ya, GEN x, long n, long *pe); 2680 GEN polchebyshev(long n, long kind, long v); 2681 GEN polchebyshev_eval(long n, long kind, GEN x); 2682 GEN polchebyshev1(long n, long v); 2683 GEN polchebyshev2(long n, long v); 2684 GEN polrecip(GEN x); 2685 GEN setbinop(GEN f, GEN x, GEN y); 2686 GEN setintersect(GEN x, GEN y); 2687 long setisset(GEN x); 2688 GEN setminus(GEN x, GEN y); 2689 long setsearch(GEN x, GEN y, long flag); 2690 GEN setunion(GEN x, GEN y); 2691 GEN setunion_i(GEN x, GEN y); 2692 GEN sort(GEN x); 2693 GEN sort_factor(GEN y, void *data, int (*cmp)(void*,GEN,GEN)); 2694 GEN stirling(long n, long m, long flag); 2695 GEN stirling1(ulong n, ulong m); 2696 GEN stirling2(ulong n, ulong m); 2697 long tablesearch(GEN T, GEN x, int (*cmp)(GEN,GEN)); 2698 GEN vecbinomial(long n); 2699 long vecsearch(GEN v, GEN x, GEN k); 2700 GEN vecsort(GEN x, GEN k); 2701 GEN vecsort0(GEN x, GEN k, long flag); 2702 long zv_search(GEN x, long y); 2703 2704 /* bit.c */ 2705 2706 GEN bits_to_int(GEN x, long l); 2707 ulong bits_to_u(GEN v, long l); 2708 GEN binaire(GEN x); 2709 GEN binary_2k(GEN x, long k); 2710 GEN binary_2k_nv(GEN x, long k); 2711 GEN binary_zv(GEN x); 2712 long bittest(GEN x, long n); 2713 GEN fromdigits_2k(GEN x, long k); 2714 GEN gbitand(GEN x, GEN y); 2715 GEN gbitneg(GEN x, long n); 2716 GEN gbitnegimply(GEN x, GEN y); 2717 GEN gbitor(GEN x, GEN y); 2718 GEN gbittest(GEN x, long n); 2719 GEN gbitxor(GEN x, GEN y); 2720 long hammingl(ulong w); 2721 long hammingweight(GEN n); 2722 GEN ibitand(GEN x, GEN y); 2723 GEN ibitnegimply(GEN x, GEN y); 2724 GEN ibitor(GEN x, GEN y); 2725 GEN ibitxor(GEN x, GEN y); 2726 GEN nv_fromdigits_2k(GEN x, long k); 2727 2728 /* bnflog.c */ 2729 GEN bnflogef(GEN bnf, GEN pr); 2730 GEN bnflog(GEN bnf, GEN l); 2731 GEN bnflogdegree(GEN bnf, GEN A, GEN ell); 2732 long nfislocalpower(GEN nf, GEN pr, GEN a, GEN n); 2733 long rnfislocalcyclo(GEN rnf); 2734 2735 /* bnfunits.c */ 2736 GEN bnfisunit(GEN bnf, GEN x); 2737 GEN bnfissunit(GEN bnf,GEN suni,GEN x); 2738 GEN bnfsunit(GEN bnf,GEN s,long PREC); 2739 GEN bnfunits(GEN bnf, GEN S); 2740 GEN bnfisunit0(GEN bnf, GEN x, GEN U); 2741 GEN sunits_mod_units(GEN bnf, GEN S); 2742 2743 /* buch1.c */ 2744 2745 GEN Buchquad(GEN D, double c1, double c2, long prec); 2746 GEN quadclassunit0(GEN x, long flag,GEN data, long prec); 2747 GEN quadhilbert(GEN D, long prec); 2748 GEN quadray(GEN bnf, GEN f, long prec); 2749 2750 /* buch2.c */ 2751 2752 GEN Buchall(GEN P, long flag, long prec); 2753 GEN Buchall_param(GEN P, double bach, double bach2, long nbrelpid, long flun, long prec); 2754 GEN bnf_build_cheapfu(GEN bnf); 2755 GEN bnf_build_cycgen(GEN bnf); 2756 GEN bnf_build_matalpha(GEN bnf); 2757 GEN bnf_build_units(GEN bnf); 2758 GEN bnf_compactfu(GEN bnf); 2759 GEN bnf_compactfu_mat(GEN bnf); 2760 GEN bnf_has_fu(GEN bnf); 2761 GEN bnfinit0(GEN P,long flag,GEN data,long prec); 2762 GEN bnfisprincipal0(GEN bnf, GEN x,long flall); 2763 GEN bnfnewprec(GEN nf, long prec); 2764 GEN bnfnewprec_shallow(GEN nf, long prec); 2765 void bnftestprimes(GEN bnf, GEN bound); 2766 GEN bnrnewprec(GEN bnr, long prec); 2767 GEN bnrnewprec_shallow(GEN bnr, long prec); 2768 GEN isprincipalfact(GEN bnf, GEN C, GEN L, GEN f, long flag); 2769 GEN isprincipalfact_or_fail(GEN bnf, GEN C, GEN P, GEN e); 2770 GEN isprincipal(GEN bnf, GEN x); 2771 GEN nf_cxlog_normalize(GEN nf, GEN x, long prec); 2772 GEN nfcyclotomicunits(GEN nf, GEN zu); 2773 GEN nfsign_units(GEN bnf, GEN archp, int add_zu); 2774 GEN nfsign_tu(GEN bnf, GEN archp); 2775 GEN nfsign_fu(GEN bnf, GEN archp); 2776 GEN signunits(GEN bnf); 2777 2778 /* buch3.c */ 2779 2780 void bnr_subgroup_sanitize(GEN *pbnr, GEN *pH); 2781 void bnr_char_sanitize(GEN *pbnr, GEN *pchi); 2782 GEN ABC_to_bnr(GEN A, GEN B, GEN C, GEN *H, int gen); 2783 GEN Buchray(GEN bnf, GEN module, long flag); 2784 GEN Buchraymod(GEN bnf, GEN f, long flag, GEN MOD); 2785 GEN bnrautmatrix(GEN bnr, GEN aut); 2786 GEN bnr_subgroup_check(GEN bnr, GEN H, GEN *pdeg); 2787 GEN bnrchar(GEN bnr, GEN g, GEN v); 2788 GEN bnrchar_primitive(GEN bnr, GEN chi, GEN bnrc); 2789 GEN bnrclassno(GEN bnf,GEN ideal); 2790 GEN bnrclassno0(GEN A,GEN B,GEN C); 2791 GEN bnrclassnolist(GEN bnf,GEN listes); 2792 GEN bnrchar_primitive_raw(GEN bnr, GEN bnrc, GEN chi); 2793 GEN bnrconductor_factored(GEN bnr, GEN H); 2794 GEN bnrconductor_raw(GEN bnr, GEN H); 2795 GEN bnrconductormod(GEN bnr, GEN H0, GEN MOD); 2796 GEN bnrconductor0(GEN A, GEN B, GEN C, long flag); 2797 GEN bnrconductor(GEN bnr, GEN H0, long flag); 2798 GEN bnrconductor_i(GEN bnr, GEN H0, long flag); 2799 GEN bnrconductorofchar(GEN bnr,GEN chi); 2800 GEN bnrdisc0(GEN A, GEN B, GEN C, long flag); 2801 GEN bnrdisc(GEN bnr, GEN H, long flag); 2802 GEN bnrdisclist0(GEN bnf,GEN borne, GEN arch); 2803 GEN bnrgaloismatrix(GEN bnr, GEN aut); 2804 GEN bnrgaloisapply(GEN bnr, GEN mat, GEN x); 2805 GEN bnrinit0(GEN bnf,GEN ideal,long flag); 2806 GEN bnrinitmod(GEN bnf, GEN ideal, long flag, GEN MOD); 2807 long bnrisconductor0(GEN A, GEN B, GEN C); 2808 long bnrisconductor(GEN bnr, GEN H); 2809 long bnrisgalois(GEN bnr, GEN M, GEN H); 2810 GEN bnrisprincipalmod(GEN bnf, GEN x, GEN mod, long flag); 2811 GEN bnrisprincipal(GEN bnf, GEN x,long flag); 2812 GEN bnrmap(GEN A, GEN B); 2813 GEN bnrsurjection(GEN bnr1, GEN bnr2); 2814 GEN bnfnarrow(GEN bnf); 2815 long bnfcertify(GEN bnf); 2816 long bnfcertify0(GEN bnf, long flag); 2817 GEN decodemodule(GEN nf, GEN fa); 2818 GEN discrayabslist(GEN bnf,GEN listes); 2819 GEN discrayabslistarch(GEN bnf, GEN arch, ulong bound); 2820 GEN idealmoddivisor(GEN bnr, GEN x); 2821 GEN isprincipalray(GEN bnf, GEN x); 2822 GEN isprincipalraygen(GEN bnf, GEN x); 2823 GEN nf_deg1_prime(GEN nf); 2824 GEN nfarchstar(GEN nf,GEN x,GEN arch); 2825 GEN rnfconductor(GEN bnf, GEN polrel); 2826 GEN rnfconductor0(GEN bnf, GEN T, long flag); 2827 long rnfisabelian(GEN nf, GEN pol); 2828 GEN rnfnormgroup(GEN bnr, GEN polrel); 2829 GEN subgrouplist0(GEN bnr, GEN indexbound, long all); 2830 2831 /* buch4.c */ 2832 2833 GEN bnfisnorm(GEN bnf,GEN x,long flag); 2834 GEN rnfisnorm(GEN S, GEN x, long flag); 2835 GEN rnfisnorminit(GEN bnf, GEN R, int galois); 2836 long nfhilbert(GEN bnf,GEN a,GEN b); 2837 long nfhilbert0(GEN bnf,GEN a,GEN b,GEN p); 2838 long hyperell_locally_soluble(GEN pol,GEN p); 2839 long nf_hyperell_locally_soluble(GEN nf,GEN pol,GEN p); 2840 2841 /* char.c */ 2842 2843 GEN coprimes_zv(ulong N); 2844 int char_check(GEN cyc, GEN chi); 2845 GEN charconj(GEN cyc, GEN chi); 2846 GEN charconj0(GEN cyc, GEN chi); 2847 GEN chardiv(GEN x, GEN a, GEN b); 2848 GEN chardiv0(GEN x, GEN a, GEN b); 2849 GEN chareval(GEN G, GEN chi, GEN n, GEN z); 2850 GEN chargalois(GEN G, GEN ORD); 2851 GEN charker(GEN cyc, GEN chi); 2852 GEN charker0(GEN cyc, GEN chi); 2853 GEN charmul(GEN x, GEN a, GEN b); 2854 GEN charmul0(GEN x, GEN a, GEN b); 2855 GEN charorder(GEN cyc, GEN x); 2856 GEN charorder0(GEN x, GEN chi); 2857 GEN charpow(GEN cyc, GEN a, GEN N); 2858 GEN charpow0(GEN x, GEN a, GEN N); 2859 GEN char_denormalize(GEN cyc, GEN D, GEN chic); 2860 GEN char_normalize(GEN chi, GEN ncyc); 2861 GEN char_simplify(GEN D, GEN C); 2862 int checkznstar_i(GEN G); 2863 GEN cyc_normalize(GEN c); 2864 GEN ncharvecexpo(GEN G, GEN nchi); 2865 GEN znchar(GEN D); 2866 GEN znchar_quad(GEN G, GEN D); 2867 int zncharcheck(GEN G, GEN chi); 2868 GEN zncharconductor(GEN G, GEN chi); 2869 GEN zncharconj(GEN G, GEN chi); 2870 GEN znchardecompose(GEN G, GEN chi, GEN Q); 2871 GEN znchardiv(GEN G, GEN a, GEN b); 2872 GEN znchareval(GEN G, GEN chi, GEN n, GEN z); 2873 GEN zncharinduce(GEN G, GEN chi, GEN N); 2874 long zncharisodd(GEN G, GEN chi); 2875 GEN zncharker(GEN G, GEN chi); 2876 GEN zncharmul(GEN G, GEN a, GEN b); 2877 GEN zncharorder(GEN G, GEN chi); 2878 GEN zncharpow(GEN G, GEN a, GEN n); 2879 GEN znchartokronecker(GEN G, GEN chi, long flag); 2880 GEN znchartoprimitive(GEN G, GEN chi); 2881 int znconrey_check(GEN cyc, GEN chi); 2882 GEN znconrey_normalized(GEN G, GEN chi); 2883 GEN znconreychar(GEN bid, GEN m); 2884 GEN znconreyfromchar_normalized(GEN bid, GEN chi); 2885 GEN znconreyconductor(GEN bid, GEN co, GEN *pm); 2886 GEN znconreyexp(GEN bid, GEN x); 2887 GEN znconreyfromchar(GEN bid, GEN chi); 2888 GEN znconreylog(GEN bid, GEN x); 2889 GEN znconreylog_normalize(GEN G, GEN m); 2890 GEN znlog0(GEN h, GEN g, GEN o); 2891 long zv_cyc_minimal(GEN cyc, GEN g, GEN coprime); 2892 long zv_cyc_minimize(GEN cyc, GEN g, GEN coprime); 2893 2894 /* compile.c */ 2895 2896 GEN closure_deriv(GEN G); 2897 GEN closure_derivn(GEN G, long k); 2898 long localvars_find(GEN pack, entree *ep); 2899 GEN localvars_read_str(const char *str, GEN pack); 2900 GEN snm_closure(entree *ep, GEN data); 2901 GEN strtoclosure(const char *s, long n, ...); 2902 GEN strtofunction(const char *s); 2903 2904 /* concat.c */ 2905 2906 GEN gconcat(GEN x, GEN y); 2907 GEN gconcat1(GEN x); 2908 GEN matconcat(GEN v); 2909 GEN shallowconcat(GEN x, GEN y); 2910 GEN shallowconcat1(GEN x); 2911 GEN shallowmatconcat(GEN v); 2912 GEN vconcat(GEN A, GEN B); 2913 2914 /* default.c */ 2915 enum { d_SILENT = 0, d_ACKNOWLEDGE, d_INITRC, d_RETURN }; 2916 2917 GEN default0(const char *a, const char *b); 2918 long getrealprecision(void); 2919 entree *pari_is_default(const char *s); 2920 GEN sd_TeXstyle(const char *v, long flag); 2921 GEN sd_colors(const char *v, long flag); 2922 GEN sd_compatible(const char *v, long flag); 2923 GEN sd_datadir(const char *v, long flag); 2924 GEN sd_debug(const char *v, long flag); 2925 GEN sd_debugfiles(const char *v, long flag); 2926 GEN sd_debugmem(const char *v, long flag); 2927 GEN sd_factor_add_primes(const char *v, long flag); 2928 GEN sd_factor_proven(const char *v, long flag); 2929 GEN sd_format(const char *v, long flag); 2930 GEN sd_histsize(const char *v, long flag); 2931 GEN sd_log(const char *v, long flag); 2932 GEN sd_logfile(const char *v, long flag); 2933 GEN sd_nbthreads(const char *v, long flag); 2934 GEN sd_new_galois_format(const char *v, long flag); 2935 GEN sd_output(const char *v, long flag); 2936 GEN sd_parisize(const char *v, long flag); 2937 GEN sd_parisizemax(const char *v, long flag); 2938 GEN sd_path(const char *v, long flag); 2939 GEN sd_plothsizes(const char *v, long flag); 2940 GEN sd_prettyprinter(const char *v, long flag); 2941 GEN sd_primelimit(const char *v, long flag); 2942 GEN sd_realbitprecision(const char *v, long flag); 2943 GEN sd_realprecision(const char *v, long flag); 2944 GEN sd_secure(const char *v, long flag); 2945 GEN sd_seriesprecision(const char *v, long flag); 2946 GEN sd_simplify(const char *v, long flag); 2947 GEN sd_sopath(char *v, int flag); 2948 GEN sd_strictargs(const char *v, long flag); 2949 GEN sd_strictmatch(const char *v, long flag); 2950 GEN sd_string(const char *v, long flag, const char *s, char **f); 2951 GEN sd_threadsize(const char *v, long flag); 2952 GEN sd_threadsizemax(const char *v, long flag); 2953 GEN sd_intarray(const char *v, long flag, GEN *pz, const char *s); 2954 GEN sd_toggle(const char *v, long flag, const char *s, int *ptn); 2955 GEN sd_ulong(const char *v, long flag, const char *s, ulong *ptn, ulong Min, ulong Max, const char **msg); 2956 GEN setdefault(const char *s, const char *v, long flag); 2957 long setrealprecision(long n, long *prec); 2958 2959 /* ecpp.c */ 2960 GEN ecpp(GEN N); 2961 GEN ecppexport(GEN cert, long flag); 2962 long ecppisvalid(GEN cert); 2963 long isprimeECPP(GEN N); 2964 2965 /* gplib.c */ 2966 GEN sd_breakloop(const char *v, long flag); 2967 GEN sd_echo(const char *v, long flag); 2968 GEN sd_graphcolormap(const char *v, long flag); 2969 GEN sd_graphcolors(const char *v, long flag); 2970 GEN sd_help(const char *v, long flag); 2971 GEN sd_histfile(const char *v, long flag); 2972 GEN sd_lines(const char *v, long flag); 2973 GEN sd_linewrap(const char *v, long flag); 2974 GEN sd_prompt(const char *v, long flag); 2975 GEN sd_prompt_cont(const char *v, long flag); 2976 GEN sd_psfile(const char *v, long flag); 2977 GEN sd_readline(const char *v, long flag); 2978 GEN sd_recover(const char *v, long flag); 2979 GEN sd_timer(const char *v, long flag); 2980 void pari_hit_return(void); 2981 void gp_load_gprc(void); 2982 int gp_meta(const char *buf, int ismain); 2983 const char **gphelp_keyword_list(void); 2984 void pari_center(const char *s); 2985 long pari_community(void); 2986 void pari_print_version(void); 2987 const char *gp_format_time(long delay); 2988 const char *gp_format_prompt(const char *p); 2989 void pari_alarm(long s); 2990 GEN gp_alarm(long s, GEN code); 2991 GEN gp_input(void); 2992 void gp_allocatemem(GEN z); 2993 int gp_handle_exception(long numerr); 2994 void gp_alarm_handler(int sig); 2995 void gp_sigint_fun(void); 2996 enum { h_REGULAR=0, h_LONG=1, h_APROPOS=2, h_RL=4 }; 2997 void gp_help(const char *s, long flag); 2998 void gp_echo_and_log(const char *prompt, const char *s); 2999 void print_fun_list(char **list, long nbli); 3000 GEN strtime(long t); 3001 3002 /* dirichlet.c */ 3003 3004 GEN direuler(void *E, GEN (*eval)(void *, GEN), GEN a, GEN b, GEN c); 3005 GEN dirpowers(long n, GEN x, long prec); 3006 GEN dirpowerssum0(GEN N, GEN s, long prec); 3007 GEN dirpowerssum(ulong N, GEN s, long prec); 3008 GEN vecpowuu(long N, ulong B); 3009 GEN vecpowug(long N, GEN B, long prec); 3010 3011 /* ellanal.c */ 3012 3013 GEN ellanalyticrank(GEN e, GEN eps, long prec); 3014 GEN ellanalyticrank_bitprec(GEN e, GEN eps, long bitprec); 3015 GEN ellanal_globalred_all(GEN e, GEN *N, GEN *cb, GEN *tam); 3016 GEN ellheegner(GEN e); 3017 GEN ellL1(GEN E, long r, long prec); 3018 GEN ellL1_bitprec(GEN E, long r, long bitprec); 3019 3020 /* elldata.c */ 3021 3022 GEN ellconvertname(GEN s); 3023 GEN elldatagenerators(GEN E); 3024 GEN ellidentify(GEN E); 3025 GEN ellsearch(GEN A); 3026 GEN ellsearchcurve(GEN name); 3027 void forell(void *E, long call(void*, GEN), long a, long b, long flag); 3028 3029 /* ellfromeqn.c */ 3030 3031 GEN ellfromeqn(GEN s); 3032 3033 /* elliptic.c */ 3034 enum { t_ELL_Rg = 0, t_ELL_Q, t_ELL_Qp, t_ELL_Fp, t_ELL_Fq, t_ELL_NF }; 3035 long ellQ_get_CM(GEN e); 3036 int ell_is_integral(GEN E); 3037 GEN ellbasechar(GEN E); 3038 GEN akell(GEN e, GEN n); 3039 GEN ellan(GEN e, long n); 3040 GEN ellanQ_zv(GEN e, long n); 3041 GEN bilhell(GEN e, GEN z1, GEN z2, long prec); 3042 void checkell(GEN e); 3043 void checkell_Fq(GEN e); 3044 void checkell_Q(GEN e); 3045 void checkell_Qp(GEN e); 3046 void checkellisog(GEN v); 3047 void checkellpt(GEN z); 3048 void checkell5(GEN e); 3049 GEN cxredsl2(GEN t, GEN *U); 3050 GEN cxredsl2_i(GEN z, GEN *pU, GEN *czd); 3051 GEN ec_bmodel(GEN e); 3052 GEN ec_f_evalx(GEN E, GEN x); 3053 GEN ec_h_evalx(GEN e, GEN x); 3054 GEN ec_dFdx_evalQ(GEN E, GEN Q); 3055 GEN ec_dFdy_evalQ(GEN E, GEN Q); 3056 GEN ec_dmFdy_evalQ(GEN e, GEN Q); 3057 GEN ec_2divpol_evalx(GEN E, GEN x); 3058 GEN ec_3divpol_evalx(GEN E, GEN x); 3059 GEN ec_half_deriv_2divpol_evalx(GEN E, GEN x); 3060 GEN ellanal_globalred(GEN e, GEN *gr); 3061 GEN ellQ_get_N(GEN e); 3062 void ellQ_get_Nfa(GEN e, GEN *N, GEN *faN); 3063 GEN ellQp_Tate_uniformization(GEN E, long prec); 3064 GEN ellQp_AGM(GEN E, long prec); 3065 GEN ellQp_u(GEN E, long prec); 3066 GEN ellQp_u2(GEN E, long prec); 3067 GEN ellQp_q(GEN E, long prec); 3068 GEN ellQp_ab(GEN E, long prec); 3069 GEN ellQp_L(GEN E, long prec); 3070 GEN ellQp_root(GEN E, long prec); 3071 GEN ellQtwist_bsdperiod(GEN E, long s); 3072 GEN ellR_area(GEN E, long prec); 3073 GEN ellR_ab(GEN E, long prec); 3074 GEN ellR_eta(GEN E, long prec); 3075 GEN ellR_omega(GEN x, long prec); 3076 GEN ellR_roots(GEN E, long prec); 3077 GEN elladd(GEN e, GEN z1, GEN z2); 3078 GEN ellap(GEN e, GEN p); 3079 long ellap_CM_fast(GEN E, ulong p, long CM); 3080 GEN ellbsd(GEN e, long prec); 3081 GEN ellcard(GEN E, GEN p); 3082 GEN ellchangecurve(GEN e, GEN ch); 3083 GEN ellchangeinvert(GEN w); 3084 GEN ellchangepoint(GEN x, GEN ch); 3085 GEN ellchangepointinv(GEN x, GEN ch); 3086 GEN elldivpol(GEN e, long n, long v); 3087 GEN elleisnum(GEN om, long k, long flag, long prec); 3088 GEN elleta(GEN om, long prec); 3089 GEN ellff_get_card(GEN E); 3090 GEN ellff_get_gens(GEN E); 3091 GEN ellff_get_group(GEN E); 3092 GEN ellff_get_o(GEN x); 3093 GEN ellff_get_p(GEN E); 3094 GEN ellff_get_m(GEN E); 3095 GEN ellff_get_D(GEN E); 3096 GEN ellfromj(GEN j); 3097 GEN ellgenerators(GEN E); 3098 GEN ellglobalred(GEN e1); 3099 GEN ellgroup(GEN E, GEN p); 3100 GEN ellgroup0(GEN E, GEN p, long flag); 3101 GEN ellheight0(GEN e, GEN a, GEN b, long prec); 3102 GEN ellheight(GEN e, GEN a, long prec); 3103 GEN ellheightmatrix(GEN E, GEN x, long n); 3104 GEN ellheightoo(GEN e, GEN z, long prec); 3105 GEN ellinit(GEN x, GEN p, long prec); 3106 GEN ellintegralmodel(GEN e, GEN *pv); 3107 GEN ellintegralmodel_i(GEN e, GEN *pv); 3108 GEN ellisoncurve(GEN e, GEN z); 3109 GEN ellisotree(GEN e); 3110 int ellissupersingular(GEN x, GEN p); 3111 int elljissupersingular(GEN x); 3112 GEN elllseries(GEN e, GEN s, GEN A, long prec); 3113 GEN elllocalred(GEN e, GEN p1); 3114 GEN elllog(GEN e, GEN a, GEN g, GEN o); 3115 GEN ellminimaldisc(GEN E); 3116 GEN ellminimalmodel(GEN E, GEN *ptv); 3117 GEN ellminimaltwist(GEN e); 3118 GEN ellminimaltwist0(GEN e, long fl); 3119 GEN ellminimaltwistcond(GEN e); 3120 GEN ellmul(GEN e, GEN z, GEN n); 3121 GEN ellnf_vecarea(GEN E, long prec); 3122 GEN ellnf_veceta(GEN E, long prec); 3123 GEN ellnf_vecomega(GEN E, long prec); 3124 GEN ellneg(GEN e, GEN z); 3125 GEN ellorder(GEN e, GEN p, GEN o); 3126 long ellorder_Q(GEN E, GEN P); 3127 GEN ellordinate(GEN e, GEN x, long prec); 3128 GEN ellpadicheight0(GEN e, GEN p, long n, GEN P, GEN Q); 3129 GEN ellpadicheightmatrix(GEN e, GEN p, long n, GEN P); 3130 GEN ellperiods(GEN w, long flag, long prec); 3131 GEN elltwist(GEN E, GEN D); 3132 GEN ellrandom(GEN e); 3133 long ellrootno(GEN e, GEN p); 3134 long ellrootno_global(GEN e); 3135 GEN ellsea(GEN E, long smallfact); 3136 GEN ellsigma(GEN om, GEN z, long flag, long prec); 3137 GEN ellsub(GEN e, GEN z1, GEN z2); 3138 GEN elltamagawa(GEN e); 3139 GEN elltaniyama(GEN e, long prec); 3140 GEN elltatepairing(GEN E, GEN t, GEN s, GEN m); 3141 GEN elltors(GEN e); 3142 GEN elltors0(GEN e, long flag); 3143 GEN ellweilpairing(GEN E, GEN t, GEN s, GEN m); 3144 GEN ellwp(GEN w, GEN z, long prec); 3145 GEN ellwp0(GEN w, GEN z, long flag, long prec); 3146 GEN ellwpseries(GEN e, long v, long PRECDL); 3147 GEN ellxn(GEN e, long n, long v); 3148 GEN ellzeta(GEN om, GEN z, long prec); 3149 int oncurve(GEN e, GEN z); 3150 GEN orderell(GEN e, GEN p); 3151 GEN pointell(GEN e, GEN z, long prec); 3152 GEN point_to_a4a6(GEN E, GEN P, GEN p, GEN *pa4); 3153 GEN point_to_a4a6_Fl(GEN E, GEN P, ulong p, ulong *pa4); 3154 GEN zell(GEN e, GEN z, long prec); 3155 3156 /* ellpadic.c */ 3157 GEN Qp_agm2_sequence(GEN a1, GEN b1); 3158 void Qp_ascending_Landen(GEN AB, GEN *ptx, GEN *pty); 3159 void Qp_descending_Landen(GEN AB, GEN *ptx, GEN *pty); 3160 GEN ellformaldifferential(GEN e, long n, long v); 3161 GEN ellformalexp(GEN e, long n, long v); 3162 GEN ellformallog(GEN e, long n, long v); 3163 GEN ellformalpoint(GEN e, long n, long v); 3164 GEN ellformalw(GEN e, long n, long v); 3165 GEN ellnonsingularmultiple(GEN e, GEN P); 3166 GEN ellpadicL(GEN E, GEN p, long n, GEN s, long r, GEN D); 3167 GEN ellpadicbsd(GEN E, GEN p, long n, GEN D); 3168 GEN ellpadicfrobenius(GEN E, ulong p, long n); 3169 GEN ellpadicheight(GEN e, GEN p, long n, GEN P); 3170 GEN ellpadiclog(GEN E, GEN p, long n, GEN P); 3171 GEN ellpadicregulator(GEN E, GEN p, long n, GEN S); 3172 GEN ellpadics2(GEN E, GEN p, long n); 3173 3174 /* elltors.c */ 3175 long ellisdivisible(GEN E, GEN P, GEN n, GEN *Q); 3176 3177 /* ellisog.c */ 3178 3179 GEN ellisogenyapply(GEN f, GEN P); 3180 GEN ellisogeny(GEN e, GEN G, long only_image, long vx, long vy); 3181 GEN ellisomat(GEN E, long p, long flag); 3182 GEN ellweilcurve(GEN E, GEN *pm); 3183 3184 /* ellsea.c */ 3185 3186 GEN Fp_ellcard_SEA(GEN a4, GEN a6, GEN p, long smallfact); 3187 GEN Fq_ellcard_SEA(GEN a4, GEN a6, GEN q, GEN T, GEN p, long smallfact); 3188 GEN ellmodulareqn(long l, long vx, long vy); 3189 3190 /* es.c */ 3191 3192 GEN externstr(const char *cmd); 3193 char *gp_filter(const char *s); 3194 GEN gpextern(const char *cmd); 3195 void gpsystem(const char *s); 3196 GEN readstr(const char *s); 3197 GEN GENtoGENstr_nospace(GEN x); 3198 GEN GENtoGENstr(GEN x); 3199 char* GENtoTeXstr(GEN x); 3200 char* GENtostr(GEN x); 3201 char* GENtostr_raw(GEN x); 3202 char* GENtostr_unquoted(GEN x); 3203 GEN Str(GEN g); 3204 GEN strexpand(GEN g); 3205 GEN strtex(GEN g); 3206 void brute(GEN g, char format, long dec); 3207 void dbgGEN(GEN x, long nb); 3208 void error0(GEN g); 3209 void dbg_pari_heap(void); 3210 int file_is_binary(FILE *f); 3211 void err_flush(void); 3212 void err_printf(const char* pat, ...); 3213 GEN gp_getenv(const char *s); 3214 void gp_fileclose(long n); 3215 long gp_fileextern(char *s); 3216 void gp_fileflush(long n); 3217 void gp_fileflush0(GEN n); 3218 long gp_fileopen(char *s, char *mode); 3219 GEN gp_fileread(long n); 3220 GEN gp_filereadstr(long n); 3221 void gp_filewrite(long n, const char *s); 3222 void gp_filewrite1(long n, const char *s); 3223 GEN gp_read_file(const char *s); 3224 GEN gp_read_str_multiline(const char *s, char *last); 3225 GEN gp_read_stream(FILE *f); 3226 GEN gp_readvec_file(char *s); 3227 GEN gp_readvec_stream(FILE *f); 3228 void gpinstall(const char *s, const char *code, 3229 const char *gpname, const char *lib); 3230 GEN gsprintf(const char *fmt, ...); 3231 GEN gvsprintf(const char *fmt, va_list ap); 3232 char* itostr(GEN x); 3233 void matbrute(GEN g, char format, long dec); 3234 char* os_getenv(const char *s); 3235 char* uordinal(ulong i); 3236 void outmat(GEN x); 3237 void output(GEN x); 3238 char* RgV_to_str(GEN g, long flag); 3239 void pari_add_hist(GEN z, long t, long r); 3240 void pari_ask_confirm(const char *s); 3241 void pari_fclose(pariFILE *f); 3242 void pari_flush(void); 3243 pariFILE* pari_fopen(const char *s, const char *mode); 3244 pariFILE* pari_fopen_or_fail(const char *s, const char *mode); 3245 pariFILE* pari_fopengz(const char *s); 3246 void pari_fprintf(FILE *file, const char *fmt, ...); 3247 void pari_fread_chars(void *b, size_t n, FILE *f); 3248 GEN pari_get_hist(long p); 3249 long pari_get_histrtime(long p); 3250 long pari_get_histtime(long p); 3251 char* pari_get_homedir(const char *user); 3252 GEN pari_histtime(long p); 3253 int pari_is_dir(const char *name); 3254 int pari_is_file(const char *name); 3255 int pari_last_was_newline(void); 3256 void pari_set_last_newline(int last); 3257 ulong pari_nb_hist(void); 3258 void pari_printf(const char *fmt, ...); 3259 void pari_putc(char c); 3260 void pari_puts(const char *s); 3261 pariFILE* pari_safefopen(const char *s, const char *mode); 3262 char* pari_sprintf(const char *fmt, ...); 3263 int pari_stdin_isatty(void); 3264 char* pari_unique_dir(const char *s); 3265 char* pari_unique_filename(const char *s); 3266 char* pari_unique_filename_suffix(const char *s, const char *suf); 3267 void pari_unlink(const char *s); 3268 void pari_vfprintf(FILE *file, const char *fmt, va_list ap); 3269 void pari_vprintf(const char *fmt, va_list ap); 3270 char* pari_vsprintf(const char *fmt, va_list ap); 3271 char* path_expand(const char *s); 3272 void out_print0(PariOUT *out, const char *sep, GEN g, long flag); 3273 void out_printf(PariOUT *out, const char *fmt, ...); 3274 void out_putc(PariOUT *out, char c); 3275 void out_puts(PariOUT *out, const char *s); 3276 void out_term_color(PariOUT *out, long c); 3277 void out_vprintf(PariOUT *out, const char *fmt, va_list ap); 3278 char* pari_sprint0(const char *msg, GEN g, long flag); 3279 void print(GEN g); 3280 void printp(GEN g); 3281 enum { f_RAW = 0, f_PRETTYMAT = 1, f_PRETTY = 3, f_TEX = 4 }; 3282 void print0(GEN g, long flag); 3283 void print1(GEN g); 3284 void printf0(const char *fmt, GEN args); 3285 void printsep(const char *s, GEN g); 3286 void printsep1(const char *s, GEN g); 3287 void printtex(GEN g); 3288 char* stack_sprintf(const char *fmt, ...); 3289 void str_init(pari_str *S, int use_stack); 3290 void str_printf(pari_str *S, const char *fmt, ...); 3291 void str_putc(pari_str *S, char c); 3292 void str_puts(pari_str *S, const char *s); 3293 void strftime_expand(const char *s, char *buf, long max); 3294 GEN strprintf(const char *fmt, GEN args); 3295 FILE* switchin(const char *name); 3296 void switchout(const char *name); 3297 void term_color(long c); 3298 char* term_get_color(char *s, long c); 3299 void texe(GEN g, char format, long dec); 3300 void warning0(GEN g); 3301 void write0(const char *s, GEN g); 3302 void write1(const char *s, GEN g); 3303 void writebin(const char *name, GEN x); 3304 void writetex(const char *s, GEN g); 3305 3306 /* eval.c */ 3307 3308 enum { br_NONE = 0, br_BREAK, br_NEXT, br_MULTINEXT, br_RETURN }; 3309 void bincopy_relink(GEN C, GEN vi); 3310 GEN bitprecision0(GEN x,long n); 3311 GEN bitprecision00(GEN x,GEN n); 3312 GEN break0(long n); 3313 GEN call0(GEN fun, GEN args); 3314 GEN closure_callgen0prec(GEN C, long prec); 3315 GEN closure_callgen1(GEN C, GEN x); 3316 GEN closure_callgen1prec(GEN C, GEN x, long prec); 3317 GEN closure_callgen2(GEN C, GEN x, GEN y); 3318 GEN closure_callgenall(GEN C, long n, ...); 3319 GEN closure_callgenvec(GEN C, GEN args); 3320 GEN closure_callgenvecdef(GEN C, GEN args, GEN def); 3321 GEN closure_callgenvecdefprec(GEN C, GEN args, GEN def, long prec); 3322 GEN closure_callgenvecprec(GEN C, GEN args, long prec); 3323 void closure_callvoid1(GEN C, GEN x); 3324 long closure_context(long start, long level); 3325 void closure_disassemble(GEN n); 3326 void closure_err(long level); 3327 GEN closure_evalbrk(GEN C, long *status); 3328 GEN closure_evalgen(GEN C); 3329 GEN closure_evalnobrk(GEN C); 3330 GEN closure_evalres(GEN C); 3331 void closure_evalvoid(GEN C); 3332 const char * closure_func_err(void); 3333 GEN closure_trapgen(GEN C, long numerr); 3334 GEN copybin_unlink(GEN C); 3335 long getlocalprec(long prec); 3336 long getlocalbitprec(long bit); 3337 GEN get_lex(long vn); 3338 long get_localprec(void); 3339 long get_localbitprec(void); 3340 GEN gp_call(void *E, GEN x); 3341 GEN gp_callprec(void *E, GEN x, long prec); 3342 GEN gp_call2(void *E, GEN x, GEN y); 3343 long gp_callbool(void *E, GEN x); 3344 long gp_callvoid(void *E, GEN x); 3345 GEN gp_eval(void *E, GEN x); 3346 long gp_evalbool(void *E, GEN x); 3347 GEN gp_evalprec(void *E, GEN x, long prec); 3348 GEN gp_evalupto(void *E, GEN x); 3349 long gp_evalvoid(void *E, GEN x); 3350 void localprec(GEN p); 3351 void localbitprec(GEN p); 3352 long loop_break(void); 3353 GEN next0(long n); 3354 GEN pareval(GEN C); 3355 GEN pari_self(void); 3356 GEN parsum(GEN a, GEN b, GEN code); 3357 GEN parvector(long n, GEN code); 3358 void pop_lex(long n); 3359 void pop_localprec(void); 3360 GEN precision0(GEN x,long n); 3361 GEN precision00(GEN x, GEN n); 3362 void push_lex(GEN a, GEN C); 3363 void push_localbitprec(long p); 3364 void push_localprec(long p); 3365 GEN return0(GEN x); 3366 void set_lex(long vn, GEN x); 3367 3368 /* forprime.c */ 3369 3370 int forcomposite_init(forcomposite_t *C, GEN a, GEN b); 3371 GEN forcomposite_next(forcomposite_t *C); 3372 GEN forprime_next(forprime_t *T); 3373 int forprime_init(forprime_t *T, GEN a, GEN b); 3374 int forprimestep_init(forprime_t *T, GEN a, GEN b, GEN q); 3375 byteptr initprimes(ulong maxnum, long *lenp, ulong *lastp); 3376 void initprimetable(ulong maxnum); 3377 ulong init_primepointer_geq(ulong a, byteptr *pd); 3378 ulong init_primepointer_gt(ulong a, byteptr *pd); 3379 ulong init_primepointer_leq(ulong a, byteptr *pd); 3380 ulong init_primepointer_lt(ulong a, byteptr *pd); 3381 ulong maxprime(void); 3382 ulong maxprimeN(void); 3383 void maxprime_check(ulong c); 3384 void pari_init_primes(ulong maxprime); 3385 ulong u_forprime_next(forprime_t *T); 3386 int u_forprime_init(forprime_t *T, ulong a, ulong b); 3387 void u_forprime_restrict(forprime_t *T, ulong c); 3388 int u_forprime_arith_init(forprime_t *T, ulong a, ulong b, ulong c, ulong q); 3389 3390 /* FF.c */ 3391 3392 GEN FF_1(GEN a); 3393 GEN FF_Frobenius(GEN x, long e); 3394 GEN FF_Z_Z_muldiv(GEN x, GEN y, GEN z); 3395 GEN FF_Q_add(GEN x, GEN y); 3396 GEN FF_Z_add(GEN a, GEN b); 3397 GEN FF_Z_mul(GEN a, GEN b); 3398 GEN FF_add(GEN a, GEN b); 3399 GEN FF_charpoly(GEN x); 3400 GEN FF_conjvec(GEN x); 3401 GEN FF_div(GEN a, GEN b); 3402 GEN FF_ellcard(GEN E); 3403 GEN FF_ellcard_SEA(GEN E, long smallfact); 3404 GEN FF_ellgens(GEN E); 3405 GEN FF_ellgroup(GEN E, GEN *m); 3406 GEN FF_elllog(GEN E, GEN P, GEN Q, GEN o); 3407 GEN FF_ellmul(GEN E, GEN P, GEN n); 3408 GEN FF_ellorder(GEN E, GEN P, GEN o); 3409 GEN FF_elltwist(GEN E); 3410 GEN FF_ellrandom(GEN E); 3411 GEN FF_elltatepairing(GEN E, GEN P, GEN Q, GEN m); 3412 GEN FF_ellweilpairing(GEN E, GEN P, GEN Q, GEN m); 3413 int FF_equal(GEN a, GEN b); 3414 int FF_equal0(GEN x); 3415 int FF_equal1(GEN x); 3416 int FF_equalm1(GEN x); 3417 long FF_f(GEN x); 3418 GEN FF_gen(GEN x); 3419 GEN FF_inv(GEN a); 3420 long FF_issquare(GEN x); 3421 long FF_issquareall(GEN x, GEN *pt); 3422 long FF_ispower(GEN x, GEN K, GEN *pt); 3423 GEN FF_log(GEN a, GEN b, GEN o); 3424 GEN FF_map(GEN m, GEN x); 3425 GEN FF_minpoly(GEN x); 3426 GEN FF_mod(GEN x); 3427 GEN FF_mul(GEN a, GEN b); 3428 GEN FF_mul2n(GEN a, long n); 3429 GEN FF_neg(GEN a); 3430 GEN FF_neg_i(GEN a); 3431 GEN FF_norm(GEN x); 3432 GEN FF_order(GEN x, GEN o); 3433 GEN FF_p(GEN x); 3434 GEN FF_p_i(GEN x); 3435 GEN FF_pow(GEN x, GEN n); 3436 GEN FF_primroot(GEN x, GEN *o); 3437 GEN FF_q(GEN x); 3438 int FF_samefield(GEN x, GEN y); 3439 GEN FF_sqr(GEN a); 3440 GEN FF_sqrt(GEN a); 3441 GEN FF_sqrtn(GEN x, GEN n, GEN *zetan); 3442 GEN FF_sub(GEN x, GEN y); 3443 GEN FF_to_F2xq(GEN x); 3444 GEN FF_to_F2xq_i(GEN x); 3445 GEN FF_to_Flxq(GEN x); 3446 GEN FF_to_Flxq_i(GEN x); 3447 GEN FF_to_FpXQ(GEN x); 3448 GEN FF_to_FpXQ_i(GEN x); 3449 GEN FF_trace(GEN x); 3450 long FF_var(GEN x); 3451 GEN FF_zero(GEN a); 3452 GEN FFM_FFC_invimage(GEN M, GEN C, GEN ff); 3453 GEN FFM_FFC_gauss(GEN M, GEN C, GEN ff); 3454 GEN FFM_FFC_mul(GEN M, GEN C, GEN ff); 3455 GEN FFM_deplin(GEN M, GEN ff); 3456 GEN FFM_det(GEN M, GEN ff); 3457 GEN FFM_gauss(GEN M, GEN N, GEN ff); 3458 GEN FFM_image(GEN M, GEN ff); 3459 GEN FFM_indexrank(GEN M, GEN ff); 3460 GEN FFM_inv(GEN M, GEN ff); 3461 GEN FFM_invimage(GEN M, GEN N, GEN ff); 3462 GEN FFM_ker(GEN M, GEN ff); 3463 GEN FFM_mul(GEN M, GEN N, GEN ff); 3464 long FFM_rank(GEN M, GEN ff); 3465 GEN FFM_suppl(GEN M, GEN ff); 3466 GEN FFX_add(GEN Pf, GEN Qf, GEN ff); 3467 GEN FFX_ddf(GEN f, GEN x); 3468 GEN FFX_degfact(GEN Pf, GEN ff); 3469 GEN FFX_disc(GEN Pf, GEN ff); 3470 GEN FFX_extgcd(GEN Pf, GEN Qf, GEN ff, GEN *pt_Uf, GEN *pt_Vf); 3471 GEN FFX_factor(GEN f, GEN x); 3472 GEN FFX_factor_squarefree(GEN f, GEN x); 3473 GEN FFX_gcd(GEN Pf, GEN Qf, GEN ff); 3474 GEN FFX_halfgcd(GEN Pf, GEN Qf, GEN ff); 3475 long FFX_ispower(GEN Pf, long k, GEN ff, GEN *pt_r); 3476 GEN FFX_mul(GEN Pf, GEN Qf, GEN ff); 3477 GEN FFX_preimage(GEN x, GEN F, GEN y); 3478 GEN FFX_preimagerel(GEN x, GEN F, GEN y); 3479 GEN FFX_rem(GEN Pf, GEN Qf, GEN ff); 3480 GEN FFX_resultant(GEN Pf, GEN Qf, GEN ff); 3481 GEN FFX_roots(GEN f, GEN x); 3482 GEN FFX_sqr(GEN Pf, GEN ff); 3483 GEN FFXQ_inv(GEN Pf, GEN Qf, GEN ff); 3484 GEN FFXQ_minpoly(GEN Pf, GEN Qf, GEN ff); 3485 GEN FFXQ_mul(GEN Pf, GEN Qf, GEN Sf, GEN ff); 3486 GEN FFXQ_sqr(GEN Pf, GEN Qf, GEN ff); 3487 GEN FqX_to_FFX(GEN x, GEN ff); 3488 GEN Fq_to_FF(GEN x, GEN ff); 3489 GEN Z_FF_div(GEN a, GEN b); 3490 GEN ffembed(GEN a, GEN b); 3491 GEN ffextend(GEN a, GEN P, long v); 3492 GEN fffrobenius(GEN m, long n); 3493 GEN ffgen(GEN T, long v); 3494 GEN ffinvmap(GEN m); 3495 GEN fflog(GEN x, GEN g, GEN o); 3496 GEN ffmap(GEN m, GEN x); 3497 GEN ffmaprel(GEN m, GEN x); 3498 GEN ffcompomap(GEN m, GEN n); 3499 GEN fforder(GEN x, GEN o); 3500 GEN ffprimroot(GEN x, GEN *o); 3501 GEN ffrandom(GEN ff); 3502 int Rg_is_FF(GEN c, GEN *ff); 3503 int RgC_is_FFC(GEN x, GEN *ff); 3504 int RgM_is_FFM(GEN x, GEN *ff); 3505 GEN p_to_FF(GEN p, long v); 3506 GEN Tp_to_FF(GEN T, GEN p); 3507 3508 /* galconj.c */ 3509 3510 GEN checkgal(GEN gal); 3511 GEN checkgroup(GEN g, GEN *S); 3512 GEN checkgroupelts(GEN gal); 3513 GEN embed_disc(GEN r, long r1, long prec); 3514 GEN embed_roots(GEN r, long r1); 3515 GEN galois_group(GEN gal); 3516 GEN galoisconj(GEN nf, GEN d); 3517 GEN galoisconj0(GEN nf, long flag, GEN d, long prec); 3518 GEN galoisconjclasses(GEN gal); 3519 GEN galoisexport(GEN gal, long format); 3520 GEN galoisfixedfield(GEN gal, GEN v, long flag, long y); 3521 GEN galoisidentify(GEN gal); 3522 GEN galoisinit(GEN nf, GEN den); 3523 GEN galoisisabelian(GEN gal, long flag); 3524 long galoisisnormal(GEN gal, GEN sub); 3525 GEN galoispermtopol(GEN gal, GEN perm); 3526 GEN galoissubgroups(GEN G); 3527 GEN galoissubfields(GEN G, long flag, long v); 3528 long numberofconjugates(GEN T, long pdepart); 3529 GEN vandermondeinverse(GEN L, GEN T, GEN den, GEN prep); 3530 3531 /* galois.c */ 3532 3533 GEN polgalois(GEN x, long prec); 3534 3535 /* galpol.c */ 3536 3537 GEN galoisnbpol(long a); 3538 GEN galoisgetgroup(long a, long b); 3539 GEN galoisgetname(long a, long b); 3540 GEN galoisgetpol(long a, long b, long s); 3541 3542 /* gen1.c */ 3543 GEN conj_i(GEN x); 3544 GEN conjvec(GEN x,long prec); 3545 GEN gadd(GEN x, GEN y); 3546 GEN gaddsg(long x, GEN y); 3547 GEN gconj(GEN x); 3548 GEN gdiv(GEN x, GEN y); 3549 GEN gdivgs(GEN x, long s); 3550 GEN ginv(GEN x); 3551 GEN gmul(GEN x, GEN y); 3552 GEN gmul2n(GEN x, long n); 3553 GEN gmulsg(long s, GEN y); 3554 GEN gsqr(GEN x); 3555 GEN gsub(GEN x, GEN y); 3556 GEN gsubsg(long x, GEN y); 3557 GEN mulcxI(GEN x); 3558 GEN mulcxmI(GEN x); 3559 GEN mulcxpowIs(GEN x, long k); 3560 GEN Qdivii(GEN x1, GEN x2); 3561 GEN Qdiviu(GEN x, ulong y); 3562 GEN Qdivis(GEN x, long y); 3563 GEN ser_normalize(GEN x); 3564 3565 /* gen2.c */ 3566 3567 GEN gassoc_proto(GEN f(GEN,GEN),GEN,GEN); 3568 GEN map_proto_G(GEN f(GEN), GEN x); 3569 GEN map_proto_lG(long f(GEN), GEN x); 3570 GEN map_proto_lGL(long f(GEN,long), GEN x, long y); 3571 3572 long Q_lval(GEN x, ulong p); 3573 long Q_lvalrem(GEN x, ulong p, GEN *y); 3574 long Q_pval(GEN x, GEN p); 3575 long Q_pvalrem(GEN x, GEN p, GEN *y); 3576 long RgX_val(GEN x); 3577 long RgX_valrem(GEN x, GEN *z); 3578 long RgX_valrem_inexact(GEN x, GEN *Z); 3579 long RgXV_maxdegree(GEN x); 3580 int ZV_Z_dvd(GEN v, GEN p); 3581 long ZV_pval(GEN x, GEN p); 3582 long ZV_pvalrem(GEN x, GEN p, GEN *px); 3583 long ZV_lval(GEN x, ulong p); 3584 long ZV_lvalrem(GEN x, ulong p, GEN *px); 3585 long ZX_lvalrem(GEN x, ulong p, GEN *px); 3586 long ZX_lval(GEN x, ulong p); 3587 long ZX_pval(GEN x, GEN p); 3588 long ZX_pvalrem(GEN x, GEN p, GEN *px); 3589 long Z_lval(GEN n, ulong p); 3590 long Z_lvalrem(GEN n, ulong p, GEN *py); 3591 long Z_lvalrem_stop(GEN *n, ulong p, int *stop); 3592 long Z_pval(GEN n, GEN p); 3593 long Z_pvalrem(GEN x, GEN p, GEN *py); 3594 GEN cgetp(GEN x); 3595 GEN cvstop2(long s, GEN y); 3596 GEN cvtop(GEN x, GEN p, long l); 3597 GEN cvtop2(GEN x, GEN y); 3598 int cx_approx_equal(GEN a, GEN b); 3599 GEN gabs(GEN x, long prec); 3600 void gaffect(GEN x, GEN y); 3601 void gaffsg(long s, GEN x); 3602 int gcmp(GEN x, GEN y); 3603 int gequal0(GEN x); 3604 int gequal1(GEN x); 3605 int gequalX(GEN x); 3606 int gequalm1(GEN x); 3607 int gcmpsg(long x, GEN y); 3608 GEN gcvtop(GEN x, GEN p, long r); 3609 int gequal(GEN x, GEN y); 3610 int gequalsg(long s, GEN x); 3611 long gexpo(GEN x); 3612 long gexpo_safe(GEN x); 3613 GEN gpexponent(GEN x); 3614 GEN gpvaluation(GEN x, GEN p); 3615 long gvaluation(GEN x, GEN p); 3616 int gidentical(GEN x, GEN y); 3617 long glength(GEN x); 3618 GEN gmax(GEN x, GEN y); 3619 GEN gmaxgs(GEN x, long y); 3620 GEN gmin(GEN x, GEN y); 3621 GEN gmings(GEN x, long y); 3622 GEN gneg(GEN x); 3623 GEN gneg_i(GEN x); 3624 int gsigne(GEN x); 3625 GEN gtolist(GEN x); 3626 long gtolong(GEN x); 3627 int lexcmp(GEN x, GEN y); 3628 GEN listinsert(GEN list, GEN object, long index); 3629 void listpop(GEN L, long index); 3630 void listpop0(GEN L, long index); 3631 GEN listput(GEN list, GEN object, long index); 3632 GEN listput0(GEN list, GEN object, long index); 3633 void listsort(GEN list, long flag); 3634 GEN matsize(GEN x); 3635 GEN mklist(void); 3636 GEN mklist_typ(long t); 3637 GEN mklistcopy(GEN x); 3638 GEN mkmap(void); 3639 GEN normalize(GEN x); 3640 GEN normalizepol(GEN x); 3641 GEN normalizepol_approx(GEN x, long lx); 3642 GEN normalizepol_lg(GEN x, long lx); 3643 ulong padic_to_Fl(GEN x, ulong p); 3644 GEN padic_to_Fp(GEN x, GEN Y); 3645 GEN quadtofp(GEN x, long l); 3646 long sizedigit(GEN x); 3647 long u_lval(ulong x, ulong p); 3648 long u_lvalrem(ulong x, ulong p, ulong *py); 3649 long u_lvalrem_stop(ulong *n, ulong p, int *stop); 3650 long u_pval(ulong x, GEN p); 3651 long u_pvalrem(ulong x, GEN p, ulong *py); 3652 long vecindexmax(GEN x); 3653 long vecindexmin(GEN x); 3654 GEN vecmax0(GEN x, GEN *pv); 3655 GEN vecmax(GEN x); 3656 GEN vecmin0(GEN x, GEN *pv); 3657 GEN vecmin(GEN x); 3658 long z_lval(long s, ulong p); 3659 long z_lvalrem(long s, ulong p, long *py); 3660 long z_pval(long n, GEN p); 3661 long z_pvalrem(long n, GEN p, long *py); 3662 long zx_lval(GEN f, long p); 3663 3664 /* Ser.c */ 3665 3666 GEN RgX_to_ser(GEN x, long l); 3667 GEN RgX_to_ser_inexact(GEN x, long l); 3668 GEN gtoser(GEN x, long v, long d); 3669 GEN gtoser_prec(GEN x, long v, long d); 3670 GEN rfrac_to_ser(GEN x, long l); 3671 GEN rfracrecip_to_ser_absolute(GEN R, long l); 3672 long rfracrecip(GEN *pn, GEN *pd); 3673 GEN scalarser(GEN x, long v, long prec); 3674 GEN sertoser(GEN x, long prec); 3675 GEN toser_i(GEN x); 3676 GEN RgV_to_ser(GEN x, long v, long l); 3677 GEN Ser0(GEN x, long v, GEN d, long prec); 3678 3679 /* gen3.c */ 3680 3681 GEN padic_to_Q(GEN x); 3682 GEN padic_to_Q_shallow(GEN x); 3683 GEN QpV_to_QV(GEN v); 3684 GEN RgM_mulreal(GEN x, GEN y); 3685 GEN RgX_cxeval(GEN T, GEN u, GEN ui); 3686 GEN RgX_deflate_max(GEN x0, long *m); 3687 long RgX_deflate_order(GEN x); 3688 long ZX_deflate_order(GEN x); 3689 GEN ZX_deflate_max(GEN x, long *m); 3690 long RgX_degree(GEN x,long v); 3691 GEN RgX_integ(GEN x); 3692 GEN ceil_safe(GEN x); 3693 GEN ceilr(GEN x); 3694 GEN centerlift(GEN x); 3695 GEN centerlift0(GEN x,long v); 3696 GEN compo(GEN x, long n); 3697 GEN deg1pol(GEN x1, GEN x0,long v); 3698 GEN deg1pol_shallow(GEN x1, GEN x0,long v); 3699 GEN deg2pol_shallow(GEN x2, GEN x1, GEN x0,long v); 3700 long degree(GEN x); 3701 GEN denom(GEN x); 3702 GEN denom_i(GEN x); 3703 GEN denominator(GEN x, GEN D); 3704 GEN deriv(GEN x, long v); 3705 GEN derivn(GEN x, long n, long v); 3706 GEN derivser(GEN x); 3707 GEN diffop(GEN x, GEN v, GEN dv); 3708 GEN diffop0(GEN x, GEN v, GEN dv, long n); 3709 GEN diviiround(GEN x, GEN y); 3710 GEN divrem(GEN x, GEN y, long v); 3711 GEN floor_safe(GEN x); 3712 GEN gceil(GEN x); 3713 GEN gcvtoi(GEN x, long *e); 3714 GEN gdeflate(GEN x, long v, long d); 3715 GEN gdivent(GEN x, GEN y); 3716 GEN gdiventgs(GEN x, long y); 3717 GEN gdiventsg(long x, GEN y); 3718 GEN gdiventres(GEN x, GEN y); 3719 GEN gdivmod(GEN x, GEN y, GEN *pr); 3720 GEN gdivround(GEN x, GEN y); 3721 int gdvd(GEN x, GEN y); 3722 GEN geq(GEN x, GEN y); 3723 GEN geval(GEN x); 3724 GEN gfloor(GEN x); 3725 GEN gtrunc2n(GEN x, long s); 3726 GEN gfrac(GEN x); 3727 GEN gge(GEN x, GEN y); 3728 GEN ggrando(GEN x, long n); 3729 GEN ggt(GEN x, GEN y); 3730 GEN gimag(GEN x); 3731 GEN gisexactzero(GEN g); 3732 GEN gle(GEN x, GEN y); 3733 GEN glt(GEN x, GEN y); 3734 GEN gmod(GEN x, GEN y); 3735 GEN gmodgs(GEN x, long y); 3736 GEN gmodsg(long x, GEN y); 3737 GEN gmodulo(GEN x,GEN y); 3738 GEN gmodulsg(long x, GEN y); 3739 GEN gmodulss(long x, long y); 3740 GEN gne(GEN x, GEN y); 3741 GEN gnot(GEN x); 3742 GEN gpolvar(GEN y); 3743 GEN gppadicprec(GEN x, GEN p); 3744 GEN gppoldegree(GEN x, long v); 3745 long gprecision(GEN x); 3746 GEN gpserprec(GEN x, long v); 3747 GEN greal(GEN x); 3748 GEN grndtoi(GEN x, long *e); 3749 GEN ground(GEN x); 3750 GEN gshift(GEN x, long n); 3751 GEN gsubst(GEN x, long v, GEN y); 3752 GEN gsubstpol(GEN x, GEN v, GEN y); 3753 GEN gsubstvec(GEN x, GEN v, GEN y); 3754 GEN gtocol(GEN x); 3755 GEN gtocol0(GEN x, long n); 3756 GEN gtocolrev(GEN x); 3757 GEN gtocolrev0(GEN x, long n); 3758 GEN gtopoly(GEN x, long v); 3759 GEN gtopolyrev(GEN x, long v); 3760 GEN gtovec(GEN x); 3761 GEN gtovec0(GEN x, long n); 3762 GEN gtovecrev(GEN x); 3763 GEN gtovecrev0(GEN x, long n); 3764 GEN gtovecsmall(GEN x); 3765 GEN gtovecsmall0(GEN x, long n); 3766 GEN gtrunc(GEN x); 3767 long gvar(GEN x); 3768 long gvar2(GEN x); 3769 GEN hqfeval(GEN q, GEN x); 3770 GEN imag_i(GEN x); 3771 GEN integ(GEN x, long v); 3772 GEN integser(GEN x); 3773 GEN ser_inv(GEN b); 3774 int iscomplex(GEN x); 3775 int isexactzero(GEN g); 3776 int isrationalzeroscalar(GEN g); 3777 int isinexact(GEN x); 3778 int isinexactreal(GEN x); 3779 int isint(GEN n, GEN *ptk); 3780 int isrationalzero(GEN g); 3781 int issmall(GEN n, long *ptk); 3782 GEN lift(GEN x); 3783 GEN lift_shallow(GEN x); 3784 GEN lift0(GEN x,long v); 3785 GEN liftall(GEN x); 3786 GEN liftall_shallow(GEN x); 3787 GEN liftint(GEN x); 3788 GEN liftint_shallow(GEN x); 3789 GEN liftpol(GEN x); 3790 GEN liftpol_shallow(GEN x); 3791 GEN mkcoln(long n, ...); 3792 GEN mkintn(long n, ...); 3793 GEN mkpoln(long n, ...); 3794 GEN mkvecn(long n, ...); 3795 GEN mkvecsmalln(long n, ...); 3796 GEN modRr_safe(GEN x, GEN y); 3797 GEN mulreal(GEN x, GEN y); 3798 GEN numer(GEN x); 3799 GEN numer_i(GEN x); 3800 GEN numerator(GEN x, GEN D); 3801 long padicprec(GEN x, GEN p); 3802 long padicprec_relative(GEN x); 3803 GEN polcoef(GEN x, long n, long v); 3804 GEN polcoef_i(GEN x, long n, long v); 3805 long poldegree(GEN x,long v); 3806 GEN poleval(GEN x, GEN y); 3807 GEN pollead(GEN x,long v); 3808 long precision(GEN x); 3809 GEN qf_apply_RgM(GEN q, GEN M); 3810 GEN qf_apply_ZM(GEN q, GEN M); 3811 GEN qfb_apply_ZM(GEN q, GEN M); 3812 GEN qfbil(GEN x, GEN y, GEN q); 3813 GEN qfeval(GEN q, GEN x); 3814 GEN qfeval0(GEN q, GEN x, GEN y); 3815 GEN qfevalb(GEN q, GEN x, GEN y); 3816 GEN qfnorm(GEN x, GEN q); 3817 GEN real_i(GEN x); 3818 GEN round0(GEN x, GEN *pte); 3819 GEN roundr(GEN x); 3820 GEN roundr_safe(GEN x); 3821 GEN scalarpol(GEN x, long v); 3822 GEN scalarpol_shallow(GEN x, long v); 3823 GEN ser_unscale(GEN P, GEN h); 3824 long serprec(GEN x, long v); 3825 GEN serreverse(GEN x); 3826 GEN simplify(GEN x); 3827 GEN simplify_shallow(GEN x); 3828 GEN tayl(GEN x, long v, long precdl); 3829 GEN trunc0(GEN x, GEN *pte); 3830 GEN uu32toi(ulong a, ulong b); 3831 GEN uu32toineg(ulong a, ulong b); 3832 GEN vars_sort_inplace(GEN z); 3833 GEN vars_to_RgXV(GEN h); 3834 GEN variables_vecsmall(GEN x); 3835 GEN variables_vec(GEN x); 3836 3837 /* genus2red.c */ 3838 3839 GEN genus2red(GEN PQ, GEN p); 3840 3841 /* groupid.c */ 3842 3843 long group_ident(GEN G, GEN S); 3844 long group_ident_trans(GEN G, GEN S); 3845 3846 /* hash.c */ 3847 3848 hashtable *hash_create_ulong(ulong s, long stack); 3849 hashtable *hash_create_str(ulong s, long stack); 3850 hashtable *hash_create(ulong minsize, ulong (*hash)(void*), int (*eq)(void*,void*), int use_stack); 3851 void hash_dbg(hashtable *h); 3852 GEN hash_haskey_GEN(hashtable *h, void *k); 3853 int hash_haskey_long(hashtable *h, void *k, long *v); 3854 void hash_init(hashtable *h, ulong minsize, ulong (*hash)(void*), 3855 int (*eq)(void*,void*), int use_stack); 3856 void hash_init_GEN(hashtable *h, ulong minsize, int (*eq)(GEN,GEN), int use_stack); 3857 void hash_init_ulong(hashtable *h, ulong minsize, int use_stack); 3858 void hash_insert(hashtable *h, void *k, void *v); 3859 void hash_insert_long(hashtable *h, void *k, long v); 3860 void hash_insert2(hashtable *h, void *k, void *v, ulong hash); 3861 GEN hash_keys(hashtable *h); 3862 GEN hash_values(hashtable *h); 3863 hashentry *hash_search(hashtable *h, void *k); 3864 hashentry *hash_search2(hashtable *h, void *k, ulong hash); 3865 hashentry *hash_select(hashtable *h, void *k, void *E,int(*select)(void *,hashentry *)); 3866 hashentry *hash_remove(hashtable *h, void *k); 3867 hashentry *hash_remove_select(hashtable *h, void *k, void *E, int (*select)(void*,hashentry*)); 3868 void hash_destroy(hashtable *h); 3869 ulong hash_GEN(GEN x); 3870 ulong hash_zv(GEN x); 3871 3872 /* hyperell.c */ 3873 3874 GEN hyperellpadicfrobenius0(GEN x, GEN p, long e); 3875 GEN hyperellpadicfrobenius(GEN x, ulong p, long e); 3876 GEN hyperellcharpoly(GEN x); 3877 GEN nfhyperellpadicfrobenius(GEN H, GEN T, ulong p, long n); 3878 3879 /* hypergeom.c */ 3880 GEN hypergeom(GEN vnum, GEN vden, GEN z, long prec); 3881 GEN airy(GEN z, long prec); 3882 3883 /* hnf_snf.c */ 3884 3885 GEN RgM_hnfall(GEN A, GEN *pB, long remove); 3886 GEN ZM_hnf(GEN x); 3887 GEN ZM_hnf_knapsack(GEN x); 3888 GEN ZM_hnfall(GEN A, GEN *ptB, long remove); 3889 GEN ZM_hnfall_i(GEN A, GEN *ptB, long remove); 3890 GEN ZM_hnfcenter(GEN M); 3891 GEN ZM_hnflll(GEN A, GEN *ptB, int remove); 3892 GEN ZV_extgcd(GEN A); 3893 GEN ZV_snfall(GEN D, GEN *pU, GEN *pV); 3894 GEN ZV_snf_group(GEN d, GEN *newU, GEN *newUi); 3895 void ZV_snf_trunc(GEN D); 3896 GEN ZM_hnfmod(GEN x, GEN d); 3897 GEN ZM_hnfmodall(GEN x, GEN dm, long flag); 3898 GEN ZM_hnfmodall_i(GEN x, GEN dm, long flag); 3899 GEN ZM_hnfmodid(GEN x, GEN d); 3900 GEN ZM_hnfmodprime(GEN x, GEN p); 3901 GEN ZM_hnfperm(GEN A, GEN *ptU, GEN *ptperm); 3902 void ZM_snfclean(GEN d, GEN u, GEN v); 3903 GEN ZM_snf(GEN x); 3904 GEN ZM_snf_group(GEN H, GEN *newU, GEN *newUi); 3905 GEN ZM_snfall(GEN x, GEN *ptU, GEN *ptV); 3906 GEN ZM_snfall_i(GEN x, GEN *ptU, GEN *ptV, long flag); 3907 GEN zlm_echelon(GEN x, long early_abort, ulong p, ulong pm); 3908 GEN ZpM_echelon(GEN x, long early_abort, GEN p, GEN pm); 3909 GEN gsmith(GEN x); 3910 GEN gsmithall(GEN x); 3911 GEN hnf(GEN x); 3912 GEN hnf_divscale(GEN A, GEN B,GEN t); 3913 GEN hnf_invscale(GEN A, GEN t); 3914 GEN hnf_solve(GEN A, GEN B); 3915 GEN hnf_invimage(GEN A, GEN b); 3916 GEN hnfall(GEN x); 3917 int hnfdivide(GEN A, GEN B); 3918 GEN hnflll(GEN x); 3919 GEN hnfmerge_get_1(GEN A, GEN B); 3920 GEN hnfmod(GEN x, GEN d); 3921 GEN hnfmodid(GEN x,GEN p); 3922 GEN hnfperm(GEN x); 3923 GEN matfrobenius(GEN M, long flag, long v); 3924 GEN mathnf0(GEN x, long flag); 3925 GEN matsnf0(GEN x, long flag); 3926 GEN smith(GEN x); 3927 GEN smithall(GEN x); 3928 GEN smithclean(GEN z); 3929 3930 /* ifactor1.c */ 3931 3932 GEN Z_ECM(GEN N, long rounds, long seed, ulong B1); 3933 GEN Z_factor(GEN n); 3934 GEN Z_factor_limit(GEN n, ulong all); 3935 GEN Z_factor_until(GEN n, GEN limit); 3936 long Z_issmooth(GEN m, ulong lim); 3937 GEN Z_issmooth_fact(GEN m, ulong lim); 3938 long Z_issquarefree(GEN x); 3939 GEN Z_pollardbrent(GEN n, long rounds, long seed); 3940 GEN absZ_factor(GEN n); 3941 GEN absZ_factor_limit(GEN n, ulong all); 3942 GEN absZ_factor_limit_strict(GEN n, ulong all, GEN *pU); 3943 long bigomega(GEN n); 3944 long bigomegau(ulong n); 3945 GEN core(GEN n); 3946 ulong coreu(ulong n); 3947 ulong coreu_fact(GEN f); 3948 GEN eulerphi(GEN n); 3949 ulong eulerphiu(ulong n); 3950 ulong eulerphiu_fact(GEN f); 3951 GEN factorint(GEN n, long flag); 3952 GEN factoru(ulong n); 3953 int ifac_isprime(GEN x); 3954 int ifac_next(GEN *part, GEN *p, long *e); 3955 int ifac_read(GEN part, GEN *p, long *e); 3956 void ifac_skip(GEN part); 3957 GEN ifac_start(GEN n, int moebius); 3958 int is_357_power(GEN x, GEN *pt, ulong *mask); 3959 int is_pth_power(GEN x, GEN *pt, forprime_t *T, ulong cutoffbits); 3960 long ispowerful(GEN n); 3961 long issquarefree(GEN x); 3962 long istotient(GEN n, GEN *px); 3963 long moebius(GEN n); 3964 long moebiusu(ulong n); 3965 long moebiusu_fact(GEN f); 3966 GEN nextprime(GEN n); 3967 GEN numdiv(GEN n); 3968 long numdivu(long N); 3969 long numdivu_fact(GEN fa); 3970 long omega(GEN n); 3971 long omegau(ulong n); 3972 GEN precprime(GEN n); 3973 ulong radicalu(ulong n); 3974 GEN sumdiv(GEN n); 3975 GEN sumdivk(GEN n,long k); 3976 ulong tridiv_bound(GEN n); 3977 int uis_357_power(ulong x, ulong *pt, ulong *mask); 3978 int uis_357_powermod(ulong x, ulong *mask); 3979 long uissquarefree(ulong n); 3980 long uissquarefree_fact(GEN f); 3981 ulong unextprime(ulong n); 3982 ulong uprecprime(ulong n); 3983 GEN vecfactorsquarefreeu(ulong a, ulong b); 3984 GEN vecfactorsquarefreeu_coprime(ulong a, ulong b, GEN P); 3985 GEN vecfactoru_i(ulong a, ulong b); 3986 GEN vecfactoru(ulong a, ulong b); 3987 GEN vecfactoroddu_i(ulong a, ulong b); 3988 GEN vecfactoroddu(ulong a, ulong b); 3989 GEN vecsquarefreeu(ulong a, ulong b); 3990 3991 /* init.c */ 3992 3993 int chk_gerepileupto(GEN x); 3994 GENbin* copy_bin(GEN x); 3995 GENbin* copy_bin_canon(GEN x); 3996 void dbg_gerepile(pari_sp av); 3997 void dbg_gerepileupto(GEN q); 3998 GEN errname(GEN err); 3999 GEN gclone(GEN x); 4000 GEN gcloneref(GEN x); 4001 void gclone_refc(GEN x); 4002 GEN gcopy(GEN x); 4003 GEN gcopy_avma(GEN x, pari_sp *AVMA); 4004 GEN gcopy_lg(GEN x, long lx); 4005 GEN gerepile(pari_sp ltop, pari_sp lbot, GEN q); 4006 void gerepileallsp(pari_sp av, pari_sp tetpil, int n, ...); 4007 void gerepilecoeffssp(pari_sp av, pari_sp tetpil, long *g, int n); 4008 void gerepilemanysp(pari_sp av, pari_sp tetpil, GEN* g[], int n); 4009 GEN getheap(void); 4010 void gp_context_save(struct gp_context* rec); 4011 void gp_context_restore(struct gp_context* rec); 4012 long gsizeword(GEN x); 4013 long gsizebyte(GEN x); 4014 void gunclone(GEN x); 4015 void gunclone_deep(GEN x); 4016 GEN listcopy(GEN x); 4017 GEN listinit(GEN x); 4018 void msgtimer(const char *format, ...); 4019 long name_numerr(const char *s); 4020 void new_chunk_resize(size_t x); 4021 GEN newblock(size_t n); 4022 const char * numerr_name(long errnum); 4023 GEN obj_check(GEN S, long K); 4024 GEN obj_checkbuild(GEN S, long tag, GEN (*build)(GEN)); 4025 GEN obj_checkbuild_padicprec(GEN S, long tag, GEN (*build)(GEN,long), long prec); 4026 GEN obj_checkbuild_realprec(GEN S, long tag, GEN (*build)(GEN,long), long prec); 4027 GEN obj_checkbuild_prec(GEN S, long tag, GEN (*build)(GEN,long), long (*pr)(GEN), long prec); 4028 void obj_free(GEN S); 4029 GEN obj_init(long d, long n); 4030 GEN obj_insert(GEN S, long K, GEN O); 4031 GEN obj_insert_shallow(GEN S, long K, GEN O); 4032 GEN obj_reinit(GEN S); 4033 void (*os_signal(int sig, void (*f)(int)))(int); 4034 void pari_add_function(entree *ep); 4035 void pari_add_module(entree *ep); 4036 void pari_add_defaults_module(entree *ep); 4037 void pari_close(void); 4038 void pari_close_opts(ulong init_opts); 4039 GEN pari_compile_str(const char *lex); 4040 int pari_daemon(void); 4041 void pari_err(int numerr, ...); 4042 GEN pari_err_last(void); 4043 char * pari_err2str(GEN err); 4044 void pari_init_opts(size_t parisize, ulong maxprime, ulong init_opts); 4045 void pari_init(size_t parisize, ulong maxprime); 4046 void pari_stackcheck_init(void *pari_stack_base); 4047 void pari_sighandler(int sig); 4048 void pari_sig_init(void (*f)(int)); 4049 void pari_thread_alloc(struct pari_thread *t, size_t s, GEN arg); 4050 void pari_thread_close(void); 4051 void pari_thread_free(struct pari_thread *t); 4052 void pari_thread_init(void); 4053 GEN pari_thread_start(struct pari_thread *t); 4054 void pari_thread_valloc(struct pari_thread *t, size_t s, size_t v, GEN arg); 4055 GEN pari_version(void); 4056 void pari_warn(int numerr, ...); 4057 void paristack_newrsize(ulong newsize); 4058 void paristack_resize(ulong newsize); 4059 void paristack_setsize(size_t rsize, size_t vsize); 4060 void parivstack_resize(ulong newsize); 4061 void parivstack_reset(void); 4062 void shiftaddress(GEN x, long dec); 4063 void shiftaddress_canon(GEN x, long dec); 4064 long timer(void); 4065 long timer_delay(pari_timer *T); 4066 long timer_get(pari_timer *T); 4067 void timer_printf(pari_timer *T, const char *format, ...); 4068 void timer_start(pari_timer *T); 4069 long timer2(void); 4070 GEN trap0(const char *e, GEN f, GEN r); 4071 void traverseheap( void(*f)(GEN, void *), void *data ); 4072 void walltimer_start(pari_timer *ti); 4073 long walltimer_delay(pari_timer *ti); 4074 long walltimer_get(pari_timer *ti); 4075 4076 /* intnum.c */ 4077 4078 GEN contfraceval(GEN CF, GEN t, long nlim); 4079 GEN contfracinit(GEN M, long lim); 4080 GEN intcirc(void *E, GEN (*eval) (void *, GEN), GEN a, GEN R, GEN tab, long prec); 4081 GEN intfuncinit(void *E, GEN (*eval) (void *, GEN), GEN a, GEN b, long m, long prec); 4082 GEN intnum(void *E, GEN (*eval) (void *, GEN), GEN a, GEN b, GEN tab, long prec); 4083 GEN intnumgauss(void *E, GEN (*eval)(void*, GEN), GEN a, GEN b, GEN tab, long prec); 4084 GEN intnumgaussinit(long n, long prec); 4085 GEN intnuminit(GEN a, GEN b, long m, long prec); 4086 GEN intnumromb(void *E, GEN (*eval)(void *, GEN), GEN a, GEN b, long flag, long prec); 4087 GEN intnumromb_bitprec(void *E, GEN (*eval)(void *, GEN), GEN a, GEN b, long flag, long bit); 4088 GEN prodeulerrat(GEN F, GEN s, long a, long prec); 4089 GEN prodnumrat(GEN F, long a, long prec); 4090 GEN quodif(GEN M, long n); 4091 GEN sumeulerrat(GEN F, GEN s, long a, long prec); 4092 GEN sumnum(void *E, GEN (*eval)(void*, GEN), GEN a, GEN tab, long prec); 4093 GEN sumnumap(void *E, GEN (*eval)(void*,GEN), GEN a, GEN tab, long prec); 4094 GEN sumnumapinit(GEN fast, long prec); 4095 GEN sumnuminit(GEN fast, long prec); 4096 GEN sumnumlagrangeinit(GEN al, GEN c1, long prec); 4097 GEN sumnumlagrange(void *E, GEN (*eval)(void*,GEN,long), GEN a, GEN tab, long prec); 4098 GEN sumnummonien(void *E, GEN (*eval)(void*, GEN), GEN a, GEN tab, long prec); 4099 GEN sumnummonieninit(GEN asymp, GEN w, GEN n0, long prec); 4100 GEN sumnumrat(GEN F, GEN a, long prec); 4101 4102 /* krasner.c */ 4103 4104 GEN padicfields0(GEN p, GEN n, long flag); 4105 GEN padicfields(GEN p, long m, long d, long flag); 4106 4107 /* kummer.c */ 4108 4109 GEN bnrclassfield(GEN bnr, GEN subgroup, long flag, long prec); 4110 GEN rnfkummer(GEN bnr, GEN subgroup, long prec); 4111 4112 /* lfun.c */ 4113 4114 long is_linit(GEN data); 4115 GEN ldata_get_an(GEN ldata); 4116 GEN ldata_get_dual(GEN ldata); 4117 GEN ldata_get_gammavec(GEN ldata); 4118 long ldata_get_degree(GEN ldata); 4119 GEN ldata_get_k(GEN ldata); 4120 GEN ldata_get_k1(GEN ldata); 4121 GEN ldata_get_conductor(GEN ldata); 4122 GEN ldata_get_rootno(GEN ldata); 4123 GEN ldata_get_residue(GEN ldata); 4124 long ldata_get_type(GEN ldata); 4125 long ldata_isreal(GEN ldata); 4126 long linit_get_type(GEN linit); 4127 GEN linit_get_ldata(GEN linit); 4128 GEN linit_get_tech(GEN linit); 4129 GEN lfun_get_domain(GEN tech); 4130 GEN lfun_get_dom(GEN tech); 4131 long lfun_get_bitprec(GEN tech); 4132 GEN lfun_get_factgammavec(GEN tech); 4133 GEN lfun_get_step(GEN tech); 4134 GEN lfun_get_pol(GEN tech); 4135 GEN lfun_get_Residue(GEN tech); 4136 GEN lfun_get_k2(GEN tech); 4137 GEN lfun_get_w2(GEN tech); 4138 GEN lfun_get_expot(GEN tech); 4139 long lfun_get_bitprec(GEN tech); 4140 GEN lfun(GEN ldata, GEN s, long bitprec); 4141 GEN lfun0(GEN ldata, GEN s, long der, long bitprec); 4142 GEN lfunan(GEN ldata, long L, long prec); 4143 long lfuncheckfeq(GEN data, GEN t0, long bitprec); 4144 GEN lfunconductor(GEN data, GEN maxcond, long flag, long bitprec); 4145 GEN lfuncost(GEN lmisc, GEN dom, long der, long bitprec); 4146 GEN lfuncost0(GEN L, GEN dom, long der, long bitprec); 4147 GEN lfuncreate(GEN obj); 4148 GEN lfundual(GEN L, long bitprec); 4149 GEN lfunhardy(GEN ldata, GEN t, long bitprec); 4150 GEN lfuninit(GEN ldata, GEN dom, long der, long bitprec); 4151 GEN lfuninit0(GEN ldata, GEN dom, long der, long bitprec); 4152 GEN lfuninit_make(long t, GEN ldata, GEN tech, GEN domain); 4153 GEN lfunlambda(GEN ldata, GEN s, long bitprec); 4154 GEN lfunlambda0(GEN ldata, GEN s, long der, long bitprec); 4155 GEN lfunmisc_to_ldata(GEN ldata); 4156 GEN lfunmisc_to_ldata_shallow(GEN ldata); 4157 GEN lfunmisc_to_ldata_shallow_i(GEN ldata); 4158 long lfunorderzero(GEN ldata, long m, long bitprec); 4159 GEN lfunprod_get_fact(GEN tech); 4160 GEN lfunrootno(GEN data, long bitprec); 4161 GEN lfunrootres(GEN data, long bitprec); 4162 GEN lfunrtopoles(GEN r); 4163 GEN lfunshift(GEN ldata, GEN s, long flag, long bitprec); 4164 GEN lfuntwist(GEN ldata1, GEN ldata2, long bitprec); 4165 GEN lfuntheta(GEN data, GEN t, long m, long bitprec); 4166 long lfunthetacost0(GEN L, GEN tdom, long m, long bitprec); 4167 long lfunthetacost(GEN ldata, GEN tdom, long m, long bitprec); 4168 GEN lfunthetainit(GEN ldata, GEN tdom, long m, long bitprec); 4169 GEN lfunthetacheckinit(GEN data, GEN tinf, long m, long bitprec); 4170 GEN lfunzeros(GEN ldata, GEN lim, long divz, long bitprec); 4171 int sdomain_isincl(double k, GEN dom, GEN dom0); 4172 GEN theta_get_an(GEN tdata); 4173 GEN theta_get_K(GEN tdata); 4174 GEN theta_get_R(GEN tdata); 4175 long theta_get_bitprec(GEN tdata); 4176 long theta_get_m(GEN tdata); 4177 GEN theta_get_tdom(GEN tdata); 4178 GEN theta_get_isqrtN(GEN tdata); 4179 int Vgaeasytheta(GEN Vga); 4180 GEN znchargauss(GEN G, GEN chi, GEN a, long bitprec); 4181 4182 /* lfunutils.c */ 4183 4184 GEN dirzetak(GEN nf, GEN b); 4185 GEN ellmoddegree(GEN e); 4186 GEN eta_ZXn(long v, long L); 4187 GEN eta_product_ZXn(GEN eta, long L); 4188 long etaquotype(GEN *eta, GEN *pN, GEN *pk, GEN *CHI, long *pv, long *sd, long *cusp); 4189 GEN galois_get_conj(GEN G); /* TODO move somewhere else? */ 4190 GEN ldata_vecan(GEN ldata, long L, long prec); 4191 GEN ldata_newprec(GEN ldata, long prec); 4192 GEN lfunabelianrelinit(GEN bnfabs, GEN bnf, GEN polrel, GEN dom, long der, long bitprec); 4193 GEN lfunartin(GEN N, GEN G, GEN M, long o, long bitprec); 4194 GEN lfundiv(GEN ldata1, GEN ldata2, long bitprec); 4195 GEN lfunellmfpeters(GEN E, long bitprec); 4196 GEN lfunetaquo(GEN eta); 4197 GEN lfungenus2(GEN PS); 4198 GEN lfunmfspec(GEN lmisc, long bitprec); 4199 GEN lfunmul(GEN ldata1, GEN ldata2, long bitprec); 4200 GEN lfunqf(GEN ldata, long prec); 4201 GEN lfunsympow(GEN E, ulong m); 4202 GEN lfunzetakinit(GEN pol, GEN dom, long der, long flag, long bitprec); 4203 long qfiseven(GEN M); 4204 4205 /* lfunquad */ 4206 4207 GEN lfunquadneg(long D, long k); 4208 GEN eulerfrac(long k); 4209 4210 /* lll.c */ 4211 4212 GEN ZM_lll_norms(GEN x, double D, long flag, GEN *B); 4213 GEN kerint(GEN x); 4214 GEN lll(GEN x); 4215 GEN lllfp(GEN x, double D, long flag); 4216 GEN lllgen(GEN x); 4217 GEN lllgram(GEN x); 4218 GEN lllgramgen(GEN x); 4219 GEN lllgramint(GEN x); 4220 GEN lllgramkerim(GEN x); 4221 GEN lllgramkerimgen(GEN x); 4222 GEN lllint(GEN x); 4223 GEN lllintpartial(GEN mat); 4224 GEN lllintpartial_inplace(GEN mat); 4225 GEN lllkerim(GEN x); 4226 GEN lllkerimgen(GEN x); 4227 GEN matkerint0(GEN x,long flag); 4228 GEN qflll0(GEN x, long flag); 4229 GEN qflllgram0(GEN x, long flag); 4230 4231 /* map.c */ 4232 4233 GEN gtomap(GEN M); 4234 void mapdelete(GEN T, GEN a); 4235 GEN mapdomain(GEN T); 4236 GEN mapdomain_shallow(GEN T); 4237 GEN mapget(GEN T, GEN a); 4238 int mapisdefined(GEN T, GEN a, GEN *pt_z); 4239 void mapput(GEN T, GEN a, GEN b); 4240 GEN maptomat(GEN T); 4241 GEN maptomat_shallow(GEN T); 4242 4243 /* matperm.c */ 4244 GEN matpermanent(GEN M); 4245 GEN zm_permanent(GEN M); 4246 GEN ZM_permanent(GEN M); 4247 4248 /* mellininv.c */ 4249 4250 double dbllambertW0(double a); 4251 double dbllambertW_1(double a); 4252 double dbllemma526(double a, double b, double c, double B); 4253 double dblcoro526(double a, double c, double B); 4254 GEN gammamellininv(GEN Vga, GEN s, long m, long bitprec); 4255 GEN gammamellininvasymp(GEN Vga, long nlimmax, long m); 4256 GEN gammamellininvinit(GEN Vga, long m, long bitprec); 4257 GEN gammamellininvrt(GEN K, GEN s, long bitprec); 4258 4259 /* members.c */ 4260 4261 GEN member_a1(GEN x); 4262 GEN member_a2(GEN x); 4263 GEN member_a3(GEN x); 4264 GEN member_a4(GEN x); 4265 GEN member_a6(GEN x); 4266 GEN member_area(GEN x); 4267 GEN member_b2(GEN x); 4268 GEN member_b4(GEN x); 4269 GEN member_b6(GEN x); 4270 GEN member_b8(GEN x); 4271 GEN member_bid(GEN x); 4272 GEN member_bnf(GEN x); 4273 GEN member_c4(GEN x); 4274 GEN member_c6(GEN x); 4275 GEN member_clgp(GEN x); 4276 GEN member_codiff(GEN x); 4277 GEN member_cyc(GEN clg); 4278 GEN member_diff(GEN x); 4279 GEN member_disc(GEN x); 4280 GEN member_e(GEN x); 4281 GEN member_eta(GEN x); 4282 GEN member_f(GEN x); 4283 GEN member_fu(GEN x); 4284 GEN member_gen(GEN x); 4285 GEN member_group(GEN x); 4286 GEN member_index(GEN x); 4287 GEN member_j(GEN x); 4288 GEN member_mod(GEN x); 4289 GEN member_nf(GEN x); 4290 GEN member_no(GEN clg); 4291 GEN member_omega(GEN x); 4292 GEN member_orders(GEN x); 4293 GEN member_p(GEN x); 4294 GEN member_pol(GEN x); 4295 GEN member_polabs(GEN x); 4296 GEN member_reg(GEN x); 4297 GEN member_r1(GEN x); 4298 GEN member_r2(GEN x); 4299 GEN member_roots(GEN x); 4300 GEN member_sign(GEN x); 4301 GEN member_t2(GEN x); 4302 GEN member_tate(GEN x); 4303 GEN member_tu(GEN x); 4304 GEN member_zk(GEN x); 4305 GEN member_zkst(GEN bid); 4306 4307 /* mftrace.c */ 4308 enum { mf_NEW = 0, mf_CUSP, mf_OLD, mf_EISEN, mf_FULL }; 4309 enum { 4310 /*leaves*/ 4311 t_MF_CONST, t_MF_EISEN, t_MF_Ek, t_MF_DELTA, t_MF_ETAQUO, t_MF_ELL, 4312 t_MF_DIHEDRAL, t_MF_THETA, t_MF_TRACE, t_MF_NEWTRACE, 4313 /**/ 4314 t_MF_MUL, t_MF_POW, t_MF_DIV, t_MF_BRACKET, t_MF_LINEAR, t_MF_LINEAR_BHN, 4315 t_MF_SHIFT, t_MF_DERIV, t_MF_DERIVE2, t_MF_TWIST, t_MF_HECKE, 4316 t_MF_BD, 4317 }; 4318 4319 GEN MF_get_CHI(GEN mf); 4320 GEN MF_get_M(GEN mf); 4321 GEN MF_get_Mindex(GEN mf); 4322 GEN MF_get_Minv(GEN mf); 4323 long MF_get_N(GEN mf); 4324 GEN MF_get_basis(GEN mf); 4325 long MF_get_dim(GEN mf); 4326 GEN MF_get_E(GEN mf); 4327 GEN MF_get_fields(GEN mf); 4328 GEN MF_get_gN(GEN mf); 4329 GEN MF_get_gk(GEN mf); 4330 long MF_get_k(GEN mf); 4331 GEN MF_get_newforms(GEN mf); 4332 long MF_get_r(GEN mf); 4333 long MF_get_space(GEN mf); 4334 GEN MF_get_S(GEN mf); 4335 GEN MFcusp_get_vMjd(GEN mf); 4336 GEN MFnew_get_vj(GEN mf); 4337 GEN Qab_tracerel(GEN v, long t, GEN a); 4338 GEN QabM_tracerel(GEN v, long t, GEN x); 4339 GEN QabV_tracerel(GEN v, long t, GEN x); 4340 GEN Qab_trace_init(long n, long m, GEN Pn, GEN Pm); 4341 GEN checkMF(GEN mf); 4342 GEN checkMF_i(GEN mf); 4343 int checkmf_i(GEN mf); 4344 GEN getcache(void); 4345 ulong hclassno6u(ulong d); 4346 GEN lfunmf(GEN mf, GEN F, long bitprec); 4347 GEN mfDelta(void); 4348 GEN mfEH(GEN gk); 4349 GEN mfEk(long k); 4350 GEN mfTheta(GEN psi); 4351 GEN mf_get_CHI(GEN F); 4352 long mf_get_N(GEN F); 4353 GEN mf_get_NK(GEN F); 4354 GEN mf_get_field(GEN F); 4355 GEN mf_get_gN(GEN F); 4356 GEN mf_get_gk(GEN F); 4357 long mf_get_k(GEN F); 4358 long mf_get_r(GEN F); 4359 long mf_get_type(GEN F); 4360 GEN mfatkin(GEN mfa, GEN F); 4361 GEN mfatkineigenvalues(GEN mf, long Q, long prec); 4362 GEN mfatkininit(GEN mf, long Q, long prec); 4363 GEN mfbasis(GEN mf, long space); 4364 GEN mfbd(GEN F, long d); 4365 GEN mfbracket(GEN F, GEN G, long m); 4366 long mfcharorder(GEN CHI); 4367 long mfcharmodulus(GEN CHI); 4368 GEN mfcharpol(GEN CHI); 4369 GEN mfcoef(GEN F, long n); 4370 GEN mfcoefs(GEN F, long n, long d); 4371 long mfconductor(GEN mf, GEN F); 4372 GEN mfcosets(GEN N); 4373 long mfcuspdim(long N, long k, GEN CHI); 4374 long mfcuspisregular(GEN NK, GEN cusp); 4375 GEN mfcusps(GEN gN); 4376 GEN mfcuspval(GEN mf, GEN F, GEN cusp, long bitprec); 4377 long mfcuspwidth(GEN gN, GEN cusp); 4378 GEN mfderiv(GEN F, long m); 4379 GEN mfderivE2(GEN F, long k); 4380 GEN mfdescribe(GEN F, GEN *PTU); 4381 GEN mfdim(GEN NK, long codespace); 4382 GEN mfdiv(GEN F, GEN G); 4383 GEN mfdiv_val(GEN F, GEN G, long vG); 4384 GEN mfeigenbasis(GEN mf); 4385 GEN mfeigensearch(GEN nklim, GEN vmod); 4386 GEN mfeisenstein(long k, GEN CHI1, GEN CHI2); 4387 long mfeisensteindim(long N, long k, GEN CHI); 4388 GEN mfembed(GEN E, GEN f); 4389 GEN mfembed0(GEN E, GEN v, long prec); 4390 GEN mfeval(GEN mf, GEN F, GEN vtau, long bitprec); 4391 GEN mffields(GEN mf); 4392 GEN mffromell(GEN E); 4393 GEN mffrometaquo(GEN eta, long flag); 4394 GEN mffromlfun(GEN L, long prec); 4395 GEN mffromqf(GEN Q, GEN P); 4396 long mffulldim(long N, long k, GEN CHI); 4397 GEN mfgaloisprojrep(GEN mf, GEN F, long prec); 4398 GEN mfgaloistype(GEN NK, GEN F); 4399 GEN mfhecke(GEN mf, GEN F, long n); 4400 GEN mfheckemat(GEN mf, GEN vecn); 4401 GEN mfinit(GEN NK, long space); 4402 GEN mfisCM(GEN F); 4403 long mfiscuspidal(GEN mf, GEN F); 4404 long mfisequal(GEN F, GEN G, long lim); 4405 GEN mfisetaquo(GEN F, long flag); 4406 GEN mfkohnenbasis(GEN mf); 4407 GEN mfkohnenbijection(GEN mf); 4408 GEN mfkohneneigenbasis(GEN mf, GEN bij); 4409 GEN mflinear(GEN vF, GEN vla); 4410 GEN mfmanin(GEN F, long bitprec); 4411 GEN mfmatembed(GEN E, GEN f); 4412 GEN mfmul(GEN F, GEN G); 4413 long mfnewdim(long N, long k, GEN CHI); 4414 long mfolddim(long N, long k, GEN CHI); 4415 GEN mfparams(GEN F); 4416 GEN mfperiodpol(GEN mf, GEN F, long flag, long prec); 4417 GEN mfperiodpolbasis(long k, long flag); 4418 GEN mfpetersson(GEN FS, GEN GS); 4419 GEN mfpow(GEN F, long n); 4420 GEN mfsearch(GEN nklim, GEN V, long space); 4421 GEN mfshift(GEN F, long sh); 4422 GEN mfshimura(GEN mf, GEN F, long t); 4423 GEN mfslashexpansion(GEN mf, GEN F, GEN gamma, long n, long flrat, GEN *param, long prec); 4424 long mfspace(GEN mf, GEN f); 4425 GEN mfsplit(GEN mf, long dimlim, long flag); 4426 long mfsturm(GEN A); 4427 long mfsturmNgk(long N, GEN k); 4428 long mfsturmNk(long N, long k); 4429 long mfsturm_mf(GEN mf); 4430 GEN mfsymboleval(GEN F, GEN path, GEN ga, long bitprec); 4431 GEN mfsymbol(GEN mf, GEN F, long bitprec); 4432 GEN mftaylor(GEN F, long n, long flreal, long prec); 4433 GEN mftobasis(GEN mf, GEN F, long flag); 4434 GEN mftobasisES(GEN mf, GEN F); 4435 GEN mftocol(GEN F, long lim, long d); 4436 GEN mftocoset(ulong N, GEN M, GEN listcosets); 4437 GEN mftonew(GEN mf, GEN F); 4438 GEN mftraceform(GEN NK, long coderat); 4439 GEN mftwist(GEN F, GEN D); 4440 GEN mfvecembed(GEN E, GEN v); 4441 GEN mfvectomat(GEN vF, long lim, long d); 4442 4443 /* mp.c */ 4444 4445 ulong Fl_inv(ulong x, ulong p); 4446 ulong Fl_invsafe(ulong x, ulong p); 4447 int Fp_ratlift(GEN x, GEN m, GEN amax, GEN bmax, GEN *a, GEN *b); 4448 int abscmpii(GEN x, GEN y); 4449 int abscmprr(GEN x, GEN y); 4450 int absequalii(GEN x, GEN y); 4451 GEN addii_sign(GEN x, long sx, GEN y, long sy); 4452 GEN addir_sign(GEN x, long sx, GEN y, long sy); 4453 GEN addmulii(GEN x, GEN y, GEN z); 4454 GEN addmulii_inplace(GEN x, GEN y, GEN z); 4455 GEN addrr_sign(GEN x, long sx, GEN y, long sy); 4456 GEN addsi_sign(long x, GEN y, long sy); 4457 GEN addsr(long x, GEN y); 4458 GEN addui_sign(ulong x, GEN y, long sy); 4459 GEN addumului(ulong a, ulong b, GEN Y); 4460 void affir(GEN x, GEN y); 4461 void affrr(GEN x, GEN y); 4462 GEN bezout(GEN a, GEN b, GEN *u, GEN *v); 4463 long cbezout(long a,long b,long *uu,long *vv); 4464 long cgcd(long a,long b); 4465 long clcm(long a,long b); 4466 int cmpii(GEN x, GEN y); 4467 int cmprr(GEN x, GEN y); 4468 long dblexpo(double x); 4469 ulong dblmantissa(double x); 4470 GEN dbltor(double x); 4471 GEN diviiexact(GEN x, GEN y); 4472 GEN divir(GEN x, GEN y); 4473 GEN divis(GEN y, long x); 4474 GEN divis_rem(GEN x, long y, long *rem); 4475 GEN absdiviu_rem(GEN y, ulong x, ulong *rem); 4476 GEN diviuuexact(GEN x, ulong y, ulong z); 4477 GEN diviuexact(GEN x, ulong y); 4478 GEN divri(GEN x, GEN y); 4479 GEN divrr(GEN x, GEN y); 4480 GEN divrs(GEN x, long y); 4481 GEN divru(GEN x, ulong y); 4482 GEN divsi(long x, GEN y); 4483 GEN divsr(long x, GEN y); 4484 GEN divur(ulong x, GEN y); 4485 GEN dvmdii(GEN x, GEN y, GEN *z); 4486 int equalii(GEN x, GEN y); 4487 int equalrr(GEN x, GEN y); 4488 GEN floorr(GEN x); 4489 GEN gcdii(GEN x, GEN y); 4490 GEN halfgcdii(GEN x, GEN y); 4491 GEN int2n(long n); 4492 GEN int2u(ulong n); 4493 GEN int2um1(ulong n); 4494 GEN int_normalize(GEN x, long known_zero_words); 4495 int invmod(GEN a, GEN b, GEN *res); 4496 ulong invmod2BIL(ulong b); 4497 GEN invr(GEN b); 4498 GEN mantissa_real(GEN x, long *e); 4499 GEN modii(GEN x, GEN y); 4500 void modiiz(GEN x, GEN y, GEN z); 4501 GEN mulii(GEN x, GEN y); 4502 GEN mulir(GEN x, GEN y); 4503 GEN mulrr(GEN x, GEN y); 4504 GEN mulsi(long x, GEN y); 4505 GEN mulsr(long x, GEN y); 4506 GEN mulss(long x, long y); 4507 GEN mului(ulong x, GEN y); 4508 GEN mulur(ulong x, GEN y); 4509 GEN muluu(ulong x, ulong y); 4510 GEN muluui(ulong x, ulong y, GEN z); 4511 void pari_kernel_close(void); 4512 void pari_kernel_init(void); 4513 const char * pari_kernel_version(void); 4514 GEN remi2n(GEN x, long n); 4515 double rtodbl(GEN x); 4516 GEN shifti(GEN x, long n); 4517 GEN sqri(GEN x); 4518 GEN sqrr(GEN x); 4519 GEN sqrs(long x); 4520 GEN sqrtr_abs(GEN x); 4521 GEN sqrtremi(GEN S, GEN *R); 4522 GEN sqru(ulong x); 4523 GEN subsr(long x, GEN y); 4524 GEN truedvmdii(GEN x, GEN y, GEN *z); 4525 GEN truedvmdis(GEN x, long y, GEN *z); 4526 GEN truedvmdsi(long x, GEN y, GEN *z); 4527 GEN trunc2nr(GEN x, long n); 4528 GEN mantissa2nr(GEN x, long n); 4529 GEN truncr(GEN x); 4530 ulong ugcd(ulong a,ulong b); 4531 ulong ulcm(ulong a, ulong b); 4532 ulong umodiu(GEN y, ulong x); 4533 long vals(ulong x); 4534 4535 /* nffactor.c */ 4536 4537 GEN FpC_ratlift(GEN P, GEN mod, GEN amax, GEN bmax, GEN denom); 4538 GEN FpM_ratlift(GEN M, GEN mod, GEN amax, GEN bmax, GEN denom); 4539 GEN FpX_ratlift(GEN P, GEN mod, GEN amax, GEN bmax, GEN denom); 4540 GEN QXQX_gcd(GEN P, GEN Q, GEN T); 4541 GEN ZXQX_gcd(GEN P, GEN Q, GEN T); 4542 GEN nffactor(GEN nf,GEN x); 4543 GEN nffactormod(GEN nf,GEN pol,GEN pr); 4544 GEN nfgcd(GEN P, GEN Q, GEN nf, GEN den); 4545 GEN nfgcd_all(GEN P, GEN Q, GEN T, GEN den, GEN *Pnew); 4546 int nfissquarefree(GEN nf, GEN x); 4547 GEN nfroots(GEN nf,GEN pol); 4548 GEN nfroots_if_split(GEN *pnf, GEN pol); 4549 GEN polfnf(GEN a, GEN t); 4550 GEN nfrootsof1(GEN x); 4551 4552 /* paricfg.c */ 4553 4554 extern const char *paricfg_datadir; 4555 extern const char *paricfg_version; 4556 extern const char *paricfg_buildinfo; 4557 extern const long paricfg_version_code; 4558 extern const char *paricfg_vcsversion; 4559 extern const char *paricfg_compiledate; 4560 extern const char *paricfg_mt_engine; 4561 extern const char *paricfg_gphelp; 4562 4563 /* part.c */ 4564 4565 void forpart(void *E, long call(void*,GEN), long k, GEN nbound, GEN abound); 4566 void forpart_init(forpart_t *T, long k, GEN abound, GEN nbound); 4567 GEN forpart_next(forpart_t *T); 4568 GEN forpart_prev(forpart_t *T); 4569 GEN numbpart(GEN x); 4570 GEN partitions(long k, GEN nbound, GEN abound); 4571 4572 /* forperm.c */ 4573 4574 void forperm(void *E, long call(void *, GEN), GEN k); 4575 void forperm_init(forperm_t *T, GEN k); 4576 GEN forperm_next(forperm_t *T); 4577 4578 /* forsubset.c */ 4579 4580 void forallsubset_init(forsubset_t *T, long n); 4581 void forksubset_init(forsubset_t *T, long n, long k); 4582 GEN forsubset_next(forsubset_t *T); 4583 void forsubset_init(forsubset_t *T, GEN nk); 4584 4585 /* perm.c */ 4586 4587 GEN Z_to_perm(long n, GEN x); 4588 GEN abelian_group(GEN G); 4589 GEN conjclasses_repr(GEN conj, long nb); 4590 GEN cyc_pow(GEN cyc, long exp); 4591 GEN cyc_pow_perm(GEN cyc, long exp); 4592 GEN cyclicgroup(GEN g, long s); 4593 GEN dicyclicgroup(GEN g1, GEN g2, long s1, long s2); 4594 GEN group_abelianHNF(GEN G, GEN L); 4595 GEN group_abelianSNF(GEN G, GEN L); 4596 long group_domain(GEN G); 4597 GEN group_elts(GEN G, long n); 4598 GEN group_export(GEN G, long format); 4599 GEN group_export_GAP(GEN G); 4600 GEN group_export_MAGMA(GEN G); 4601 long group_isA4S4(GEN G); 4602 long group_isabelian(GEN G); 4603 GEN group_leftcoset(GEN G, GEN g); 4604 long group_order(GEN G); 4605 long group_perm_normalize(GEN N, GEN g); 4606 GEN group_quotient(GEN G, GEN H); 4607 GEN group_rightcoset(GEN G, GEN g); 4608 GEN group_set(GEN G, long n); 4609 int group_subgroup_is_faithful(GEN G, GEN H); 4610 long group_subgroup_isnormal(GEN G, GEN H); 4611 GEN group_subgroups(GEN G); 4612 GEN group_to_cc(GEN G); 4613 GEN groupelts_abelian_group(GEN S); 4614 GEN groupelts_center(GEN S); 4615 GEN groupelts_conj_set(GEN elts, GEN p); 4616 GEN groupelts_conjclasses(GEN elts, long *nbcl); 4617 long groupelts_exponent(GEN G); 4618 GEN groupelts_quotient(GEN G, GEN H); 4619 GEN groupelts_set(GEN G, long n); 4620 GEN groupelts_to_group(GEN G); 4621 GEN numtoperm(long n, GEN x); 4622 int perm_commute(GEN p, GEN q); 4623 GEN perm_cycles(GEN v); 4624 GEN perm_order(GEN perm); 4625 ulong perm_orderu(GEN perm); 4626 GEN perm_pow(GEN perm, GEN exp); 4627 GEN perm_powu(GEN perm, ulong exp); 4628 long perm_sign(GEN perm); 4629 GEN perm_to_GAP(GEN v); 4630 GEN perm_to_Z(GEN v); 4631 GEN permcycles(GEN perm); 4632 GEN permorder(GEN perm); 4633 long permsign(GEN perm); 4634 GEN permtonum(GEN x); 4635 GEN quotient_group(GEN C, GEN G); 4636 GEN quotient_groupelts(GEN C); 4637 GEN quotient_perm(GEN C, GEN p); 4638 GEN quotient_subgroup_lift(GEN C, GEN H, GEN S); 4639 GEN subgroups_tableset(GEN S, long n); 4640 long tableset_find_index(GEN tbl, GEN set); 4641 GEN trivialgroup(void); 4642 GEN vec_insert(GEN v, long n, GEN x); 4643 int vec_is1to1(GEN v); 4644 int vec_isconst(GEN v); 4645 GEN vecperm_orbits(GEN v, long n); 4646 long vecsmall_duplicate(GEN x); 4647 long vecsmall_duplicate_sorted(GEN x); 4648 GEN vecsmall_indexsort(GEN V); 4649 int vecsmall_is1to1(GEN v); 4650 int vecsmall_isconst(GEN v); 4651 void vecsmall_sort(GEN V); 4652 GEN vecsmall_uniq(GEN V); 4653 GEN vecsmall_uniq_sorted(GEN V); 4654 GEN vecvecsmall_indexsort(GEN x); 4655 long vecvecsmall_max(GEN x); 4656 long vecvecsmall_search(GEN x, GEN y, long flag); 4657 GEN vecvecsmall_sort(GEN x); 4658 void vecvecsmall_sort_inplace(GEN x, GEN *perm); 4659 GEN vecvecsmall_sort_shallow(GEN x); 4660 GEN vecvecsmall_sort_uniq(GEN x); 4661 4662 /* mt.c */ 4663 4664 void mt_broadcast(GEN code); 4665 long mt_nbthreads(void); 4666 void mt_queue_end(struct pari_mt *pt); 4667 GEN mt_queue_get(struct pari_mt *pt, long *jobid, long *pending); 4668 void mt_queue_start(struct pari_mt *pt, GEN worker); 4669 void mt_queue_start_lim(struct pari_mt *pt, GEN worker, long lim); 4670 void mt_queue_submit(struct pari_mt *pt, long jobid, GEN work); 4671 void mt_sigint_block(void); 4672 void mt_sigint_unblock(void); 4673 void pari_mt_init(void); 4674 void pari_mt_close(void); 4675 4676 /* plotport.c */ 4677 4678 void color_to_rgb(GEN c, int *r, int *g, int *b); 4679 void colorname_to_rgb(const char *s, int *r, int *g, int *b); 4680 void long_to_rgb(long c, int *r, int *g, int *b); 4681 void pari_plot_by_file(const char *env, const char *suf, const char *img); 4682 void pari_set_plot_engine(void (*plot)(PARI_plot *)); 4683 void pari_kill_plot_engine(void); 4684 GEN parploth(GEN a, GEN b, GEN code, long flags,long n, long prec); 4685 GEN parplothexport(GEN fmt, GEN a, GEN b, GEN code, long flags, long n, long prec); 4686 void plotbox(long ne, GEN gx2, GEN gy2, long fl); 4687 void plotclip(long rect); 4688 GEN plotcolor(long ne, GEN c); 4689 void plotcopy(long source, long dest, GEN xoff, GEN yoff, long flag); 4690 GEN plotcursor(long ne); 4691 void plotdraw(GEN list, long flag); 4692 GEN plotexport(GEN fmt, GEN wxy, long flag); 4693 GEN ploth(void *E, GEN(*f)(void*,GEN), GEN a, GEN b, long flags,long n, long prec); 4694 GEN plothexport(GEN fmt, void *E, GEN(*f)(void*,GEN), GEN a,GEN b, long flags, long n, long prec); 4695 GEN plothraw(GEN listx, GEN listy, long flag); 4696 GEN plothrawexport(GEN fmt, GEN X, GEN Y, long flags); 4697 GEN plothsizes(long flag); 4698 void plotinit(long ne, GEN x, GEN y, long flag); 4699 void plotkill(long ne); 4700 void plotline(long ne, GEN gx2, GEN gy2); 4701 void plotlines(long ne, GEN listx, GEN listy, long flag); 4702 void plotlinetype(long ne, long t); 4703 void plotmove(long ne, GEN x, GEN y); 4704 void plotpoints(long ne, GEN listx, GEN listy); 4705 void plotpointsize(long ne, GEN size); 4706 void plotpointtype(long ne, long t); 4707 void plotrbox(long ne, GEN x2, GEN y2, long fl); 4708 GEN plotrecth(void *E, GEN(*f)(void*,GEN), long ne, GEN a,GEN b, ulong flags,long n, long prec); 4709 GEN plotrecthraw(long ne, GEN data, long flags); 4710 void plotrline(long ne, GEN x2, GEN y2); 4711 void plotrmove(long ne, GEN x, GEN y); 4712 void plotrpoint(long ne, GEN x, GEN y); 4713 void plotscale(long ne, GEN x1, GEN x2, GEN y1, GEN y2); 4714 void plotstring(long ne, char *x, long dir); 4715 void psdraw(GEN list, long flag); 4716 GEN psploth(void *E, GEN(*f)(void*,GEN), GEN a, GEN b, long flags, long n, long prec); 4717 GEN psplothraw(GEN listx, GEN listy, long flag); 4718 char* rect2ps(GEN w, GEN x, GEN y, PARI_plot *T); 4719 char* rect2ps_i(GEN w, GEN x, GEN y, PARI_plot *T, int plotps); 4720 char* rect2svg(GEN w, GEN x, GEN y, PARI_plot *T); 4721 4722 /* plottty.c */ 4723 4724 void pariplot(void* E, GEN (*fun)(void *E, GEN x), GEN a, GEN b, GEN ysmlu,GEN ybigu, long prec); 4725 4726 /* polarit1.c */ 4727 4728 GEN ZX_Zp_root(GEN f, GEN a, GEN p, long prec); 4729 GEN Zp_appr(GEN f, GEN a); 4730 int cmp_padic(GEN x, GEN y); 4731 GEN factorpadic(GEN x, GEN p, long r); 4732 GEN gdeuc(GEN x, GEN y); 4733 GEN grem(GEN x, GEN y); 4734 GEN padicappr(GEN f, GEN a); 4735 GEN poldivrem(GEN x, GEN y, GEN *pr); 4736 GEN polrootspadic(GEN f, GEN p, long r); 4737 4738 /* polarit2.c */ 4739 4740 ulong Flv_factorback(GEN L, GEN e, ulong p); 4741 GEN FlxqV_factorback(GEN L, GEN e, GEN Tp, ulong p); 4742 GEN FpV_factorback(GEN L, GEN e, GEN p); 4743 GEN FqV_factorback(GEN L, GEN e, GEN Tp, GEN p); 4744 GEN Q_content(GEN x); 4745 GEN Q_content_safe(GEN x); 4746 GEN Q_denom(GEN x); 4747 GEN Q_denom_safe(GEN x); 4748 GEN Q_div_to_int(GEN x, GEN c); 4749 GEN Q_gcd(GEN x, GEN y); 4750 GEN Q_mul_to_int(GEN x, GEN c); 4751 GEN Q_muli_to_int(GEN x, GEN d); 4752 GEN Q_primitive_part(GEN x, GEN *ptc); 4753 GEN Q_primpart(GEN x); 4754 GEN Q_remove_denom(GEN x, GEN *ptd); 4755 GEN Q_factor(GEN x); 4756 GEN Q_factor_limit(GEN x, ulong lim); 4757 long Rg_type(GEN x, GEN *ptp, GEN *ptpol, long *ptpa); 4758 long RgM_RgC_type(GEN x, GEN y, GEN *p, GEN *pol, long *pa); 4759 GEN RgM_rescale_to_int(GEN x); 4760 long RgM_type(GEN x, GEN *p, GEN *pol, long *pa); 4761 long RgM_type2(GEN x, GEN y, GEN *p, GEN *pol, long *pa); 4762 long RgV_type(GEN x, GEN *p, GEN *pol, long *pa); 4763 long RgV_type2(GEN x, GEN y, GEN *p, GEN *pol, long *pa); 4764 long RgX_Rg_type(GEN x, GEN y, GEN *p, GEN *pol, long *pa); 4765 GEN RgX_rescale_to_int(GEN x); 4766 GEN RgX_disc(GEN x); 4767 GEN RgX_extgcd(GEN x, GEN y, GEN *U, GEN *V); 4768 GEN RgX_extgcd_simple(GEN a, GEN b, GEN *pu, GEN *pv); 4769 GEN RgX_gcd(GEN x, GEN y); 4770 GEN RgX_gcd_simple(GEN x, GEN y); 4771 GEN RgX_halfgcd(GEN x, GEN y); 4772 GEN RgX_resultant_all(GEN P, GEN Q, GEN *sol); 4773 long RgX_sturmpart(GEN x, GEN ab); 4774 GEN RgX_sylvestermatrix(GEN x, GEN y); 4775 long RgX_type(GEN x, GEN *ptp, GEN *ptpol, long *ptpa); 4776 long RgX_type2(GEN x, GEN y, GEN *ptp, GEN *ptpol, long *ptpa); 4777 long RgX_type3(GEN x, GEN y, GEN z, GEN *ptp, GEN *ptpol, long *ptpa); 4778 void RgX_type_decode(long x, long *t1, long *t2); 4779 int RgX_type_is_composite(long t); 4780 GEN RgXQ_charpoly(GEN x, GEN T, long v); 4781 GEN RgXQ_inv(GEN x, GEN y); 4782 GEN RgXQ_mul(GEN x, GEN y, GEN T); 4783 int RgXQ_ratlift(GEN y, GEN x, long amax, long bmax, GEN *P, GEN *Q); 4784 GEN RgXQ_sqr(GEN x, GEN y); 4785 GEN Z_content(GEN x); 4786 GEN ZX_content(GEN x); 4787 GEN centermod(GEN x, GEN p); 4788 GEN centermod_i(GEN x, GEN p, GEN ps2); 4789 GEN centermodii(GEN x, GEN p, GEN po2); 4790 GEN content(GEN x); 4791 GEN content0(GEN x, GEN D); 4792 GEN deg1_from_roots(GEN L, long v); 4793 GEN factor(GEN x); 4794 GEN factor0(GEN x, GEN flag); 4795 GEN factorback(GEN fa); 4796 GEN factorback2(GEN fa,GEN e); 4797 GEN gbezout(GEN x, GEN y, GEN *u, GEN *v); 4798 GEN gdivexact(GEN x, GEN y); 4799 GEN gen_factorback(GEN L, GEN e, void *E, GEN (*_mul)(void*,GEN,GEN), 4800 GEN (*_pow)(void*,GEN,GEN)); 4801 GEN ggcd(GEN x, GEN y); 4802 GEN ggcd0(GEN x, GEN y); 4803 GEN ghalfgcd(GEN x, GEN y); 4804 GEN ginvmod(GEN x, GEN y); 4805 GEN glcm(GEN x, GEN y); 4806 GEN glcm0(GEN x, GEN y); 4807 GEN idealfactorback(GEN nf, GEN L, GEN e, int red); 4808 GEN newtonpoly(GEN x, GEN p); 4809 GEN nffactorback(GEN nf, GEN L, GEN e); 4810 GEN nfrootsQ(GEN x); 4811 GEN poldisc0(GEN x, long v); 4812 long polisirreducible(GEN x); 4813 GEN polresultant0(GEN x, GEN y,long v,long flag); 4814 GEN polsym(GEN x, long n); 4815 GEN primitive_part(GEN x, GEN *c); 4816 GEN primpart(GEN x); 4817 GEN reduceddiscsmith(GEN pol); 4818 GEN resultant2(GEN x, GEN y); 4819 GEN resultant(GEN u, GEN v); 4820 GEN rnfcharpoly(GEN nf, GEN T, GEN alpha, long v); 4821 GEN roots_from_deg1(GEN x); 4822 GEN roots_to_pol(GEN a, long v); 4823 GEN roots_to_pol_r1(GEN a, long v, long r1); 4824 long sturmpart(GEN x, GEN a, GEN b); 4825 GEN subresext(GEN x, GEN y, GEN *U, GEN *V); 4826 GEN sylvestermatrix(GEN x,GEN y); 4827 GEN trivial_fact(void); 4828 GEN gcdext0(GEN x, GEN y); 4829 GEN polresultantext0(GEN x, GEN y, long v); 4830 GEN polresultantext(GEN x, GEN y); 4831 GEN prime_fact(GEN x); 4832 GEN vec_Q_primpart(GEN M); 4833 GEN vecprod(GEN v); 4834 GEN ZV_lcm(GEN x); 4835 4836 /* polarit3.c */ 4837 4838 GEN Flx_FlxY_resultant(GEN a, GEN b, ulong pp); 4839 GEN FlxX_resultant(GEN u, GEN v, ulong p, long sx); 4840 GEN FpX_FpXY_resultant(GEN a, GEN b0, GEN p); 4841 GEN FpX_translate(GEN P, GEN c, GEN p); 4842 GEN FpXQX_normalize(GEN z, GEN T, GEN p); 4843 GEN FpXV_FpC_mul(GEN V, GEN W, GEN p); 4844 GEN FpXY_FpXQ_evaly(GEN Q, GEN y, GEN T, GEN p, long vx); 4845 GEN FpXC_center(GEN C, GEN p, GEN pov2); 4846 GEN FpXM_center(GEN M, GEN p, GEN pov2); 4847 GEN Fq_Fp_mul(GEN x, GEN y, GEN T, GEN p); 4848 GEN Fq_add(GEN x, GEN y, GEN T/*unused*/, GEN p); 4849 GEN Fq_div(GEN x, GEN y, GEN T, GEN p); 4850 GEN Fq_halve(GEN x, GEN T/*unused*/, GEN p); 4851 GEN Fq_inv(GEN x, GEN T, GEN p); 4852 GEN Fq_invsafe(GEN x, GEN T, GEN p); 4853 GEN Fq_mul(GEN x, GEN y, GEN T, GEN p); 4854 GEN Fq_mulu(GEN x, ulong y, /*unused*/GEN T, GEN p); 4855 GEN Fq_neg(GEN x, GEN T, GEN p); 4856 GEN Fq_neg_inv(GEN x, GEN T, GEN p); 4857 GEN Fq_pow(GEN x, GEN n, GEN T, GEN p); 4858 GEN Fq_powu(GEN x, ulong n, GEN pol, GEN p); 4859 GEN Fq_sqr(GEN x, GEN T, GEN p); 4860 GEN Fq_sqrt(GEN x, GEN T, GEN p); 4861 GEN Fq_sqrtn(GEN x, GEN n, GEN T, GEN p, GEN *zeta); 4862 GEN Fq_sub(GEN x, GEN y, GEN T/*unused*/, GEN p); 4863 GEN FqC_Fq_mul(GEN x, GEN y, GEN T, GEN p); 4864 GEN FqC_FqV_mul(GEN x, GEN y, GEN T, GEN p); 4865 GEN FqC_add(GEN x, GEN y, GEN T, GEN p); 4866 GEN FqC_sub(GEN x, GEN y, GEN T, GEN p); 4867 GEN FqC_to_FlxC(GEN v, GEN T, GEN pp); 4868 GEN FqM_to_FlxM(GEN x, GEN T, GEN pp); 4869 GEN FqV_red(GEN z, GEN T, GEN p); 4870 GEN FqV_roots_to_pol(GEN V, GEN T, GEN p, long v); 4871 GEN FqV_to_FlxV(GEN v, GEN T, GEN pp); 4872 GEN FqX_Fq_add(GEN y, GEN x, GEN T, GEN p); 4873 GEN FqX_Fq_mul_to_monic(GEN P, GEN U, GEN T, GEN p); 4874 GEN FqX_Fq_sub(GEN y, GEN x, GEN T, GEN p); 4875 GEN FqX_eval(GEN x, GEN y, GEN T, GEN p); 4876 GEN FqX_translate(GEN P, GEN c, GEN T, GEN p); 4877 GEN FqXQ_matrix_pow(GEN y, long n, long m, GEN S, GEN T, GEN p); 4878 GEN FqXQ_powers(GEN x, long l, GEN S, GEN T, GEN p); 4879 GEN FqXY_eval(GEN Q, GEN y, GEN x, GEN T, GEN p); 4880 GEN FqXY_evalx(GEN Q, GEN x, GEN T, GEN p); 4881 GEN QX_disc(GEN x); 4882 GEN QX_gcd(GEN a,GEN b); 4883 GEN QX_resultant(GEN A, GEN B); 4884 GEN QXQ_div(GEN A, GEN B, GEN C); 4885 GEN QXQ_intnorm(GEN A, GEN B); 4886 GEN QXQ_inv(GEN A, GEN B); 4887 GEN QXQ_mul(GEN A, GEN B, GEN T); 4888 GEN QXQ_norm(GEN A, GEN B); 4889 GEN QXQ_sqr(GEN A, GEN B); 4890 int Rg_is_Fp(GEN x, GEN *p); 4891 int Rg_is_FpXQ(GEN x, GEN *pT, GEN *pp); 4892 GEN Rg_to_Fp(GEN x, GEN p); 4893 GEN Rg_to_FpXQ(GEN x, GEN T, GEN p); 4894 GEN RgC_to_FpC(GEN x, GEN p); 4895 GEN RgC_to_FqC(GEN x, GEN T, GEN p); 4896 int RgM_is_FpM(GEN x, GEN *p); 4897 GEN RgM_to_Flm(GEN x, ulong p); 4898 GEN RgM_to_FpM(GEN x, GEN p); 4899 GEN RgM_to_FqM(GEN x, GEN T, GEN p); 4900 int RgV_is_FpV(GEN x, GEN *p); 4901 GEN RgV_to_Flv(GEN x, ulong p); 4902 GEN RgV_to_FpV(GEN x, GEN p); 4903 int RgX_is_FpX(GEN x, GEN *p); 4904 GEN RgX_to_FpX(GEN x, GEN p); 4905 int RgX_is_FpXQX(GEN x, GEN *pT, GEN *pp); 4906 GEN RgX_to_FpXQX(GEN x, GEN T, GEN p); 4907 GEN RgX_to_FqX(GEN x, GEN T, GEN p); 4908 int Z_incremental_CRT(GEN *H, ulong Hp, GEN *q, ulong p); 4909 GEN Z_init_CRT(ulong Hp, ulong p); 4910 int ZM_incremental_CRT(GEN *H, GEN Hp, GEN *q, ulong p); 4911 GEN ZM_init_CRT(GEN Hp, ulong p); 4912 GEN ZX_ZXY_resultant(GEN a, GEN b); 4913 GEN ZX_ZXY_rnfequation(GEN A, GEN B, long *lambda); 4914 GEN ZX_disc(GEN x); 4915 GEN ZX_gcd(GEN A, GEN B); 4916 GEN ZX_gcd_all(GEN A, GEN B, GEN *Anew); 4917 int ZX_incremental_CRT(GEN *ptH, GEN Hp, GEN *q, ulong p); 4918 GEN ZX_init_CRT(GEN Hp, ulong p, long v); 4919 int ZX_is_squarefree(GEN x); 4920 GEN ZX_radical(GEN A); 4921 GEN ZX_resultant(GEN A, GEN B); 4922 int ZXM_incremental_CRT(GEN *pH, GEN Hp, GEN *ptq, ulong p); 4923 GEN ZXM_init_CRT(GEN Hp, long deg, ulong p); 4924 GEN ZXQ_minpoly(GEN A, GEN T, long d, ulong b); 4925 GEN ZXQ_charpoly(GEN A, GEN T, long v); 4926 GEN characteristic(GEN x); 4927 GEN ffinit(GEN p, long n, long v); 4928 GEN ffnbirred(GEN p, long n); 4929 GEN ffnbirred0(GEN p, long n, long flag); 4930 GEN ffsumnbirred(GEN p, long n); 4931 const struct bb_field *get_Fq_field(void **E, GEN T, GEN p); 4932 GEN init_Flxq(ulong p, long n, long v); 4933 GEN init_Fq(GEN p, long n, long v); 4934 GEN nfX_disc(GEN nf, GEN x); 4935 GEN nfX_resultant(GEN nf, GEN x, GEN y); 4936 GEN pol_x_powers(long N, long v); 4937 GEN residual_characteristic(GEN x); 4938 4939 /* polclass.c */ 4940 4941 GEN polclass(GEN D, long inv, long xvar); 4942 4943 /* polmodular.c */ 4944 4945 GEN Fp_modinv_to_j(GEN x, long inv, GEN p); 4946 GEN Fp_polmodular_evalx(long L, long inv, GEN J, GEN P, long v, int compute_derivs); 4947 void check_modinv(long inv); 4948 long disc_best_modinv(long D); 4949 long modinv_height_factor(long inv); 4950 int modinv_good_disc(long inv, long D); 4951 int modinv_good_prime(long inv, long p); 4952 int modinv_is_Weber(long inv); 4953 int modinv_is_double_eta(long inv); 4954 GEN polmodular(long L, long inv, GEN x, long yvar, long compute_derivs); 4955 GEN polmodular_ZM(long L, long inv); 4956 GEN polmodular_ZXX(long L, long inv, long xvar, long yvar); 4957 4958 /* prime.c */ 4959 4960 long BPSW_isprime(GEN x); 4961 long BPSW_psp(GEN N); 4962 GEN addprimes(GEN primes); 4963 GEN gisprime(GEN x, long flag); 4964 GEN gispseudoprime(GEN x, long flag); 4965 GEN gprimepi_upper_bound(GEN x); 4966 GEN gprimepi_lower_bound(GEN x); 4967 long isprime(GEN x); 4968 long ispseudoprime(GEN x, long flag); 4969 long millerrabin(GEN n, long k); 4970 GEN prime(long n); 4971 GEN primecert(GEN x, long flag); 4972 GEN primecertexport(GEN cert, long flag); 4973 long primecertisvalid(GEN x); 4974 GEN primepi(GEN x); 4975 double primepi_upper_bound(double x); 4976 double primepi_lower_bound(double x); 4977 GEN primes(long n); 4978 GEN primes_interval(GEN a, GEN b); 4979 GEN primes_interval_zv(ulong a, ulong b); 4980 GEN primes_upto_zv(ulong b); 4981 GEN primes0(GEN n); 4982 GEN primes_zv(long m); 4983 GEN randomprime(GEN N); 4984 GEN randomprime0(GEN N, GEN q); 4985 GEN removeprimes(GEN primes); 4986 int uis2psp(ulong n); 4987 int uispsp(ulong a, ulong n); 4988 int uislucaspsp(ulong n); 4989 int uisprime(ulong n); 4990 int uisprime_101(ulong n); 4991 int uisprime_661(ulong n); 4992 ulong uprime(long n); 4993 ulong uprimepi(ulong n); 4994 4995 /* qfisom.c */ 4996 4997 GEN qfauto(GEN g, GEN flags); 4998 GEN qfauto0(GEN g, GEN flags); 4999 GEN qfautoexport(GEN g, long flag); 5000 GEN qfisom(GEN g, GEN h, GEN flags, GEN G); 5001 GEN qfisom0(GEN g, GEN h, GEN flags, GEN G); 5002 GEN qfisominit(GEN g, GEN flags, GEN minvec); 5003 GEN qfisominit0(GEN g, GEN flags, GEN minvec); 5004 GEN qforbits(GEN G, GEN V); 5005 5006 /* qfparam.c */ 5007 5008 GEN qfsolve(GEN G); 5009 GEN qfparam(GEN G, GEN sol, long fl); 5010 5011 /* random.c */ 5012 5013 GEN genrand(GEN N); 5014 GEN getrand(void); 5015 ulong pari_rand(void); 5016 GEN randomi(GEN x); 5017 GEN randomr(long prec); 5018 GEN random_F2x(long d, long vs); 5019 ulong random_Fl(ulong n); 5020 long random_bits(long k); 5021 GEN random_zv(long n); 5022 void setrand(GEN seed); 5023 5024 /* ratpoints.c */ 5025 5026 GEN ellratpoints(GEN E, GEN h, long flag); 5027 GEN hyperellratpoints(GEN P, GEN h, long flag); 5028 5029 /* rootpol.c */ 5030 5031 GEN QX_complex_roots(GEN p, long l); 5032 GEN FFT(GEN W, GEN x); 5033 GEN FFTinv(GEN W, GEN x); 5034 GEN cleanroots(GEN x,long l); 5035 double fujiwara_bound(GEN p); 5036 double fujiwara_bound_real(GEN p, long sign); 5037 int isrealappr(GEN x, long l); 5038 GEN polgraeffe(GEN p); 5039 GEN polmod_to_embed(GEN x, long prec); 5040 GEN polrootsbound(GEN p, GEN tau); 5041 GEN roots(GEN x,long l); 5042 GEN realroots(GEN P, GEN ab, long prec); 5043 GEN ZX_graeffe(GEN p); 5044 GEN ZX_realroots_irred(GEN P, long prec); 5045 long ZX_sturm(GEN P); 5046 long ZX_sturm_irred(GEN P); 5047 long ZX_sturmpart(GEN P, GEN ab); 5048 GEN ZX_Uspensky(GEN P, GEN ab, long flag, long prec); 5049 5050 /* subcyclo.c */ 5051 5052 GEN factor_Aurifeuille(GEN p, long n); 5053 GEN factor_Aurifeuille_prime(GEN p, long n); 5054 GEN galoissubcyclo(GEN N, GEN sg, long flag, long v); 5055 GEN polsubcyclo(long n, long d, long v); 5056 5057 /* subfield.c */ 5058 5059 GEN nfsubfields(GEN nf, long d); 5060 GEN nfsubfields0(GEN nf, long d, long flag); 5061 GEN nfsubfieldscm(GEN nf, long flag); 5062 GEN nfsubfieldsmax(GEN nf, long flag); 5063 5064 /* subgroup.c */ 5065 5066 GEN subgrouplist(GEN cyc, GEN bound); 5067 void forsubgroup(void *E, long fun(void*,GEN), GEN cyc, GEN B); 5068 5069 /* stark.c */ 5070 5071 GEN ag_kernel(GEN S); 5072 GEN ag_subgroup_image(GEN S, GEN H); 5073 GEN bnrL1(GEN bnr, GEN sbgrp, long flag, long prec); 5074 GEN bnrrootnumber(GEN bnr, GEN chi, long flag, long prec); 5075 GEN bnrstark(GEN bnr, GEN subgroup, long prec); 5076 GEN cyc2elts(GEN cyc); 5077 GEN qfbforms(GEN D); 5078 5079 /* str.c */ 5080 5081 GEN chartoGENstr(char c); 5082 char* pari_strdup(const char *s); 5083 char* pari_strndup(const char *s, long n); 5084 char* stack_strcat(const char *s, const char *t); 5085 char* stack_strdup(const char *s); 5086 GEN pari_strchr(GEN g); 5087 GEN strjoin(GEN v, GEN p); 5088 GEN strntoGENstr(const char *s, long n0); 5089 GEN strsplit(GEN x, GEN p); 5090 GEN strtoGENstr(const char *s); 5091 const char* type_name(long t); 5092 GEN type0(GEN x); 5093 5094 /* sumiter.c */ 5095 5096 GEN asympnum(void *E, GEN (*f)(void *,GEN,long), GEN alpha, long prec); 5097 GEN asympnumraw(void *E, GEN (*f)(void *,GEN,long), long LIM, GEN alpha, long prec); 5098 GEN derivnum(void *E, GEN (*eval)(void *, GEN, long prec), GEN x, long prec); 5099 GEN derivnumk(void *E, GEN (*eval)(void *, GEN, long), GEN x, GEN ind0, long prec); 5100 GEN derivfun(void *E, GEN (*eval)(void *, GEN, long prec), GEN x, long prec); 5101 GEN derivfunk(void *E, GEN (*eval)(void *, GEN, long), GEN x, GEN ind0, long prec); 5102 int forvec_init(forvec_t *T, GEN x, long flag); 5103 GEN forvec_next(forvec_t *T); 5104 GEN laurentseries(void *E, GEN (*f)(void*,GEN x, long), long M, long v, long prec); 5105 GEN limitnum(void *E, GEN (*f)(void *,GEN,long), GEN alpha, long prec); 5106 GEN polzag(long n, long m); 5107 GEN prodeuler(void *E, GEN (*eval)(void *, GEN), GEN ga, GEN gb, long prec); 5108 GEN prodinf(void *E, GEN (*eval)(void *, GEN), GEN a, long prec); 5109 GEN prodinf1(void *E, GEN (*eval)(void *, GEN), GEN a, long prec); 5110 GEN solvestep(void *E, GEN (*eval)(void *, GEN), GEN a, GEN b, GEN step, long flag, long prec); 5111 GEN sumalt(void *E, GEN (*eval)(void *, GEN), GEN a, long prec); 5112 GEN sumalt2(void *E, GEN (*eval)(void *, GEN), GEN a, long prec); 5113 GEN sumpos(void *E, GEN (*eval)(void *, GEN), GEN a, long prec); 5114 GEN sumpos2(void *E, GEN (*eval)(void *, GEN), GEN a, long prec); 5115 GEN suminf(void *E, GEN (*eval)(void *, GEN), GEN a, long prec); 5116 GEN suminf_bitprec(void *E, GEN (*eval)(void *, GEN), GEN a, long prec); 5117 GEN sumdivmultexpr(void *D, GEN (*fun)(void*, GEN), GEN num); 5118 GEN zbrent(void *E, GEN (*eval)(void *, GEN), GEN a, GEN b, long prec); 5119 5120 /* thue.c */ 5121 5122 GEN bnfisintnorm(GEN x, GEN y); 5123 GEN bnfisintnormabs(GEN bnf, GEN a); 5124 GEN thue(GEN thueres, GEN rhs, GEN ne); 5125 GEN thueinit(GEN pol, long flag, long prec); 5126 5127 /* trans1.c */ 5128 5129 GEN Pi2n(long n, long prec); 5130 GEN PiI2(long prec); 5131 GEN PiI2n(long n, long prec); 5132 GEN Qp_exp(GEN x); 5133 GEN Qp_log(GEN x); 5134 GEN Qp_sqrt(GEN x); 5135 GEN Qp_sqrtn(GEN x, GEN n, GEN *zetan); 5136 long Zn_ispower(GEN a, GEN q, GEN K, GEN *pt); 5137 long Zn_issquare(GEN x, GEN n); 5138 GEN Zn_sqrt(GEN x, GEN n); 5139 GEN Zp_teichmuller(GEN x, GEN p, long n, GEN q); 5140 GEN agm(GEN x, GEN y, long prec); 5141 GEN constcatalan(long prec); 5142 GEN consteuler(long prec); 5143 GEN constlog2(long prec); 5144 GEN constpi(long prec); 5145 GEN cxexpm1(GEN z, long prec); 5146 GEN ellE(GEN k, long prec); 5147 GEN ellK(GEN k, long prec); 5148 GEN expIr(GEN x); 5149 GEN exp1r_abs(GEN x); 5150 GEN gcos(GEN x, long prec); 5151 GEN gcotan(GEN x, long prec); 5152 GEN gcotanh(GEN x, long prec); 5153 GEN gexp(GEN x, long prec); 5154 GEN gexpm1(GEN x, long prec); 5155 GEN glog(GEN x, long prec); 5156 GEN glog1p(GEN x, long prec); 5157 GEN gpow(GEN x, GEN n, long prec); 5158 GEN gpowers(GEN x, long n); 5159 GEN gpowers0(GEN x, long n, GEN x0); 5160 GEN gpowgs(GEN x, long n); 5161 GEN grootsof1(long N, long prec); 5162 GEN gsin(GEN x, long prec); 5163 GEN gsinc(GEN x, long prec); 5164 void gsincos(GEN x, GEN *s, GEN *c, long prec); 5165 GEN gsqrpowers(GEN q, long n); 5166 GEN gsqrt(GEN x, long prec); 5167 GEN gsqrtn(GEN x, GEN n, GEN *zetan, long prec); 5168 GEN gtan(GEN x, long prec); 5169 GEN logr_abs(GEN x); 5170 GEN mpcos(GEN x); 5171 GEN mpeuler(long prec); 5172 GEN mpcatalan(long prec); 5173 void mpsincosm1(GEN x, GEN *s, GEN *c); 5174 GEN mpexp(GEN x); 5175 GEN mpexpm1(GEN x); 5176 GEN mplog(GEN x); 5177 GEN mplog2(long prec); 5178 GEN mppi(long prec); 5179 GEN mpsin(GEN x); 5180 void mpsincos(GEN x, GEN *s, GEN *c); 5181 GEN powPis(GEN s, long prec); 5182 GEN pow2Pis(GEN s, long prec); 5183 GEN powersr(GEN a, long n); 5184 GEN powis(GEN x, long n); 5185 GEN powiu(GEN p, ulong k); 5186 GEN powrfrac(GEN x, long n, long d); 5187 GEN powrs(GEN x, long n); 5188 GEN powrshalf(GEN x, long s); 5189 GEN powru(GEN x, ulong n); 5190 GEN powruhalf(GEN x, ulong s); 5191 GEN powuu(ulong p, ulong k); 5192 GEN powgi(GEN x, GEN n); 5193 GEN rootsof1_cx(GEN d, long prec); 5194 GEN rootsof1u_cx(ulong d, long prec); 5195 GEN rootsof1q_cx(long a, long b, long prec); 5196 GEN rootsof1powinit(long a, long b, long prec); 5197 GEN rootsof1pow(GEN T, long c); 5198 GEN serchop(GEN s, long n); 5199 GEN serchop_i(GEN s, long n); 5200 GEN serchop0(GEN s); 5201 GEN sqrtnint(GEN a, long n); 5202 GEN sqrtnr_abs(GEN x, long n); 5203 GEN teich(GEN x); 5204 GEN teichmullerinit(long p, long n); 5205 GEN teichmuller(GEN x, GEN tab); 5206 GEN trans_eval(const char *fun, GEN (*f) (GEN, long), GEN x, long prec); 5207 ulong upowuu(ulong p, ulong k); 5208 GEN upowers(ulong x, long n); 5209 ulong usqrtn(ulong a, ulong n); 5210 ulong usqrt(ulong a); 5211 5212 /* trans2.c */ 5213 5214 GEN Qp_gamma(GEN x); 5215 GEN gacosh(GEN x, long prec); 5216 GEN gacos(GEN x, long prec); 5217 GEN garg(GEN x, long prec); 5218 GEN gasinh(GEN x, long prec); 5219 GEN gasin(GEN x, long prec); 5220 GEN gatan(GEN x, long prec); 5221 GEN gatanh(GEN x, long prec); 5222 GEN gcosh(GEN x, long prec); 5223 GEN ggammah(GEN x, long prec); 5224 GEN ggamma(GEN x, long prec); 5225 GEN ggamma1m1(GEN x, long prec); 5226 GEN glngamma(GEN x, long prec); 5227 GEN gpsi(GEN x, long prec); 5228 GEN gsinh(GEN x, long prec); 5229 GEN gtanh(GEN x, long prec); 5230 GEN mpfactr(long n, long prec); 5231 void mpsinhcosh(GEN x, GEN *s, GEN *c); 5232 GEN psi1series(long n, long v, long prec); 5233 GEN sumformal(GEN T, long v); 5234 5235 /* trans3.c */ 5236 5237 int RgV_is_arithprog(GEN v, GEN *a, GEN *b); 5238 GEN constzeta(long n, long prec); 5239 GEN cxEk(GEN tau, long k, long prec); 5240 double dblmodulus(GEN x); 5241 GEN dilog(GEN x, long prec); 5242 GEN eint1(GEN x, long prec); 5243 GEN expIPiR(GEN x, long prec); 5244 GEN expIPiC(GEN z, long prec); 5245 GEN expIxy(GEN x, GEN y, long prec); 5246 GEN eta(GEN x, long prec); 5247 GEN eta0(GEN x, long flag,long prec); 5248 GEN gerfc(GEN x, long prec); 5249 GEN glambertW(GEN y, long prec); 5250 GEN gpolylog(long m, GEN x, long prec); 5251 GEN gzeta(GEN x, long prec); 5252 GEN hbessel1(GEN n, GEN z, long prec); 5253 GEN hbessel2(GEN n, GEN z, long prec); 5254 GEN hyperu(GEN a, GEN b, GEN gx, long prec); 5255 GEN ibessel(GEN n, GEN z, long prec); 5256 GEN incgam(GEN a, GEN x, long prec); 5257 GEN incgam0(GEN a, GEN x, GEN z,long prec); 5258 GEN incgamc(GEN a, GEN x, long prec); 5259 GEN jbessel(GEN n, GEN z, long prec); 5260 GEN jbesselh(GEN n, GEN z, long prec); 5261 GEN jell(GEN x, long prec); 5262 GEN kbessel(GEN nu, GEN gx, long prec); 5263 GEN mpeint1(GEN x, GEN expx); 5264 GEN mplambertW(GEN y); 5265 GEN mpveceint1(GEN C, GEN eC, long n); 5266 GEN nbessel(GEN n, GEN z, long prec); 5267 GEN polylog0(long m, GEN x, long flag, long prec); 5268 GEN sumdedekind(GEN h, GEN k); 5269 GEN sumdedekind_coprime(GEN h, GEN k); 5270 GEN szeta(long x, long prec); 5271 GEN theta(GEN q, GEN z, long prec); 5272 GEN thetanullk(GEN q, long k, long prec); 5273 GEN trueeta(GEN x, long prec); 5274 GEN u_sumdedekind_coprime(long h, long k); 5275 GEN upper_to_cx(GEN x, long *prec); 5276 GEN veceint1(GEN nmax, GEN C, long prec); 5277 GEN vecthetanullk(GEN q, long k, long prec); 5278 GEN vecthetanullk_tau(GEN tau, long k, long prec); 5279 GEN veczeta(GEN a, GEN b, long N, long prec); 5280 GEN weber0(GEN x, long flag,long prec); 5281 GEN weberf(GEN x, long prec); 5282 GEN weberf1(GEN x, long prec); 5283 GEN weberf2(GEN x, long prec); 5284 GEN zetahurwitz(GEN s, GEN x, long der, long bitprec); 5285 5286 /* modsym.c */ 5287 GEN SL2_inv_shallow(GEN M); 5288 GEN Qevproj_apply(GEN T, GEN pro); 5289 GEN Qevproj_apply_vecei(GEN T, GEN pro, long k); 5290 GEN Qevproj_down(GEN T, GEN pro); 5291 GEN Qevproj_init(GEN M); 5292 GEN RgX_act_Gl2Q(GEN g, long k); 5293 GEN RgX_act_ZGl2Q(GEN z, long k); 5294 void checkms(GEN W); 5295 void checkmspadic(GEN W); 5296 GEN ellpadiclambdamu(GEN E, long p, long D, long R); 5297 GEN mfnumcusps(GEN n); 5298 GEN mfnumcusps_fact(GEN fa); 5299 ulong mfnumcuspsu_fact(GEN fa); 5300 ulong mfnumcuspsu(ulong n); 5301 GEN msfromcusp(GEN W, GEN c); 5302 GEN msfromell(GEN E, long signe); 5303 GEN msfromhecke(GEN W, GEN v, GEN H); 5304 long msdim(GEN W); 5305 GEN mseval2_ooQ(GEN W, GEN xpm, GEN c); 5306 long msgetlevel(GEN W); 5307 long msgetsign(GEN W); 5308 long msgetweight(GEN W); 5309 GEN msatkinlehner(GEN W, long Q, GEN); 5310 GEN mscuspidal(GEN W, long flag); 5311 GEN mseisenstein(GEN W); 5312 GEN mseval(GEN W, GEN s, GEN p); 5313 GEN mshecke(GEN W, long p, GEN H); 5314 GEN msinit(GEN N, GEN k, long sign); 5315 GEN msissymbol(GEN W, GEN s); 5316 GEN mslattice(GEN M, GEN F); 5317 GEN msomseval(GEN W, GEN phi, GEN path); 5318 void mspadic_parse_chi(GEN s, GEN *s1, GEN *s2); 5319 GEN mspadic_unit_eigenvalue(GEN ap, long k, GEN p, long n); 5320 GEN mspadicinit(GEN W, long p, long n, long flag); 5321 GEN mspadicL(GEN oms, GEN s, long r); 5322 GEN mspadicmoments(GEN W, GEN phi, long D); 5323 GEN mspadicseries(GEN M, long teichi); 5324 GEN mspathgens(GEN W); 5325 GEN mspathlog(GEN W, GEN path); 5326 GEN msnew(GEN W); 5327 GEN mspetersson(GEN W, GEN F1, GEN F2); 5328 GEN mspolygon(GEN M, long flag); 5329 GEN msstar(GEN W, GEN); 5330 GEN msqexpansion(GEN W, GEN proV, ulong B); 5331 GEN mssplit(GEN W, GEN H, long deglim); 5332 GEN mstooms(GEN W, GEN phi); 5333 5334 /* mscosets.c */ 5335 GEN mscosets0(GEN V, GEN code); 5336 GEN mscosets(GEN V, void *E, long (*in)(void *, GEN)); 5337 GEN msfarey(GEN F, void *E, long (*in)(void *, GEN), GEN *pCM); 5338 GEN msfarey0(GEN F, GEN code, GEN *pCM); 5339 int checkfarey_i(GEN F); 5340 5341 /* zetamult.c */ 5342 5343 GEN polylogmult(GEN avec, GEN zvec, long prec); 5344 GEN polylogmult_interpolate(GEN avec, GEN zvec, GEN t, long prec); 5345 GEN zetamult(GEN avec, long prec); 5346 GEN zetamultdual(GEN s); 5347 GEN zetamult_interpolate(GEN avec, GEN t, long prec); 5348 GEN zetamultall(long k, long flag, long prec); 5349 GEN zetamultconvert(GEN a, long fl); 5350 5351 /* level1.h */ 5352 5353 INLINE ulong Fl_add(ulong a, ulong b, ulong p); 5354 INLINE ulong Fl_addmul_pre(ulong x0, ulong x1, ulong y0, ulong p, ulong pi); 5355 INLINE ulong Fl_addmulmul_pre(ulong x0, ulong y0, ulong x1, ulong y1, ulong p, ulong pi); 5356 INLINE long Fl_center(ulong u, ulong p, ulong ps2); 5357 INLINE ulong Fl_div(ulong a, ulong b, ulong p); 5358 INLINE ulong Fl_double(ulong a, ulong p); 5359 INLINE ulong Fl_ellj_pre(ulong a4, ulong a6, ulong p, ulong pi); 5360 INLINE ulong Fl_halve(ulong y, ulong p); 5361 INLINE ulong Fl_mul(ulong a, ulong b, ulong p); 5362 INLINE ulong Fl_mul_pre(ulong a, ulong b, ulong p, ulong pi); 5363 INLINE ulong Fl_neg(ulong x, ulong p); 5364 INLINE ulong Fl_sqr(ulong a, ulong p); 5365 INLINE ulong Fl_sqr_pre(ulong a, ulong p, ulong pi); 5366 INLINE ulong Fl_sub(ulong a, ulong b, ulong p); 5367 INLINE ulong Fl_triple(ulong a, ulong p); 5368 INLINE ulong Mod2(GEN x); 5369 INLINE ulong Mod4(GEN x); 5370 INLINE ulong Mod8(GEN x); 5371 INLINE ulong Mod16(GEN x); 5372 INLINE ulong Mod32(GEN x); 5373 INLINE ulong Mod64(GEN x); 5374 INLINE int abscmpiu(GEN x, ulong y); 5375 INLINE int abscmpui(ulong x, GEN y); 5376 INLINE int absequaliu(GEN x, ulong y); 5377 INLINE GEN absi(GEN x); 5378 INLINE GEN absi_shallow(GEN x); 5379 INLINE GEN absr(GEN x); 5380 INLINE int absrnz_equal1(GEN x); 5381 INLINE int absrnz_equal2n(GEN x); 5382 INLINE GEN addii(GEN x, GEN y); 5383 INLINE void addiiz(GEN x, GEN y, GEN z); 5384 INLINE GEN addir(GEN x, GEN y); 5385 INLINE void addirz(GEN x, GEN y, GEN z); 5386 INLINE GEN addis(GEN x, long s); 5387 INLINE GEN addri(GEN x, GEN y); 5388 INLINE void addriz(GEN x, GEN y, GEN z); 5389 INLINE GEN addrr(GEN x, GEN y); 5390 INLINE void addrrz(GEN x, GEN y, GEN z); 5391 INLINE GEN addrs(GEN x, long s); 5392 INLINE GEN addsi(long x, GEN y); 5393 INLINE void addsiz(long s, GEN y, GEN z); 5394 INLINE void addsrz(long s, GEN y, GEN z); 5395 INLINE GEN addss(long x, long y); 5396 INLINE void addssz(long s, long y, GEN z); 5397 INLINE GEN adduu(ulong x, ulong y); 5398 INLINE void affgr(GEN x, GEN y); 5399 INLINE void affii(GEN x, GEN y); 5400 INLINE void affiz(GEN x, GEN y); 5401 INLINE void affrr_fixlg(GEN y, GEN z); 5402 INLINE void affsi(long s, GEN x); 5403 INLINE void affsr(long s, GEN x); 5404 INLINE void affsz(long x, GEN y); 5405 INLINE void affui(ulong s, GEN x); 5406 INLINE void affur(ulong s, GEN x); 5407 INLINE GEN cgetg(long x, long y); 5408 INLINE GEN cgetg_block(long x, long y); 5409 INLINE GEN cgetg_copy(GEN x, long *plx); 5410 INLINE GEN cgeti(long x); 5411 INLINE GEN cgetineg(long x); 5412 INLINE GEN cgetipos(long x); 5413 INLINE GEN cgetr(long x); 5414 INLINE GEN cgetr_block(long prec); 5415 INLINE int cmpir(GEN x, GEN y); 5416 INLINE int cmpis(GEN x, long y); 5417 INLINE int cmpiu(GEN x, ulong y); 5418 INLINE int cmpri(GEN x, GEN y); 5419 INLINE int cmprs(GEN x, long y); 5420 INLINE int cmpsi(long x, GEN y); 5421 INLINE int cmpsr(long x, GEN y); 5422 INLINE int cmpss(long a, long b); 5423 INLINE int cmpui(ulong x, GEN y); 5424 INLINE int cmpuu(ulong a, ulong b); 5425 INLINE GEN cxtofp(GEN x, long prec); 5426 INLINE GEN divii(GEN a, GEN b); 5427 INLINE void diviiz(GEN x, GEN y, GEN z); 5428 INLINE void divirz(GEN x, GEN y, GEN z); 5429 INLINE void divisz(GEN x, long s, GEN z); 5430 INLINE void divriz(GEN x, GEN y, GEN z); 5431 INLINE void divrrz(GEN x, GEN y, GEN z); 5432 INLINE void divrsz(GEN y, long s, GEN z); 5433 INLINE GEN divsi_rem(long x, GEN y, long *rem); 5434 INLINE void divsiz(long x, GEN y, GEN z); 5435 INLINE void divsrz(long s, GEN y, GEN z); 5436 INLINE GEN divss(long x, long y); 5437 INLINE GEN divss_rem(long x, long y, long *rem); 5438 INLINE void divssz(long x, long y, GEN z); 5439 INLINE int dvdii(GEN x, GEN y); 5440 INLINE int dvdiiz(GEN x, GEN y, GEN z); 5441 INLINE int dvdis(GEN x, long y); 5442 INLINE int dvdisz(GEN x, long y, GEN z); 5443 INLINE int dvdiu(GEN x, ulong y); 5444 INLINE int dvdiuz(GEN x, ulong y, GEN z); 5445 INLINE int dvdsi(long x, GEN y); 5446 INLINE int dvdui(ulong x, GEN y); 5447 INLINE void dvmdiiz(GEN x, GEN y, GEN z, GEN t); 5448 INLINE GEN dvmdis(GEN x, long y, GEN *z); 5449 INLINE void dvmdisz(GEN x, long y, GEN z, GEN t); 5450 INLINE long dvmdsBIL(long n, long *r); 5451 INLINE GEN dvmdsi(long x, GEN y, GEN *z); 5452 INLINE void dvmdsiz(long x, GEN y, GEN z, GEN t); 5453 INLINE GEN dvmdss(long x, long y, GEN *z); 5454 INLINE void dvmdssz(long x, long y, GEN z, GEN t); 5455 INLINE ulong dvmduBIL(ulong n, ulong *r); 5456 INLINE int equalis(GEN x, long y); 5457 INLINE int equalsi(long x, GEN y); 5458 INLINE int equalui(ulong x, GEN y); 5459 INLINE int equaliu(GEN x, ulong y); 5460 INLINE int absequalui(ulong x, GEN y); 5461 INLINE ulong ceildivuu(ulong a, ulong b); 5462 INLINE long evalexpo(long x); 5463 INLINE long evallg(long x); 5464 INLINE long evalprecp(long x); 5465 INLINE long evalvalp(long x); 5466 INLINE long expi(GEN x); 5467 INLINE long expu(ulong x); 5468 INLINE void fixlg(GEN z, long ly); 5469 INLINE GEN fractor(GEN x, long prec); 5470 INLINE int gc_bool(pari_sp av, int s); 5471 INLINE GEN gc_const(pari_sp av, GEN x); 5472 INLINE double gc_double(pari_sp av, double d); 5473 INLINE int gc_int(pari_sp av, int s); 5474 INLINE long gc_long(pari_sp av, long s); 5475 INLINE ulong gc_ulong(pari_sp av, ulong s); 5476 INLINE GEN gc_NULL(pari_sp av); 5477 INLINE GEN icopy(GEN x); 5478 INLINE GEN icopyspec(GEN x, long nx); 5479 INLINE GEN icopy_avma(GEN x, pari_sp av); 5480 INLINE ulong int_bit(GEN x, long n); 5481 INLINE GEN itor(GEN x, long prec); 5482 INLINE long itos(GEN x); 5483 INLINE long itos_or_0(GEN x); 5484 INLINE ulong itou(GEN x); 5485 INLINE ulong itou_or_0(GEN x); 5486 INLINE GEN leafcopy(GEN x); 5487 INLINE GEN leafcopy_avma(GEN x, pari_sp av); 5488 INLINE double maxdd(double x, double y); 5489 INLINE long maxss(long x, long y); 5490 INLINE long maxuu(ulong x, ulong y); 5491 INLINE double mindd(double x, double y); 5492 INLINE long minss(long x, long y); 5493 INLINE long minuu(ulong x, ulong y); 5494 INLINE long mod16(GEN x); 5495 INLINE long mod2(GEN x); 5496 INLINE ulong mod2BIL(GEN x); 5497 INLINE long mod32(GEN x); 5498 INLINE long mod4(GEN x); 5499 INLINE long mod64(GEN x); 5500 INLINE long mod8(GEN x); 5501 INLINE GEN modis(GEN x, long y); 5502 INLINE void modisz(GEN y, long s, GEN z); 5503 INLINE GEN modsi(long x, GEN y); 5504 INLINE void modsiz(long s, GEN y, GEN z); 5505 INLINE GEN modss(long x, long y); 5506 INLINE void modssz(long s, long y, GEN z); 5507 INLINE GEN mpabs(GEN x); 5508 INLINE GEN mpabs_shallow(GEN x); 5509 INLINE GEN mpadd(GEN x, GEN y); 5510 INLINE void mpaddz(GEN x, GEN y, GEN z); 5511 INLINE void mpaff(GEN x, GEN y); 5512 INLINE GEN mpceil(GEN x); 5513 INLINE int mpcmp(GEN x, GEN y); 5514 INLINE GEN mpcopy(GEN x); 5515 INLINE GEN mpdiv(GEN x, GEN y); 5516 INLINE long mpexpo(GEN x); 5517 INLINE GEN mpfloor(GEN x); 5518 INLINE GEN mpmul(GEN x, GEN y); 5519 INLINE void mpmulz(GEN x, GEN y, GEN z); 5520 INLINE GEN mpneg(GEN x); 5521 INLINE int mpodd(GEN x); 5522 INLINE GEN mpround(GEN x); 5523 INLINE GEN mpshift(GEN x,long s); 5524 INLINE GEN mpsqr(GEN x); 5525 INLINE GEN mpsub(GEN x, GEN y); 5526 INLINE void mpsubz(GEN x, GEN y, GEN z); 5527 INLINE GEN mptrunc(GEN x); 5528 INLINE void muliiz(GEN x, GEN y, GEN z); 5529 INLINE void mulirz(GEN x, GEN y, GEN z); 5530 INLINE GEN mulis(GEN x, long s); 5531 INLINE GEN muliu(GEN x, ulong s); 5532 INLINE GEN mulri(GEN x, GEN s); 5533 INLINE void mulriz(GEN x, GEN y, GEN z); 5534 INLINE void mulrrz(GEN x, GEN y, GEN z); 5535 INLINE GEN mulrs(GEN x, long s); 5536 INLINE GEN mulru(GEN x, ulong s); 5537 INLINE void mulsiz(long s, GEN y, GEN z); 5538 INLINE void mulsrz(long s, GEN y, GEN z); 5539 INLINE void mulssz(long s, long y, GEN z); 5540 INLINE GEN negi(GEN x); 5541 INLINE GEN negr(GEN x); 5542 INLINE GEN new_chunk(size_t x); 5543 INLINE GEN rcopy(GEN x); 5544 INLINE GEN rdivii(GEN x, GEN y, long prec); 5545 INLINE void rdiviiz(GEN x, GEN y, GEN z); 5546 INLINE GEN rdivis(GEN x, long y, long prec); 5547 INLINE GEN rdivsi(long x, GEN y, long prec); 5548 INLINE GEN rdivss(long x, long y, long prec); 5549 INLINE GEN real2n(long n, long prec); 5550 INLINE GEN real_m2n(long n, long prec); 5551 INLINE GEN real_0(long prec); 5552 INLINE GEN real_0_bit(long bitprec); 5553 INLINE GEN real_1(long prec); 5554 INLINE GEN real_1_bit(long bit); 5555 INLINE GEN real_m1(long prec); 5556 INLINE GEN remii(GEN a, GEN b); 5557 INLINE void remiiz(GEN x, GEN y, GEN z); 5558 INLINE GEN remis(GEN x, long y); 5559 INLINE void remisz(GEN y, long s, GEN z); 5560 INLINE ulong remlll_pre(ulong u2, ulong u1, ulong u0, ulong p, ulong pi); 5561 INLINE GEN remsi(long x, GEN y); 5562 INLINE void remsiz(long s, GEN y, GEN z); 5563 INLINE GEN remss(long x, long y); 5564 INLINE void remssz(long s, long y, GEN z); 5565 INLINE GEN rtor(GEN x, long prec); 5566 INLINE long sdivsi(long x, GEN y); 5567 INLINE long sdivsi_rem(long x, GEN y, long *rem); 5568 INLINE long sdivss_rem(long x, long y, long *rem); 5569 INLINE void set_avma(ulong av); 5570 INLINE ulong uabsdiviu_rem(GEN n, ulong d, ulong *r); 5571 INLINE ulong udivuu_rem(ulong x, ulong y, ulong *r); 5572 INLINE ulong umodi2n(GEN x, long n); 5573 INLINE void setabssign(GEN x); 5574 INLINE void shift_left(GEN z2, GEN z1, long min, long M, ulong f, ulong sh); 5575 INLINE void shift_right(GEN z2, GEN z1, long min, long M, ulong f, ulong sh); 5576 INLINE ulong shiftl(ulong x, ulong y); 5577 INLINE ulong shiftlr(ulong x, ulong y); 5578 INLINE GEN shiftr(GEN x, long n); 5579 INLINE void shiftr_inplace(GEN z, long d); 5580 INLINE long smodis(GEN x, long y); 5581 INLINE long smodss(long x, long y); 5582 INLINE void stackdummy(pari_sp av, pari_sp ltop); 5583 INLINE char *stack_malloc(size_t N); 5584 INLINE char *stack_malloc_align(size_t N, long k); 5585 INLINE char *stack_calloc(size_t N); 5586 INLINE char *stack_calloc_align(size_t N, long k); 5587 INLINE GEN stoi(long x); 5588 INLINE GEN stor(long x, long prec); 5589 INLINE GEN subii(GEN x, GEN y); 5590 INLINE void subiiz(GEN x, GEN y, GEN z); 5591 INLINE GEN subir(GEN x, GEN y); 5592 INLINE void subirz(GEN x, GEN y, GEN z); 5593 INLINE GEN subis(GEN x, long y); 5594 INLINE void subisz(GEN y, long s, GEN z); 5595 INLINE GEN subri(GEN x, GEN y); 5596 INLINE void subriz(GEN x, GEN y, GEN z); 5597 INLINE GEN subrr(GEN x, GEN y); 5598 INLINE void subrrz(GEN x, GEN y, GEN z); 5599 INLINE GEN subrs(GEN x, long y); 5600 INLINE void subrsz(GEN y, long s, GEN z); 5601 INLINE GEN subsi(long x, GEN y); 5602 INLINE void subsiz(long s, GEN y, GEN z); 5603 INLINE void subsrz(long s, GEN y, GEN z); 5604 INLINE GEN subss(long x, long y); 5605 INLINE void subssz(long x, long y, GEN z); 5606 INLINE GEN subuu(ulong x, ulong y); 5607 INLINE void togglesign(GEN x); 5608 INLINE void togglesign_safe(GEN *px); 5609 INLINE void affectsign(GEN x, GEN y); 5610 INLINE void affectsign_safe(GEN x, GEN *py); 5611 INLINE GEN truedivii(GEN a,GEN b); 5612 INLINE GEN truedivis(GEN a, long b); 5613 INLINE GEN truedivsi(long a, GEN b); 5614 INLINE ulong uabsdivui_rem(ulong x, GEN y, ulong *rem); 5615 INLINE ulong umodsu(long x, ulong y); 5616 INLINE ulong umodui(ulong x, GEN y); 5617 INLINE ulong ugcdiu(GEN x, ulong y); 5618 INLINE ulong ugcdui(ulong y, GEN x); 5619 INLINE ulong umuluu_le(ulong x, ulong y, ulong n); 5620 INLINE ulong umuluu_or_0(ulong x, ulong y); 5621 INLINE GEN utoi(ulong x); 5622 INLINE GEN utoineg(ulong x); 5623 INLINE GEN utoipos(ulong x); 5624 INLINE GEN utor(ulong s, long prec); 5625 INLINE GEN uutoi(ulong x, ulong y); 5626 INLINE GEN uutoineg(ulong x, ulong y); 5627 INLINE long vali(GEN x); 5628 INLINE int varncmp(long x, long y); 5629 INLINE long varnmax(long x, long y); 5630 INLINE long varnmin(long x, long y); 5631 5632 /* pariinl.h */ 5633 INLINE GEN abgrp_get_cyc(GEN x); 5634 INLINE GEN abgrp_get_gen(GEN x); 5635 INLINE GEN abgrp_get_no(GEN x); 5636 INLINE GEN bid_get_arch(GEN bid); 5637 INLINE GEN bid_get_archp(GEN bid); 5638 INLINE GEN bid_get_cyc(GEN bid); 5639 INLINE GEN bid_get_fact(GEN bid); 5640 INLINE GEN bid_get_fact2(GEN bid); 5641 INLINE GEN bid_get_gen(GEN bid); 5642 INLINE GEN bid_get_gen_nocheck(GEN bid); 5643 INLINE GEN bid_get_grp(GEN bid); 5644 INLINE GEN bid_get_ideal(GEN bid); 5645 INLINE GEN bid_get_mod(GEN bid); 5646 INLINE GEN bid_get_no(GEN bid); 5647 INLINE GEN bid_get_sarch(GEN bid); 5648 INLINE GEN bid_get_sprk(GEN bid); 5649 INLINE GEN bid_get_U(GEN bid); 5650 INLINE GEN bnf_get_clgp(GEN bnf); 5651 INLINE GEN bnf_get_cyc(GEN bnf); 5652 INLINE GEN bnf_get_fu(GEN bnf); 5653 INLINE GEN bnf_get_fu_nocheck(GEN bnf); 5654 INLINE GEN bnf_get_gen(GEN bnf); 5655 INLINE GEN bnf_get_logfu(GEN bnf); 5656 INLINE GEN bnf_get_nf(GEN bnf); 5657 INLINE GEN bnf_get_no(GEN bnf); 5658 INLINE GEN bnf_get_reg(GEN bnf); 5659 INLINE GEN bnf_get_sunits(GEN bnf); 5660 INLINE GEN bnf_get_tuU(GEN bnf); 5661 INLINE long bnf_get_tuN(GEN bnf); 5662 INLINE GEN bnr_get_bnf(GEN bnr); 5663 INLINE GEN bnr_get_clgp(GEN bnr); 5664 INLINE GEN bnr_get_cyc(GEN bnr); 5665 INLINE GEN bnr_get_gen(GEN bnr); 5666 INLINE GEN bnr_get_gen_nocheck(GEN bnr); 5667 INLINE GEN bnr_get_no(GEN bnr); 5668 INLINE GEN bnr_get_bid(GEN bnr); 5669 INLINE GEN bnr_get_mod(GEN bnr); 5670 INLINE GEN bnr_get_nf(GEN bnr); 5671 INLINE int checkell_i(GEN e); 5672 INLINE GEN cyc_get_expo(GEN c); 5673 INLINE GEN ell_get_a1(GEN e); 5674 INLINE GEN ell_get_a2(GEN e); 5675 INLINE GEN ell_get_a3(GEN e); 5676 INLINE GEN ell_get_a4(GEN e); 5677 INLINE GEN ell_get_a6(GEN e); 5678 INLINE GEN ell_get_b2(GEN e); 5679 INLINE GEN ell_get_b4(GEN e); 5680 INLINE GEN ell_get_b6(GEN e); 5681 INLINE GEN ell_get_b8(GEN e); 5682 INLINE GEN ell_get_c4(GEN e); 5683 INLINE GEN ell_get_c6(GEN e); 5684 INLINE GEN ell_get_disc(GEN e); 5685 INLINE GEN ell_get_j(GEN e); 5686 INLINE long ell_get_type(GEN e); 5687 INLINE int ell_is_inf(GEN z); 5688 INLINE GEN ellinf(void); 5689 INLINE GEN ellff_get_field(GEN x); 5690 INLINE GEN ellff_get_a4a6(GEN x); 5691 INLINE GEN ellnf_get_bnf(GEN x); 5692 INLINE GEN ellnf_get_nf(GEN x); 5693 INLINE GEN ellQp_get_p(GEN E); 5694 INLINE long ellQp_get_prec(GEN E); 5695 INLINE GEN ellQp_get_zero(GEN x); 5696 INLINE long ellR_get_prec(GEN x); 5697 INLINE long ellR_get_sign(GEN x); 5698 INLINE GEN gal_get_pol(GEN gal); 5699 INLINE GEN gal_get_p(GEN gal); 5700 INLINE GEN gal_get_e(GEN gal); 5701 INLINE GEN gal_get_mod(GEN gal); 5702 INLINE GEN gal_get_roots(GEN gal); 5703 INLINE GEN gal_get_invvdm(GEN gal); 5704 INLINE GEN gal_get_den(GEN gal); 5705 INLINE GEN gal_get_group(GEN gal); 5706 INLINE GEN gal_get_gen(GEN gal); 5707 INLINE GEN gal_get_orders(GEN gal); 5708 INLINE ulong hash_str(const char *str); 5709 INLINE ulong hash_str_len(const char *s, long len); 5710 INLINE GEN idealchineseinit(GEN nf, GEN x); 5711 INLINE GEN idealpseudomin(GEN I, GEN G); 5712 INLINE GEN idealpseudomin_nonscalar(GEN I, GEN G); 5713 INLINE GEN idealpseudominvec(GEN I, GEN G); 5714 INLINE GEN idealpseudored(GEN I, GEN G); 5715 INLINE GEN idealred_elt(GEN nf, GEN I); 5716 INLINE GEN idealred(GEN nf, GEN I); 5717 INLINE long logint(GEN B, GEN y); 5718 INLINE ulong ulogint(ulong B, ulong y); 5719 INLINE GEN modpr_get_pr(GEN x); 5720 INLINE GEN modpr_get_p(GEN x); 5721 INLINE GEN modpr_get_T(GEN x); 5722 INLINE GEN nf_get_M(GEN nf); 5723 INLINE GEN nf_get_G(GEN nf); 5724 INLINE GEN nf_get_Tr(GEN nf); 5725 INLINE GEN nf_get_diff(GEN nf); 5726 INLINE long nf_get_degree(GEN nf); 5727 INLINE GEN nf_get_disc(GEN nf); 5728 INLINE GEN nf_get_index(GEN nf); 5729 INLINE GEN nf_get_invzk(GEN nf); 5730 INLINE GEN nf_get_pol(GEN nf); 5731 INLINE long nf_get_r1(GEN nf); 5732 INLINE long nf_get_r2(GEN nf); 5733 INLINE GEN nf_get_ramified_primes(GEN nf); 5734 INLINE GEN nf_get_roots(GEN nf); 5735 INLINE GEN nf_get_roundG(GEN nf); 5736 INLINE void nf_get_sign(GEN nf, long *r1, long *r2); 5737 INLINE long nf_get_varn(GEN nf); 5738 INLINE GEN nf_get_zk(GEN nf); 5739 INLINE GEN nf_get_zkden(GEN nf); 5740 INLINE GEN nf_get_zkprimpart(GEN nf); 5741 INLINE long pr_get_e(GEN pr); 5742 INLINE long pr_get_f(GEN pr); 5743 INLINE GEN pr_get_gen(GEN pr); 5744 INLINE GEN pr_get_p(GEN pr); 5745 INLINE GEN pr_get_tau(GEN pr); 5746 INLINE int pr_is_inert(GEN P); 5747 INLINE GEN pr_norm(GEN pr); 5748 INLINE GEN rnf_get_alpha(GEN rnf); 5749 INLINE long rnf_get_absdegree(GEN rnf); 5750 INLINE long rnf_get_degree(GEN rnf); 5751 INLINE GEN rnf_get_disc(GEN rnf); 5752 INLINE GEN rnf_get_idealdisc(GEN rnf); 5753 INLINE GEN rnf_get_index(GEN rnf); 5754 INLINE GEN rnf_get_invzk(GEN rnf); 5755 INLINE GEN rnf_get_k(GEN rnf); 5756 INLINE GEN rnf_get_map(GEN rnf); 5757 INLINE GEN rnf_get_nf(GEN rnf); 5758 INLINE long rnf_get_nfdegree(GEN rnf); 5759 INLINE GEN rnf_get_nfpol(GEN rnf); 5760 INLINE long rnf_get_nfvarn(GEN rnf); 5761 INLINE GEN rnf_get_pol(GEN rnf); 5762 INLINE GEN rnf_get_polabs(GEN rnf); 5763 INLINE GEN rnf_get_ramified_primes(GEN rnf); 5764 INLINE GEN rnf_get_zk(GEN nf); 5765 INLINE GEN rnf_get_nfzk(GEN rnf); 5766 INLINE long rnf_get_varn(GEN rnf); 5767 INLINE ulong upr_norm(GEN pr); 5768 INLINE GEN znstar_get_N(GEN G); 5769 INLINE GEN znstar_get_conreycyc(GEN G); 5770 INLINE GEN znstar_get_conreygen(GEN G); 5771 INLINE GEN znstar_get_cyc(GEN G); 5772 INLINE GEN znstar_get_faN(GEN G); 5773 INLINE GEN znstar_get_gen(GEN G); 5774 INLINE GEN znstar_get_no(GEN G); 5775 INLINE GEN znstar_get_pe(GEN G); 5776 INLINE GEN znstar_get_U(GEN G); 5777 INLINE GEN znstar_get_Ui(GEN G); 5778 5779 INLINE long closure_arity(GEN C); 5780 INLINE const char * closure_codestr(GEN C); 5781 INLINE GEN closure_get_code(GEN C); 5782 INLINE GEN closure_get_oper(GEN C); 5783 INLINE GEN closure_get_data(GEN C); 5784 INLINE GEN closure_get_dbg(GEN C); 5785 INLINE GEN closure_get_text(GEN C); 5786 INLINE GEN closure_get_frame(GEN C); 5787 INLINE long closure_is_variadic(GEN C); 5788 5789 INLINE GEN addmuliu(GEN x, GEN y, ulong u); 5790 INLINE GEN addmuliu_inplace(GEN x, GEN y, ulong u); 5791 INLINE GEN lincombii(GEN u, GEN v, GEN x, GEN y); 5792 INLINE GEN mulsubii(GEN y, GEN z, GEN x); 5793 INLINE GEN submulii(GEN x, GEN y, GEN z); 5794 INLINE GEN submuliu(GEN x, GEN y, ulong u); 5795 INLINE GEN submuliu_inplace(GEN x, GEN y, ulong u); 5796 5797 INLINE GEN FpXQ_add(GEN x,GEN y,GEN T,GEN p); 5798 INLINE GEN FpXQ_sub(GEN x,GEN y,GEN T,GEN p); 5799 INLINE GEN Flxq_add(GEN x,GEN y,GEN T,ulong p); 5800 INLINE GEN Flxq_sub(GEN x,GEN y,GEN T,ulong p); 5801 5802 INLINE GEN FpXQX_div(GEN x, GEN y, GEN T, GEN p); 5803 INLINE GEN FlxqX_div(GEN x, GEN y, GEN T, ulong p); 5804 INLINE GEN F2xqX_div(GEN x, GEN y, GEN T); 5805 5806 INLINE GEN Rg_to_Fq(GEN x, GEN T, GEN p); 5807 INLINE GEN Fq_red(GEN x, GEN T, GEN p); 5808 INLINE GEN Fq_to_FpXQ(GEN x, GEN T, GEN p); 5809 INLINE GEN gener_Fq_local(GEN T, GEN p, GEN L); 5810 INLINE GEN FpXY_Fq_evaly(GEN Q, GEN y, GEN T, GEN p, long vx); 5811 INLINE GEN FqX_Fp_mul(GEN P, GEN U, GEN T, GEN p); 5812 INLINE GEN FqX_Fq_mul(GEN P, GEN U, GEN T, GEN p); 5813 INLINE GEN FqX_add(GEN x,GEN y,GEN T,GEN p); 5814 INLINE GEN FqX_ddf(GEN f, GEN T, GEN p); 5815 INLINE GEN FqX_degfact(GEN f, GEN T, GEN p); 5816 INLINE GEN FqX_deriv(GEN f, GEN T, GEN p); 5817 INLINE GEN FqX_div(GEN x, GEN y, GEN T, GEN p); 5818 INLINE GEN FqX_div_by_X_x(GEN x, GEN y, GEN T, GEN p, GEN *z); 5819 INLINE GEN FqX_divrem(GEN x, GEN y, GEN T, GEN p, GEN *z); 5820 INLINE GEN FqX_extgcd(GEN P,GEN Q,GEN T,GEN p, GEN *U, GEN *V); 5821 INLINE GEN FqX_factor(GEN f, GEN T, GEN p); 5822 INLINE GEN FqX_factor_squarefree(GEN f, GEN T, GEN p); 5823 INLINE GEN FqX_gcd(GEN P, GEN Q, GEN T, GEN p); 5824 INLINE GEN FqX_get_red(GEN S, GEN T, GEN p); 5825 INLINE GEN FqX_halfgcd(GEN P,GEN Q,GEN T,GEN p); 5826 INLINE GEN FqX_halve(GEN x, GEN T, GEN p); 5827 INLINE GEN FqX_integ(GEN f, GEN T, GEN p); 5828 INLINE GEN FqX_mul(GEN x, GEN y, GEN T, GEN p); 5829 INLINE GEN FqX_mulu(GEN x, ulong y, GEN T, GEN p); 5830 INLINE GEN FqX_neg(GEN x, GEN T, GEN p); 5831 INLINE GEN FqX_normalize(GEN z, GEN T, GEN p); 5832 INLINE GEN FqX_powu(GEN x, ulong n, GEN T, GEN p); 5833 INLINE GEN FqX_red(GEN z, GEN T, GEN p); 5834 INLINE GEN FqX_rem(GEN x, GEN y, GEN T, GEN p); 5835 INLINE GEN FqX_roots(GEN f, GEN T, GEN p); 5836 INLINE GEN FqX_sqr(GEN x, GEN T, GEN p); 5837 INLINE GEN FqX_sub(GEN x,GEN y,GEN T,GEN p); 5838 INLINE GEN FqX_to_mod(GEN f, GEN T, GEN p); 5839 5840 INLINE GEN FqXQ_add(GEN x, GEN y, GEN S, GEN T, GEN p); 5841 INLINE GEN FqXQ_div(GEN x, GEN y, GEN S, GEN T, GEN p); 5842 INLINE GEN FqXQ_inv(GEN x, GEN S, GEN T, GEN p); 5843 INLINE GEN FqXQ_invsafe(GEN x, GEN S, GEN T, GEN p); 5844 INLINE GEN FqXQ_mul(GEN x, GEN y, GEN S, GEN T, GEN p); 5845 INLINE GEN FqXQ_pow(GEN x, GEN n, GEN S, GEN T, GEN p); 5846 INLINE GEN FqXQ_sqr(GEN x, GEN S, GEN T, GEN p); 5847 INLINE GEN FqXQ_sub(GEN x, GEN y, GEN S, GEN T, GEN p); 5848 5849 INLINE GEN FqXn_exp(GEN x, long n, GEN T, GEN p); 5850 INLINE GEN FqXn_expint(GEN x, long n, GEN T, GEN p); 5851 INLINE GEN FqXn_inv(GEN x, long n, GEN T, GEN p); 5852 INLINE GEN FqXn_mul(GEN x, GEN y, long n, GEN T, GEN p); 5853 INLINE GEN FqXn_sqr(GEN x, long n, GEN T, GEN p); 5854 5855 INLINE long get_F2x_degree(GEN T); 5856 INLINE GEN get_F2x_mod(GEN T); 5857 INLINE long get_F2x_var(GEN T); 5858 INLINE long get_F2xqX_degree(GEN T); 5859 INLINE GEN get_F2xqX_mod(GEN T); 5860 INLINE long get_F2xqX_var(GEN T); 5861 INLINE long get_Flx_degree(GEN T); 5862 INLINE GEN get_Flx_mod(GEN T); 5863 INLINE long get_Flx_var(GEN T); 5864 INLINE long get_FlxqX_degree(GEN T); 5865 INLINE GEN get_FlxqX_mod(GEN T); 5866 INLINE long get_FlxqX_var(GEN T); 5867 INLINE long get_FpX_degree(GEN T); 5868 INLINE GEN get_FpX_mod(GEN T); 5869 INLINE long get_FpX_var(GEN T); 5870 INLINE long get_FpXQX_degree(GEN T); 5871 INLINE GEN get_FpXQX_mod(GEN T); 5872 INLINE long get_FpXQX_var(GEN T); 5873 5874 INLINE ulong F2m_coeff(GEN x, long a, long b); 5875 INLINE void F2m_clear(GEN x, long a, long b); 5876 INLINE void F2m_flip(GEN x, long a, long b); 5877 INLINE void F2m_set(GEN x, long a, long b); 5878 INLINE void F2v_clear(GEN x,long v); 5879 INLINE ulong F2v_coeff(GEN x,long v); 5880 INLINE void F2v_flip(GEN x,long v); 5881 INLINE GEN F2v_to_F2x(GEN x, long sv); 5882 INLINE void F2v_set(GEN x,long v); 5883 INLINE void F2x_clear(GEN x,long v); 5884 INLINE ulong F2x_coeff(GEN x,long v); 5885 INLINE void F2x_flip(GEN x,long v); 5886 INLINE void F2x_set(GEN x,long v); 5887 INLINE int F2x_equal1(GEN x); 5888 INLINE int F2x_equal(GEN V, GEN W); 5889 INLINE GEN F2x_div(GEN x, GEN y); 5890 INLINE GEN F2x_renormalize(GEN x, long lx); 5891 INLINE GEN F2m_copy(GEN x); 5892 INLINE GEN F2v_copy(GEN x); 5893 INLINE GEN F2x_copy(GEN x); 5894 INLINE GEN F2v_ei(long n, long i); 5895 INLINE GEN Flm_copy(GEN x); 5896 INLINE GEN Flv_copy(GEN x); 5897 INLINE int Flx_equal1(GEN x); 5898 INLINE ulong Flx_constant(GEN x); 5899 INLINE GEN Flx_copy(GEN x); 5900 INLINE GEN Flx_div(GEN x, GEN y, ulong p); 5901 INLINE ulong Flx_lead(GEN x); 5902 INLINE GEN Flx_mulu(GEN x, ulong a, ulong p); 5903 INLINE GEN Fp_divu(GEN x, ulong a, GEN p); 5904 INLINE GEN FpV_FpC_mul(GEN x, GEN y, GEN p); 5905 INLINE GEN FpXQX_renormalize(GEN x, long lx); 5906 INLINE GEN FpXX_renormalize(GEN x, long lx); 5907 INLINE GEN FpX_div(GEN x, GEN y, GEN p); 5908 INLINE GEN FpX_renormalize(GEN x, long lx); 5909 INLINE GEN Fp_add(GEN a, GEN b, GEN m); 5910 INLINE GEN Fp_addmul(GEN x, GEN y, GEN z, GEN p); 5911 INLINE GEN Fp_center(GEN u, GEN p, GEN ps2); 5912 INLINE GEN Fp_center_i(GEN u, GEN p, GEN ps2); 5913 INLINE GEN Fp_div(GEN a, GEN b, GEN m); 5914 INLINE GEN Fp_halve(GEN y, GEN p); 5915 INLINE GEN Fp_inv(GEN a, GEN m); 5916 INLINE GEN Fp_invsafe(GEN a, GEN m); 5917 INLINE GEN Fp_mul(GEN a, GEN b, GEN m); 5918 INLINE GEN Fp_muls(GEN a, long b, GEN m); 5919 INLINE GEN Fp_mulu(GEN a, ulong b, GEN m); 5920 INLINE GEN Fp_neg(GEN b, GEN m); 5921 INLINE GEN Fp_red(GEN x, GEN p); 5922 INLINE GEN Fp_sqr(GEN a, GEN m); 5923 INLINE GEN Fp_sub(GEN a, GEN b, GEN m); 5924 INLINE GEN GENbinbase(GENbin *p); 5925 INLINE GEN Q_abs(GEN x); 5926 INLINE GEN Q_abs_shallow(GEN x); 5927 INLINE int QV_isscalar(GEN x); 5928 INLINE void Qtoss(GEN q, long *n, long *d); 5929 INLINE GEN R_abs(GEN x); 5930 INLINE GEN R_abs_shallow(GEN x); 5931 INLINE GEN RgC_fpnorml2(GEN x, long prec); 5932 INLINE GEN RgC_gtofp(GEN x, long prec); 5933 INLINE GEN RgC_gtomp(GEN x, long prec); 5934 INLINE void RgM_dimensions(GEN x, long *m, long *n); 5935 INLINE GEN RgM_fpnorml2(GEN x, long prec); 5936 INLINE GEN RgM_gtofp(GEN x, long prec); 5937 INLINE GEN RgM_gtomp(GEN x, long prec); 5938 INLINE GEN RgM_minor(GEN a, long i, long j); 5939 INLINE GEN RgM_shallowcopy(GEN x); 5940 INLINE GEN RgV_gtofp(GEN x, long prec); 5941 INLINE int RgV_isscalar(GEN x); 5942 INLINE long RgV_isin(GEN v, GEN x); 5943 INLINE long RgV_isin_i(GEN v, GEN x, long n); 5944 INLINE int RgV_is_ZV(GEN x); 5945 INLINE int RgV_is_QV(GEN x); 5946 INLINE long RgX_equal_var(GEN x, GEN y); 5947 INLINE int RgX_is_monomial(GEN x); 5948 INLINE int RgX_is_rational(GEN x); 5949 INLINE int RgX_is_QX(GEN x); 5950 INLINE int RgX_is_ZX(GEN x); 5951 INLINE int RgX_isscalar(GEN x); 5952 INLINE GEN RgX_shift_inplace(GEN x, long v); 5953 INLINE void RgX_shift_inplace_init(long v); 5954 INLINE GEN RgXQX_div(GEN x, GEN y, GEN T); 5955 INLINE GEN RgXQX_rem(GEN x, GEN y, GEN T); 5956 INLINE GEN RgX_coeff(GEN x, long n); 5957 INLINE GEN RgX_copy(GEN x); 5958 INLINE GEN RgX_div(GEN x, GEN y); 5959 INLINE GEN RgX_fpnorml2(GEN x, long prec); 5960 INLINE GEN RgX_gtofp(GEN x, long prec); 5961 INLINE GEN RgX_renormalize(GEN x); 5962 INLINE GEN Rg_col_ei(GEN x, long n, long i); 5963 INLINE GEN ZC_hnfrem(GEN x, GEN y); 5964 INLINE GEN ZM_hnfrem(GEN x, GEN y); 5965 INLINE GEN ZM_lll(GEN x, double D, long f); 5966 INLINE int ZV_dvd(GEN x, GEN y); 5967 INLINE int ZV_isscalar(GEN x); 5968 INLINE GEN ZV_to_zv(GEN x); 5969 INLINE int ZX_equal1(GEN x); 5970 INLINE int ZX_is_monic(GEN x); 5971 INLINE GEN ZX_renormalize(GEN x, long lx); 5972 INLINE GEN ZXQ_mul(GEN x,GEN y,GEN T); 5973 INLINE GEN ZXQ_sqr(GEN x,GEN T); 5974 INLINE long Z_ispower(GEN x, ulong k); 5975 INLINE long Z_issquare(GEN x); 5976 INLINE GEN absfrac(GEN x); 5977 INLINE GEN absfrac_shallow(GEN x); 5978 INLINE GEN affc_fixlg(GEN x, GEN res); 5979 INLINE GEN bin_copy(GENbin *p); 5980 INLINE long bit_accuracy(long x); 5981 INLINE double bit_accuracy_mul(long x, double y); 5982 INLINE long bit_prec(GEN x); 5983 INLINE int both_odd(long x, long y); 5984 INLINE GEN cbrtr(GEN x); 5985 INLINE GEN cbrtr_abs(GEN x); 5986 INLINE GEN cgetc(long x); 5987 INLINE GEN cgetalloc(long t, size_t l); 5988 INLINE void cgiv(GEN x); 5989 INLINE GEN col_ei(long n, long i); 5990 INLINE GEN const_col(long n, GEN x); 5991 INLINE GEN const_vec(long n, GEN x); 5992 INLINE GEN const_vecsmall(long n, long c); 5993 INLINE GEN constant_coeff(GEN x); 5994 INLINE GEN cxcompotor(GEN z, long prec); 5995 INLINE GEN cxnorm(GEN x); 5996 INLINE GEN cxtoreal(GEN q); 5997 INLINE GEN cyclic_perm(long l, long d); 5998 INLINE double dbllog2r(GEN x); 5999 INLINE long degpol(GEN x); 6000 INLINE long divsBIL(long n); 6001 INLINE void gabsz(GEN x, long prec, GEN z); 6002 INLINE GEN gaddgs(GEN y, long s); 6003 INLINE void gaddz(GEN x, GEN y, GEN z); 6004 INLINE int gcmpgs(GEN y, long s); 6005 INLINE void gdiventz(GEN x, GEN y, GEN z); 6006 INLINE GEN gdivsg(long s, GEN y); 6007 INLINE void gdivz(GEN x, GEN y, GEN z); 6008 INLINE GEN gen_I(void); 6009 INLINE void gerepileall(pari_sp av, int n, ...); 6010 INLINE void gerepilecoeffs(pari_sp av, GEN x, int n); 6011 INLINE GEN gerepilecopy(pari_sp av, GEN x); 6012 INLINE void gerepilemany(pari_sp av, GEN* g[], int n); 6013 INLINE int gequalgs(GEN y, long s); 6014 INLINE GEN gerepileupto(pari_sp av, GEN q); 6015 INLINE GEN gerepileuptoint(pari_sp av, GEN q); 6016 INLINE GEN gerepileuptoleaf(pari_sp av, GEN q); 6017 INLINE int gisdouble(GEN x, double *g); 6018 INLINE GEN gmax_shallow(GEN x, GEN y); 6019 INLINE GEN gmaxsg(long s, GEN y); 6020 INLINE GEN gmin_shallow(GEN x, GEN y); 6021 INLINE GEN gminsg(long s, GEN y); 6022 INLINE void gmodz(GEN x, GEN y, GEN z); 6023 INLINE void gmul2nz(GEN x, long s, GEN z); 6024 INLINE GEN gmulgs(GEN y, long s); 6025 INLINE void gmulz(GEN x, GEN y, GEN z); 6026 INLINE void gnegz(GEN x, GEN z); 6027 INLINE void gshiftz(GEN x, long s, GEN z); 6028 INLINE GEN gsubgs(GEN y, long s); 6029 INLINE void gsubz(GEN x, GEN y, GEN z); 6030 INLINE double gtodouble(GEN x); 6031 INLINE GEN gtofp(GEN z, long prec); 6032 INLINE GEN gtomp(GEN z, long prec); 6033 INLINE long gtos(GEN x); 6034 INLINE ulong gtou(GEN x); 6035 INLINE void guncloneNULL(GEN x); 6036 INLINE void guncloneNULL_deep(GEN x); 6037 INLINE long gval(GEN x, long v); 6038 INLINE GEN identity_perm(long l); 6039 INLINE GEN identity_zv(long n); 6040 INLINE GEN identity_ZV(long n); 6041 INLINE int equali1(GEN n); 6042 INLINE int equalim1(GEN n); 6043 INLINE long inf_get_sign(GEN x); 6044 INLINE GEN inv_content(GEN c); 6045 INLINE int is_bigint(GEN n); 6046 INLINE int is_const_t(long t); 6047 INLINE int is_extscalar_t(long t); 6048 INLINE int is_intreal_t(long t); 6049 INLINE int is_matvec_t(long t); 6050 INLINE int is_noncalc_t(long tx); 6051 INLINE int is_pm1(GEN n); 6052 INLINE int is_qfb_t(long t); 6053 INLINE int is_rational_t(long t); 6054 INLINE int is_real_t(long t); 6055 INLINE int is_recursive_t(long t); 6056 INLINE int is_scalar_t(long t); 6057 INLINE int is_universal_constant(GEN x); 6058 INLINE int is_vec_t(long t); 6059 INLINE int isint1(GEN x); 6060 INLINE int isintm1(GEN x); 6061 INLINE int isintzero(GEN x); 6062 INLINE int ismpzero(GEN x); 6063 INLINE int isonstack(GEN x); 6064 INLINE void killblock(GEN x); 6065 INLINE GEN leading_coeff(GEN x); 6066 INLINE void lg_increase(GEN x); 6067 INLINE long lgcols(GEN x); 6068 INLINE long lgpol(GEN x); 6069 INLINE GEN div_content(GEN cx, GEN cy); 6070 INLINE GEN matpascal(long n); 6071 INLINE GEN matslice(GEN A, long x1, long x2, long y1, long y2); 6072 INLINE GEN mkcol(GEN x); 6073 INLINE GEN mkcol2(GEN x, GEN y); 6074 INLINE GEN mkcol2s(long x, long y); 6075 INLINE GEN mkcol3(GEN x, GEN y, GEN z); 6076 INLINE GEN mkcol3s(long x, long y, long z); 6077 INLINE GEN mkcol4(GEN x, GEN y, GEN z, GEN t); 6078 INLINE GEN mkcol4s(long x, long y, long z, long t); 6079 INLINE GEN mkcol5(GEN x, GEN y, GEN z, GEN t, GEN u); 6080 INLINE GEN mkcol6(GEN x, GEN y, GEN z, GEN t, GEN u, GEN v); 6081 INLINE GEN mkcolcopy(GEN x); 6082 INLINE GEN mkcols(long x); 6083 INLINE GEN mkcomplex(GEN x, GEN y); 6084 INLINE GEN mkerr(long n); 6085 INLINE GEN mkmoo(void); 6086 INLINE GEN mkoo(void); 6087 INLINE GEN mkfrac(GEN x, GEN y); 6088 INLINE GEN mkfracss(long x, long y); 6089 INLINE GEN mkfraccopy(GEN x, GEN y); 6090 INLINE GEN mkintmod(GEN x, GEN y); 6091 INLINE GEN mkintmodu(ulong x, ulong y); 6092 INLINE GEN mkmat(GEN x); 6093 INLINE GEN mkmat2(GEN x, GEN y); 6094 INLINE GEN mkmat22(GEN a, GEN b, GEN c, GEN d); 6095 INLINE GEN mkmat22s(long a, long b, long c, long d); 6096 INLINE GEN mkmat3(GEN x, GEN y, GEN z); 6097 INLINE GEN mkmat4(GEN x, GEN y, GEN z, GEN t); 6098 INLINE GEN mkmat5(GEN x, GEN y, GEN z, GEN t, GEN u); 6099 INLINE GEN mkmatcopy(GEN x); 6100 INLINE GEN mkpolmod(GEN x, GEN y); 6101 INLINE GEN mkqfi(GEN x, GEN y, GEN z); 6102 INLINE GEN mkquad(GEN n, GEN x, GEN y); 6103 INLINE GEN mkrfrac(GEN x, GEN y); 6104 INLINE GEN mkrfraccopy(GEN x, GEN y); 6105 INLINE GEN mkvec(GEN x); 6106 INLINE GEN mkvec2(GEN x, GEN y); 6107 INLINE GEN mkvec2copy(GEN x, GEN y); 6108 INLINE GEN mkvec2s(long x, long y); 6109 INLINE GEN mkvec3(GEN x, GEN y, GEN z); 6110 INLINE GEN mkvec3s(long x, long y, long z); 6111 INLINE GEN mkvec4(GEN x, GEN y, GEN z, GEN t); 6112 INLINE GEN mkvec4s(long x, long y, long z, long t); 6113 INLINE GEN mkvec5(GEN x, GEN y, GEN z, GEN t, GEN u); 6114 INLINE GEN mkveccopy(GEN x); 6115 INLINE GEN mkvecs(long x); 6116 INLINE GEN mkvecsmall(long x); 6117 INLINE GEN mkvecsmall2(long x,long y); 6118 INLINE GEN mkvecsmall3(long x,long y,long z); 6119 INLINE GEN mkvecsmall4(long x,long y,long z,long t); 6120 INLINE GEN mkvecsmall5(long x,long y,long z,long t,long u); 6121 INLINE void mpcosz(GEN x, GEN z); 6122 INLINE void mpexpz(GEN x, GEN z); 6123 INLINE void mplogz(GEN x, GEN z); 6124 INLINE void mpsinz(GEN x, GEN z); 6125 INLINE GEN mul_content(GEN cx, GEN cy); 6126 INLINE GEN mul_denom(GEN cx, GEN cy); 6127 INLINE long nbits2nlong(long x); 6128 INLINE long nbits2extraprec(long x); 6129 INLINE long nbits2ndec(long x); 6130 INLINE long nbits2prec(long x); 6131 INLINE long nbits2lg(long x); 6132 INLINE long nbrows(GEN x); 6133 INLINE long nchar2nlong(long x); 6134 INLINE long ndec2nbits(long x); 6135 INLINE long ndec2nlong(long x); 6136 INLINE long ndec2prec(long x); 6137 INLINE void normalize_frac(GEN z); 6138 INLINE int odd(long x); 6139 INLINE void pari_free(void *pointer); 6140 INLINE void* pari_calloc(size_t size); 6141 INLINE void* pari_malloc(size_t bytes); 6142 INLINE void* pari_realloc(void *pointer,size_t size); 6143 INLINE void pari_realloc_ip(void **pointer,size_t size); 6144 INLINE GEN perm_conj(GEN s, GEN t); 6145 INLINE GEN perm_inv(GEN x); 6146 INLINE GEN perm_mul(GEN s, GEN t); 6147 INLINE GEN perm_sqr(GEN s); 6148 INLINE GEN pol_0(long v); 6149 INLINE GEN pol_1(long v); 6150 INLINE GEN pol_x(long v); 6151 INLINE GEN pol_xn(long n, long v); 6152 INLINE GEN pol_xnall(long n, long v); 6153 INLINE GEN pol0_F2x(long sv); 6154 INLINE GEN pol0_Flx(long sv); 6155 INLINE GEN pol1_F2x(long sv); 6156 INLINE GEN pol1_Flx(long sv); 6157 INLINE GEN polx_Flx(long sv); 6158 INLINE GEN polx_F2x(long sv); 6159 INLINE GEN polx_zx(long sv); 6160 INLINE GEN polxn_Flx(long n, long sv); 6161 INLINE GEN powii(GEN x, GEN n); 6162 INLINE GEN powIs(long n); 6163 INLINE long prec2nbits(long x); 6164 INLINE double prec2nbits_mul(long x, double y); 6165 INLINE long prec2ndec(long x); 6166 INLINE long precdbl(long x); 6167 INLINE GEN quad_disc(GEN x); 6168 INLINE GEN qfb_disc(GEN x); 6169 INLINE GEN qfb_disc3(GEN x, GEN y, GEN z); 6170 INLINE GEN quadnorm(GEN q); 6171 INLINE long remsBIL(long n); 6172 INLINE GEN row(GEN A, long x1); 6173 INLINE GEN Flm_row(GEN A, long x0); 6174 INLINE GEN row_i(GEN A, long x0, long x1, long x2); 6175 INLINE GEN zm_row(GEN x, long i); 6176 INLINE GEN rowcopy(GEN A, long x0); 6177 INLINE GEN rowpermute(GEN A, GEN p); 6178 INLINE GEN rowslice(GEN A, long x1, long x2); 6179 INLINE GEN rowslicepermute(GEN A, GEN p, long x1, long x2); 6180 INLINE GEN rowsplice(GEN a, long j); 6181 INLINE int ser_isexactzero(GEN x); 6182 INLINE GEN shallowcopy(GEN x); 6183 INLINE GEN sqrfrac(GEN x); 6184 INLINE GEN sqrti(GEN x); 6185 INLINE GEN sqrtnr(GEN x, long n); 6186 INLINE GEN sqrtr(GEN x); 6187 INLINE GEN sstoQ(long n, long d); 6188 INLINE void pari_stack_alloc(pari_stack *s, long nb); 6189 INLINE void** pari_stack_base(pari_stack *s); 6190 INLINE void pari_stack_delete(pari_stack *s); 6191 INLINE void pari_stack_init(pari_stack *s, size_t size, void **data); 6192 INLINE long pari_stack_new(pari_stack *s); 6193 INLINE void pari_stack_pushp(pari_stack *s, void *u); 6194 INLINE long sturm(GEN x); 6195 INLINE GEN truecoef(GEN x, long n); 6196 INLINE GEN trunc_safe(GEN x); 6197 INLINE GEN vec_ei(long n, long i); 6198 INLINE GEN vec_append(GEN v, GEN s); 6199 INLINE GEN vec_lengthen(GEN v, long n); 6200 INLINE GEN vec_prepend(GEN v, GEN s); 6201 INLINE GEN vec_setconst(GEN v, GEN x); 6202 INLINE GEN vec_shorten(GEN v, long n); 6203 INLINE GEN vec_to_vecsmall(GEN z); 6204 INLINE GEN vecpermute(GEN A, GEN p); 6205 INLINE GEN vecreverse(GEN A); 6206 INLINE void vecreverse_inplace(GEN y); 6207 INLINE GEN vecsmallpermute(GEN A, GEN p); 6208 INLINE GEN vecslice(GEN A, long y1, long y2); 6209 INLINE GEN vecslicepermute(GEN A, GEN p, long y1, long y2); 6210 INLINE GEN vecsplice(GEN a, long j); 6211 INLINE GEN vecsmall_append(GEN V, long s); 6212 INLINE long vecsmall_coincidence(GEN u, GEN v); 6213 INLINE GEN vecsmall_concat(GEN u, GEN v); 6214 INLINE GEN vecsmall_copy(GEN x); 6215 INLINE GEN vecsmall_ei(long n, long i); 6216 INLINE long vecsmall_indexmax(GEN x); 6217 INLINE long vecsmall_indexmin(GEN x); 6218 INLINE long vecsmall_isin(GEN v, long x); 6219 INLINE GEN vecsmall_lengthen(GEN v, long n); 6220 INLINE int vecsmall_lexcmp(GEN x, GEN y); 6221 INLINE long vecsmall_max(GEN v); 6222 INLINE long vecsmall_min(GEN v); 6223 INLINE long vecsmall_pack(GEN V, long base, long mod); 6224 INLINE int vecsmall_prefixcmp(GEN x, GEN y); 6225 INLINE GEN vecsmall_prepend(GEN V, long s); 6226 INLINE GEN vecsmall_reverse(GEN A); 6227 INLINE GEN vecsmall_shorten(GEN v, long n); 6228 INLINE GEN vecsmall_to_col(GEN z); 6229 INLINE GEN vecsmall_to_vec(GEN z); 6230 INLINE GEN vecsmall_to_vec_inplace(GEN z); 6231 INLINE void vecsmalltrunc_append(GEN x, long t); 6232 INLINE GEN vecsmalltrunc_init(long l); 6233 INLINE void vectrunc_append(GEN x, GEN t); 6234 INLINE void vectrunc_append_batch(GEN x, GEN y); 6235 INLINE GEN vectrunc_init(long l); 6236 INLINE GEN coltrunc_init(long l); 6237 INLINE GEN zc_to_ZC(GEN x); 6238 INLINE GEN zero_F2m(long n, long m); 6239 INLINE GEN zero_F2m_copy(long n, long m); 6240 INLINE GEN zero_F2v(long m); 6241 INLINE GEN zero_F2x(long sv); 6242 INLINE GEN zero_Flm(long m, long n); 6243 INLINE GEN zero_Flm_copy(long m, long n); 6244 INLINE GEN zero_Flv(long n); 6245 INLINE GEN zero_Flx(long sv); 6246 INLINE GEN zero_zm(long x, long y); 6247 INLINE GEN zero_zv(long x); 6248 INLINE GEN zero_zx(long sv); 6249 INLINE GEN zerocol(long n); 6250 INLINE GEN zeromat(long m, long n); 6251 INLINE GEN zeromatcopy(long m, long n); 6252 INLINE GEN zeropadic(GEN p, long e); 6253 INLINE GEN zeropadic_shallow(GEN p, long e); 6254 INLINE GEN zeropol(long v); 6255 INLINE GEN zeroser(long v, long e); 6256 INLINE GEN zerovec(long n); 6257 INLINE GEN zerovec_block(long len); 6258 INLINE GEN zm_copy(GEN x); 6259 INLINE GEN zm_to_zxV(GEN x, long sv); 6260 INLINE GEN zm_transpose(GEN x); 6261 INLINE GEN zv_copy(GEN x); 6262 INLINE GEN zv_to_ZV(GEN x); 6263 INLINE GEN zv_to_zx(GEN x, long sv); 6264 INLINE GEN zx_renormalize(GEN x, long l); 6265 INLINE GEN zx_shift(GEN x, long n); 6266 INLINE GEN zx_to_zv(GEN x, long N); 6267 6268 INLINE GEN err_get_compo(GEN e, long i); 6269 INLINE long err_get_num(GEN e); 6270 INLINE void pari_err_BUG(const char *f); 6271 INLINE void pari_err_COMPONENT(const char *f, const char *op, GEN l, GEN x); 6272 INLINE void pari_err_CONSTPOL(const char *f); 6273 INLINE void pari_err_COPRIME(const char *f, GEN x, GEN y); 6274 INLINE void pari_err_DIM(const char *f); 6275 INLINE void pari_err_DOMAIN(const char *f, const char *v, const char *op, GEN l, GEN x); 6276 INLINE void pari_err_FILE(const char *f, const char *g); 6277 INLINE void pari_err_FILEDESC(const char *f, long n); 6278 INLINE void pari_err_FLAG(const char *f); 6279 INLINE void pari_err_IMPL(const char *f); 6280 INLINE void pari_err_INV(const char *f, GEN x); 6281 INLINE void pari_err_IRREDPOL(const char *f, GEN x); 6282 INLINE void pari_err_MAXPRIME(ulong c); 6283 INLINE void pari_err_MODULUS(const char *f, GEN x, GEN y); 6284 INLINE void pari_err_OP(const char *f, GEN x, GEN y); 6285 INLINE void pari_err_OVERFLOW(const char *f); 6286 INLINE void pari_err_PACKAGE(const char *f); 6287 INLINE void pari_err_PREC(const char *f); 6288 INLINE void pari_err_PRIME(const char *f, GEN x); 6289 INLINE void pari_err_PRIORITY(const char *f, GEN x, const char *op, long v); 6290 INLINE void pari_err_SQRTN(const char *f, GEN x); 6291 INLINE void pari_err_TYPE(const char *f, GEN x); 6292 INLINE void pari_err_TYPE2(const char *f, GEN x, GEN y); 6293 INLINE void pari_err_VAR(const char *f, GEN x, GEN y); 6294 INLINE void pari_err_ROOTS0(const char *f); 6295