Applies the Schur functor associated to lambda to the free module E. For a detailed definition of the Schur module see p.106 of Fulton "Young Tableaux".
The resulting M comes with cached data M.cache.Schur = {f, finv, AT, ST} where
{"f is a map from exterior_mu E to M;", "finv is a map from M to exterior_mu E;", "AT is a hash table of all tableaux, whose entries increase in every column;", "ST is a hash table of all standard tableaux (tableaux in AT, whose entries nondecrease in every row)." }
Tableaux are represented with objects of class Filling, which is a doble list whose entries are lists giving the fillings of the corresponding columns.
i1 : M=QQ^3; |
i2 : scan(4, i-> << i+1 << "-th symmetric power of M = " << schurModule({i+1},M) << endl) 3 1-th symmetric power of M = QQ 6 2-th symmetric power of M = QQ 10 3-th symmetric power of M = QQ 15 4-th symmetric power of M = QQ |
i3 : S = schurModule({3,2,1}, M); |
i4 : v = sum(numgens S, i-> (i+1)*S_i) -- an element of S represented by a vector o4 = | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 | | 8 | 8 o4 : QQ |
i5 : printSchurModuleElement(v, S); +-+-+-+ +-+-+-+ +-+-+-+ +-+-+-+ +-+-+-+ +-+-+-+ +-+-+-+ +-+-+-+ 1*|0|0|0| 2*|0|0|1| 3*|0|0|2| 4*|0|0|0| 5*|0|0|1| 6*|0|0|2| 7*|0|1|1| 8*|0|1|2| |1|1| | |1|1| | |1|1| | |1|2| | |1|2| | |1|2| | |1|2| | |1|2| | |2| | | |2| | | |2| | | |2| | | |2| | | |2| | | |2| | | |2| | | +-+-+-+ +-+-+-+ +-+-+-+ +-+-+-+ +-+-+-+ +-+-+-+ +-+-+-+ +-+-+-+ |
The partition lambda should be a valid nonempty partition.
The object schurModule is a method function.