# # descent_gf - descent generating function for a (finite) Coxeter group # # Calling sequence: # descent_gf(R); # descent_gf(R,t); descent_gf(R,T); # descent_gf(R,t,q); descent_gf(R,T,q); # # Parameters: # R = a root system data structure # t,q = variables or expressions # T = a list of n variables or expressions, where n=rank(R). # # Let s_1,s_2,... denote generators for the Coxeter group W(R). The (right) # descent set of an element w in W(R) is defined to be # D(w)={i: length(w*s_i)0 do f:=normal(lgf/coxeter['length_gf'](linalg['submatrix'](M,J,J),q)); res:=res+convert(subsop(seq(i=1-vars[i],i=J),vars),`*`)*f; J:=subsop(1=(seq(i,i=1..J[1]-1)),J) od; collect(res,indets(vars),'distributed'); end;