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