[GAP Support] Re: [GAP Forum] Using Wedderga to compute Primitive Central Idempotents

Dima Pasechnik dima at ntu.edu.sg
Mon Oct 19 09:01:39 BST 2009


Dear Ravi,

What you can certainly do is to use CoefficientsAndMagmaElements
to get the list of matrices and coefficients, and then to sum over
this list.
E.g. (after running your code)
gap> id2:=CoefficientsAndMagmaElements(idempots[5]);;
gap> coefs:=List([1..Length(id2)/2],i->id2[2*i]);;
gap> mats:=List([1..Length(id2)/2],i->id2[2*i-1]);;
gap> Sum(List([1..Length(coefs)],i->coefs[i]*mats[i]));
[ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ]

(actually, all the other 4 idempotents are 0 on this representation)

I gather that this way will not be very efficient, if you work with
groups of order more than few hundred, as constructing the group algebra
will get too expensive. So computing with conjugacy classes directly,
as I proposed, might be a better way to go.

Best,
Dmitrii


On Mon, Oct 19, 2009 at 02:33:50PM +0800, Ravi Kulkarni wrote:
> Dear Dmitrii,
>   You will remember that I was interested in using Wedderga to
> decompose representations. I have basically done what I wanted to do,
> but I have an elementary question about GAP:
>   When I call
>
> idempots := PrimitiveCentralIdempotentsByCharacterTable(GR);
>
>   I get back a list of the idempotents. I have specified the group as
> a matrix group, so idempots contains a list of objects:
>
> gap> TypeObj(idempots[1]);
> NewType( NewFamily( "FreeMagmaRingObjFamily"...
>
>   However I want to cast each of the idempots as a _matrix_ to
> complete my calculations. How do I do that?
>   What I have done right now is to copy the idempotents, define them
> as a matrix and everything works..., but that's obviously a dumb way
> to do it...
>   I have pasted the few lines of code below.
>
>   Regards,
>     Ravi Kulkarni
>
> RequirePackage("wedderga");
>
> m1 := [ [0,1,0],[-1,0,0],[0,0,1] ];;
> m2 := [ [0,1,0],[0,0,1],[1,0,0] ];;
> O := Group(m1,m2);; # one of the two 3-dim irrep of S_4
>
> R := PolynomialRing(Rationals,3);;
> inds := IndeterminatesOfPolynomialRing(R);;
> x := inds[1];; y := inds[2];; z := inds[3];;
>
> # define the symmetric powers
> Sym1 := [x,y,z];
>
> GR := GroupRing(Rationals, O);
> idempots := PrimitiveCentralIdempotentsByCharacterTable(GR);
>
> # calculate idempots[1]*Sym1;
>
> ------------------------------------------------------------------------------------------
> ------------------------------------------------------------------------------------------
>
> On Mon, Sep 28, 2009 at 4:48 PM, Ravi Kulkarni <ravi.kulk at gmail.com> wrote:
> > Dear Dmitrii,
> >  That was just what I was looking for. Everything seems to be working now...
> >
> >  Many thanks and regards,
> >    Ravi Kulkarni
> > -------------------------------------
> >
> > On Mon, Sep 28, 2009 at 12:30 AM, Dima Pasechnik <dima at ntu.edu.sg> wrote:
> >> Dear Ravi,
> >>
> >> certainly, there are effcient GAP functions to compute conjugacy
> >> classes. Look up GAP documentation for ConjugacyClasses and
> >> ConjugacyClass.
> >>
> >> Hope this helps,
> >> Dmitrii
> >>
> >> On Mon, Sep 28, 2009 at 02:53:55PM +0800, Ravi Kulkarni wrote:
> >>> Dear Dima,
> >>>   Thank you for the mail. Yes, I know the parts of Serre's book that
> >>> you mentioned.
> >>>   If I can have one question answered, I think I can do my computations:
> >>>   I know how to generate all the matrices of a representation (which
> >>> need not be one of the irreducible representations of the groups). My
> >>> problem is then deciding which conjugacy class each one of them
> >>> belongs to. You will see that this is essential because I need to
> >>> multiply each element by the character of the class it belongs to.
> >>>   I cannot find a GAP function that does this. Before writing my own
> >>> code to solve the conjugacy class membership problem, I thought I
> >>> should ask if this is a standard algorithm.
> >>>   With regards and thanks,
> >>>
> >>>     Ravi
> >>> -----------------------------------------------------
> >>>
> >>> On Sun, Sep 27, 2009 at 10:08 PM, Dima Pasechnik <dima at ntu.edu.sg> wrote:
> >>> > Dear Ravi,
> >>> >
> >>> > a standard method to decompose a representation of a finite group G
> >>> > into homogeneous components C_\chi
> >>> > (each component will be a sum of a copies of the same irreducible
> >>> > representation with the character \chi)
> >>> > is by using the conjugacy class sums, s_g=sum_{y in g^G}y, for
> >>> > G^g={xgx^{-1}|x in G}.
> >>> > Projector to C_\chi will be given as a linear combination of s_g's with
> >>> > coefficients depending on the values of \chi on y in g^G.
> >>> > You can find the corresponding formulae in e.g. the Serre's book
> >>> > "Linear representations of finite groups".
> >>> > You will need explicit matrices of the representation
> >>> > you want to decompose.
> >>> > For small groups/representations this works quite well. I have written
> >>> > some GAP code that does this for permutation representations (there you
> >>> > can be a bit more efficient when computing s_g).
> >>> >
> >>> > Just in case,
> >>> > Dmitrii
> >>> >
> >>> >>
> >>> >> On 22 Sep 2009, at 02:15, Ravi Kulkarni wrote:
> >>> >>
> >>> >> > Dear GAP Forum,
> >>> >> >  I am interested in decomposing the symmetric powers of a
> >>> >> > representation. To give an example: take the group G :=
> >>> >> > AllSmallGroups(6)[1] acting on V := C^3 (with coordinates x,y,z) as
> >>> >> > the sum of its 2 dim irrep (X.3) and trivial rep (X.1).
> >>> >> > When I look at Sym^2(V), I can see using characters that Sym^2(V)
> >>> >> > decomposes into two 2-dim reps and 2 1-dim reps. A little manipulation
> >>> >> > by hand shows that the bases are {x^2-y^2, xy}, {xz, yz}, x^2+y^2 and
> >>> >> > z^2. I thought I should be able to do the same with primitive central
> >>> >> > idempotents using the Wedderga package. But I find the output
> >>> >> > confusing:
> >>> >> >
> >>> >> > GR := GroupRing(Rationals, G);
> >>> >> > gap> idempots := PrimitiveCentralIdempotentsByCharacterTable(GR);
> >>> >> > [ (1/6)*<identity> of ...+(1/6)*f1+(1/6)*f2+(1/6)*f1*f2+(1/6)*f2^2+(1/
> >>> >> >    6)*f1*f2^2, (1/6)*<identity> of ...+(-1/6)*f1+(1/6)*f2+
> >>> >> > (-1/6)*f1*f2+(1/
> >>> >> >    6)*f2^2+(-1/6)*f1*f2^2, (2/3)*<identity> of ...+(-1/3)*f2+
> >>> >> > (-1/3)*f2^2 ]
> >>> >> >
> >>> >> > gap> idempots[1];
> >>> >> > (1/6)*<identity> of ...
> >>> >> > +(1/6)*f1+(1/6)*f2+(1/6)*f1*f2+(1/6)*f2^2+(1/6)*f1*f2^2
> >>> >> >
> >>> >> > gap> Length(idempots);
> >>> >> > 3
> >>> >> >
> >>> >> > How do I use this information to get a decomposition like the one I
> >>> >> > can obviously see above? Any help will be welcome...
> >>> >> >
> >>> >> > Ravi
> >>> >> >
> >>> >> > _______________________________________________
> >>> >> > Forum mailing list
> >>> >> > Forum at mail.gap-system.org
> >>> >> > http://mail.gap-system.org/mailman/listinfo/forum
> >>> >>
> >>> >>
> >>> >> --
> >>> >> Dr. Alexander Konovalov               School of Computer Science
> >>> >> & Centre for Interdisciplinary Research in Computational Algebra
> >>> >> University of St Andrews                 Tel +44/0 (1334) 461633
> >>> >> http://www.cs.st-andrews.ac.uk/~alexk    Fax +44/0 (1334) 463278
> >>> >> The University of St Andrews is a charity registered in
> >>> >> Scotland:No.SC013532
> >>> >>
> >>> >>
> >>> >>
> >>> >>
> >>> >>
> >>> >>
> >>> >>
> >>> >>
> >>> >> _______________________________________________
> >>> >> Support mailing list
> >>> >> Support at gap-system.org
> >>> >> http://mail.gap-system.org/mailman/listinfo/support
> >>> >
> >>
> >

CONFIDENTIALITY: This email is intended solely for the person(s) named. The contents may be confidential and/or privileged. If you are not the intended recipient, please delete it, notify us, and do not copy or use it, nor disclose its contents. Thank you.

Towards A Sustainable Earth: Print Only When Necessary



More information about the Forum mailing list