# Load the SF package with(SF); # computes s_\la s_\mu but with the restriction that no partition in # the result has length longer than length(\la) restrmult:=proc(la,mu) local sEX, sids, v; sEX:=tos(s[op(la)]*s[op(mu)]); sids:=select(x->evalb(nops(x)>nops(la)), select(x->evalb(op(0,x)=`s`),indets(sEX,`indexed`))); subs({seq(v=0,v=sids)},sEX); end: # The creation operator \widetilde{ B_\mu } which builds the # generalized Hall-Littlewood symmetric functions. # remark: theta(theta(s_\la,q,0),-1) = s_\la[(q-1)X] Bmutilde:=proc(mu,EX) local n, ga; tos(s[op(mu)]*EX+add(add(restrmult(mu,ga)*skew( theta(theta(s[op(ga)],q,0),-1),EX), ga=Par(n,nops(mu))), n=1..stdeg(EX))); end: # The generalized Hall-Littlewood functions $H_{(\mu^{(1)},..,\mu^{(k)})}[X;q]$ H:=proc(partlst) local out,i; out:=s[op(partlst[-1])]; for i from 2 to nops(partlst) do out:=Bmutilde(partlst[-i],out); od; out; end: # Example Bmutilde([2,1],s[1]); H([[3,2],[2,1],[1]]);