It is also possible to use the infix operator SPACE to multiply two lists in the case there is no option defined.
i1 : L = lieAlgebra({a,b}, genWeights => {{1,1},{1,2}},genSigns=>{1,0})/{a a a b} o1 = L o1 : LieAlgebra |
i2 : b2 = basisLie 2 o2 = {(a a), (b a)} o2 : List |
i3 : b3 = basisLie 3 o3 = {(b a a), (b b a)} o3 : List |
i4 : b2 b3 o4 = {0, - (a b b a a), - (a b b a a), - (1/2)(b a b b a) + (1/4)(b b b a ------------------------------------------------------------------------ a)} o4 : List |
i5 : indexFormLie oo 1 1 o5 = {0, -mb , -mb , -mb - -mb } {5, 0} {5, 0} 4 {5, 1} 2 {5, 2} o5 : List |
There is an option multOnly which only multiplies those pairs (x,y) for which multOnly(x,y) is true.
i6 : apply(b2,weightLie) o6 = {{2, 2, 0}, {2, 3, 0}} o6 : List |
i7 : apply(b3,weightLie) o7 = {{3, 4, 0}, {3, 5, 0}} o7 : List |
i8 : multListLie(b2,b3,multOnly=>(x,y)-> ((weightLie x)_1 === 3 and (weightLie y)_1 === 5)) o8 = { - (1/2)(b a b b a) + (1/4)(b b b a a)} o8 : List |
i9 : indexFormLie oo 1 1 o9 = {-mb - -mb } 4 {5, 1} 2 {5, 2} o9 : List |