> < ^ From:

> ^ Subject:

<gap-forum@samson.math.rwth-aachen.de>

I'm writing some gap code to work with representations of simple Lie algebras.

Although I'm already very pleased with the performance, (the gap version is

more than 10 times faster than a Mathematica version!); I am finding that no

less than half of the time (according to "Profile") is spent looking up the

position of elements in lists -- using "Position" or "PositionProperty",... .

Now the next set of calculations involves even more of this type of operation.

So I would like any pointers on how to improve the efficiency of locating

elemets in list.

Here's are some sample calculations

gap> B4 := WeylModule( Sb(4) );

rec(NumberOfPositiveRoots := 16, HighestRoot := [ 2, 2, 2, 1 ], CoxeterNumber := 7, Rho := [ 4, 7, 9, 5 ], AdjointRep := [ 2, 0, 0, 0 ], SimpleDimensions := [ 8, 27, 48, 42 ], Killing := function ( vec1, vec2 ) ... end, Dimension := function ( rep ) ... end, Weights := function ( rep ) ... end )

I think the above part of the calculations is fairly efficient although

the "Weights" function can greatly benefit from efficiently locating

elements in lists.

gap> w1 := B4.Weights([1,0,0,0]);

[ rec(weights := [ 1, 0, 0, 0 ],multiplicity := 1 ), rec(weights := [ -1, 1, 0, 0 ],multiplicity := 1 ), rec(weights := [ 0, -1, 1, 0 ],multiplicity := 1 ), rec(weights := [ 0, 0, -1, 1 ],multiplicity := 1 ), rec(weights := [ 0, 0, 1, -1 ],multiplicity := 1 ), rec(weights := [ 0, 1, -1, 0 ],multiplicity := 1 ), rec(weights := [ 1, -1, 0, 0 ],multiplicity := 1 ), rec(weights := [ -1, 0, 0, 0 ],multiplicity := 1 ) ]

This is the type of structure that the next set of routines will be

dealing with. Omitting the details, such records are manipulated by

comparing the weight components and accordingly change the multiplicity

part. In some sense this is similar to polynomial operations or those

of vector spaces, so perhaps some of the existing routines that deal

with these two can be modified for what I'm doing.

Thanks for any suggestions.

Jacob Hirbawi

JcbHrb@CERF.net

> < [top]