Hi, there are many possible strategy that can be employed. Right now I can think of two: 1> represent your Coxeter group as a permutation group acting on the roots r1, ...., rN of your Coxeter group. Call CoxPermGrp this representation. Then given a vector v, associate to it the vector of scalar products ScalV=(r1.v, r2.v, ......, rN.v) Afterwards, you can use Stabilizer(CoxPermGrp, ScalV, Permuted); The problem is that the permuted action is too slow, because it does not use backtracking like the OnSets action. A way around this performance problem is to use
PermutedStabilizer:=function(TheGRP, eVect) local TheStab, Hset, eVal, ListIdx; TheStab:=ShallowCopy(TheGRP); Hset:=Set(eVect); for eVal in Hset do ListIdx:=Filtered([1..Length(eVect)], x->eVect[x]=eVal); TheStab:=Stabilizer(TheStab, ListIdx, OnSets); od; return TheStab; end; And if you need equivalence as well, then use PermutedEquivalence:=function(TheGRP, eVect1, eVect2) local TheStab, eVect1img, n, eSet1, eSet2, g, eVal, ListIdx1, ListIdx2, gT; eVect1img:=ShallowCopy(eVect1); n:=Length(eVect1); eSet1:=Set(eVect1); eSet2:=Set(eVect2); if eSet1<>eSet2 then return fail; fi; g:=(); TheStab:=ShallowCopy(TheGRP); for eVal in eSet1 do ListIdx1:=Filtered([1..n], x->eVect1img[x]=eVal); ListIdx2:=Filtered([1..n], x->eVect2[x]=eVal); gT:=RepresentativeAction(TheStab, ListIdx1, ListIdx2, OnSets); if gT=fail then return fail; fi; eVect1img:=Permuted(eVect1img, gT); g:=g*gT; if eVect1img=eVect2 then return g; fi; TheStab:=Stabilizer(TheStab, ListIdx2, OnSets); od; end; 2> If you really need to treat very large Coxeter group, then the way to go is by the abstract theory of Coxeter groups. For that you need to map your element to the fundamental domain (a simplex if the Coxeter group is irreducible). Then, on the fundamental domain, enumerate the facets to which it is incident. Those facets give you the generators of the stabilizer. On Thu, May 15, 2008 at 05:09:39PM +0100, Caudrelier, Vincent wrote: >> All, >> >> >> >> I'm trying to compute the stabilizer of a given vector in the underlying >> essential vector space of a finite Coxeter group seen as a reflection >> group acting on this vector space. >> >> >> >> I've tried with F4 by defining it as a matrix group then typing >> something like "Stabilizer(F4,[[1],[0],[0],[0]]);" but I suspect this is >> not doing what I want but rather it gives the stability group of the >> >> group element corresponding to the reflection associated to e_1 and not >> the stability group of e_1 itself. >> >> >> >> I hope my question makes enough sense and that someone can help me. >> >> >> >> Many thanks >> >> >> >> ------------------------ >> Dr Vincent CAUDRELIER >> Lecturer in Mathematics >> ------------------------ >> City University >> Centre for Mathematical Science >> Northampton Square >> LONDON EC1V 0HB >> UK >> ------------------------ >> tel: +44 (0) 2070 408498 >> >> >> >> _______________________________________________ >> Forum mailing list >> Forum@mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum _______________________________________________ Forum mailing list Forum@mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum