Bill Allombert on Wed, 23 Apr 2003 19:22:46 +0200


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: group identification patch


On Wed, Apr 23, 2003 at 11:21:14AM -0400, Igor Schein wrote:
> On Wed, Apr 23, 2003 at 02:20:17PM +0200, Bill Allombert wrote:
> > On Tue, Apr 15, 2003 at 11:42:22AM -0400, Igor Schein wrote:
> > > On Wed, Apr 02, 2003 at 03:05:49PM +0200, Bill Allombert wrote:
> > > > Hello PARI-dev,
> > > > 
> > > > Here a (large) patch that add a feature similar to GAP IdGroup
> > > > function for weakly super-solvable group.
> > > 
> > > It worked fine for me in preliminary testing, I'd like to see it
> > > committed ASAP.  It's a few percentage points faster than the kludge
> > > I've devised, and is definitely less cumbersome.
> > 
> > Done. The GP function is galoisidentify and the code is in 
> > src/modules/groupid.c
> > 
> > Cheers,
> > Bill.
> 
> Does it need to be install()'ed?

No, it is a GP function (though the PARI function has the same name).
( group_index has been renamed to group_ident).

I have just added a function returning the index of the group in the GAP4
transitive group library. This library is limited to degree <=30.  This
will allows to compute the equivalent of polgalois() for Galois groups,
but only when the polynomial is Galois, of course.

The function is galois_index_trans() in groupid.c.

To use it:
default(new_galois_format,1);
install("group_ident_trans","lGDG");
galoistrans(G) = [poldegree(G.pol),(-1)^!issquare(poldisc(G.pol)),group_ident_trans([G.gen,G.orders])]

Now 

? P=x^8 - 12*x^6 + 23*x^4 - 12*x^2 + 1;
? polgalois(P)
%19 = [8, 1, 3]
? galoistrans(galoisinit(P))
%20 = [8, 1, 3]

Cheers,
Bill.