1 /* $Id: paridecl.h 9689 2008-02-23 06:41:39Z kb $
2 
3 Copyright (C) 2000-2003  The PARI group.
4 
5 This file is part of the PARI/GP package.
6 
7 PARI/GP is free software; you can redistribute it and/or modify it under the
8 terms of the GNU General Public License as published by the Free Software
9 Foundation. It is distributed in the hope that it will be useful, but WITHOUT
10 ANY WARRANTY WHATSOEVER.
11 
12 Check the License for details. You should have received a copy of it, along
13 with the package; see the file 'COPYING'. If not, write to the Free Software
14 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
15 
16 /*******************************************************************/
17 /*                                                                 */
18 /*                DECLARATIONS of PUBLIC FUNCTIONS                 */
19 /*                                                                 */
20 /*******************************************************************/
21 /* Flx.c */
22 GEN     Fl_to_Flx(ulong x, long sv);
23 GEN     Flc_to_ZC(GEN z);
24 GEN     Flm_to_FlxV(GEN x, long sv);
25 GEN     Flm_to_FlxX(GEN x, long v,long w);
26 GEN     Flm_to_ZM(GEN z);
27 GEN     Flv_to_Flx(GEN x, long vs);
28 GEN     Flv_to_ZV(GEN z);
29 GEN     Flv_polint(GEN xa, GEN ya, ulong p, long vs);
30 GEN     Flv_roots_to_pol(GEN a, ulong p, long vs);
31 GEN     Flx_Fl_mul(GEN y, ulong x, ulong p);
32 GEN     Flx_to_Flv(GEN x, long N);
33 GEN     Flx_to_ZX(GEN z);
34 GEN     Flx_to_ZX_inplace(GEN z);
35 GEN     Flx_add(GEN x, GEN y, ulong p);
36 GEN     Flx_deriv(GEN z, ulong p);
37 GEN     Flx_div_by_X_x(GEN a, ulong x, ulong p, ulong *rem);
38 GEN     Flx_divrem(GEN x, GEN y, ulong p, GEN *pr);
39 ulong   Flx_eval(GEN x, ulong y, ulong p);
40 GEN     Flx_extgcd(GEN a, GEN b, ulong p, GEN *ptu, GEN *ptv);
41 ulong   Flx_extresultant(GEN a, GEN b, ulong p, GEN *ptU, GEN *ptV);
42 GEN     Flx_gcd(GEN a, GEN b, ulong p);
43 GEN     Flx_gcd_i(GEN a, GEN b, ulong p);
44 GEN     Flx_invmontgomery(GEN T, ulong p);
45 int     Flx_is_squarefree(GEN z, ulong p);
46 GEN     Flx_mul(GEN x, GEN y, ulong p);
47 GEN     Flx_neg(GEN x, ulong p);
48 GEN     Flx_neg_inplace(GEN x, ulong p);
49 GEN     Flx_normalize(GEN z, ulong p);
50 GEN     Flx_pow(GEN x, long n, ulong p);
51 GEN     Flx_recip(GEN x);
52 GEN     Flx_red(GEN z, ulong p);
53 GEN     Flx_rem_montgomery(GEN x, GEN mg, GEN T, ulong p);
54 GEN     Flx_rem(GEN x, GEN y, ulong p);
55 GEN     Flx_renormalize(GEN x, long l);
56 ulong   Flx_resultant(GEN a, GEN b, ulong p);
57 GEN     Flx_shift(GEN a, long n);
58 GEN     Flx_sqr(GEN x, ulong p);
59 GEN     Flx_sub(GEN x, GEN y, ulong p);
60 long    Flx_valuation(GEN x);
61 GEN     FlxC_to_ZXC(GEN x);
62 GEN     FlxM_to_ZXM(GEN z);
63 GEN     FlxV_Flc_mul(GEN V, GEN W, ulong p);
64 GEN     FlxV_to_Flm(GEN v, long n);
65 GEN     FlxX_add(GEN P, GEN Q, ulong p);
66 GEN     FlxX_renormalize(GEN x, long lx);
67 GEN     FlxX_shift(GEN a, long n);
68 GEN     FlxX_to_Flm(GEN v, long n);
69 GEN     FlxX_to_ZXX(GEN B);
70 GEN     FlxYqQ_pow(GEN x, GEN n, GEN S, GEN T, ulong p);
71 GEN     Flxq_inv(GEN x,GEN T,ulong p);
72 GEN     Flxq_invsafe(GEN x, GEN T, ulong p);
73 GEN     Flxq_mul(GEN y,GEN x,GEN T,ulong p);
74 GEN     Flxq_pow(GEN x, GEN n, GEN T, ulong p);
75 GEN     Flxq_powers(GEN x, long l, GEN T, ulong p);
76 GEN     Flxq_sqr(GEN y,GEN T,ulong p);
77 GEN     FlxqV_roots_to_pol(GEN V, GEN T, ulong p, long v);
78 GEN     FlxqX_normalize(GEN z, GEN T, ulong p);
79 GEN     FlxqX_Flxq_mul(GEN P, GEN U, GEN T, ulong p);
80 GEN     FlxqX_red(GEN z, GEN T, ulong p);
81 GEN     FlxqX_mul(GEN x, GEN y, GEN T, ulong p);
82 GEN     FlxqX_safegcd(GEN P, GEN Q, GEN T, ulong p);
83 GEN     FlxqX_sqr(GEN x, GEN T, ulong p);
84 GEN     FlxqX_divrem(GEN x, GEN y, GEN T, ulong p, GEN *pr);
85 GEN     FlxqXQ_pow(GEN x, GEN n, GEN S, GEN T, ulong p);
86 GEN     FlxqXV_prod(GEN V, GEN T, ulong p);
87 GEN     Z_to_Flx(GEN x, ulong p, long v);
88 GEN     ZM_to_Flm(GEN x, ulong p);
89 GEN     ZV_to_Flv(GEN x, ulong p);
90 GEN     ZX_to_Flx(GEN x, ulong p);
91 GEN     ZXV_to_FlxV(GEN v, ulong p);
92 GEN     ZXX_to_FlxX(GEN B, ulong p, long v);
93 GEN     ZXXV_to_FlxXV(GEN V, ulong p, long v);
94 GEN     polx_Flx(long sv);
95 GEN     zero_Flx(long sv);
96 
97 /* alglin1.c */
98 
99 GEN     Flm_Flc_mul(GEN x, GEN y, ulong p);
100 GEN     Flm_deplin(GEN x, ulong p);
101 GEN     Flm_gauss(GEN a, GEN b, ulong p);
102 GEN     Flm_indexrank(GEN x, ulong p);
103 GEN     Flm_inv(GEN x, ulong p);
104 GEN     Flm_ker(GEN x, ulong p);
105 GEN     Flm_ker_sp(GEN x, ulong p, long deplin);
106 GEN     Flm_mul(GEN x, GEN y, ulong p);
107 GEN     FlxqM_ker(GEN x, GEN T, ulong p);
108 GEN     FpC_Fp_mul(GEN x, GEN y, GEN p);
109 GEN     FpC_FpV_mul(GEN x, GEN y, GEN p);
110 GEN     FpM_FpC_mul(GEN x, GEN y, GEN p);
111 GEN     FpM_deplin(GEN x, GEN p);
112 GEN     FpM_gauss(GEN a, GEN b, GEN p);
113 GEN     FpM_image(GEN x, GEN p);
114 GEN     FpM_intersect(GEN x, GEN y, GEN p);
115 GEN     FpM_inv(GEN x, GEN p);
116 GEN     FpM_invimage(GEN m, GEN v, GEN p);
117 GEN     FpM_ker(GEN x, GEN p);
118 GEN     FpM_mul(GEN x, GEN y, GEN p);
119 long    FpM_rank(GEN x, GEN p);
120 GEN     FpM_indexrank(GEN x, GEN p);
121 GEN     FpM_suppl(GEN x, GEN p);
122 GEN     FpV_FpC_mul(GEN x, GEN y, GEN p);
123 GEN     FqM_gauss(GEN a, GEN b, GEN T, GEN p);
124 GEN     FqM_ker(GEN x, GEN T, GEN p);
125 GEN     FqM_suppl(GEN x, GEN T, GEN p);
126 GEN     QM_inv(GEN M, GEN dM);
127 GEN     ZM_inv(GEN M, GEN dM);
128 void    appendL(GEN x, GEN t);
129 GEN     cget1(long l, long t);
130 GEN     concat(GEN x, GEN y);
131 GEN     shallowconcat(GEN x, GEN y);
132 GEN     concatsp3(GEN x, GEN y, GEN z);
133 GEN     deplin(GEN x);
134 GEN     det(GEN a);
135 GEN     det0(GEN a,long flag);
136 GEN     det2(GEN a);
137 GEN     detint(GEN x);
138 GEN     diagonal(GEN x);
139 GEN     eigen(GEN x, long prec);
140 GEN     extract(GEN x, GEN l);
141 GEN     extract0(GEN x, GEN l1, GEN l2);
142 GEN     gaddmat(GEN x, GEN y);
143 GEN     gaddmat_i(GEN x, GEN y);
144 GEN     gauss(GEN a, GEN b);
145 GEN     gaussmodulo(GEN M, GEN D, GEN Y);
146 GEN     gaussmodulo2(GEN M, GEN D, GEN Y);
147 GEN     gscalcol(GEN x, long n);
148 GEN     gscalcol_i(GEN x, long n);
149 GEN     gscalmat(GEN x, long n);
150 GEN     gscalsmat(long x, long n);
151 GEN     gtomat(GEN x);
152 GEN     gtrans(GEN x);
153 GEN     shallowtrans(GEN x);
154 int     hnfdivide(GEN A, GEN B);
155 GEN     matid(long n);
156 GEN     matid_Flm(long n);
157 GEN     image(GEN x);
158 GEN     image2(GEN x);
159 GEN     imagecompl(GEN x);
160 GEN     indexrank(GEN x);
161 GEN     inverseimage(GEN mat, GEN y);
162 long    isdiagonal(GEN x);
163 long    isscalarmat(GEN x, GEN s);
164 GEN     ker(GEN x);
165 GEN     keri(GEN x);
166 GEN     matextract(GEN x, GEN l1, GEN l2);
167 GEN     matimage0(GEN x,long flag);
168 GEN     matker0(GEN x, long flag);
169 GEN     matmuldiagonal(GEN x, GEN d);
170 GEN     matmultodiagonal(GEN x, GEN y);
171 GEN     matsolvemod0(GEN M, GEN D, GEN Y,long flag);
172 GEN     mattodiagonal(GEN m);
173 GEN     mattodiagonal_i(GEN m);
174 long    rank(GEN x);
175 GEN     row(GEN A, long x1);
176 GEN     row_i(GEN A, long x0, long x1, long x2);
177 GEN     rowcopy(GEN A, long x0);
178 GEN     rowslice(GEN A, long x1, long x2);
179 GEN     rowslicepermute(GEN A, GEN p, long x1, long x2);
180 GEN     rowpermute(GEN A, GEN p);
181 GEN     sindexrank(GEN x);
182 GEN     sum(GEN v, long a, long b);
183 GEN     suppl(GEN x);
184 GEN     vconcat(GEN A, GEN B);
185 GEN     vecslice(GEN A, long y1, long y2);
186 GEN     vecslicepermute(GEN A, GEN p, long y1, long y2);
187 GEN     vecpermute(GEN A, GEN p);
188 
189 /* alglin2.c */
190 
191 GEN     QuickNormL1(GEN x,long prec);
192 GEN     QuickNormL2(GEN x,long prec);
193 int     RgM_ishnf(GEN x);
194 GEN     RgXQ_norm(GEN x, GEN T);
195 GEN     ZM_to_zm(GEN z);
196 int     ZM_ishnf(GEN x);
197 GEN     ZV_add(GEN x, GEN y);
198 GEN     ZV_sub(GEN x, GEN y);
199 GEN     ZV_to_nv(GEN z);
200 GEN     adj(GEN x);
201 GEN     assmat(GEN x);
202 GEN     caract(GEN x, long v);
203 GEN     caract2(GEN p, GEN x, long v);
204 GEN     caradj(GEN x, long v, GEN *py);
205 GEN     caradj0(GEN x, long v);
206 GEN     carhess(GEN x, long v);
207 GEN     charpoly0(GEN x, long v,long flag);
208 GEN     conjvec(GEN x,long prec);
209 GEN     gconj(GEN x);
210 GEN     gnorm(GEN x);
211 GEN     gnorml1(GEN x,long prec);
212 GEN     gnorml2(GEN x);
213 GEN     gsmith(GEN x);
214 GEN     gsmith2(GEN x);
215 GEN     gtrace(GEN x);
216 GEN     hess(GEN x);
217 GEN     hnf(GEN x);
218 GEN     hnfall(GEN x);
219 GEN     hnfall_i(GEN A, GEN *ptB, long remove);
220 GEN     hnflll(GEN x);
221 GEN     hnflll_i(GEN A, GEN *ptB, int remove);
222 GEN     hnfmod(GEN x, GEN detmat);
223 GEN     hnfmodid(GEN x,GEN p);
224 GEN     hnfmodidpart(GEN x, GEN p);
225 GEN     hnfperm(GEN x);
226 GEN     intersect(GEN x, GEN y);
227 GEN     jacobi(GEN a, long prec);
228 GEN     matfrobenius(GEN M, long flag, long v);
229 GEN     mathnf0(GEN x, long flag);
230 GEN     matrixqz(GEN x, GEN pp);
231 GEN     matrixqz0(GEN x, GEN pp);
232 GEN     matrixqz2(GEN x);
233 GEN     matrixqz3(GEN x);
234 GEN     matsnf0(GEN x, long flag);
235 GEN     minpoly(GEN x, long v);
236 GEN     signat(GEN a);
237 GEN     smith(GEN x);
238 GEN     smith2(GEN x);
239 GEN     smithall(GEN x, GEN *ptU, GEN *ptV);
240 GEN     smithclean(GEN z);
241 GEN     smithrel(GEN H, GEN *newU, GEN *newUi);
242 GEN     sqred(GEN a);
243 GEN     sqred1(GEN a);
244 GEN     sqred3(GEN a);
245 GEN     zm_to_ZM(GEN z);
246 GEN     zx_to_ZX(GEN z);
247 
248 /* anal.c */
249 
250 void    addhelp(entree *ep, char *s);
251 void    delete_named_var(entree *ep);
252 long    delete_var(void);
253 entree* fetch_named_var(char *s);
254 long    fetch_user_var(char *s);
255 long    fetch_var(void);
256 void    freeep(entree *ep);
257 GEN     gp_read_str(char *t);
258 entree* gp_variable(char *s);
259 long    hashvalue(char **s);
260 entree* install(void *f, char *name, char *code);
261 entree* is_entry(char *s);
262 void    kill0(entree *ep);
263 GEN     readseq(char *t);
264 long    manage_var(long n, entree *ep);
265 void    name_var(long n, char *s);
266 GEN     strtoGENstr(const char *s);
267 GEN     strtoi(char *s);
268 GEN     strtor(char *s, long prec);
269 GEN     type0(GEN x);
270 
271 /* aprcl.c */
272 
273 long    isprimeAPRCL(GEN N);
274 
275 /* Qfb.c */
276 
277 void    check_quaddisc(GEN x, long *s, long *r, char *f);
278 void    check_quaddisc_real(GEN x, long *r, char *f);
279 void    check_quaddisc_imag(GEN x, long *r, char *f);
280 GEN     compimag(GEN x, GEN y);
281 GEN     compimagraw(GEN x, GEN y);
282 GEN     compraw(GEN x, GEN y);
283 GEN     compreal(GEN x, GEN y);
284 GEN     comprealraw(GEN x, GEN y);
285 GEN     nucomp(GEN x, GEN y, GEN l);
286 GEN     nudupl(GEN x, GEN l);
287 GEN     nupow(GEN x, GEN n);
288 GEN     powraw(GEN x, long n);
289 GEN     powrealraw(GEN x, long n);
290 GEN     primeform(GEN x, GEN p, long prec);
291 GEN     Qfb0(GEN x, GEN y, GEN z, GEN d, long prec);
292 GEN     qfbimagsolvep(GEN Q, GEN p);
293 GEN     qfbrealsolvep(GEN Q, GEN p);
294 GEN     qfbred0(GEN x, long flag, GEN D, GEN isqrtD, GEN sqrtD);
295 GEN     qfbsolve(GEN Q, GEN n);
296 GEN     qfi(GEN x, GEN y, GEN z);
297 GEN     qfr(GEN x, GEN y, GEN z, GEN d);
298 GEN     quadgen(GEN x);
299 GEN     quadpoly(GEN x);
300 GEN     quadpoly0(GEN x, long v);
301 GEN     redimag(GEN x);
302 GEN     redreal(GEN x);
303 GEN     redrealnod(GEN x, GEN isqrtD);
304 GEN     rhoreal(GEN x);
305 GEN     rhorealnod(GEN x, GEN isqrtD);
306 GEN     sqcompimag(GEN x);
307 GEN     sqcompreal(GEN x);
308 
309 /* arith1.c */
310 
311 ulong   Fl_pow(ulong x, ulong n, ulong p);
312 ulong   Fl_sqrt(ulong a, ulong p);
313 GEN     Fp_inv(GEN a, GEN m);
314 GEN     Fp_invsafe(GEN a, GEN m);
315 GEN     Fp_pow(GEN a, GEN n, GEN m);
316 GEN     Fp_pows(GEN A, long k, GEN N);
317 GEN     Fp_powu(GEN x, ulong k, GEN p);
318 GEN     Fp_sqrt(GEN a, GEN p);
319 GEN     Fp_sqrtn(GEN a, GEN n, GEN p, GEN *zetan);
320 long    Z_issquarerem(GEN x, GEN *pt);
321 GEN     bestappr0(GEN x, GEN a, GEN b);
322 GEN     bestappr(GEN x, GEN k);
323 long    cgcd(long a,long b);
324 GEN     chinese1(GEN x);
325 GEN     chinese(GEN x, GEN y);
326 GEN     classno2(GEN x);
327 GEN     classno(GEN x);
328 long    clcm(long a,long b);
329 GEN     contfrac0(GEN x, GEN b, long flag);
330 GEN     fibo(long n);
331 GEN     fundunit(GEN x);
332 GEN     gboundcf(GEN x, long k);
333 GEN     gcf2(GEN b, GEN x);
334 GEN     gcf(GEN x);
335 GEN     gener(GEN m);
336 ulong   gener_Fl_local(ulong p, GEN L);
337 ulong   gener_Fl(ulong p);
338 GEN     gener_Fp_local(GEN p, GEN L);
339 GEN     gener_Fp(GEN p);
340 GEN     gfundunit(GEN x);
341 GEN     ggener(GEN m);
342 long    gisanypower(GEN x, GEN *pty);
343 GEN     gisfundamental(GEN x);
344 GEN     gisprime(GEN x, long flag);
345 GEN     gispseudoprime(GEN x, long flag);
346 GEN     gispsp(GEN x);
347 GEN     gissquarerem(GEN x, GEN *pt);
348 GEN     gissquare(GEN x);
349 GEN     gkrogs(GEN x, long y);
350 GEN     gkronecker(GEN x, GEN y);
351 GEN     gmillerrabin(GEN n, long k);
352 GEN     gnextprime(GEN n);
353 GEN     gprecprime(GEN n);
354 GEN     gracine(GEN a);
355 GEN     gregula(GEN x, long prec);
356 GEN     hclassno(GEN x);
357 long    hil0(GEN x, GEN y, GEN p);
358 long    hil(GEN x, GEN y, GEN p);
359 long    isanypower(GEN x, GEN *y);
360 long    isfundamental(GEN x);
361 long    ispower(GEN x, GEN k, GEN *pty);
362 long    isprime(GEN x);
363 long    isprimeSelfridge(GEN x);
364 long    ispseudoprime(GEN x, long flag);
365 long    ispsp(GEN x);
366 long    krois(GEN x, long y);
367 long    kronecker(GEN x, GEN y);
368 long    krosi(long s, GEN x);
369 long    kross(long x, long y);
370 long    krouu(ulong x, ulong y);
371 GEN     lcmii(GEN a, GEN b);
372 GEN     mpfact(long n);
373 GEN     order(GEN x);
374 GEN     pnqn(GEN x);
375 GEN     qfbclassno0(GEN x,long flag);
376 GEN     quaddisc(GEN x);
377 GEN     racine(GEN a);
378 GEN     regula(GEN x, long prec);
379 GEN     seq_umul(ulong a, ulong b);
380 long    uissquarerem(ulong A, ulong *sqrtA);
381 GEN     znorder(GEN x, GEN o);
382 GEN     znstar(GEN x);
383 
384 /* arith2.c */
385 
386 long    Z_issquarefree(GEN x);
387 GEN     addprimes(GEN primes);
388 GEN     auxdecomp(GEN n, long all);
389 long    bigomega(GEN n);
390 GEN     binaire(GEN x);
391 long    bittest(GEN x, long n);
392 GEN     boundfact(GEN n, long lim);
393 GEN     core(GEN n);
394 GEN     corepartial(GEN n, long l);
395 GEN     core0(GEN n,long flag);
396 GEN     core2(GEN n);
397 GEN     core2partial(GEN n, long l);
398 GEN     coredisc(GEN n);
399 GEN     coredisc0(GEN n,long flag);
400 GEN     coredisc2(GEN n);
401 GEN     divisors(GEN n);
402 GEN     factorint(GEN n, long flag);
403 GEN     factoru(ulong n);
404 GEN     factoru_pow(ulong n);
405 GEN     gbigomega(GEN n);
406 GEN     gbitand(GEN x, GEN y);
407 GEN     gbitneg(GEN x, long n);
408 GEN     gbitnegimply(GEN x, GEN y);
409 GEN     gbitor(GEN x, GEN y);
410 GEN     gbittest(GEN x, GEN n);
411 GEN     gbitxor(GEN x, GEN y);
412 GEN     gboundfact(GEN n, long lim);
413 GEN     gissquarefree(GEN x);
414 GEN     gmu(GEN n);
415 GEN     gnumbdiv(GEN n);
416 GEN     gomega(GEN n);
417 GEN     gphi(GEN n);
418 GEN     gsumdiv(GEN n);
419 GEN     gsumdivk(GEN n,long k);
420 byteptr initprimes(ulong maxnum);
421 long    issquarefree(GEN x);
422 ulong   maxprime(void);
423 void    maxprime_check(ulong c);
424 long    mu(GEN n);
425 GEN     numbdiv(GEN n);
426 long    omega(GEN n);
427 GEN     phi(GEN n);
428 GEN     prime(long n);
429 GEN     primepi(GEN x);
430 GEN     primes(long n);
431 GEN     removeprimes(GEN primes);
432 GEN     smallfact(GEN n);
433 GEN     sumdiv(GEN n);
434 GEN     sumdivk(GEN n,long k);
435 GEN     Z_factor(GEN n);
436 
437 /* base1.c */
438 
439 GEN     T2_from_embed(GEN x, long r1);
440 void    check_ZX(GEN x, char *s);
441 void    check_ZXY(GEN x, char *s);
442 GEN     check_units(GEN x, char *f);
443 void    checkbid(GEN bid);
444 GEN     checkbnf(GEN bnf);
445 void    checkbnr(GEN bnr);
446 void    checkbnrgen(GEN bnr);
447 void    checkid(GEN x, long N);
448 GEN     checknf(GEN nf);
449 GEN     checknfelt_mod(GEN nf, GEN x, char *s);
450 void    checkprimeid(GEN bid);
451 void    checkrnf(GEN rnf);
452 GEN     dirzetak(GEN nf, GEN b);
453 GEN     factoredpolred(GEN x, GEN fa);
454 GEN     factoredpolred2(GEN x, GEN fa);
455 GEN     galois(GEN x, long prec);
456 GEN     galoisapply(GEN nf, GEN aut, GEN x);
457 GEN     get_bnf(GEN x, long *t);
458 GEN     get_bnfpol(GEN x, GEN *bnf, GEN *nf);
459 GEN     get_nf(GEN x, long *t);
460 GEN     get_nfpol(GEN x, GEN *nf);
461 GEN     get_primeid(GEN x);
462 GEN     glambdak(GEN nfz, GEN s, long prec);
463 int     gpolcomp(GEN p1, GEN p2);
464 GEN     gzetak(GEN nfz, GEN s, long prec);
465 GEN     gzetakall(GEN nfz, GEN s, long flag, long prec);
466 GEN     initalg(GEN x, long prec);
467 GEN     initalgred(GEN x, long prec);
468 GEN     initalgred2(GEN x, long prec);
469 GEN     initzeta(GEN pol, long prec);
470 long    nf_get_r1(GEN nf);
471 long    nf_get_r2(GEN nf);
472 void    nf_get_sign(GEN nf, long *r1, long *r2);
473 long    nfgetprec(GEN x);
474 GEN     nfinit0(GEN x, long flag, long prec);
475 GEN     nfisincl(GEN a, GEN b);
476 GEN     nfisisom(GEN a, GEN b);
477 GEN     nfnewprec(GEN nf, long prec);
478 GEN     nfnewprec_i(GEN nf, long prec);
479 GEN     ordred(GEN x);
480 GEN     polgalois(GEN x, long prec);
481 GEN     polred(GEN x);
482 GEN     polred0(GEN x, long flag, GEN p);
483 GEN     polred2(GEN x);
484 GEN     polredabs(GEN x);
485 GEN     polredabs0(GEN x, long flag);
486 GEN     polredabs2(GEN x);
487 GEN     polredabsall(GEN x, long flun);
488 GEN     rootsof1(GEN x);
489 GEN     smallpolred(GEN x);
490 GEN     smallpolred2(GEN x);
491 GEN     tschirnhaus(GEN x);
492 
493 /* base2.c */
494 
495 GEN     allbase(GEN f, long flag, GEN *dx, GEN *dK, GEN *index, GEN *ptw);
496 GEN     base(GEN x, GEN *y);
497 GEN     base2(GEN x, GEN *y);
498 void    checkmodpr(GEN modpr);
499 GEN     compositum(GEN pol1, GEN pol2);
500 GEN     compositum2(GEN pol1, GEN pol2);
501 GEN     discf(GEN x);
502 GEN     discf2(GEN x);
503 GEN     factoredbase(GEN x, GEN p, GEN *y);
504 GEN     factoreddiscf(GEN x, GEN p);
505 GEN     ff_to_nf(GEN x, GEN modpr);
506 GEN     fix_relative_pol(GEN nf, GEN x, int chk_lead);
507 GEN     gcdpm(GEN f1,GEN f2,GEN pm);
508 GEN     indexpartial(GEN P, GEN DP);
509 GEN     modprX(GEN x, GEN nf,GEN modpr);
510 GEN     modprX_lift(GEN x, GEN modpr);
511 GEN     modprM(GEN z, GEN nf,GEN modpr);
512 GEN     modprM_lift(GEN z, GEN modpr);
513 GEN     nf_to_ff_init(GEN nf, GEN *pr, GEN *T, GEN *p);
514 GEN     nf_to_ff(GEN nf, GEN x, GEN modpr);
515 GEN     nfbasis(GEN x, GEN *y,long flag,GEN p);
516 GEN     nfbasis0(GEN x,long flag,GEN p);
517 GEN     nfdiscf0(GEN x,long flag, GEN p);
518 GEN     nfmodprinit(GEN nf, GEN pr);
519 GEN     nfreducemodpr(GEN nf, GEN x, GEN modpr);
520 GEN     polcompositum0(GEN pol1, GEN pol2,long flag);
521 GEN     primedec(GEN nf,GEN p);
522 GEN     rnfbasis(GEN bnf, GEN order);
523 GEN     rnfdedekind(GEN nf, GEN T, GEN pr);
524 GEN     rnfdet(GEN nf, GEN order);
525 GEN     rnfdet2(GEN nf, GEN A, GEN I);
526 GEN     rnfdiscf(GEN nf, GEN pol);
527 GEN     rnfequation(GEN nf, GEN pol2);
528 GEN     rnfequation0(GEN nf, GEN pol2, long flall);
529 GEN     rnfequation2(GEN nf, GEN pol);
530 GEN     rnfhnfbasis(GEN bnf, GEN order);
531 long    rnfisfree(GEN bnf, GEN order);
532 GEN     rnflllgram(GEN nf, GEN pol, GEN order,long prec);
533 GEN     rnfpolred(GEN nf, GEN pol, long prec);
534 GEN     rnfpolredabs(GEN nf, GEN pol, long flag);
535 GEN     rnfpseudobasis(GEN nf, GEN pol);
536 GEN     rnfsimplifybasis(GEN bnf, GEN order);
537 GEN     rnfsteinitz(GEN nf, GEN order);
538 GEN     smallbase(GEN x, GEN *y);
539 GEN     smalldiscf(GEN x);
540 long    val_fact(ulong n, ulong p);
541 GEN     zk_to_ff_init(GEN nf, GEN *pr, GEN *T, GEN *p);
542 GEN     zk_to_ff(GEN x, GEN modpr);
543 GEN     zkmodprinit(GEN nf, GEN pr);
544 
545 /* base3.c */
546 
547 int     RgV_isscalar(GEN x);
548 GEN     algtobasis(GEN nf, GEN x);
549 GEN     arch_to_perm(GEN arch);
550 GEN     basistoalg(GEN nf, GEN x);
551 GEN     dethnf(GEN x);
552 GEN     dethnf_i(GEN mat);
553 GEN     element_div(GEN nf, GEN x, GEN y);
554 GEN     element_inv(GEN nf, GEN x);
555 GEN     element_invmodideal(GEN nf, GEN x, GEN ideal);
556 GEN     element_mul(GEN nf,GEN x,GEN y);
557 GEN     element_muli(GEN nf,GEN x,GEN y);
558 GEN     element_mulid(GEN nf, GEN x, long i);
559 GEN     element_pow(GEN nf,GEN x,GEN k);
560 GEN     element_powmodideal(GEN nf,GEN x,GEN k,GEN ideal);
561 GEN     element_powmodidele(GEN nf,GEN x,GEN k,GEN idele,GEN structarch);
562 GEN     element_sqr(GEN nf,GEN x);
563 GEN     element_sqri(GEN nf, GEN x);
564 long    element_val(GEN nf, GEN x, GEN vp);
565 GEN     eltmul_get_table(GEN nf, GEN x);
566 GEN     ideallist(GEN nf,long bound);
567 GEN     ideallist0(GEN nf,long bound, long flag);
568 GEN     ideallistarch(GEN nf, GEN list, GEN arch);
569 GEN     ideallistunit(GEN nf,long bound);
570 GEN     ideallistunitgen(GEN nf,long bound);
571 GEN     ideallistzstar(GEN nf,long bound);
572 GEN     ideallistzstargen(GEN nf,long bound);
573 GEN     idealstar0(GEN nf, GEN x,long flag);
574 int     isnfscalar(GEN x);
575 GEN     lift_to_pol(GEN x);
576 GEN     lllreducemodmatrix(GEN x,GEN y);
577 GEN     matalgtobasis(GEN nf, GEN x);
578 GEN     matbasistoalg(GEN nf, GEN x);
579 GEN     nfdiveuc(GEN nf, GEN a, GEN b);
580 GEN     nfdivrem(GEN nf, GEN a, GEN b);
581 GEN     nfmod(GEN nf, GEN a, GEN b);
582 GEN     nfreducemodideal(GEN nf,GEN x,GEN ideal);
583 GEN     nfreducemodidele(GEN nf,GEN g,GEN idele,GEN structarch);
584 GEN     reducemodinvertible(GEN x, GEN y);
585 GEN     reducemodmatrix(GEN x, GEN y);
586 GEN     reducemodHNF(GEN x, GEN y, GEN *Q);
587 GEN     rnfalgtobasis(GEN rnf, GEN x);
588 GEN     rnfbasistoalg(GEN rnf, GEN x);
589 GEN     set_sign_mod_idele(GEN nf, GEN x, GEN y, GEN idele, GEN sarch);
590 GEN     vecmodii(GEN a, GEN b);
591 GEN     zarchstar(GEN nf,GEN x,GEN arch);
592 GEN     zideallog(GEN nf,GEN x,GEN bigideal);
593 GEN     zidealstar(GEN nf, GEN x);
594 GEN     zidealstarinit(GEN nf, GEN x);
595 GEN     Idealstar(GEN nf, GEN x,long flun);
596 GEN     zidealstarinitgen(GEN nf, GEN x);
597 GEN     znlog(GEN x, GEN g);
598 GEN     zsigne(GEN nf,GEN alpha,GEN arch);
599 GEN     zsigns(GEN nf,GEN alpha);
600 
601 /* base4.c */
602 
603 GEN     element_divmodpr(GEN nf, GEN x, GEN y, GEN modpr);
604 GEN     element_invmodpr(GEN nf, GEN y, GEN modpr);
605 GEN     element_mulmodpr(GEN nf, GEN x, GEN y, GEN modpr);
606 GEN     element_mulvec(GEN nf, GEN x, GEN v);
607 GEN     element_powmodpr(GEN nf, GEN x, GEN k, GEN modpr);
608 GEN     element_reduce(GEN nf, GEN x, GEN ideal);
609 GEN     ideal_two_elt(GEN nf, GEN ix);
610 GEN     ideal_two_elt0(GEN nf, GEN ix, GEN a);
611 GEN     ideal_two_elt2(GEN nf, GEN x, GEN a);
612 GEN     idealadd(GEN nf, GEN x, GEN y);
613 GEN     idealaddmultoone(GEN nf, GEN list);
614 GEN     idealaddtoone(GEN nf, GEN x, GEN y);
615 GEN     idealaddtoone0(GEN nf, GEN x, GEN y);
616 GEN     idealappr(GEN nf, GEN x);
617 GEN     idealappr0(GEN nf, GEN x, long fl);
618 GEN     idealapprfact(GEN nf, GEN x);
619 GEN     idealchinese(GEN nf, GEN x, GEN y);
620 GEN     idealcoprime(GEN nf, GEN x, GEN y);
621 GEN     idealdiv(GEN nf, GEN x, GEN y);
622 GEN     idealdiv0(GEN nf, GEN x, GEN y,long flag);
623 GEN     idealdivexact(GEN nf, GEN x, GEN y);
624 GEN     idealdivpowprime(GEN nf, GEN x, GEN vp, GEN n);
625 GEN     idealmulpowprime(GEN nf, GEN x, GEN vp, GEN n);
626 GEN     idealfactor(GEN nf, GEN x);
627 GEN     idealhermite(GEN nf, GEN x);
628 GEN     idealhnf0(GEN nf, GEN a, GEN b);
629 GEN     idealintersect(GEN nf, GEN x, GEN y);
630 GEN     idealinv(GEN nf, GEN ix);
631 GEN     ideallllred(GEN nf,GEN ix,GEN vdir,long prec);
632 GEN     ideallllred_elt(GEN nf, GEN I, GEN vdir);
633 GEN     idealmul(GEN nf, GEN ix, GEN iy);
634 GEN     idealmul0(GEN nf, GEN ix, GEN iy, long flag, long prec);
635 GEN     idealmulh(GEN nf, GEN ix, GEN iy);
636 GEN     idealmulprime(GEN nf,GEN ix,GEN vp);
637 GEN     idealmulred(GEN nf, GEN ix, GEN iy, long prec);
638 GEN     idealnorm(GEN nf, GEN x);
639 GEN     idealpow(GEN nf, GEN ix, GEN n);
640 GEN     idealpow0(GEN nf, GEN ix, GEN n, long flag, long prec);
641 GEN     idealpowred(GEN nf, GEN ix, GEN n,long prec);
642 GEN     idealpows(GEN nf, GEN ideal, long iexp);
643 GEN     idealprodprime(GEN nf, GEN L);
644 GEN     idealred_elt(GEN nf, GEN I);
645 long    idealtyp(GEN *ideal, GEN *arch);
646 long    idealval(GEN nf,GEN ix,GEN vp);
647 GEN     ideleaddone(GEN nf, GEN x, GEN idele);
648 int     isidentity(GEN x);
649 long    isideal(GEN nf,GEN x);
650 GEN     minideal(GEN nf,GEN ix,GEN vdir,long prec);
651 GEN     mul_content(GEN cx, GEN cy);
652 GEN     nfdetint(GEN nf,GEN pseudo);
653 GEN     nfhermite(GEN nf, GEN x);
654 GEN     nfhermitemod(GEN nf, GEN x, GEN detmat);
655 GEN     nfkermodpr(GEN nf, GEN x, GEN modpr);
656 GEN     nfsmith(GEN nf, GEN x);
657 GEN     nfsolvemodpr(GEN nf, GEN a, GEN b, GEN modpr);
658 GEN     prime_to_ideal(GEN nf, GEN vp);
659 GEN     principalideal(GEN nf, GEN a);
660 GEN     principalidele(GEN nf, GEN a, long prec);
661 GEN     vecdiv(GEN x, GEN y);
662 GEN     vecinv(GEN x);
663 GEN     vecmul(GEN x, GEN y);
664 GEN     vecpow(GEN x, GEN n);
665 
666 /* base5.c */
667 
668 GEN     rnfelementabstorel(GEN rnf, GEN x);
669 GEN     rnfelementdown(GEN rnf, GEN x);
670 GEN     rnfelementreltoabs(GEN rnf, GEN x);
671 GEN     rnfelementup(GEN rnf, GEN x);
672 GEN     rnfidealabstorel(GEN rnf, GEN x);
673 GEN     rnfidealdown(GEN rnf, GEN x);
674 GEN     rnfidealhermite(GEN rnf, GEN x);
675 GEN     rnfidealmul(GEN rnf,GEN x,GEN y);
676 GEN     rnfidealnormabs(GEN rnf, GEN x);
677 GEN     rnfidealnormrel(GEN rnf, GEN x);
678 GEN     rnfidealreltoabs(GEN rnf, GEN x);
679 GEN     rnfidealtwoelement(GEN rnf,GEN x);
680 GEN     rnfidealup(GEN rnf, GEN x);
681 GEN     rnfinitalg(GEN nf,GEN pol,long prec);
682 
683 /* bibli1.c */
684 
685 GEN     ZM_zc_mul(GEN x, GEN y);
686 GEN     ZM_zm_mul(GEN x, GEN y);
687 GEN     algdep(GEN x, long n, long prec);
688 GEN     algdep0(GEN x, long n, long bit,long prec);
689 GEN     algdep2(GEN x, long n, long bit);
690 GEN     gram_matrix(GEN M);
691 GEN     kerint(GEN x);
692 GEN     kerint1(GEN x);
693 GEN     lindep(GEN x, long prec);
694 GEN     lindep0(GEN x, long flag,long prec);
695 GEN     lindep2(GEN x, long bit);
696 GEN     lll(GEN x, long prec);
697 GEN     lllgen(GEN x);
698 GEN     lllgram(GEN x, long prec);
699 GEN     lllgramgen(GEN x);
700 GEN     lllgramint(GEN x);
701 GEN     lllgramkerim(GEN x);
702 GEN     lllgramkerimgen(GEN x);
703 GEN     lllint(GEN x);
704 GEN     lllint_i(GEN x, long alpha, int gram, GEN *h, GEN *ptfl, GEN *ptB);
705 GEN     lllint_ip(GEN x, long alpha);
706 GEN     lllintpartial(GEN mat);
707 GEN     lllintpartial_ip(GEN mat);
708 GEN     lllkerim(GEN x);
709 GEN     lllkerimgen(GEN x);
710 GEN     matkerint0(GEN x,long flag);
711 GEN     minim(GEN a, GEN borne, GEN stockmax);
712 GEN     qfrep0(GEN a, GEN borne, long flag);
713 GEN     qfminim0(GEN a, GEN borne, GEN stockmax,long flag, long prec);
714 GEN     minim2(GEN a, GEN borne, GEN stockmax);
715 GEN     perf(GEN a);
716 GEN     qflll0(GEN x, long flag, long prec);
717 GEN     qflllgram0(GEN x, long flag, long prec);
718 char*   stackmalloc(size_t N);
719 GEN     zncoppersmith(GEN P0, GEN N, GEN X, GEN B) ;
720 
721 /* bibli2.c */
722 
723 GEN     binomial(GEN x, long k);
724 int     cmp_prime_ideal(GEN x, GEN y);
725 int     cmp_prime_over_p(GEN x, GEN y);
726 int     cmp_vecint(GEN x, GEN y);
727 GEN     convol(GEN x, GEN y);
728 GEN     cyclo(long n, long v);
729 GEN     dirdiv(GEN x, GEN y);
730 GEN     dirmul(GEN x, GEN y);
731 long    gen_search(GEN x, GEN y, long flag, int (*cmp)(GEN,GEN));
732 long    gen_search_aux(GEN x, GEN y, long flag, void *data, int (*cmp)(void*,GEN,GEN));
733 GEN     gen_setminus(GEN set1, GEN set2, int (*cmp)(GEN,GEN));
734 GEN     gen_sort(GEN x, long flag, int (*cmp)(GEN,GEN));
735 GEN     gen_sort_aux(GEN x, long flag, void *data, int (*cmp)(void *,GEN,GEN));
736 GEN     genrand(GEN N);
737 long    getrand(void);
738 long    getstack(void);
739 long    gettime(void);
740 GEN     gprec(GEN x, long l);
741 GEN     gprec_wtrunc(GEN x, long pr);
742 GEN     gprec_w(GEN x, long pr);
743 GEN     gtoset(GEN x);
744 GEN     indexlexsort(GEN x);
745 GEN     indexsort(GEN x);
746 GEN     laplace(GEN x);
747 GEN     legendre(long n, long v);
748 GEN     lexsort(GEN x);
749 GEN     mathilbert(long n);
750 GEN     matqpascal(long n, GEN q);
751 GEN     modreverse_i(GEN a, GEN T);
752 GEN     numtoperm(long n, GEN x);
753 int     pari_compare_lg(GEN a,GEN b);
754 int     pari_compare_long(long *a,long *b);
755 GEN     permtonum(GEN x);
756 GEN     polint(GEN xa, GEN ya, GEN x, GEN *dy);
757 GEN     polrecip(GEN x);
758 GEN     polymodrecip(GEN x);
759 GEN     roots_to_pol(GEN a, long v);
760 GEN     setintersect(GEN x, GEN y);
761 long    setisset(GEN x);
762 GEN     setminus(GEN x, GEN y);
763 long    setrand(long seed);
764 long    setsearch(GEN x, GEN y, long flag);
765 GEN     setunion(GEN x, GEN y);
766 GEN     sindexlexsort(GEN x);
767 GEN     sindexsort(GEN x);
768 GEN     sort(GEN x);
769 long    tablesearch(GEN T, GEN x, int (*cmp)(GEN,GEN));
770 GEN     tchebi(long n, long v);
771 GEN     vecbinome(long n);
772 GEN     vecsort(GEN x, GEN k);
773 GEN     vecsort0(GEN x, GEN k, long flag);
774 
775 /* buch1.c */
776 
777 GEN     buchimag(GEN D, GEN gcbach, GEN gcbach2, GEN gCO);
778 GEN     buchreal(GEN D, GEN gsens, GEN gcbach, GEN gcbach2, GEN gRELSUP, long prec);
779 GEN     quadclassunit0(GEN x, long flag,GEN data, long prec);
780 GEN     quadhilbert(GEN D, GEN flag, long prec);
781 GEN     quadray(GEN bnf, GEN f, GEN flag, long prec);
782 
783 
784 /* buch2.c */
785 
786 GEN     bnfclassunit0(GEN P,long flag,GEN data,long prec);
787 GEN     bnfinit0(GEN P,long flag,GEN data,long prec);
788 GEN     bnfmake(GEN sbnf,long prec);
789 GEN     bnfnewprec(GEN nf, long prec);
790 GEN     bnrnewprec(GEN bnr, long prec);
791 GEN     buchall(GEN P, double bach, double bach2, long nbrelpid, long flun, long prec);
792 GEN     buchfu(GEN bignf);
793 GEN     check_and_build_obj(GEN S, long tag, GEN (*build)(GEN));
794 GEN     classgrouponly(GEN P,GEN data,long prec);
795 GEN     isprincipal(GEN bignf, GEN x);
796 GEN     isprincipalall(GEN bignf, GEN x,long flall);
797 GEN     isprincipalfact(GEN bnf,GEN P, GEN e, GEN C, long flag);
798 GEN     isprincipalforce(GEN bignf,GEN x);
799 GEN     isprincipalgen(GEN bignf, GEN x);
800 GEN     isprincipalgenforce(GEN bignf,GEN x);
801 GEN     isunit(GEN bignf, GEN x);
802 GEN     regulator(GEN P,GEN data,long prec);
803 GEN     signunits(GEN bignf);
804 GEN     smallbuchinit(GEN pol,double bach,double bach2,long nbrelpid,long prec);
805 GEN     zsignunits(GEN bnf, GEN archp, int add_zu);
806 
807 /* buch3.c */
808 
809 GEN     bnrclass0(GEN bignf, GEN ideal, long flag);
810 GEN     bnrclassno(GEN bignf,GEN ideal);
811 GEN     bnrclassnolist(GEN bnf,GEN listes);
812 GEN     bnrconductor(GEN arg0,GEN arg1,GEN arg2,GEN flag);
813 GEN     bnrconductorofchar(GEN bnr,GEN chi);
814 GEN     bnrdisc0(GEN arg0, GEN arg1, GEN arg2, long flag);
815 GEN     bnrdisclist0(GEN bnf,GEN borne, GEN arch);
816 GEN     bnrinit0(GEN bignf,GEN ideal,long flag);
817 long    bnrisconductor(GEN arg0,GEN arg1,GEN arg2);
818 GEN     bnrisprincipal(GEN bnf, GEN x,long flag);
819 GEN     buchnarrow(GEN bignf);
820 GEN     buchray(GEN bignf,GEN ideal);
821 GEN     buchrayinit(GEN bignf,GEN ideal);
822 GEN     buchrayinitgen(GEN bignf,GEN ideal);
823 long    certifybuchall(GEN bnf);
824 GEN     conductor(GEN bnr,GEN subgroup,long all);
825 GEN     decodemodule(GEN nf, GEN fa);
826 GEN     discrayabs(GEN bnr,GEN subgroup);
827 GEN     discrayabscond(GEN bnr,GEN subgroup);
828 GEN     discrayabslist(GEN bnf,GEN listes);
829 GEN     discrayabslistarch(GEN bnf, GEN arch, long bound);
830 GEN     discrayabslistlong(GEN bnf, long bound);
831 GEN     discrayrel(GEN bnr,GEN subgroup);
832 GEN     discrayrelcond(GEN bnr,GEN subgroup);
833 GEN     idealmodidele(GEN bnr, GEN x);
834 long    isinvector(GEN v, GEN x);
835 GEN     isprincipalray(GEN bnf, GEN x);
836 GEN     isprincipalraygen(GEN bnf, GEN x);
837 GEN     quick_isprincipalgen(GEN bnf, GEN x);
838 GEN     rnfconductor(GEN bnf, GEN polrel, long flag);
839 GEN     rnfnormgroup(GEN bnr, GEN polrel);
840 GEN     subgrouplist0(GEN bnr, GEN indexbound, long all);
841 
842 /* buch4.c */
843 
844 GEN     bnfisnorm(GEN bnf,GEN x,long flag,long PREC);
845 GEN     rnfisnorm(GEN S, GEN x, long flag);
846 GEN     rnfisnorminit(GEN bnf, GEN relpol, int galois);
847 GEN     bnfissunit(GEN bnf,GEN suni,GEN x);
848 GEN     bnfsunit(GEN bnf,GEN s,long PREC);
849 long    nfhilbert(GEN bnf,GEN a,GEN b);
850 long    nfhilbert0(GEN bnf,GEN a,GEN b,GEN p);
851 long    nfhilbertp(GEN bnf,GEN a,GEN b,GEN p);
852 long    qpsoluble(GEN pol,GEN p);
853 long    qpsolublenf(GEN bnf,GEN pol,GEN p);
854 long    zpsoluble(GEN pol,GEN p);
855 long    zpsolublenf(GEN bnf,GEN pol,GEN p);
856 
857 /* default.c */
858 
859 GEN default0(char *a, char *b, long flag);
860 GEN gp_default(char *a, char *b);
861 long setseriesprecision(long n);
862 long getrealprecision(void);
863 long setrealprecision(long n, long *prec);
864 
865 /* elldata.c */
866 
867 GEN     ellcondfile(long f);
868 GEN     ellcondlist(long f);
869 GEN     ellconvertname(GEN s);
870 GEN     ellgenerators(GEN E);
871 GEN     ellidentify(GEN E);
872 GEN     ellsearch(GEN A);
873 GEN     ellsearchcurve(GEN name);
874 void    forell(entree *ep, long a, long b, char *ch);
875 
876 /* elliptic.c */
877 
878 GEN     addell(GEN e, GEN z1, GEN z2);
879 GEN     akell(GEN e, GEN n);
880 GEN     anell(GEN e, long n);
881 GEN     apell(GEN e, GEN p);
882 GEN     apell2(GEN e, GEN p);
883 GEN     bilhell(GEN e, GEN z1, GEN z2, long prec);
884 void    checkbell(GEN e);
885 void    checkell(GEN e);
886 void    checksell(GEN e);
887 GEN     coordch(GEN e, GEN ch);
888 GEN     ellap0(GEN e, GEN p, long flag);
889 GEN     elleisnum(GEN om, long k, long flag, long prec);
890 GEN     elleta(GEN om, long prec);
891 GEN     ellglobalred(GEN e1);
892 GEN     ellheight0(GEN e, GEN a, long flag,long prec);
893 GEN     ellinit0(GEN x,long flag,long prec);
894 GEN     ellisoncurve(GEN e, GEN z);
895 GEN     elllseries(GEN e, GEN s, GEN A, long prec);
896 GEN     elllocalred(GEN e, GEN p1);
897 GEN     ellminimalmodel(GEN E, GEN *ptv);
898 long    ellrootno(GEN e, GEN p);
899 GEN     ellsigma(GEN om, GEN z, long flag, long prec);
900 GEN     elltaniyama(GEN e, long prec);
901 GEN     elltors0(GEN e, long flag);
902 GEN     ellwp0(GEN e, GEN z, long flag, long prec, long PREC);
903 GEN     ellzeta(GEN om, GEN z, long prec);
904 GEN     ghell(GEN e, GEN a, long prec);
905 GEN     ghell2(GEN e, GEN a, long prec);
906 GEN     initell(GEN x, long prec);
907 GEN     mathell(GEN e, GEN x, long prec);
908 int     oncurve(GEN e, GEN z);
909 GEN     ordell(GEN e, GEN x, long prec);
910 GEN     orderell(GEN e, GEN p);
911 GEN     pointch(GEN x, GEN ch);
912 GEN     pointchinv(GEN x, GEN ch);
913 GEN     pointell(GEN e, GEN z, long prec);
914 GEN     powell(GEN e, GEN z, GEN n);
915 GEN     smallinitell(GEN x);
916 GEN     subell(GEN e, GEN z1, GEN z2);
917 GEN     torsell(GEN e);
918 GEN     weipell(GEN e, long precdl);
919 GEN     zell(GEN e, GEN z, long prec);
920 
921 /* es.c */
922 
923 GEN     GENtocanonicalstr(GEN x);
924 GEN     GENtoGENstr(GEN x);
925 char*   GENtoTeXstr(GEN x);
926 char*   GENtostr(GEN x);
927 GEN     Str(GEN g);
928 GEN     Strchr(GEN g);
929 GEN     Strexpand(GEN g);
930 GEN     Strtex(GEN g);
931 void    brute(GEN g, char format, long dec);
932 void    bruteall(GEN g, char f, long d, long sp);
933 void    bruterr(GEN x,char format,long dec);
934 void    error0(GEN g);
935 void    etatpile(void);
936 char*   expand_tilde(const char *s);
937 int     file_is_binary(FILE *f);
938 void    flusherr(void);
939 void    fprintferr(const char* pat, ...);
940 GEN     gp_read_file(char *s);
941 GEN     gp_read_stream(FILE *f);
942 GEN     gp_readvec_file(char *s);
943 GEN     gp_readvec_stream(FILE *f);
944 void    killallfiles(int check);
945 int     killfile(pariFILE *f);
946 void    matbrute(GEN g, char format, long dec);
947 pariFILE* newfile(FILE *f, char *name, int type);
948 void    os_close(long fd);
949 char*   os_getenv(char *s);
950 long    os_open(char *s, int mode);
951 void    os_read(long fd, char ch[], long s);
952 void    (*os_signal(int sig, void (*f)(int)))(int);
953 void    outbeaut(GEN x);
954 void    outbeauterr(GEN x);
955 void    outbrute(GEN x);
956 void    outerr(GEN x);
957 void    outmat(GEN x);
958 void    output(GEN x);
959 void    outsor(GEN x);
960 void    outtex(GEN x);
961 char*   pGENtostr(GEN g, long flag);
962 void    pari_fclose(pariFILE *f);
963 pariFILE*   pari_fopen(char *s, char *mode);
964 pariFILE*   pari_safefopen(char *s, char *mode);
965 char*   pari_strdup(const char *s);
966 char*   pari_strndup(const char *s, long n);
967 char*   pari_unique_dir(char *s);
968 char*   pari_unique_filename(char *s);
969 void    pari_unlink(char *s);
970 void    pariflush(void);
971 void    pariputc(char c);
972 void    pariputs(const char *s);
973 void    pariprintf(const char *format, ...);
974 int     popinfile(void);
975 void    print(GEN g);
976 void    print1(GEN g);
977 void    printp(GEN g);
978 void    printp1(GEN g);
979 void    printtex(GEN g);
980 void    sor(GEN g, char fo, long dd, long chmp);
981 void    switchin(const char *name);
982 void    switchout(char *name);
983 void    texe(GEN g, char format, long dec);
984 pariFILE* try_pipe(char *cmd, int flag);
985 const char* type_name(long t);
986 void    voir(GEN x, long nb);
987 void    vpariputs(const char* format, va_list args);
988 void    write0(const char *s, GEN g);
989 void    write1(const char *s, GEN g);
990 void    writebin(char *name, GEN x);
991 void    writetex(const char *s, GEN g);
992 
993 /* galconj.c */
994 
995 GEN     checkgal(GEN gal);
996 GEN     checkgroup(GEN g, GEN *S);
997 GEN     galois_group(GEN gal);
998 GEN     galoisconj(GEN nf);
999 GEN     galoisconj0(GEN nf, long flag, GEN d, long prec);
1000 GEN     galoisconj2(GEN x, long nbmax, long prec);
1001 GEN     galoisconj4(GEN T, GEN den, long flag);
1002 GEN     galoisexport(GEN gal, long format);
1003 GEN     galoisfixedfield(GEN gal, GEN v, long flag, long y);
1004 GEN     galoisidentify(GEN gal);
1005 GEN     galoisinit(GEN nf, GEN den);
1006 GEN     galoisisabelian(GEN gal, long flag);
1007 GEN     galoispermtopol(GEN gal, GEN perm);
1008 GEN     galoissubgroups(GEN G);
1009 GEN     galoissubfields(GEN G, long flag, long v);
1010 long    numberofconjugates(GEN T, long pdepart);
1011 GEN     vandermondeinverse(GEN L, GEN T, GEN den, GEN prep);
1012 /* gen1.c */
1013 
1014 GEN     gadd(GEN x, GEN y);
1015 GEN     gaddsg(long x, GEN y);
1016 GEN     gdiv(GEN x, GEN y);
1017 GEN     gdivgs(GEN x, long s);
1018 GEN     gmul(GEN x, GEN y);
1019 GEN     gmul2n(GEN x, long n);
1020 GEN     gmulsg(long s, GEN y);
1021 GEN     gsqr(GEN x);
1022 GEN     gsub(GEN x, GEN y);
1023 
1024 /* gen2.c */
1025 GEN     gopsg2(GEN (*f)(GEN, GEN), long s, GEN y);
1026 
1027 long    ZX_valuation(GEN x, GEN *Z);
1028 GEN     cgetimag(void);
1029 GEN     cgetp(GEN x);
1030 GEN     cvtop(GEN x, GEN p, long l);
1031 GEN     cvtop2(GEN x, GEN y);
1032 GEN     gabs(GEN x, long prec);
1033 void    gaffect(GEN x, GEN y);
1034 void    gaffsg(long s, GEN x);
1035 int     gcmp(GEN x, GEN y);
1036 int     gcmpsg(long x, GEN y);
1037 int     gcmp0(GEN x);
1038 int     gcmp1(GEN x);
1039 int     gcmp_1(GEN x);
1040 GEN     gcvtop(GEN x, GEN p, long r);
1041 int     gequal(GEN x, GEN y);
1042 int     gequalsg(long s, GEN x);
1043 long    gexpo(GEN x);
1044 long    ggval(GEN x, GEN p);
1045 long    glength(GEN x);
1046 GEN     gmax(GEN x, GEN y);
1047 GEN     gmaxgs(GEN x, long y);
1048 GEN     gmin(GEN x, GEN y);
1049 GEN     gmings(GEN x, long y);
1050 GEN     gneg(GEN x);
1051 GEN     gneg_i(GEN x);
1052 GEN     greffe(GEN x, long l, long use_stack);
1053 int     gsigne(GEN x);
1054 GEN     gtofp(GEN z, long prec);
1055 GEN     gtolist(GEN x);
1056 long    gtolong(GEN x);
1057 int     lexcmp(GEN x, GEN y);
1058 GEN     listconcat(GEN list1, GEN list2);
1059 GEN     listcreate(long n);
1060 GEN     listinsert(GEN list, GEN object, long index);
1061 void    listkill(GEN list);
1062 GEN     listput(GEN list, GEN object, long index);
1063 GEN     listsort(GEN list, long flag);
1064 GEN     matsize(GEN x);
1065 GEN     normalize(GEN x);
1066 GEN     normalizepol(GEN x);
1067 GEN     normalizepol_approx(GEN x, long lx);
1068 GEN     normalizepol_i(GEN x, long lx);
1069 long    polvaluation(GEN x, GEN *z);
1070 long    polvaluation_inexact(GEN x, GEN *Z);
1071 GEN     pureimag(GEN x);
1072 GEN     quadtoc(GEN x, long l);
1073 long    sizedigit(GEN x);
1074 long    u_lval(ulong x, ulong p);
1075 long    u_lvalrem(ulong x, ulong p, ulong *py);
1076 long    u_pvalrem(ulong x, GEN p, ulong *py);
1077 GEN     vecmax(GEN x);
1078 GEN     vecmin(GEN x);
1079 long    Z_lval(GEN n, ulong p);
1080 long    Z_lvalrem(GEN n, ulong p, GEN *py);
1081 long    z_pval(long n, GEN p);
1082 long    Z_pval(GEN n, GEN p);
1083 long    Z_pvalrem(GEN x, GEN p, GEN *py);
1084 
1085 /* gen3.c */
1086 
1087 GEN     Mod0(GEN x, GEN y,long flag);
1088 GEN     ceil_safe(GEN x);
1089 GEN     ceilr(GEN x);
1090 GEN     centerlift(GEN x);
1091 GEN     centerlift0(GEN x,long v);
1092 GEN     compo(GEN x, long n);
1093 GEN     deg1pol(GEN x1, GEN x0,long v);
1094 GEN     deg1pol_i(GEN x1, GEN x0,long v);
1095 long    degree(GEN x);
1096 GEN     denom(GEN x);
1097 GEN     deriv(GEN x, long v);
1098 GEN     derivpol(GEN x);
1099 GEN     derivser(GEN x);
1100 GEN     diviiround(GEN x, GEN y);
1101 GEN     divrem(GEN x, GEN y, long v);
1102 GEN     gand(GEN x, GEN y);
1103 GEN     gceil(GEN x);
1104 GEN     gcvtoi(GEN x, long *e);
1105 GEN     gdivent(GEN x, GEN y);
1106 GEN     gdiventgs(GEN x, long y);
1107 GEN     gdiventres(GEN x, GEN y);
1108 GEN     gdivmod(GEN x, GEN y, GEN *pr);
1109 GEN     gdivround(GEN x, GEN y);
1110 GEN     geq(GEN x, GEN y);
1111 GEN     geval(GEN x);
1112 GEN     gfloor(GEN x);
1113 GEN     gfloor2n(GEN x, long s);
1114 GEN     gfrac(GEN x);
1115 GEN     gge(GEN x, GEN y);
1116 GEN     ggprecision(GEN x);
1117 GEN     ggrando(GEN x, long n);
1118 GEN     ggt(GEN x, GEN y);
1119 GEN     gimag(GEN x);
1120 GEN     ginv(GEN x);
1121 GEN     gle(GEN x, GEN y);
1122 GEN     glt(GEN x, GEN y);
1123 GEN     gmod(GEN x, GEN y);
1124 GEN     gmodgs(GEN x, long y);
1125 GEN     gmodulo(GEN x,GEN y);
1126 GEN     gmodulo(GEN x,GEN y);
1127 GEN     gmodulsg(long x, GEN y);
1128 GEN     gmodulss(long x, long y);
1129 GEN     gne(GEN x, GEN y);
1130 GEN     gnot(GEN x);
1131 GEN     gor(GEN x, GEN y);
1132 GEN     gpolvar(GEN y);
1133 long    gprecision(GEN x);
1134 GEN     greal(GEN x);
1135 GEN     grndtoi(GEN x, long *e);
1136 GEN     ground(GEN x);
1137 GEN     gshift(GEN x, long n);
1138 GEN     gsubst(GEN x, long v, GEN y);
1139 GEN     gsubstpol(GEN x, GEN v, GEN y);
1140 GEN     gsubstvec(GEN x, GEN v, GEN y);
1141 GEN     gtocol(GEN x);
1142 GEN     gtopoly(GEN x, long v);
1143 GEN     gtopolyrev(GEN x, long v);
1144 GEN     gtoser(GEN x, long v);
1145 GEN     gtovec(GEN x);
1146 GEN     gtovecsmall(GEN x);
1147 GEN     gtrunc(GEN x);
1148 long    gvar(GEN x);
1149 long    gvar2(GEN x);
1150 GEN     hqfeval(GEN q, GEN x);
1151 GEN     imag_i(GEN x);
1152 GEN     integ(GEN x, long v);
1153 int     iscomplex(GEN x);
1154 int     isexactzero(GEN g);
1155 int     isexactzeroscalar(GEN g);
1156 int     isinexact(GEN x);
1157 int     isinexactreal(GEN x);
1158 int     isint(GEN n, GEN *ptk);
1159 int     issmall(GEN n, long *ptk);
1160 int     ismonome(GEN x);
1161 GEN     lift(GEN x);
1162 GEN     lift0(GEN x,long v);
1163 GEN     mkcoln(long n, ...);
1164 GEN     mkintn(long n, ...);
1165 GEN     mkpoln(long n, ...);
1166 GEN     mkvecn(long n, ...);
1167 GEN     mulmat_real(GEN x, GEN y);
1168 GEN     numer(GEN x);
1169 long    padicprec(GEN x, GEN p);
1170 GEN     polcoeff0(GEN x,long n,long v);
1171 GEN     polcoeff_i(GEN x, long n, long v);
1172 long    poldegree(GEN x,long v);
1173 GEN     poleval(GEN x, GEN y);
1174 GEN     pollead(GEN x,long v);
1175 long    precision(GEN x);
1176 GEN     precision0(GEN x,long n);
1177 GEN     qf_base_change(GEN q, GEN M, int flag);
1178 GEN     qfeval(GEN q, GEN x);
1179 GEN     real_i(GEN x);
1180 GEN     recip(GEN x);
1181 GEN     round0(GEN x, GEN *pte);
1182 GEN     roundr(GEN x);
1183 GEN     scalarpol(GEN x, long v);
1184 GEN     scalarser(GEN x, long v, long prec);
1185 GEN     simplify(GEN x);
1186 GEN     simplify_i(GEN x);
1187 GEN     tayl(GEN x, long v, long precdl);
1188 GEN     toser_i(GEN x);
1189 GEN     truecoeff(GEN x, long n);
1190 GEN     trunc0(GEN x, GEN *pte);
1191 GEN     u2toi(ulong a, ulong b);
1192 
1193 /* groupid.c */
1194 
1195 long    group_ident(GEN G, GEN S);
1196 
1197 /* ifactor1.c */
1198 
1199 long    BSW_psp(GEN N);
1200 int     uisprime(ulong n);
1201 int     is_357_power(GEN x, GEN *pt, ulong *mask);
1202 int     is_odd_power(GEN x, GEN *pt, ulong *curexp, ulong cutoffbits);
1203 long    millerrabin(GEN n, long k);
1204 GEN     nextprime(GEN n);
1205 GEN     plisprime(GEN N, long flag);
1206 GEN     precprime(GEN n);
1207 
1208 /* init.c */
1209 
1210 long    TIMER(pari_timer *T);
1211 void    TIMERstart(pari_timer *T);
1212 long    allocatemoremem(size_t newsize);
1213 GEN     cgetalloc(long t, size_t l);
1214 GEN     changevar(GEN x, GEN y);
1215 void    disable_dbg(long val);
1216 void*   err_catch(long errnum, jmp_buf *penv);
1217 void    err_leave(void **v);
1218 GEN     gclone(GEN x);
1219 GEN     gcopy(GEN x);
1220 GEN     gcopy_i(GEN x, long lx);
1221 GEN     gerepile(pari_sp ltop, pari_sp lbot, GEN q);
1222 void    gerepileall(pari_sp av, int n, ...);
1223 void    gerepileallsp(pari_sp av, pari_sp tetpil, int n, ...);
1224 void    gerepilecoeffs(pari_sp av, GEN x, int n);
1225 void    gerepilecoeffssp(pari_sp av, pari_sp tetpil, long *g, int n);
1226 GEN     gerepilecopy(pari_sp av, GEN x);
1227 void    gerepilemany(pari_sp av, GEN* g[], int n);
1228 void    gerepilemanysp(pari_sp av, pari_sp tetpil, GEN* g[], int n);
1229 GEN     gerepileupto(pari_sp av, GEN q);
1230 GEN     gerepileuptoint(pari_sp av, GEN q);
1231 GEN     gerepileuptoleaf(pari_sp av, GEN q);
1232 GEN     getheap(void);
1233 char*   gpmalloc(size_t bytes);
1234 char*   gprealloc(void *pointer,size_t size);
1235 void    gunclone(GEN x);
1236 void    killbloc(GEN x);
1237 void    msgTIMER(pari_timer *T, char *format, ...);
1238 void    msgtimer(char *format, ...);
1239 GEN     newbloc(long n);
1240 void    pari_add_function(entree *ep);
1241 void    pari_add_module(entree *ep);
1242 void    pari_close(void);
1243 void    pari_close_opts(ulong init_opts);
1244 void    pari_err(long numerr, ...);
1245 void    pari_init_opts(size_t parisize, ulong maxprime, ulong init_opts);
1246 void    pari_init(size_t parisize, ulong maxprime);
1247 void    pari_sig_init(void (*f)(int));
1248 GEN     pari_version(void);
1249 void    pari_warn(long numerr, ...);
1250 GEN     reorder(GEN x);
1251 GEN     shallowcopy(GEN x);
1252 stackzone* switch_stack(stackzone *z, long n);
1253 long    taille(GEN x);
1254 long    taille2(GEN x);
1255 long    timer(void);
1256 long    timer2(void);
1257 void    traverseheap( void(*f)(GEN, void *), void *data );
1258 
1259 /* intnum.c */
1260 
1261 GEN     intcirc(void *E, GEN (*eval) (GEN, void *), GEN a, GEN R, GEN tab, long prec);
1262 GEN     intcirc0(entree *ep, GEN a, GEN R, char *ch, GEN tab, long prec);
1263 GEN     intfourcos0(entree *ep, GEN a, GEN b, GEN x, char *ch, GEN tab, long prec);
1264 GEN     intfourexp0(entree *ep, GEN a, GEN b, GEN x, char *ch, GEN tab, long prec);
1265 GEN     intfouriercos(void *E, GEN (*eval) (GEN, void *), GEN a, GEN b, GEN x, GEN tab, long prec);
1266 GEN     intfouriersin(void *E, GEN (*eval) (GEN, void *), GEN a, GEN b, GEN x, GEN tab, long prec);
1267 GEN     intfoursin0(entree *ep, GEN a, GEN b, GEN x, char *ch, GEN tab, long prec);
1268 GEN     intfuncinit(void *E, GEN (*eval) (GEN, void *), GEN a, GEN b, long m, long flag, long prec);
1269 GEN     intfuncinit0(entree *ep, GEN a, GEN b, char *ch, long flag, long m, long prec);
1270 GEN     intlaplaceinv(void *E, GEN (*eval) (GEN, void *), GEN sig, GEN x, GEN tab, long prec);
1271 GEN     intlaplaceinv0(entree *ep, GEN sig, GEN x, char *ch, GEN tab, long prec);
1272 GEN     intmellininv(void *E, GEN (*eval) (GEN, void *), GEN sig, GEN x, GEN tab, long prec);
1273 GEN     intmellininv0(entree *ep, GEN sig, GEN x, char *ch, GEN tab, long prec);
1274 GEN     intmellininvshort(GEN sig, GEN x, GEN tab, long prec);
1275 GEN     intnum(void *E, GEN (*eval) (GEN, void *), GEN a, GEN b, GEN tab, long prec);
1276 GEN     intnum0(entree *ep, GEN a, GEN b, char *ch, GEN tab, long prec);
1277 GEN     intnuminit(GEN a, GEN b, long m, long prec);
1278 GEN     intnuminit0(GEN a, GEN b, GEN tab, long prec);
1279 GEN     intnuminitgen(void *E, GEN (*eval) (GEN, void *), GEN a, GEN b, long m, long flext, long prec);
1280 GEN     intnuminitgen0(entree *ep, GEN a, GEN b, char *ch, long m, long flag, long prec);
1281 GEN     intnumromb(void *E, GEN (*eval) (GEN, void *), GEN a, GEN b, long flag, long prec);
1282 GEN     intnumromb0(entree *ep, GEN a, GEN b, char *ch, long flag, long prec);
1283 long    intnumstep(long prec);
1284 GEN     sumnum(void *E, GEN (*f) (GEN, void *), GEN a, GEN sig, GEN tab, long flag, long prec);
1285 GEN     sumnum0(entree *ep, GEN a, GEN sig, char *ch, GEN tab, long flag, long prec);
1286 GEN     sumnumalt(void *E, GEN (*f) (GEN, void *), GEN a, GEN s, GEN tab, long flag, long prec);
1287 GEN     sumnumalt0(entree *ep, GEN a, GEN sig, char *ch, GEN tab, long flag, long prec);
1288 GEN     sumnuminit(GEN sig, long m, long sgn, long prec);
1289 GEN     sumnuminit0(GEN a, GEN tab, long sgn, long prec);
1290 
1291 /* kummer.c */
1292 
1293 GEN     rnfkummer(GEN bnr, GEN subgroup, long all, long prec);
1294 
1295 /* members.c */
1296 
1297 GEN     member_a1(GEN x);
1298 GEN     member_a2(GEN x);
1299 GEN     member_a3(GEN x);
1300 GEN     member_a4(GEN x);
1301 GEN     member_a6(GEN x);
1302 GEN     member_area(GEN x);
1303 GEN     member_b2(GEN x);
1304 GEN     member_b4(GEN x);
1305 GEN     member_b6(GEN x);
1306 GEN     member_b8(GEN x);
1307 GEN     member_bid(GEN x);
1308 GEN     member_bnf(GEN x);
1309 GEN     member_c4(GEN x);
1310 GEN     member_c6(GEN x);
1311 GEN     member_clgp(GEN x);
1312 GEN     member_codiff(GEN x);
1313 GEN     member_cyc(GEN clg);
1314 GEN     member_diff(GEN x);
1315 GEN     member_disc(GEN x);
1316 GEN     member_e(GEN x);
1317 GEN     member_eta(GEN x);
1318 GEN     member_f(GEN x);
1319 GEN     member_fu(GEN x);
1320 GEN     member_futu(GEN x);
1321 GEN     member_gen(GEN x);
1322 GEN     member_group(GEN x);
1323 GEN     member_index(GEN x);
1324 GEN     member_j(GEN x);
1325 GEN     member_mod(GEN x);
1326 GEN     member_nf(GEN x);
1327 GEN     member_no(GEN clg);
1328 GEN     member_omega(GEN x);
1329 GEN     member_orders(GEN x);
1330 GEN     member_p(GEN x);
1331 GEN     member_pol(GEN x);
1332 GEN     member_reg(GEN x);
1333 GEN     member_r1(GEN x);
1334 GEN     member_r2(GEN x);
1335 GEN     member_roots(GEN x);
1336 GEN     member_sign(GEN x);
1337 GEN     member_t2(GEN x);
1338 GEN     member_tate(GEN x);
1339 GEN     member_tufu(GEN x);
1340 GEN     member_tu(GEN x);
1341 GEN     member_w(GEN x);
1342 GEN     member_zk(GEN x);
1343 GEN     member_zkst(GEN bid);
1344 
1345 /* mp.c */
1346 
1347 int     absi_cmp(GEN x, GEN y);
1348 int     absi_equal(GEN x, GEN y);
1349 int     absr_cmp(GEN x, GEN y);
1350 GEN     addii_sign(GEN x, long sx, GEN y, long sy);
1351 GEN     addir_sign(GEN x, long sx, GEN y, long sy);
1352 GEN     addrr_sign(GEN x, long sx, GEN y, long sy);
1353 GEN     addsi_sign(long x, GEN y, long sy);
1354 GEN     addsr(long x, GEN y);
1355 GEN     addss(long x, long y);
1356 void    affir(GEN x, GEN y);
1357 void    affrr(GEN x, GEN y);
1358 GEN     bezout(GEN a, GEN b, GEN *u, GEN *v);
1359 long    cbezout(long a,long b,long *uu,long *vv);
1360 void    cgiv(GEN x);
1361 int     cmpii(GEN x, GEN y);
1362 int     cmprr(GEN x, GEN y);
1363 int     cmpsi(long x, GEN y);
1364 int     cmpui(ulong x, GEN y);
1365 GEN     dbltor(double x);
1366 GEN     diviiexact(GEN x, GEN y);
1367 GEN     diviuexact(GEN x, ulong y);
1368 GEN     divir(GEN x, GEN y);
1369 GEN     divis(GEN y, long x);
1370 GEN     divis_rem(GEN x, long y, long *rem);
1371 GEN     diviu_rem(GEN y, ulong x, ulong *rem);
1372 GEN     divri(GEN x, GEN y);
1373 GEN     divrr(GEN x, GEN y);
1374 GEN     divrs(GEN x, long y);
1375 GEN     divsi(long x, GEN y);
1376 GEN     divsr(long x, GEN y);
1377 GEN     dvmdii(GEN x, GEN y, GEN *z);
1378 int     equalii(GEN x, GEN y);
1379 int     equalsi(long x, GEN y);
1380 int     equalui(ulong x, GEN y);
1381 GEN     floorr(GEN x);
1382 GEN     gcdii(GEN x, GEN y);
1383 GEN     int_normalize(GEN x, long known_zero_words);
1384 GEN     int2n(long n);
1385 GEN     int2u(ulong n);
1386 int     invmod(GEN a, GEN b, GEN *res);
1387 ulong   invrev(ulong b);
1388 ulong   Fl_inv(ulong x, ulong p);
1389 GEN     ishiftr(GEN x, long n);
1390 GEN     modii(GEN x, GEN y);
1391 void    modiiz(GEN x, GEN y, GEN z);
1392 void    mpdivz(GEN x, GEN y, GEN z);
1393 GEN     mulii(GEN x, GEN y);
1394 GEN     mulir(GEN x, GEN y);
1395 GEN     mulrr(GEN x, GEN y);
1396 GEN     mulsi(long x, GEN y);
1397 GEN     mulsr(long x, GEN y);
1398 GEN     mulss(long x, long y);
1399 GEN     mului(ulong x, GEN y);
1400 GEN     mulur(ulong x, GEN y);
1401 GEN     muluu(ulong x, ulong y);
1402 long    pari_rand31(void);
1403 GEN     randomi(GEN x);
1404 int     ratlift(GEN x, GEN m, GEN *a, GEN *b, GEN amax, GEN bmax);
1405 GEN     resmod2n(GEN x, long n);
1406 double  rtodbl(GEN x);
1407 GEN     shifti(GEN x, long n);
1408 GEN     sqri(GEN x);
1409 #define sqrti(x) sqrtremi((x),NULL)
1410 GEN     sqrtremi(GEN S, GEN *R);
1411 GEN     subsr(long x, GEN y);
1412 GEN     truedvmdii(GEN x, GEN y, GEN *z);
1413 GEN     truedvmdis(GEN x, long y, GEN *z);
1414 GEN     truncr(GEN x);
1415 ulong   umodiu(GEN y, ulong x);
1416 long    vals(ulong x);
1417 
1418 /* nffactor.c */
1419 
1420 GEN     nffactor(GEN nf,GEN x);
1421 GEN     nffactormod(GEN nf,GEN pol,GEN pr);
1422 int     nfisgalois(GEN nf, GEN x);
1423 GEN     nfroots(GEN nf,GEN pol);
1424 GEN     rnfcharpoly(GEN nf, GEN T, GEN alpha, long v);
1425 GEN     unifpol(GEN nf,GEN pol,long flag);
1426 
1427 /* part.c */
1428 
1429 GEN     numbpart(GEN x);
1430 
1431 /* perm.c */
1432 
1433 GEN     abelian_group(GEN G);
1434 GEN     bitvec_alloc(long n);
1435 void    bitvec_clear(GEN bitvec, long b);
1436 void    bitvec_set(GEN bitvec, long b);
1437 GEN     bitvec_shorten(GEN bitvec, long n);
1438 long    bitvec_test(GEN bitvec, long b);
1439 GEN     const_col(long n, GEN x);
1440 GEN     const_vec(long n, GEN x);
1441 GEN     const_vecsmall(long n, long c);
1442 GEN     cyclicgroup(GEN g, long s);
1443 GEN     cyclicperm(long l, long d);
1444 GEN     cyc_pow(GEN cyc, long exp);
1445 GEN     cyc_pow_perm(GEN cyc, long exp);
1446 GEN     dicyclicgroup(GEN g1, GEN g2, long s1, long s2);
1447 GEN     group_abelianHNF(GEN G, GEN L);
1448 GEN     group_abelianSNF(GEN G, GEN L);
1449 long    group_domain(GEN G);
1450 GEN     group_elts(GEN G, long n);
1451 GEN     group_export(GEN G, long format);
1452 long    group_isA4S4(GEN G);
1453 long    group_isabelian(GEN G);
1454 GEN     group_leftcoset(GEN G, GEN g);
1455 long    group_order(GEN G);
1456 long    group_perm_normalize(GEN N, GEN g);
1457 GEN     group_quotient(GEN G, GEN H);
1458 GEN     group_rightcoset(GEN G, GEN g);
1459 GEN     group_subgroups(GEN G);
1460 GEN     groupelts_center(GEN S);
1461 GEN     groupelts_abelian_group(GEN S);
1462 int     perm_commute(GEN p, GEN q);
1463 GEN     perm_cycles(GEN v);
1464 GEN     perm_identity(long l);
1465 GEN     perm_inv(GEN x);
1466 GEN     perm_mul(GEN s, GEN t);
1467 long    perm_order(GEN perm);
1468 GEN     perm_pow(GEN perm, long exp);
1469 GEN     quotient_group(GEN C, GEN G);
1470 GEN     quotient_perm(GEN C, GEN p);
1471 GEN     vec_to_vecsmall(GEN z);
1472 GEN     vecperm_orbits(GEN v, long n);
1473 int     vec_is1to1(GEN v);
1474 int     vec_isconst(GEN v);
1475 GEN     vec_lengthen(GEN v, long n);
1476 GEN     vec_shorten(GEN v, long n);
1477 GEN     vecsmall_append(GEN V, long s);
1478 long    vecsmall_coincidence(GEN u, GEN v);
1479 GEN     vecsmall_concat(GEN u, GEN v);
1480 GEN     vecsmall_copy(GEN x);
1481 GEN     vecsmall_indexsort(GEN V);
1482 long    vecsmall_isin(GEN v, long x);
1483 GEN     vecsmall_lengthen(GEN v, long n);
1484 int     vecsmall_lexcmp(GEN x, GEN y);
1485 long    vecsmall_pack(GEN V, long base, long mod);
1486 int     vecsmall_prefixcmp(GEN x, GEN y);
1487 GEN     vecsmall_prepend(GEN V, long s);
1488 GEN     vecsmall_shorten(GEN v, long n);
1489 void    vecsmall_sort(GEN V);
1490 GEN     vecsmall_to_col(GEN z);
1491 GEN     vecsmall_to_vec(GEN z);
1492 GEN     vecsmall_uniq(GEN V);
1493 GEN     vecvecsmall_indexsort(GEN x);
1494 GEN     vecvecsmall_sort(GEN x);
1495 long    vecvecsmall_search(GEN x, GEN y, long flag);
1496 
1497 /* polarit1.c */
1498 
1499 long    Flx_nbfact(GEN z, ulong p);
1500 long    Flx_nbroots(GEN f, ulong p);
1501 GEN     FpX_degfact(GEN f, GEN p);
1502 long    FpX_is_irred(GEN f, GEN p);
1503 long    FpX_is_squarefree(GEN f, GEN p);
1504 long    FpX_is_totally_split(GEN f, GEN p);
1505 GEN     FpX_factor(GEN f, GEN p);
1506 long    FpX_nbfact(GEN f, GEN p);
1507 long    FpX_nbroots(GEN f, GEN p);
1508 GEN     FqX_factor(GEN x, GEN T, GEN p);
1509 GEN     FqX_gcd(GEN P, GEN Q, GEN T, GEN p);
1510 long    FqX_is_squarefree(GEN P, GEN T, GEN p);
1511 long    FqX_nbfact(GEN u, GEN T, GEN p);
1512 long    FqX_nbroots(GEN f, GEN T, GEN p);
1513 GEN     FpX_rand(long d, long v, GEN p);
1514 GEN     FpX_roots(GEN f, GEN p);
1515 int     cmp_pol(GEN x, GEN y);
1516 GEN     factcantor(GEN x, GEN p);
1517 GEN     factmod(GEN f, GEN p);
1518 GEN     factorff(GEN f, GEN p, GEN a);
1519 GEN     factormod0(GEN f, GEN p,long flag);
1520 GEN     factorpadic0(GEN f,GEN p,long r,long flag);
1521 GEN     factorpadic2(GEN x, GEN p, long r);
1522 GEN     factorpadic4(GEN x, GEN p, long r);
1523 int     gdvd(GEN x, GEN y);
1524 long    hensel_lift_accel(long n, long *pmask);
1525 GEN     padicappr(GEN f, GEN a);
1526 GEN     padicsqrtnlift(GEN a, GEN n, GEN S, GEN p, long e);
1527 int     poldvd(GEN x, GEN y, GEN *z);
1528 GEN     poldivrem(GEN x, GEN y, GEN *pr);
1529 GEN     polfnf(GEN a, GEN t);
1530 GEN     rootmod(GEN f, GEN p);
1531 GEN     rootmod0(GEN f, GEN p,long flag);
1532 GEN     rootmod2(GEN f, GEN p);
1533 GEN     rootpadic(GEN f, GEN p, long r);
1534 GEN     rootpadicfast(GEN f, GEN p, long e);
1535 GEN     ZX_deriv(GEN x);
1536 GEN     FpX_deriv(GEN f, GEN p);
1537 GEN     FqX_deriv(GEN f, GEN T, GEN p);
1538 GEN     ZpX_liftroot(GEN f, GEN a, GEN p, long e);
1539 GEN     ZpXQX_liftroot(GEN f, GEN a, GEN T, GEN p, long e);
1540 GEN     ZpX_liftroots(GEN f, GEN S, GEN q, long e);
1541 GEN     roots2(GEN pol,long PREC);
1542 GEN     rootsold(GEN x, long l);
1543 GEN     simplefactmod(GEN f, GEN p);
1544 
1545 /* polarit2.c */
1546 
1547 GEN     Newton_exponents(long e);
1548 GEN     Q_content(GEN x);
1549 GEN     Q_denom(GEN x);
1550 GEN     Q_div_to_int(GEN x, GEN c);
1551 GEN     Q_muli_to_int(GEN x, GEN d);
1552 GEN     Q_primitive_part(GEN x, GEN *ptc);
1553 GEN     Q_primpart(GEN x);
1554 GEN     Q_remove_denom(GEN x, GEN *ptd);
1555 GEN     RgX_extgcd(GEN x, GEN y, GEN *U, GEN *V);
1556 GEN     ZX_squff(GEN f, GEN *ex);
1557 GEN     centermod(GEN x, GEN p);
1558 GEN     centermod_i(GEN x, GEN p, GEN ps2);
1559 GEN     centermodii(GEN x, GEN p, GEN po2);
1560 GEN     combine_factors(GEN target, GEN famod, GEN p, long klim, long hint);
1561 GEN     concat_factor(GEN f, GEN g);
1562 GEN     content(GEN x);
1563 GEN     deg1_from_roots(GEN L, long v);
1564 GEN     discsr(GEN x);
1565 GEN     divide_conquer_prod(GEN x, GEN (*mul)(GEN,GEN));
1566 GEN     divide_conquer_assoc(GEN x, GEN (*mul)(void*,GEN,GEN), void *data);
1567 GEN     factor(GEN x);
1568 GEN     factor0(GEN x,long flag);
1569 GEN     factorback(GEN fa,GEN nf);
1570 GEN     factorback0(GEN fa,GEN e, GEN nf);
1571 GEN     factorbackelt(GEN fa, GEN e, GEN nf);
1572 GEN     factpol(GEN x, long hint);
1573 GEN     gbezout(GEN x, GEN y, GEN *u, GEN *v);
1574 GEN     gcd0(GEN x, GEN y,long flag);
1575 GEN     gdeflate(GEN x, long v, long d);
1576 GEN     gdivexact(GEN x, GEN y);
1577 GEN     ggcd(GEN x, GEN y);
1578 GEN     ginvmod(GEN x, GEN y);
1579 GEN     gisirreducible(GEN x);
1580 GEN     glcm(GEN x, GEN y);
1581 GEN     glcm0(GEN x, GEN y);
1582 GEN     hensel_lift_fact(GEN pol, GEN Q, GEN T, GEN p, GEN pe, long e);
1583 GEN     leftright_pow(GEN,GEN,void*,GEN (*sqr)(void*,GEN),GEN (*mul)(void*,GEN,GEN));
1584 GEN     leftright_pow_u(GEN x, ulong n, void *data, GEN (*sqr)(void*,GEN), GEN (*mul)(void*,GEN,GEN));
1585 GEN     leftright_pow_fold(GEN x, GEN n, void *data, GEN (*sqr)(void*,GEN), GEN (*msqr)(void*,GEN));
1586 GEN     leftright_pow_u_fold(GEN x, ulong n, void *data, GEN (*sqr)(void*,GEN), GEN (*msqr)(void*,GEN));
1587 long    logint(GEN B, GEN y, GEN *ptq);
1588 GEN     newtonpoly(GEN x, GEN p);
1589 GEN     nfgcd(GEN P, GEN Q, GEN nf, GEN den);
1590 GEN     nfrootsQ(GEN x);
1591 GEN     poldeflate(GEN x0, long *m);
1592 GEN     poldeflate_i(GEN x0, long d);
1593 GEN     poldisc0(GEN x, long v);
1594 GEN     polhensellift(GEN pol, GEN fct, GEN p, long exp);
1595 GEN     polinflate(GEN x0, long d);
1596 GEN     polresultant0(GEN x, GEN y,long v,long flag);
1597 GEN     polsym(GEN x, long n);
1598 GEN     primitive_part(GEN x, GEN *c);
1599 GEN     primpart(GEN x);
1600 GEN     pseudorem(GEN x, GEN y);
1601 GEN     reduceddiscsmith(GEN pol);
1602 GEN     resultant2(GEN x, GEN y);
1603 GEN     resultantducos(GEN x, GEN y);
1604 GEN     roots_from_deg1(GEN x);
1605 GEN     srgcd(GEN x, GEN y);
1606 long    sturmpart(GEN x, GEN a, GEN b);
1607 GEN     subresall(GEN u, GEN v, GEN *sol);
1608 GEN     subresext(GEN x, GEN y, GEN *U, GEN *V);
1609 GEN     sylvestermatrix(GEN x,GEN y);
1610 GEN     vecbezout(GEN x, GEN y);
1611 GEN     vecbezoutres(GEN x, GEN y);
1612 
1613 /* polarit3.c */
1614 
1615 GEN     FpC_red(GEN z, GEN p);
1616 GEN     FpC_to_mod(GEN z, GEN p);
1617 GEN     FpM_red(GEN z, GEN p);
1618 GEN     FpM_to_mod(GEN z, GEN p);
1619 GEN     FpV_polint(GEN xa, GEN ya, GEN p);
1620 GEN     FpV_red(GEN z, GEN p);
1621 GEN     FpV_roots_to_pol(GEN V, GEN p, long v);
1622 GEN     FpV_to_mod(GEN z, GEN p);
1623 GEN     FpX_FpXQ_compo(GEN f,GEN x,GEN T,GEN p);
1624 GEN     FpX_FpXQV_compo(GEN f,GEN x,GEN T,GEN p);
1625 GEN     FpX_Fp_add(GEN y,GEN x,GEN p);
1626 GEN     FpX_Fp_mul(GEN y,GEN x,GEN p);
1627 GEN     FpX_add(GEN x,GEN y,GEN p);
1628 GEN     FpX_center(GEN T,GEN mod);
1629 GEN     FpX_chinese_coprime(GEN x,GEN y,GEN Tx,GEN Ty,GEN Tz,GEN p);
1630 GEN     FpX_divrem(GEN x, GEN y, GEN p, GEN *pr);
1631 GEN     FpX_eval(GEN x,GEN y,GEN p);
1632 GEN     FpX_extgcd(GEN x, GEN y, GEN p, GEN *ptu, GEN *ptv);
1633 GEN     FpX_factorff_irred(GEN P, GEN Q, GEN l);
1634 void    FpX_ffintersect(GEN P,GEN Q,long n,GEN l,GEN *SP,GEN *SQ,GEN MA,GEN MB);
1635 GEN     FpX_ffisom(GEN P,GEN Q,GEN l);
1636 GEN     FpX_gcd(GEN x, GEN y, GEN p);
1637 GEN     FpX_mul(GEN x,GEN y,GEN p);
1638 GEN     FpX_neg(GEN x,GEN p);
1639 GEN     FpX_normalize(GEN z, GEN p);
1640 GEN     FpX_red(GEN z, GEN p);
1641 GEN     FpX_resultant(GEN a, GEN b, GEN p);
1642 GEN     FpX_sqr(GEN x,GEN p);
1643 GEN     FpX_sub(GEN x,GEN y,GEN p);
1644 GEN     FpX_to_mod(GEN z, GEN p);
1645 GEN     FpXQ_charpoly(GEN x, GEN T, GEN p);
1646 GEN     FpXQ_div(GEN x,GEN y,GEN T,GEN p);
1647 GEN     FpXQ_ffisom_inv(GEN S,GEN Tp, GEN p);
1648 GEN     FpXQ_inv(GEN x,GEN T,GEN p);
1649 GEN     FpXQ_invsafe(GEN x, GEN T, GEN p);
1650 GEN     FpXQ_matrix_pow(GEN y, long n, long m, GEN P, GEN l);
1651 GEN     FpXQ_minpoly(GEN x, GEN T, GEN p);
1652 GEN     FpXQ_mul(GEN y,GEN x,GEN T,GEN p);
1653 GEN     FpXQ_pow(GEN x, GEN n, GEN T, GEN p);
1654 GEN     FpXQ_powers(GEN x, long l, GEN T, GEN p);
1655 GEN     FpXQ_sqr(GEN y, GEN T, GEN p);
1656 GEN     FpXQ_sqrtn(GEN a, GEN n, GEN T, GEN p, GEN *zetan);
1657 GEN     FpXQX_gcd(GEN P, GEN Q, GEN T, GEN p);
1658 GEN     FpXQX_mul(GEN x, GEN y, GEN T, GEN p);
1659 GEN     FpXQX_red(GEN z, GEN T, GEN p);
1660 GEN     FpXQX_sqr(GEN x, GEN T, GEN p);
1661 GEN     FpXQX_extgcd(GEN x, GEN y, GEN T, GEN p, GEN *ptu, GEN *ptv);
1662 GEN     FpXQX_divrem(GEN x, GEN y, GEN T, GEN p, GEN *pr);
1663 GEN     FpXQXV_prod(GEN V, GEN Tp, GEN p);
1664 GEN     FpXQYQ_pow(GEN x, GEN n, GEN S, GEN T, GEN p);
1665 GEN     FpXV_FpC_mul(GEN V, GEN W, GEN p);
1666 GEN     FpXV_prod(GEN V, GEN p);
1667 GEN     FpXV_red(GEN z, GEN p);
1668 GEN     FpXX_add(GEN x, GEN y, GEN p);
1669 GEN     FpXX_red(GEN z, GEN p);
1670 GEN     FpX_rescale(GEN P, GEN h, GEN p);
1671 GEN     FpY_FpXY_resultant(GEN a, GEN b0, GEN p);
1672 GEN     Fq_inv(GEN x, GEN T, GEN p);
1673 GEN     Fq_invsafe(GEN x, GEN T, GEN p);
1674 GEN     Fq_add(GEN x, GEN y, GEN T/*unused*/, GEN p);
1675 GEN     Fq_mul(GEN x, GEN y, GEN T, GEN p);
1676 GEN     Fq_neg(GEN x, GEN T, GEN p);
1677 GEN     Fq_neg_inv(GEN x, GEN T, GEN p);
1678 GEN     Fq_pow(GEN x, GEN n, GEN T, GEN p);
1679 GEN     Fq_red(GEN x, GEN T, GEN p);
1680 GEN     Fq_sub(GEN x, GEN y, GEN T/*unused*/, GEN p);
1681 GEN     FqC_to_FlxC(GEN v, GEN T, GEN pp);
1682 GEN     FqM_to_FlxM(GEN x, GEN T, GEN pp);
1683 GEN     FqV_roots_to_pol(GEN V, GEN T, GEN p, long v);
1684 GEN     FqV_red(GEN z, GEN T, GEN p);
1685 GEN     FqV_to_FlxV(GEN v, GEN T, GEN pp);
1686 GEN     FqX_Fq_mul(GEN P, GEN U, GEN T, GEN p);
1687 GEN     FqX_div(GEN x, GEN y, GEN T, GEN p);
1688 GEN     FqX_divrem(GEN x, GEN y, GEN T, GEN p, GEN *z);
1689 GEN     FqX_eval(GEN x, GEN y, GEN T, GEN p);
1690 GEN     FqX_normalize(GEN z, GEN T, GEN p);
1691 GEN     FqX_red(GEN z, GEN T, GEN p);
1692 GEN     FqX_rem(GEN x, GEN y, GEN T, GEN p);
1693 GEN     FqX_mul(GEN x, GEN y, GEN T, GEN p);
1694 GEN     FqX_sqr(GEN x, GEN T, GEN p);
1695 GEN     QXQ_inv(GEN A, GEN B);
1696 ulong   Rg_to_Fl(GEN x, ulong p);
1697 GEN     Rg_to_Fp(GEN x, GEN p);
1698 GEN     RgC_to_FpC(GEN x, GEN p);
1699 GEN     RgV_to_FpV(GEN x, GEN p);
1700 GEN     RgX_to_FpX(GEN x, GEN p);
1701 GEN     RgX_to_FqX(GEN x, GEN T, GEN p);
1702 GEN     ZX_QX_resultant(GEN A, GEN B);
1703 GEN     ZX_Z_add(GEN y,GEN x);
1704 GEN     ZX_Z_mul(GEN y,GEN x);
1705 GEN     ZX_add(GEN x, GEN y);
1706 GEN     ZX_caract(GEN A, GEN B, long v);
1707 GEN     ZX_disc(GEN x);
1708 int     ZX_is_squarefree(GEN x);
1709 GEN     ZX_neg(GEN x);
1710 GEN     ZX_renormalize(GEN x, long lx);
1711 GEN     ZX_resultant(GEN A, GEN B);
1712 GEN     ZX_sub(GEN x, GEN y);
1713 long    brent_kung_optpow(long d, long n);
1714 GEN     ffinit(GEN p, long n, long v);
1715 GEN     from_Kronecker(GEN z, GEN pol);
1716 GEN     init_Fq(GEN p, long n, long v);
1717 GEN     modulargcd(GEN a,GEN b);
1718 GEN     stopoly(ulong m, ulong p, long v);
1719 GEN     stopoly_gen(GEN m, GEN p, long v);
1720 GEN     to_Kronecker(GEN P, GEN Q);
1721 
1722 /* RgX.c */
1723 
1724 int     is_rational(GEN x);
1725 GEN     RgM_to_RgXV(GEN x, long v);
1726 GEN     RgM_to_RgXX(GEN x, long v,long w);
1727 GEN     RgM_zc_mul(GEN x, GEN y);
1728 GEN     RgM_zm_mul(GEN x, GEN y);
1729 GEN     RgV_to_RgX(GEN x, long v);
1730 GEN     RgV_zc_mul(GEN x, GEN y);
1731 GEN     RgV_zm_mul(GEN x, GEN y);
1732 GEN     RgX_div_by_X_x(GEN a, GEN x, GEN *r);
1733 GEN     RgX_divrem(GEN x,GEN y,GEN *r);
1734 int     RgX_is_rational(GEN x);
1735 GEN     RgX_mul(GEN x,GEN y);
1736 GEN     RgX_mulspec(GEN a, GEN b, long na, long nb);
1737 GEN     RgX_powers(GEN a, GEN T, long l);
1738 GEN     RgX_renormalize(GEN x);
1739 GEN     RgX_rescale(GEN P, GEN h);
1740 GEN     RgX_unscale(GEN P, GEN h);
1741 GEN     RgXQ_mul(GEN x,GEN y,GEN T);
1742 GEN     RgXQ_powers(GEN x, long l, GEN T);
1743 GEN     RgXQ_sqr(GEN x,GEN T);
1744 GEN     RgXQC_red(GEN P, GEN T);
1745 GEN     RgXQV_red(GEN P, GEN T);
1746 GEN     RgXQX_RgXQ_mul(GEN x, GEN y, GEN T);
1747 GEN     RgXQX_divrem(GEN x,GEN y,GEN T,GEN *r);
1748 GEN     RgXQX_mul(GEN x,GEN y,GEN T);
1749 GEN     RgXQX_red(GEN P, GEN T);
1750 GEN     RgXQX_sqr(GEN x, GEN T);
1751 GEN     RgXV_unscale(GEN v, GEN h);
1752 GEN     RgX_Rg_div(GEN y, GEN x);
1753 GEN     RgX_Rg_mul(GEN y, GEN x);
1754 GEN     RgX_RgXQ_compo(GEN f, GEN x, GEN T);
1755 GEN     RgX_mulXn(GEN x, long d);
1756 GEN     RgX_shift_shallow(GEN x, long n);
1757 GEN     RgX_shift(GEN a, long n);
1758 GEN     RgX_sqr(GEN x);
1759 GEN     RgX_sqrspec(GEN a, long na);
1760 GEN     RgX_to_RgV(GEN x, long N);
1761 GEN     RgXV_to_RgM(GEN v, long n);
1762 GEN     RgXX_to_RgM(GEN v, long n);
1763 GEN     RgXY_swap(GEN x, long n, long w);
1764 
1765 /* rootpol.c */
1766 
1767 GEN     cleanroots(GEN x,long l);
1768 int     isrealappr(GEN x, long l);
1769 GEN     roots(GEN x,long l);
1770 GEN     roots0(GEN x,long flag,long l);
1771 
1772 /* subcyclo.c */
1773 
1774 GEN     galoissubcyclo(GEN N, GEN sg, long flag, long v);
1775 GEN     polsubcyclo(long n, long d, long v);
1776 GEN     subcyclo(long n, long d, long v);
1777 GEN     znstar_small(GEN zn);
1778 
1779 /* subfield.c */
1780 
1781 GEN     subfields(GEN nf,GEN d);
1782 GEN     subfields0(GEN nf,GEN d);
1783 
1784 /* subgroup.c */
1785 
1786 void    forsubgroup(entree *oep, GEN cyc, GEN bound, char *och);
1787 GEN     subgrouplist(GEN cyc, GEN bound);
1788 
1789 /* stark.c */
1790 
1791 GEN     bnrL1(GEN bnr, GEN sbgrp, long flag, long prec);
1792 GEN     bnrrootnumber(GEN bnr, GEN chi, long flag, long prec);
1793 GEN     bnrstark(GEN bnr, GEN subgroup, long prec);
1794 
1795 /* sumiter.c */
1796 
1797 GEN     direuler(void *E, GEN (*eval)(GEN,void*), GEN ga, GEN gb, GEN c);
1798 GEN     direuler0(entree *ep, GEN a, GEN b, char *ch, GEN c);
1799 GEN     divsum(GEN num,entree *ep, char *ch);
1800 void    fordiv(GEN a, entree *ep, char *ch);
1801 void    forpari(entree *ep, GEN a, GEN b, char *ch);
1802 void    forprime(entree *ep, GEN a, GEN b, char *ch);
1803 void    forstep(entree *ep, GEN a, GEN b, GEN s, char *ch);
1804 void    forvec(entree *ep, GEN x, char *ch, long flag);
1805 GEN     forvec_start(GEN x, long flag, GEN *d, GEN (**next)(GEN,GEN));
1806 GEN     matrice(GEN nlig, GEN ncol,entree *ep1, entree *ep2, char *ch);
1807 GEN     polzag(long n, long m);
1808 GEN     polzagreel(long n, long m, long prec);
1809 GEN     prodeuler(void *E, GEN (*eval)(GEN,void*), GEN ga, GEN gb, long prec);
1810 GEN     prodeuler0(entree *ep, GEN a, GEN b, char *ch, long prec);
1811 GEN     prodinf(void *E, GEN (*eval)(GEN,void*), GEN a, long prec);
1812 GEN     prodinf0(entree *ep, GEN a, char *ch, long flag, long prec);
1813 GEN     prodinf1(void *E, GEN (*eval)(GEN,void*), GEN a, long prec);
1814 GEN     produit(entree *ep, GEN a, GEN b, char *ch, GEN x);
1815 GEN     somme(entree *ep, GEN a, GEN b, char *ch, GEN x);
1816 GEN     sumalt(void *E, GEN (*eval)(GEN,void*), GEN a, long prec);
1817 GEN     sumalt0(entree *ep, GEN a, char *ch,long flag, long prec);
1818 GEN     sumalt2(void *E, GEN (*eval)(GEN,void*), GEN a, long prec);
1819 GEN     sumpos(void *E, GEN (*eval)(GEN,void*), GEN a, long prec);
1820 GEN     sumpos2(void *E, GEN (*eval)(GEN,void*), GEN a, long prec);
1821 GEN     sumpos0(entree *ep, GEN a, char *ch, long flag,long prec);
1822 GEN     suminf(void *E, GEN (*eval)(GEN,void*), GEN a, long prec);
1823 GEN     suminf0(entree *ep, GEN a, char *ch, long prec);
1824 GEN     vecteur(GEN nmax, entree *ep, char *ch);
1825 GEN     vecteursmall(GEN nmax, entree *ep, char *ch);
1826 GEN     vvecteur(GEN nmax, entree *ep, char *ch);
1827 GEN     zbrent0(entree *ep, GEN a, GEN b, char *ch, long prec);
1828 GEN     zbrent(void *E, GEN (*eval)(GEN,void*), GEN a, GEN b, long prec);
1829 
1830 /* thue.c */
1831 
1832 GEN     bnfisintnorm(GEN x, GEN y);
1833 GEN     thue(GEN thueres, GEN rhs, GEN ne);
1834 GEN     thueinit(GEN pol, long flag, long prec);
1835 
1836 /* trans1.c */
1837 
1838 GEN     Pi2n(long n, long prec);
1839 GEN     PiI2(long prec);
1840 GEN     PiI2n(long n, long prec);
1841 GEN     agm(GEN x, GEN y, long prec);
1842 void    consteuler(long prec);
1843 void    constpi(long prec);
1844 GEN     exp_Ir(GEN x);
1845 GEN     gcos(GEN x, long prec);
1846 GEN     gcotan(GEN x, long prec);
1847 GEN     gexp(GEN x, long prec);
1848 GEN     glog(GEN x, long prec);
1849 GEN     gpow(GEN x, GEN n, long prec);
1850 GEN     gpowgs(GEN x, long n);
1851 GEN     gsin(GEN x, long prec);
1852 void    gsincos(GEN x, GEN *s, GEN *c, long prec);
1853 GEN     gsqrt(GEN x, long prec);
1854 GEN     gsqrtn(GEN x, GEN n, GEN *zetan, long prec);
1855 GEN     gtan(GEN x, long prec);
1856 GEN     log0(GEN x,long flag, long prec);
1857 GEN     mpcos(GEN x);
1858 GEN     mpeuler(long prec);
1859 GEN     mpexp(GEN x);
1860 GEN     mpexp1(GEN x);
1861 GEN     mplog(GEN x);
1862 GEN     mplog2(long prec);
1863 GEN     mppi(long prec);
1864 GEN     mpsin(GEN x);
1865 void    mpsincos(GEN x, GEN *s, GEN *c);
1866 GEN     powiu(GEN p, ulong k);
1867 GEN     powuu(ulong p, ulong k);
1868 GEN     sqrtr(GEN x);
1869 GEN     sqrtnr(GEN x, long n);
1870 GEN     palog(GEN x);
1871 GEN     powgi(GEN x, GEN n);
1872 GEN     teich(GEN x);
1873 ulong   upowuu(ulong p, ulong k);
1874 
1875 /* trans2.c */
1876 
1877 GEN     bernfrac(long n);
1878 GEN     bernreal(long n, long prec);
1879 GEN     bernvec(long nomb);
1880 GEN     gach(GEN x, long prec);
1881 GEN     gacos(GEN x, long prec);
1882 GEN     garg(GEN x, long prec);
1883 GEN     gash(GEN x, long prec);
1884 GEN     gasin(GEN x, long prec);
1885 GEN     gatan(GEN x, long prec);
1886 GEN     gath(GEN x, long prec);
1887 GEN     gch(GEN x, long prec);
1888 GEN     ggamd(GEN x, long prec);
1889 GEN     ggamma(GEN x, long prec);
1890 GEN     glngamma(GEN x, long prec);
1891 GEN     gpsi(GEN x, long prec);
1892 GEN     gsh(GEN x, long prec);
1893 GEN     gth(GEN x, long prec);
1894 void    mpbern(long nomb, long prec);
1895 GEN     mpfactr(long n, long prec);
1896 
1897 /* trans3.c */
1898 
1899 GEN     dilog(GEN x, long prec);
1900 GEN     eint1(GEN x, long prec);
1901 GEN     eta(GEN x, long prec);
1902 GEN     eta0(GEN x, long flag,long prec);
1903 GEN     gerfc(GEN x, long prec);
1904 GEN     gpolylog(long m, GEN x, long prec);
1905 void    gpolylogz(long m, GEN x, GEN y);
1906 GEN     gzeta(GEN x, long prec);
1907 GEN     hyperu(GEN a, GEN b, GEN gx, long prec);
1908 GEN     incgam(GEN a, GEN x, long prec);
1909 GEN     incgam0(GEN a, GEN x, GEN z,long prec);
1910 GEN     incgam2(GEN a, GEN x, long prec);
1911 GEN     incgamc(GEN a, GEN x, long prec);
1912 GEN     hbessel1(GEN n, GEN z, long prec);
1913 GEN     hbessel2(GEN n, GEN z, long prec);
1914 GEN     ibessel(GEN n, GEN z, long prec);
1915 GEN     jbessel(GEN n, GEN z, long prec);
1916 GEN     jbesselh(GEN n, GEN z, long prec);
1917 GEN     nbessel(GEN n, GEN z, long prec);
1918 GEN     jell(GEN x, long prec);
1919 GEN     kbessel(GEN nu, GEN gx, long prec);
1920 GEN     kbessel0(GEN nu, GEN gx, long flag,long prec);
1921 GEN     kbessel2(GEN nu, GEN x, long prec);
1922 GEN     polylog(long m, GEN x, long prec);
1923 GEN     polylog0(long m, GEN x, long flag, long prec);
1924 GEN     polylogd(long m, GEN x, long prec);
1925 GEN     polylogdold(long m, GEN x, long prec);
1926 GEN     polylogp(long m, GEN x, long prec);
1927 GEN     szeta(long x, long prec);
1928 GEN     theta(GEN q, GEN z, long prec);
1929 GEN     thetanullk(GEN q, long k, long prec);
1930 GEN     trueeta(GEN x, long prec);
1931 GEN     veceint1(GEN nmax, GEN C, long prec);
1932 GEN     vecthetanullk(GEN q, long k, long prec);
1933 GEN     weber0(GEN x, long flag,long prec);
1934 GEN     weberf(GEN x, long prec);
1935 GEN     weberf1(GEN x, long prec);
1936 GEN     weberf2(GEN x, long prec);
1937