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 */