# makes an alias to the domain of symmetric functions called 'S' S:=examples::SymmetricFunctions(Dom::ExpressionFieldWithDegreeOneElements([t,q]) ,vHL=t,vMcd=q); # the plethystic substitution P[X] -> P[(q-1)X] Vq:=EX->map(S::s(S::plethysm(EX,(q-1)*S::p([1]))),simplify); # kills Schur functions which are indexed by a partition with length >= k killtoohigh:=(EX,k)->_plus(S::s::monomial(op(u)) $ u in select(poly2list(S::s(EX)),(x,k)->is(nops(op(x,2))<=k),k)); # skew( $s_\la$, $s_\mu$ ) = $s_{\mu/\la}$ skew:=operators::makeBilinear(prog::bless( (part1,part2)->S::s([part2,part1]), S), Source1 = S::s, Source2 = S::s, ImageSet = S::s ); # this finds the degree of the symmetric function stdeg:=EX->S::s::degree(S::s(EX)); # The creation operator \widetilde{ B_\mu } which builds the # generalized Hall-Littlewood symmetric functions. Bmutilde:=proc(mu,EX) local n, ga; begin map(S::s(S::s(mu)*EX + _plus(_plus(killtoohigh(S::s(mu)*S::s(ga),nops(mu))* skew(Vq(S::s(ga)),EX) $ ga in combinat::partitions::list(n, MaxLength=nops(mu))) $ n = 1..stdeg(EX))), simplify); end_proc; # The generalized Hall-Littlewood functions $H_{(mu^{(1)}, mu^{(2)}, \cdots, \mu^{(k)})}[X;q]$ H:=proc(partlst) local out,i; begin out:=S::s(partlst[-1]); for i from 2 to nops(partlst) do out:=Bmutilde(partlst[-i], out); end_for; out; end_proc; # Example: Bmutilde([2,1], S::s([1])); H([[3,2],[2,1],[1]]);