Bill Allombert on Thu, 29 Jan 2004 17:11:01 +0100 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: Preparing PARI 2.3 |
On Wed, Jan 28, 2004 at 02:06:35AM +0100, Bill Allombert wrote: > > Hello PARI-dev, > > > --- Fix the ABI/API: define public functions in paridecl.h, not just those > > we need to build PARI. > > That need to happen, though latest changes have improved a bit on the > situation. > > I plan to review the "regular" interface (FpX, Flx, vecsmall,etc.) to > see what functions need to be added to paridecl.h Here a patch for the file perm.c. Cheers, Bill.
Index: src/basemath/perm.c =================================================================== RCS file: /home/cvs/pari/src/basemath/perm.c,v retrieving revision 1.20 diff -u -r1.20 perm.c --- src/basemath/perm.c 7 Jan 2004 14:41:20 -0000 1.20 +++ src/basemath/perm.c 29 Jan 2004 15:46:44 -0000 @@ -491,7 +491,8 @@ * orders (vecsmall): relatives orders of generators. */ -GEN trivialsubgroups(void) +static GEN +trivialsubgroups(void) { GEN p2,p3; /* vec */ p2 = cgetg(2, t_VEC); @@ -502,8 +503,6 @@ return p2; } - - /* Compute the orders of p modulo the group S given by a set. */ long @@ -767,8 +766,8 @@ } /* L is a list of subgroups, C is a coset and r a rel. order.*/ -static -GEN liftlistsubgroups(GEN L, GEN C, long r) +static GEN +liftlistsubgroups(GEN L, GEN C, long r) { pari_sp ltop=avma; GEN p4; @@ -802,7 +801,8 @@ * Return all the subgroups K of G such that * S= K mod H and K inter H={1}. */ -static GEN liftsubgroup(GEN C, GEN H, GEN S) +static GEN +liftsubgroup(GEN C, GEN H, GEN S) { pari_sp ltop=avma; GEN V = trivialsubgroups(); Index: src/headers/paridecl.h =================================================================== RCS file: /home/cvs/pari/src/headers/paridecl.h,v retrieving revision 1.305 diff -u -r1.305 paridecl.h --- src/headers/paridecl.h 14 Jan 2004 20:58:13 -0000 1.305 +++ src/headers/paridecl.h 29 Jan 2004 15:46:50 -0000 @@ -1245,23 +1245,30 @@ 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); +void bitvec_set(GEN bitvec, long b); +GEN bitvec_shorten(GEN bitvec, long n); +long bitvec_test(GEN bitvec, long b); GEN cyclicgroup(GEN g, long s); GEN cyclicperm(long l, long d); GEN cyc_powtoperm(GEN cyc, long exp); +GEN dicyclicgroup(GEN g1, GEN g2, long s1, long s2); GEN group_abelianHNF(GEN G, GEN L); GEN group_abelianSNF(GEN G, GEN L); long group_domain(GEN G); GEN group_elts(GEN G, long n); GEN group_export(GEN G, long format); +long group_isA4S4(GEN G); long group_isabelian(GEN G); +GEN group_leftcoset(GEN G, GEN g); long group_order(GEN G); +long group_perm_normalize(GEN N, GEN g); GEN group_quotient(GEN G, GEN H); +GEN group_rightcoset(GEN G, GEN g); GEN group_subgroups(GEN G); GEN groupelts_center(GEN S); GEN groupelts_abelian_group(GEN S); +int perm_commute(GEN p, GEN q); GEN perm_cycles(GEN v); GEN perm_identity(long l); GEN perm_inv(GEN x); @@ -1269,18 +1276,25 @@ long perm_order(GEN perm); GEN perm_pow(GEN perm, long exp); GEN quotient_group(GEN C, GEN G); +GEN quotient_perm(GEN C, GEN p); GEN vecperm_orbits(GEN v, long n); GEN vecsmall_append(GEN V, long s); GEN vecsmall_col(GEN z); +long vecsmall_coincidence(GEN u, GEN v); +GEN vecsmall_concat(GEN u, GEN v); GEN vecsmall_const(long n, long c); GEN vecsmall_copy(GEN x); int vecsmall_lexcmp(GEN x, GEN y); long vecsmall_pack(GEN V, long base, long mod); int vecsmall_prefixcmp(GEN x, GEN y); GEN vecsmall_prepend(GEN V, long s); +GEN vecsmall_shorten(GEN v, long n); void vecsmall_sort(GEN V); GEN vecsmall_uniq(GEN V); GEN vecsmall_vec(GEN z); +GEN vecvecsmall_indexsort(GEN x); +GEN vecvecsmall_sort(GEN x); +long vecvecsmall_search(GEN x, GEN y, long flag); /* polarit1.c */