=================================================================== RCS file: /home/cvs/OpenXM_contrib/pari-2.2/src/headers/Attic/paridecl.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -p -r1.1 -r1.2 --- OpenXM_contrib/pari-2.2/src/headers/Attic/paridecl.h 2001/10/02 11:17:07 1.1 +++ OpenXM_contrib/pari-2.2/src/headers/Attic/paridecl.h 2002/09/11 07:26:58 1.2 @@ -1,4 +1,4 @@ -/* $Id: paridecl.h,v 1.1 2001/10/02 11:17:07 noro Exp $ +/* $Id: paridecl.h,v 1.2 2002/09/11 07:26:58 noro Exp $ Copyright (C) 2000 The PARI group. @@ -20,20 +20,30 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, /*******************************************************************/ BEGINEXTERN /* alglin1.c */ -GEN _col(GEN x); -GEN _vec(GEN x); GEN FpM_FpV_mul(GEN x, GEN y, GEN p); +GEN FpM_deplin(GEN x, GEN p); GEN FpM_image(GEN x, GEN p); -GEN FpM_invimage(GEN m, GEN v, GEN p); +GEN FpM_intersect(GEN x, GEN y, GEN p); GEN FpM_inv(GEN x, GEN p); +GEN FpM_invimage(GEN m, GEN v, GEN p); GEN FpM_ker(GEN x, GEN p); GEN FpM_mul(GEN x, GEN y, GEN p); GEN FpM_sindexrank(GEN x, GEN p); +GEN FpM_suppl(GEN x, GEN p); +GEN FqM_gauss(GEN a, GEN b, GEN T, GEN p); GEN FqM_ker(GEN x, GEN T, GEN p); +GEN FqM_suppl(GEN x, GEN T, GEN p); +GEN Fq_mul(GEN x, GEN y, GEN T, GEN p); GEN QM_inv(GEN M, GEN dM); GEN ZM_inv(GEN M, GEN dM); +GEN _col(GEN x); +GEN _vec(GEN x); +GEN _veccopy(GEN x); +void appendL(GEN x, GEN t); +GEN cget1(long l, long t); GEN concat(GEN x, GEN y); GEN concatsp(GEN x, GEN y); +GEN concatsp3(GEN x, GEN y, GEN z); GEN deplin(GEN x); GEN det(GEN a); GEN det0(GEN a,long flag); @@ -46,6 +56,7 @@ GEN eigen(GEN x, long prec); GEN extract(GEN x, GEN l); GEN extract0(GEN x, GEN l1, GEN l2); GEN gaddmat(GEN x, GEN y); +GEN gaddmat_i(GEN x, GEN y); GEN gauss(GEN a, GEN b); GEN gaussmodulo(GEN M, GEN D, GEN Y); GEN gaussmodulo2(GEN M, GEN D, GEN Y); @@ -55,8 +66,8 @@ GEN gscalcol_proto(GEN z, GEN myzero, long n); GEN gscalmat(GEN x, long n); GEN gscalsmat(long x, long n); GEN gtomat(GEN x); -GEN gtrans_i(GEN x); GEN gtrans(GEN x); +GEN gtrans_i(GEN x); GEN hnfadd(GEN mit,GEN perm,GEN* ptdep,GEN* ptA,GEN* ptC,GEN extramat,GEN extraC); GEN hnfspec(long** mat,GEN perm,GEN* ptdep,GEN* ptA,GEN* ptC,long k0); GEN idmat(long n); @@ -80,11 +91,14 @@ GEN matsolvemod0(GEN M, GEN D, GEN Y,long flag); GEN mattodiagonal(GEN m); GEN mattodiagonal_i(GEN m); long rank(GEN x); +GEN row(GEN A, long x1); +GEN row_i(GEN A, long x0, long x1, long x2); GEN rowextract_i(GEN A, long x1, long x2); GEN rowextract_p(GEN A, GEN p); GEN sindexrank(GEN x); +GEN sum(GEN v, long a, long b); GEN suppl(GEN x); -GEN suppl_intern(GEN x, GEN myid); +GEN vconcat(GEN A, GEN B); GEN vecextract_i(GEN A, long y1, long y2); GEN vecextract_p(GEN A, GEN p); GEN zerocol(long n); @@ -114,6 +128,7 @@ GEN hnf(GEN x); GEN hnfall(GEN x); GEN hnfhavas(GEN x); GEN hnflll(GEN x); +GEN hnflll_i(GEN A, GEN *ptB, int remove); GEN hnfmod(GEN x, GEN detmat); GEN hnfmodid(GEN x,GEN p); GEN hnfperm(GEN x); @@ -126,6 +141,7 @@ GEN matrixqz3(GEN x); GEN signat(GEN a); GEN smith(GEN x); GEN smith2(GEN x); +GEN smithall(GEN x, GEN *ptU, GEN *ptV); GEN smithclean(GEN z); GEN sqred(GEN a); GEN sqred1(GEN a); @@ -177,6 +193,7 @@ GEN gfundunit(GEN x); GEN ggener(GEN m); GEN gisfundamental(GEN x); GEN gisprime(GEN x, long flag); +GEN gispseudoprime(GEN x, long flag); GEN gispsp(GEN x); GEN gkrogs(GEN x, long y); GEN gkronecker(GEN x, GEN y); @@ -190,6 +207,9 @@ long hil(GEN x, GEN y, GEN p); long hil0(GEN x, GEN y, GEN p); long isfundamental(GEN x); long isprime(GEN x); +long isprimeAPRCL(GEN N); +long isprimeSelfridge(GEN x); +long ispseudoprime(GEN x, long flag); long ispsp(GEN x); long krogs(GEN x, long y); long kronecker(GEN x, GEN y); @@ -210,7 +230,7 @@ GEN qfbclassno0(GEN x,long flag); GEN quaddisc(GEN x); GEN racine(GEN a); GEN regula(GEN x, long prec); -GEN sfcont(GEN x, GEN x1, long k); +ulong u_gener(ulong p); GEN znstar(GEN x); /* arith2.c */ @@ -228,12 +248,16 @@ GEN compraw(GEN x, GEN y); GEN compreal(GEN x, GEN y); GEN comprealraw(GEN x, GEN y); GEN core(GEN n); +GEN corepartial(GEN n); GEN core0(GEN n,long flag); GEN core2(GEN n); +GEN core2partial(GEN n); GEN coredisc(GEN n); GEN coredisc0(GEN n,long flag); GEN coredisc2(GEN n); GEN decomp(GEN n); +GEN decomp_primary_small(long n); +GEN decomp_small(long n); GEN divisors(GEN n); GEN factorint(GEN n, long flag); GEN gbigomega(GEN n); @@ -242,6 +266,7 @@ GEN gbitneg(GEN x, long n); GEN gbitnegimply(GEN x, GEN y); GEN gbitor(GEN x, GEN y); GEN gbittest(GEN x, GEN n); +GEN gbittest3(GEN x, GEN n, long c); GEN gbitxor(GEN x, GEN y); GEN gboundfact(GEN n, long lim); GEN gissquarefree(GEN x); @@ -251,7 +276,7 @@ GEN gomega(GEN n); GEN gphi(GEN n); GEN gsumdiv(GEN n); GEN gsumdivk(GEN n,long k); -byteptr initprimes(long maxnum); +byteptr initprimes(ulong maxnum); long issquarefree(GEN x); ulong maxprime(void); long mu(GEN n); @@ -295,13 +320,14 @@ void checkbnrgen(GEN bnr); void checkid(GEN x, long N); GEN checknf(GEN nf); GEN checknfelt_mod(GEN nf, GEN x, char *s); -void checkprhall(GEN prhall); void checkprimeid(GEN bid); void checkrnf(GEN rnf); GEN galois(GEN x, long prec); GEN galoisapply(GEN nf, GEN aut, GEN x); GEN get_bnf(GEN x,int *t); +GEN get_bnfpol(GEN x, GEN *bnf, GEN *nf); GEN get_nf(GEN x,int *t); +GEN get_nfpol(GEN x, GEN *nf); GEN get_primeid(GEN x); GEN glambdak(GEN nfz, GEN s, long prec); int gpolcomp(GEN p1, GEN p2); @@ -317,32 +343,41 @@ GEN mathnf0(GEN x,long flag); GEN matsnf0(GEN x,long flag); long nf_get_r1(GEN nf); long nf_get_r2(GEN nf); -GEN nfinit0(GEN x,long flag, long prec); +void nf_get_sign(GEN nf, long *r1, long *r2); long nfgetprec(GEN x); +GEN nfinit0(GEN x,long flag, long prec); GEN nfnewprec(GEN nf, long prec); GEN rootsof1(GEN x); GEN tschirnhaus(GEN x); /* base2.c */ -GEN allbase4(GEN f, long code, GEN *y, GEN *ptw); +GEN allbase(GEN f, int flag, GEN *dx, GEN *dK, GEN *index, GEN *ptw); GEN base(GEN x, GEN *y); GEN base2(GEN x, GEN *y); +void checkmodpr(GEN modpr); GEN compositum(GEN pol1, GEN pol2); GEN compositum2(GEN pol1, GEN pol2); GEN discf(GEN x); GEN discf2(GEN x); GEN factoredbase(GEN x, GEN p, GEN *y); GEN factoreddiscf(GEN x, GEN p); +GEN ff_to_nf(GEN x, GEN modpr); GEN fix_relative_pol(GEN nf, GEN x, int chk_lead); GEN gcdpm(GEN f1,GEN f2,GEN pm); long idealval(GEN nf,GEN ix,GEN vp); +GEN idealprodprime(GEN nf, GEN L); +GEN modprX(GEN x, GEN nf,GEN modpr); +GEN modprX_lift(GEN x, GEN modpr); +GEN modprM(GEN z, GEN nf,GEN modpr); +GEN modprM_lift(GEN z, GEN modpr); +GEN nf_to_ff_init(GEN nf, GEN *pr, GEN *T, GEN *p); +GEN nf_to_ff(GEN nf, GEN x, GEN modpr); GEN nfbasis(GEN x, GEN *y,long flag,GEN p); GEN nfbasis0(GEN x,long flag,GEN p); GEN nfdiscf0(GEN x,long flag, GEN p); GEN nfreducemodideal(GEN nf,GEN x,GEN ideal); -GEN nfreducemodpr(GEN nf, GEN x, GEN prhall); -GEN nfreducemodpr2(GEN nf, GEN x, GEN prhall); +GEN nfreducemodpr(GEN nf, GEN x, GEN modpr); GEN polcompositum0(GEN pol1, GEN pol2,long flag); GEN primedec(GEN nf,GEN p); GEN rnfbasis(GEN bnf, GEN order); @@ -357,23 +392,26 @@ GEN rnfhermitebasis(GEN bnf, GEN order); long rnfisfree(GEN bnf, GEN order); GEN rnflllgram(GEN nf, GEN pol, GEN order,long prec); GEN rnfpolred(GEN nf, GEN pol, long prec); -GEN rnfpolredabs(GEN nf, GEN pol, long flag, long prec); +GEN rnfpolredabs(GEN nf, GEN pol, long flag); GEN rnfpseudobasis(GEN nf, GEN pol); GEN rnfsimplifybasis(GEN bnf, GEN order); GEN rnfsteinitz(GEN nf, GEN order); GEN smallbase(GEN x, GEN *y); GEN smalldiscf(GEN x); -GEN subcyclo(GEN p, GEN d, int n); +GEN zk_to_ff_init(GEN nf, GEN *pr, GEN *T, GEN *p); +GEN zk_to_ff(GEN x, GEN modpr); +GEN zkmodprinit(GEN nf, GEN pr); /* base3.c */ GEN algtobasis(GEN nf, GEN x); -GEN algtobasis_intern(GEN nf,GEN x); +GEN algtobasis_i(GEN nf,GEN x); GEN basistoalg(GEN nf, GEN x); GEN element_div(GEN nf, GEN x, GEN y); GEN element_inv(GEN nf, GEN x); GEN element_invmodideal(GEN nf, GEN x, GEN ideal); GEN element_mul(GEN nf,GEN x,GEN y); +GEN element_muli(GEN nf,GEN x,GEN y); GEN element_mulid(GEN nf, GEN x, long i); GEN element_mulvec(GEN nf, GEN x, GEN v); GEN element_pow(GEN nf,GEN x,GEN k); @@ -381,8 +419,9 @@ GEN element_pow_mod_p(GEN nf, GEN x, GEN n, GEN p) GEN element_powmodideal(GEN nf,GEN x,GEN k,GEN ideal); GEN element_powmodidele(GEN nf,GEN x,GEN k,GEN idele,GEN structarch); GEN element_sqr(GEN nf,GEN x); +GEN element_sqri(GEN nf, GEN x); long element_val(GEN nf, GEN x, GEN vp); -long element_val2(GEN nf, GEN x, GEN d, GEN vp); +GEN eltmul_get_table(GEN nf, GEN x); GEN ideallist(GEN nf,long bound); GEN ideallist0(GEN nf,long bound, long flag); GEN ideallistarch(GEN nf, GEN list, GEN arch); @@ -397,7 +436,6 @@ GEN ideallistzstargen(GEN nf,long bound); GEN idealstar0(GEN nf, GEN x,long flag); int isnfscalar(GEN x); GEN lllreducemodmatrix(GEN x,GEN y); -GEN nf_PHlog(GEN nf, GEN a, GEN g, GEN pr, GEN prhall); GEN nfdiveuc(GEN nf, GEN a, GEN b); GEN nfdivres(GEN nf, GEN a, GEN b); GEN nfmod(GEN nf, GEN a, GEN b); @@ -405,6 +443,8 @@ GEN nfreducemodidele(GEN nf,GEN g,GEN idele,GEN st GEN reducemodinvertible(GEN x, GEN y); GEN reducemodmatrix(GEN x, GEN y); GEN reducemodHNF(GEN x, GEN y, GEN *Q); +GEN set_sign_mod_idele(GEN nf, GEN x, GEN y, GEN idele, GEN sarch); +GEN smithrel(GEN H, GEN *newU, GEN *newUi); GEN zarchstar(GEN nf,GEN x,GEN arch,long nba); GEN zideallog(GEN nf,GEN x,GEN bigideal); GEN zidealstar(GEN nf, GEN x); @@ -415,13 +455,14 @@ GEN zidealstarinitjoin(GEN nf, GEN bid1, GEN bid2, GEN zidealstarinitjoinarch(GEN nf, GEN bid1, GEN arch, long nba, long flag); GEN znlog(GEN x, GEN g); GEN zsigne(GEN nf,GEN alpha,GEN arch); +GEN zsigns(GEN nf,GEN alpha); /* base4.c */ -GEN element_divmodpr(GEN nf, GEN x, GEN y, GEN prhall); -GEN element_invmodpr(GEN nf, GEN y, GEN prhall); -GEN element_mulmodpr2(GEN nf, GEN x, GEN y, GEN prhall); -GEN element_powmodpr(GEN nf, GEN x, GEN k, GEN prhall); +GEN element_divmodpr(GEN nf, GEN x, GEN y, GEN modpr); +GEN element_invmodpr(GEN nf, GEN y, GEN modpr); +GEN element_mulmodpr(GEN nf, GEN x, GEN y, GEN modpr); +GEN element_powmodpr(GEN nf, GEN x, GEN k, GEN modpr); GEN element_reduce(GEN nf, GEN x, GEN ideal); GEN ideal_two_elt(GEN nf, GEN ix); GEN ideal_two_elt0(GEN nf, GEN ix, GEN a); @@ -438,6 +479,8 @@ GEN idealcoprime(GEN nf, GEN x, GEN y); GEN idealdiv(GEN nf, GEN x, GEN y); GEN idealdiv0(GEN nf, GEN x, GEN y,long flag); GEN idealdivexact(GEN nf, GEN x, GEN y); +GEN idealdivpowprime(GEN nf, GEN x, GEN vp, GEN n); +GEN idealmulpowprime(GEN nf, GEN x, GEN vp, GEN n); GEN idealfactor(GEN nf, GEN x); GEN idealhermite(GEN nf, GEN x); GEN idealhermite2(GEN nf, GEN a, GEN b); @@ -445,10 +488,10 @@ GEN idealhnf0(GEN nf, GEN a, GEN b); GEN idealintersect(GEN nf, GEN x, GEN y); GEN idealinv(GEN nf, GEN ix); GEN ideallllred(GEN nf,GEN ix,GEN vdir,long prec); -GEN ideallllred_elt(GEN nf, GEN I); +GEN idealred_elt(GEN nf, GEN I); +GEN ideallllred_elt(GEN nf, GEN I, GEN vdir); GEN idealmul(GEN nf, GEN ix, GEN iy); GEN idealmul0(GEN nf, GEN ix, GEN iy, long flag, long prec); -GEN idealmulelt(GEN nf, GEN elt, GEN x); GEN idealmulh(GEN nf, GEN ix, GEN iy); GEN idealmulprime(GEN nf,GEN ix,GEN vp); GEN idealmulred(GEN nf, GEN ix, GEN iy, long prec); @@ -460,20 +503,25 @@ GEN idealpowred(GEN nf, GEN ix, GEN n,long prec); GEN idealpows(GEN nf, GEN ideal, long iexp); GEN ideleaddone(GEN nf, GEN x, GEN idele); int ishnfall(GEN x); +GEN hnfall_i(GEN A, GEN *ptB, long remove); long isideal(GEN nf,GEN x); long isinvector(GEN v, GEN x, long n); GEN minideal(GEN nf,GEN ix,GEN vdir,long prec); GEN nfdetint(GEN nf,GEN pseudo); GEN nfhermite(GEN nf, GEN x); GEN nfhermitemod(GEN nf, GEN x, GEN detmat); -GEN nfkermodpr(GEN nf, GEN x, GEN prhall); +GEN nfkermodpr(GEN nf, GEN x, GEN modpr); GEN nfmodprinit(GEN nf, GEN pr); GEN nfsmith(GEN nf, GEN x); -GEN nfsolvemodpr(GEN nf, GEN a, GEN b, GEN prhall); +GEN nfsolvemodpr(GEN nf, GEN a, GEN b, GEN modpr); GEN oldidealinv(GEN nf, GEN ix); GEN prime_to_ideal(GEN nf, GEN vp); GEN principalideal(GEN nf, GEN a); GEN principalidele(GEN nf, GEN a, long prec); +GEN vecdiv(GEN x, GEN y); +GEN vecinv(GEN x); +GEN vecmul(GEN x, GEN y); +GEN vecpow(GEN x, GEN n); /* base5.c */ @@ -499,22 +547,20 @@ GEN rnfinitalg(GEN nf,GEN pol,long prec); /* bibli1.c */ +GEN T2_from_embed(GEN x, long r1); GEN algdep(GEN x, long n, long prec); GEN algdep0(GEN x, long n, long bit,long prec); GEN algdep2(GEN x, long n, long bit); -GEN factoredpolred(GEN x, GEN p, long prec); -GEN factoredpolred2(GEN x, GEN p, long prec); +GEN factoredpolred(GEN x, GEN p); +GEN factoredpolred2(GEN x, GEN p); GEN kerint(GEN x); GEN kerint1(GEN x); -GEN kerint2(GEN x); GEN lindep(GEN x, long prec); GEN lindep0(GEN x, long flag,long prec); GEN lindep2(GEN x, long bit); GEN lll(GEN x, long prec); -GEN lll1(GEN x, long prec); GEN lllgen(GEN x); GEN lllgram(GEN x, long prec); -GEN lllgram1(GEN x, long prec); GEN lllgramall(GEN x, long alpha, long flag); GEN lllgramgen(GEN x); GEN lllgramint(GEN x); @@ -522,33 +568,35 @@ GEN lllgramintern(GEN x, long alpha, long flag, lo GEN lllgramkerim(GEN x); GEN lllgramkerimgen(GEN x); GEN lllint(GEN x); -GEN lllintern(GEN x, long flag, long prec); +GEN lllint_i(GEN x, long alpha, int gram, GEN *h, GEN *ptfl, GEN *ptB); +GEN lllint_ip(GEN x, long alpha); +GEN lllintern(GEN x, long D, long flag, long prec); GEN lllintpartial(GEN mat); GEN lllkerim(GEN x); GEN lllkerimgen(GEN x); -GEN lllrat(GEN x); GEN matkerint0(GEN x,long flag); GEN minim(GEN a, GEN borne, GEN stockmax); +GEN nf_get_LLL(GEN nf); GEN qfminim0(GEN a, GEN borne, GEN stockmax,long flag, long prec); GEN minim2(GEN a, GEN borne, GEN stockmax); -GEN ordred(GEN x, long prec); +GEN ordred(GEN x); GEN perf(GEN a); -GEN polred(GEN x, long prec); -GEN polredfirstpol(GEN x, long prec, int (*check)(GEN,GEN), GEN bnf); -GEN polred0(GEN x, long flag, GEN p, long prec); -GEN polred2(GEN x, long prec); -GEN polredabs(GEN x, long prec); -GEN polredabs0(GEN x, long flag, long prec); -GEN polredabs2(GEN x, long prec); -GEN polredabsall(GEN x, long flun, long prec); -GEN polredabsnored(GEN x, long prec); +GEN polred(GEN x); +GEN polred0(GEN x, long flag, GEN p); +GEN polred2(GEN x); +GEN polredabs(GEN x); +GEN polredabs0(GEN x, long flag); +GEN polredabs2(GEN x); +GEN polredabsall(GEN x, long flun); GEN qflll0(GEN x, long flag, long prec); GEN qflllgram0(GEN x, long flag, long prec); -GEN smallpolred(GEN x, long prec); -GEN smallpolred2(GEN x, long prec); +GEN smallpolred(GEN x); +GEN smallpolred2(GEN x); /* bibli2.c */ +GEN RXQ_powers(GEN a, GEN T, long l); +GEN RX_RXQ_compo(GEN f, GEN x, GEN T); GEN binome(GEN x, long k); int cmp_pol(GEN x, GEN y); int cmp_prime_ideal(GEN x, GEN y); @@ -559,6 +607,8 @@ GEN cyclo(long n, long v); GEN dirdiv(GEN x, GEN y); GEN dirmul(GEN x, GEN y); GEN dirzetak(GEN nf, GEN b); +long gen_search(GEN x, GEN y, int flag, int (*cmp)(GEN,GEN)); +GEN gen_setminus(GEN set1, GEN set2, int (*cmp)(GEN,GEN)); GEN gen_sort(GEN x, int flag, int (*cmp)(GEN,GEN)); GEN genrand(GEN N); GEN getheap(void); @@ -576,6 +626,7 @@ GEN legendre(long n, long v); GEN lexsort(GEN x); GEN mathilbert(long n); GEN matqpascal(long n, GEN q); +GEN modreverse_i(GEN a, GEN T); long mymyrand(void); GEN numtoperm(long n, GEN x); int pari_compare_int(int *a,int *b); @@ -584,6 +635,7 @@ GEN permtonum(GEN x); GEN polint(GEN xa, GEN ya, GEN x, GEN *dy); GEN polrecip(GEN x); GEN polymodrecip(GEN x); +GEN roots_to_pol(GEN a, long v); GEN setintersect(GEN x, GEN y); long setisset(GEN x); GEN setminus(GEN x, GEN y); @@ -596,6 +648,7 @@ GEN sort(GEN x); long tablesearch(GEN T, GEN x, int (*cmp)(GEN,GEN)); GEN tayl(GEN x, long v, long precdl); GEN tchebi(long n, long v); +GEN vecbinome(long n); GEN vecsort(GEN x, GEN k); GEN vecsort0(GEN x, GEN k, long flag); @@ -612,16 +665,18 @@ GEN quadray(GEN bnf, GEN f, GEN flag, long prec); GEN bnfclassunit0(GEN P,long flag,GEN data,long prec); GEN bnfinit0(GEN P,long flag,GEN data,long prec); +GEN bnfmake(GEN sbnf,long prec); GEN buchall(GEN P, GEN gcbach, GEN gcbach2, GEN gRELSUP, GEN gborne, long nbrelpid, long minsfb, long flun, long prec); GEN buchfu(GEN bignf); GEN classgrouponly(GEN P,GEN data,long prec); GEN isprincipal(GEN bignf, GEN x); GEN isprincipalall(GEN bignf, GEN x,long flall); +GEN isprincipalfact(GEN bnf,GEN P, GEN e, GEN C, long flag); GEN isprincipalforce(GEN bignf,GEN x); GEN isprincipalgen(GEN bignf, GEN x); GEN isprincipalgenforce(GEN bignf,GEN x); GEN isunit(GEN bignf, GEN x); -GEN bnfmake(GEN sbnf,long prec); +GEN quick_isprincipalgen(GEN bnf, GEN x); GEN regulator(GEN P,GEN data,long prec); GEN signunits(GEN bignf); GEN smallbuchinit(GEN pol,GEN gcbach,GEN gcbach2,GEN gRELSUP,GEN gborne,long nbrelpid,long minsfb,long prec); @@ -649,6 +704,7 @@ GEN discrayabslistarch(GEN bnf, GEN arch, long bou GEN discrayabslistlong(GEN bnf, long bound); GEN discrayrel(GEN bnr,GEN subgroup); GEN discrayrelcond(GEN bnr,GEN subgroup); +GEN idealmodidele(GEN bnr, GEN x); GEN isprincipalray(GEN bignf, GEN x); GEN isprincipalrayall(GEN bignf, GEN x,long flall); GEN isprincipalraygen(GEN bignf, GEN x); @@ -657,12 +713,13 @@ GEN rayclassnolist(GEN bnf,GEN listes); GEN rnfconductor(GEN bnf, GEN polrel, long flag); GEN rnfkummer(GEN bnr, GEN subgroup, long all, long prec); GEN rnfnormgroup(GEN bnr, GEN polrel); -GEN subgrouplist0(GEN bnr, long indexbound, long all); +GEN subgrouplist0(GEN bnr, GEN indexbound, long all); /* buch4.c */ GEN bnfisnorm(GEN bnf,GEN x,long flag,long PREC); -GEN rnfisnorm(GEN bnf,GEN ext,GEN x,long flag,long PREC); +GEN rnfisnorm(GEN S, GEN x, long flag); +GEN rnfisnorminit(GEN bnf, GEN relpol, int galois); GEN bnfissunit(GEN bnf,GEN suni,GEN x); GEN bnfsunit(GEN bnf,GEN s,long PREC); long nfhilbert(GEN bnf,GEN a,GEN b); @@ -687,6 +744,7 @@ GEN elleisnum(GEN om, long k, long flag, long prec GEN elleta(GEN om, long prec); GEN ellheight0(GEN e, GEN a, long flag,long prec); GEN ellinit0(GEN x,long flag,long prec); +GEN ellminimalmodel(GEN E, GEN *ptv); long ellrootno(GEN e, GEN p); GEN ellsigma(GEN om, GEN z, long flag, long prec); GEN elltors0(GEN e, long flag); @@ -719,11 +777,9 @@ void brute(GEN g, char format, long dec); void bruteall(GEN g, char format, long dec, long flbl); void bruterr(GEN x,char format,long dec); const char* eng_ord(long i); -void ecrire(GEN x, char format, long dec, long chmp); void etatpile(unsigned int n); char* expand_tilde(char *s); int file_is_binary(FILE *f); -char* filtre(char *s,char *t,int status); void flusherr(void); void fprintferr(char* pat, ...); void killallfiles(int check); @@ -768,15 +824,17 @@ void writebin(char *name, GEN x); /* galconj.c */ -GEN corediscpartial(GEN n); +GEN checkgal(GEN gal); GEN galoisconj(GEN nf); GEN galoisconj0(GEN nf, long flag, GEN d, long prec); GEN galoisconj2(GEN x, long nbmax, long prec); GEN galoisconj4(GEN T, GEN den, long flag, long karma); GEN galoisfixedfield(GEN gal, GEN v, long flag, long y); GEN galoisinit(GEN nf, GEN den, long karma); +GEN galoisisabelian(GEN gal, long flag); GEN galoispermtopol(GEN gal, GEN perm); -GEN galoissubcyclo(long n, GEN H, GEN Z, long v, long flag); +GEN galoissubgroups(GEN G); +GEN galoissubfields(GEN G, long flag, long v); long numberofconjugates(GEN T, long pdepart); GEN vandermondeinverse(GEN L, GEN T, GEN den, GEN prep); /* gen1.c */ @@ -836,12 +894,11 @@ GEN matsize(GEN x); GEN normalize(GEN x); GEN normalizepol(GEN x); GEN normalizepol_i(GEN x, long lx); +long polvaluation(GEN x, GEN *z); GEN pureimag(GEN x); long pvaluation(GEN x, GEN p, GEN *py); long sizedigit(GEN x); -long svaluation(ulong x, ulong p, long *py); -long taille(GEN x); -long taille2(GEN x); +long svaluation(ulong x, ulong p, ulong *py); GEN vecmax(GEN x); GEN vecmin(GEN x); @@ -861,6 +918,8 @@ GEN denom(GEN x); GEN deriv(GEN x, long v); GEN derivpol(GEN x); GEN derivser(GEN x); +GEN diviiround(GEN x, GEN y); +GEN divrem(GEN x, GEN y, long v); GEN gand(GEN x, GEN y); GEN gceil(GEN x); GEN gcvtoi(GEN x, long *e); @@ -897,6 +956,7 @@ GEN greal(GEN x); GEN grndtoi(GEN x, long *e); GEN ground(GEN x); GEN gshift(GEN x, long n); +GEN gshift3(GEN x, long n, long flag); GEN gsubst(GEN x, long v, GEN y); GEN gsubst0(GEN x, GEN v, GEN y); GEN gtopoly(GEN x, long v); @@ -921,6 +981,7 @@ GEN mulmat_real(GEN x, GEN y); GEN numer(GEN x); long padicprec(GEN x, GEN p); GEN polcoeff0(GEN x,long n,long v); +GEN polcoeff_i(GEN x, long n, long v); long poldegree(GEN x,long v); GEN poleval(GEN x, GEN y); GEN pollead(GEN x,long v); @@ -928,6 +989,7 @@ long precision(GEN x); GEN precision0(GEN x,long n); GEN qf_base_change(GEN q, GEN M, int flag); GEN qfeval(GEN q, GEN x); +GEN real2n(long n, long prec); GEN recip(GEN x); GEN round0(GEN x, GEN *pte); GEN scalarpol(GEN x, long v); @@ -942,6 +1004,7 @@ GEN zeroser(long v, long prec); /* ifactor1.c */ +long BSW_psp(GEN N); long millerrabin(GEN n, long k); GEN nextprime(GEN n); GEN plisprime(GEN N, long flag); @@ -949,7 +1012,9 @@ GEN precprime(GEN n); /* init.c */ -long allocatemoremem(ulong newsize); +long TIMER(pari_timer *T); +void TIMERstart(pari_timer *T); +long allocatemoremem(size_t newsize); GEN changevar(GEN x, GEN y); void checkmemory(GEN x); void disable_dbg(long val); @@ -961,28 +1026,29 @@ GEN forcecopy(GEN x); void freeall(void); GEN gcopy(GEN x); GEN gcopy_i(GEN x, long lx); -void genmsgtimer(long t, char *format, ...); -long gentimer(long i); -GEN gerepile(long ltop, long lbot, GEN q); -GEN gerepilecopy(long av, GEN x); -void gerepilemany(long av, GEN* g[], long n); -void gerepilemanycoeffs(long av, GEN x, long n); -void gerepilemanysp(long av, long tetpil, GEN* g[], long n); -void gerepilemanyvec(long av, long tetpil, long *g, long n); -GEN gerepileupto(long av, GEN q); -GEN gerepileuptoint(long av, GEN q); -GEN gerepileuptoleaf(long av, GEN q); -long get_timer(long t); +GEN gerepile(gpmem_t ltop, gpmem_t lbot, GEN q); +void gerepileall(ulong av, int n, ...); +GEN gerepilecopy(gpmem_t av, GEN x); +void gerepilemany(gpmem_t av, GEN* g[], int n); +void gerepilemanycoeffs(gpmem_t av, GEN x, int n); +void gerepilemanysp(gpmem_t av, gpmem_t tetpil, GEN* g[], int n); +void gerepilemanyvec(gpmem_t av, gpmem_t tetpil, long *g, int n); +GEN gerepileupto(gpmem_t av, GEN q); +GEN gerepileuptoint(gpmem_t av, GEN q); +GEN gerepileuptoleaf(gpmem_t av, GEN q); char* gpmalloc(size_t bytes); -char* gprealloc(void *pointer,size_t newsize,size_t oldsize); +char* gprealloc(void *pointer,size_t size); void gunclone(GEN x); void killbloc(GEN x); +void msgTIMER(pari_timer *T, char *format, ...); void msgtimer(char *format, ...); GEN newbloc(long n); -void pari_init(long parisize, long maxprime); +void pari_init(size_t parisize, ulong maxprime); GEN reorder(GEN x); void stackdummy(GEN x, long l); stackzone* switch_stack(stackzone *z, long n); +long taille(GEN x); +long taille2(GEN x); long timer(void); long timer2(void); @@ -1007,6 +1073,7 @@ int cmprr(GEN x, GEN y); int cmpsi(long x, GEN y); GEN dbltor(double x); GEN diviiexact(GEN x, GEN y); +GEN diviuexact(GEN x, ulong y); void diviiz(GEN x, GEN y, GEN z); GEN divir(GEN x, GEN y); GEN divis(GEN y, long x); @@ -1036,9 +1103,12 @@ GEN mulss(long x, long y); GEN mului(ulong x, GEN y); GEN muluu(ulong x, ulong y); int ratlift(GEN x, GEN m, GEN *a, GEN *b, GEN amax, GEN bmax); +GEN resmod2n(GEN x, long n); GEN resss(long x, long y); double rtodbl(GEN x); GEN shifti(GEN x, long n); +void shift_r(ulong *target, ulong *source, ulong *source_end, ulong prepend, ulong sh); +GEN shifti3(GEN x, long n, long flag); long smodsi(long x, GEN y); GEN sqri(GEN x); GEN truedvmdii(GEN x, GEN y, GEN *z); @@ -1049,18 +1119,48 @@ long vals(ulong x); GEN nffactor(GEN nf,GEN x); GEN nffactormod(GEN nf,GEN pol,GEN pr); +int nfisgalois(GEN nf, GEN x); GEN nfroots(GEN nf,GEN pol); GEN rnfcharpoly(GEN nf,GEN T,GEN alpha,int n); GEN rnfdedekind(GEN nf,GEN T,GEN pr); GEN unifpol(GEN nf,GEN pol,long flag); +/* perm.c */ + +GEN abelian_group(GEN G); +GEN bitvec_alloc(long n); +long bitvec_test(GEN bitvec, long b); +void bitvec_set(GEN bitvec, long b); +void bitvec_clear(GEN bitvec, long b); +GEN cyclicperm(long l, long d); +GEN cyc_powtoperm(GEN cyc, long exp); +GEN group_elts(GEN G, long n); +long group_isabelian(GEN G); +long group_order(GEN G); +GEN group_subgroups(GEN G); +GEN perm_cycles(GEN v); +GEN perm_identity(long l); +GEN perm_inv(GEN x); +GEN perm_mul(GEN s, GEN t); +GEN perm_pow(GEN perm, long exp); +GEN vecperm_orbits(GEN v, long n); +GEN vecsmall_append(GEN V, long s); +GEN vecsmall_prepend(GEN V, long s); +GEN vecsmall_const(long n, long c); +int vecsmall_lexcmp(GEN x, GEN y); +int vecsmall_prefixcmp(GEN x, GEN y); +void vecsmall_sort(GEN V); +GEN vecsmall_uniq(GEN V); + /* polarit1.c */ + GEN FpV_roots_to_pol(GEN V, GEN p, long v); long FpX_is_irred(GEN f, GEN p); long FpX_is_squarefree(GEN f, GEN p); long FpX_is_totally_split(GEN f, GEN p); long FpX_nbfact(GEN f, GEN p); long FpX_nbroots(GEN f, GEN p); +GEN FpX_rand(long d1, long v, GEN p); GEN apprgen(GEN f, GEN a); GEN apprgen9(GEN f, GEN a); GEN factcantor(GEN x, GEN p); @@ -1071,12 +1171,14 @@ GEN factormod0(GEN f, GEN p,long flag); GEN factorpadic0(GEN f,GEN p,long r,long flag); GEN factorpadic2(GEN x, GEN p, long r); GEN factorpadic4(GEN x, GEN p, long r); +GEN ffinit(GEN p,long n, long v); int gdivise(GEN x, GEN y); long hensel_lift_accel(long n, long *pmask); GEN incloop(GEN a); GEN mat_to_polpol(GEN x, long v,long w); GEN mat_to_vecpol(GEN x, long v); GEN padicsqrtnlift(GEN a, GEN n, GEN S, GEN p, long e); +GEN pol_to_vec(GEN x, long N); int poldivis(GEN x, GEN y, GEN *z); GEN poldivres(GEN x, GEN y, GEN *pr); GEN polpol_to_mat(GEN v, long n); @@ -1091,18 +1193,31 @@ GEN roots2(GEN pol,long PREC); GEN rootsold(GEN x, long l); GEN setloop(GEN a); GEN simplefactmod(GEN f, GEN p); +GEN swap_polpol(GEN x, long n, long w); +GEN vec_to_pol(GEN x, long v); GEN vecpol_to_mat(GEN v, long n); /* polarit2.c */ +GEN Q_denom(GEN x); +GEN Q_div_to_int(GEN x, GEN c); +GEN Q_muli_to_int(GEN x, GEN d); +GEN Q_primitive_part(GEN x, GEN *ptc); +GEN Q_remove_denom(GEN x, GEN *ptd); +GEN Q_primpart(GEN x); GEN bezoutpol(GEN a, GEN b, GEN *u, GEN *v); GEN centermod(GEN x, GEN p); +GEN centermodii(GEN x, GEN p, GEN po2); +GEN concat_factor(GEN f, GEN g); GEN content(GEN x); GEN discsr(GEN x); GEN divide_conquer_prod(GEN x, GEN (*mul)(GEN,GEN)); +GEN leftright_pow(GEN,GEN,void*,GEN (*sqr)(void*,GEN),GEN (*mul)(void*,GEN,GEN)); GEN factor(GEN x); GEN factor0(GEN x,long flag); GEN factorback(GEN fa,GEN nf); +GEN factorback0(GEN fa,GEN e, GEN nf); +GEN factorbackelt(GEN fa, GEN e, GEN nf); GEN factpol(GEN x, long hint); GEN gbezout(GEN x, GEN y, GEN *u, GEN *v); GEN gcd0(GEN x, GEN y,long flag); @@ -1126,6 +1241,8 @@ GEN polinflate(GEN x0, long d); GEN polresultant0(GEN x, GEN y,long v,long flag); GEN polsym(GEN x, long n); GEN primitive_part(GEN x, GEN *c); +GEN primpart(GEN x); +GEN pseudorem(GEN x, GEN y); GEN quadgen(GEN x); GEN quadpoly(GEN x); GEN quadpoly0(GEN x, long v); @@ -1134,6 +1251,7 @@ GEN resultant2(GEN x, GEN y); GEN resultantducos(GEN x, GEN y); GEN sort_factor(GEN y, int (*cmp)(GEN,GEN)); GEN sort_factor_gen(GEN y, int (*cmp)(GEN,GEN)); +GEN sort_vecpol(GEN a); GEN srgcd(GEN x, GEN y); long sturmpart(GEN x, GEN a, GEN b); GEN subresall(GEN u, GEN v, GEN *sol); @@ -1168,6 +1286,7 @@ GEN FpX_small(GEN z, GEN p, long l); GEN FpX_sqr(GEN x,GEN p); GEN FpX_sub(GEN x,GEN y,GEN p); GEN FpXQ_charpoly(GEN x, GEN T, GEN p); +GEN FpXQ_div(GEN x,GEN y,GEN T,GEN p); GEN FpXQ_inv(GEN x,GEN pol,GEN p); GEN FpXQ_minpoly(GEN x, GEN T, GEN p); GEN FpXQ_mul(GEN y,GEN x,GEN pol,GEN p); @@ -1178,44 +1297,57 @@ GEN FpXQX_mul(GEN x, GEN y, GEN T, GEN p); GEN FpXQX_red(GEN z, GEN T, GEN p); GEN FpXQX_sqr(GEN x, GEN T, GEN p); GEN FpXQX_extgcd(GEN x, GEN y, GEN T, GEN p, GEN *ptu, GEN *ptv); -GEN FpXQ_inv(GEN x,GEN pol,GEN p); GEN FpXQX_FpXQ_mul(GEN P, GEN U, GEN T, GEN p); GEN FpXQX_divres(GEN x, GEN y, GEN T, GEN p, GEN *pr); -GEN FpXQX_red(GEN z, GEN T, GEN p); GEN FpXQX_normalize(GEN z, GEN T, GEN p); -GEN FpXV_FpV_dotproduct(GEN V, GEN W, GEN p); +GEN FpXV_FpV_innerprod(GEN V, GEN W, GEN p); GEN FpXV_red(GEN z, GEN p); GEN FpXX_red(GEN z, GEN p); +GEN FpY_FpXY_resultant(GEN a, GEN b0, GEN p); GEN Fp_factor_rel(GEN P, GEN l, GEN Q); GEN Fp_factor_rel0(GEN P, GEN l, GEN Q); void Fp_intersect(long n,GEN P,GEN Q,GEN l,GEN *SP,GEN *SQ,GEN MA,GEN MB); GEN Fp_inv_isom(GEN S,GEN Tp, GEN p); GEN Fp_isom(GEN P,GEN Q,GEN l); GEN FqV_roots_to_pol(GEN V, GEN p, GEN Tp, long v); +GEN ZX_caract(GEN A, GEN B, long v); GEN ZX_disc(GEN x); -GEN ZX_invmod(GEN A, GEN B); -GEN ZX_rescale_pol(GEN P, GEN h); +GEN QX_invmod(GEN A, GEN B); +GEN QX_caract(GEN A, GEN B, long v); +int ZX_is_squarefree(GEN x); GEN ZX_resultant(GEN A, GEN B); +GEN ZX_QX_resultant(GEN A, GEN B); GEN ZX_s_add(GEN y,long x); long brent_kung_optpow(long d, long n); GEN ffsqrtnmod(GEN a, GEN n, GEN T, GEN p, GEN *zetan); GEN modulargcd(GEN a,GEN b); GEN quickmul(GEN a, GEN b, long na, long nb); GEN quicksqr(GEN a, long na); +GEN small_to_col(GEN z); GEN small_to_mat(GEN z); GEN small_to_pol(GEN z, long v); +GEN small_to_vec(GEN z); GEN pol_to_small(GEN x); +ulong powuumod(ulong x, ulong n0, ulong p); +GEN powgumod(GEN x, ulong n0, GEN p); +GEN rescale_pol(GEN P, GEN h); +GEN unscale_pol(GEN P, GEN h); GEN stopoly(long m, long p, long v); GEN stopoly_gen(GEN m, GEN p, long v); GEN u_FpXQ_pow(GEN x, GEN n, GEN pol, ulong p); -GEN u_FpX_divrem(GEN x, GEN y, ulong p, int malloc, GEN *pr); +GEN u_FpX_divrem(GEN x, GEN y, ulong p, GEN *pr); GEN u_FpX_rem(GEN x, GEN y, ulong p); GEN u_Fp_FpM(GEN x, ulong p); -GEN u_Fp_FpX(GEN x,int malloc, ulong p); +GEN u_Fp_FpV(GEN x, ulong p); +GEN u_Fp_FpX(GEN x, ulong p); int u_FpX_is_squarefree(GEN z, ulong p); GEN u_FpX_normalize(GEN z, ulong p); GEN u_FpX_sub(GEN x, GEN y, ulong p); GEN u_FpX_gcd(GEN a, GEN b, ulong p); +ulong u_invmod(ulong x, ulong p); +int u_pow(int p, int k); +int u_val(ulong n, ulong p); +GEN u_zeropol(void); /* rootpol.c */ @@ -1223,17 +1355,23 @@ int isrealappr(GEN x, long l); GEN roots(GEN x,long l); GEN roots0(GEN x,long flag,long l); +/*subcyclo.c */ + +GEN galoissubcyclo(GEN N, GEN sg, long flag, long v); +GEN polsubcyclo(long n, long d, long v); +GEN subcyclo(long n, long d, long v); +GEN znstar_small(GEN zn); + /* subfields.c */ -GEN ffinit(GEN p,long n, long v); GEN subfields(GEN nf,GEN d); GEN subfields0(GEN nf,GEN d); GEN conjugates(GEN pol); /* subgroup.c */ -void forsubgroup(entree *oep, GEN cyc, long bound, char *och); -GEN subgrouplist(GEN cyc, long bound); +void forsubgroup(entree *oep, GEN cyc, GEN bound, char *och); +GEN subgrouplist(GEN cyc, GEN bound); /* stark.c */ @@ -1260,10 +1398,6 @@ GEN prodinf(entree *ep, GEN a, char *ch, long prec GEN prodinf0(entree *ep, GEN a, char *ch, long flag, long prec); GEN prodinf1(entree *ep, GEN a, char *ch, long prec); GEN produit(entree *ep, GEN a, GEN b, char *ch, GEN x); -GEN qromb(entree *ep, GEN a, GEN b, char *ch, long prec); -GEN qromi(entree *ep, GEN a, GEN b, char *ch, long prec); -GEN qromo(entree *ep, GEN a, GEN b, char *ch, long prec); -GEN rombint(entree *ep, GEN a, GEN b, char *ch, long prec); GEN somme(entree *ep, GEN a, GEN b, char *ch, GEN x); GEN sumalt(entree *ep, GEN a, char *ch, long prec); GEN sumalt0(entree *ep, GEN a, char *ch,long flag, long prec); @@ -1273,6 +1407,7 @@ GEN sumpos0(entree *ep, GEN a, char *ch, long flag GEN sumpos2(entree *ep, GEN a, char *ch, long prec); GEN suminf(entree *ep, GEN a, char *ch, long prec); GEN vecteur(GEN nmax, entree *ep, char *ch); +GEN vecteursmall(GEN nmax, entree *ep, char *ch); GEN vvecteur(GEN nmax, entree *ep, char *ch); GEN zbrent(entree *ep, GEN a, GEN b, char *ch, long prec); @@ -1284,8 +1419,12 @@ GEN thueinit(GEN poly, long flag, long prec); /* trans1.c */ +GEN Pi2n(long n, long prec); +GEN PiI2(long prec); +GEN PiI2n(long n, long prec); void consteuler(long prec); void constpi(long prec); +GEN exp_Ir(GEN x); GEN gcos(GEN x, long prec); void gcosz(GEN x, GEN y); GEN gcotan(GEN x, long prec); @@ -1308,8 +1447,10 @@ GEN mpeuler(long prec); GEN mpexp(GEN x); GEN mpexp1(GEN x); GEN mplog(GEN x); +GEN mplog2(long prec); GEN mppi(long prec); GEN mpsqrt(GEN x); +GEN padiczero(GEN p, long e); GEN palog(GEN x); GEN powgi(GEN x, GEN n); GEN teich(GEN x); @@ -1371,7 +1512,12 @@ GEN incgam1(GEN a, GEN x, long prec); GEN incgam2(GEN a, GEN x, long prec); GEN incgam3(GEN a, GEN x, long prec); GEN incgam4(GEN a, GEN x, GEN z, long prec); +GEN hbessel1(GEN n, GEN z, long prec); +GEN hbessel2(GEN n, GEN z, long prec); +GEN ibessel(GEN n, GEN z, long prec); +GEN jbessel(GEN n, GEN z, long prec); GEN jbesselh(GEN n, GEN z, long prec); +GEN nbessel(GEN n, GEN z, long prec); GEN jell(GEN x, long prec); GEN kbessel(GEN nu, GEN gx, long prec); GEN kbessel0(GEN nu, GEN gx, long flag,long prec);