Dan,

> The denominators are mostly vandermondes. However, there is something in 
> type C (symplectic) which will have a vandermonde in the x's and a Weyl 
> type C denominator in the y's. But that's probably a subject for a 
> different email altogether, because multivariate Laurent power series are 
> not implemented in sage as far as I can tell.

There's no problem as long as the ultimate answer has no
denominators in x and y.
You make your series using an extra variable z to control the total degree,
so that the coefficients will be polynomial in t, x_i, y_j and suitably 
antisymmetric
in x's and y's, take the coefficient of z that you want to work with,
divide by the Vandermonde-like denominators in a big polynomial ring with all 
variables.
The answer is now a polynomial symmetric in x and y.

The following can get you started partially.

--Mark

R = QQ['t,x1,x2,y1,y2']
R.inject_variables()
P = PowerSeriesRing(R, 'z')
P.inject_variables()

Rt = QQ['t']
Ry = Rt['y1,y2']
Rx = Ry['x1,x2']

Symyt = SymmetricFunctions(Ry)
sx = Symyt.s()
Symt = SymmetricFunctions(Rt)
st = Symt.s()
st2 = st.tensor(st)

def to_tensor(p):
    # convert from big polynomial ring to iterated polynomial ring
    pc = 
Rx(p.subs({R.gen(0):Rt.gen(0),R.gen(1):Rx.gen(0),R.gen(2):Rx.gen(1),R.gen(3):Ry.gen(0),R.gen(4):Ry.gen(1)}))
    # convert to symmetric function in x
    px = sx.from_polynomial(pc)
    # and then convert the coefficients to symmetric functions in y
    return st2.sum([tensor([st.monomial(mu), st.from_polynomial(px[mu]) ]) for 
mu in px.support()])

N = 5

f = 
(1-z*x1*y1*t)**(-1)*(1-z*x2*y2*t)**(-1)-(1-z*x1*y2*t)**(-1)*(1-z*x2*y1*t)**(-1)

denom = (x1-x2)*(y1-y2)

ans = st2.sum([to_tensor(R(f[i]/denom)) for i in range(N)])
print ans




 
> >
> > Your toy example involves (1 - t x_i y_j)^{-1} 
> > which is no problem at all using geometric series in an extra variable. 
> >
> > --Mark 
> >
> > > Sorry for asking a somewhat related question to one I asked a while ago, 
> > > but I find myself in the situation of trying to expand a certain 
> > > multivariate symmetric series (polynomial after cutoff) in certain 
> > classes 
> > > of symmetric functions and can't seem to get it working. 
> > > 
> > > The following is true: 
> > > 
> > > \sum_{\lambda} \product_{i=1...n} (1-t^{\lambda_i + n - i + 1}) 
> > s_{\lambda} 
> > > (x_1,...,x_n) s_{\lambda} (y_1,...,y_n) = \\ 
> > > 
> > > \frac {1} {\prod_{i < j} (x_i - x_j) (y_i - y_j)} \det_{i,j} ( \frac 
> > {1-t} 
> > > {(1-t x_i y_j) (1-x_i y_j)} ) 
> > > 
> > > Proof is simple, but generalizations to Hall Littlewood or Macdonald 
> > > polynomials (with non trivial proofs) exist due to Warnaar and 
> > > Noumi-Kirillov. 
> > > 
> > > Question: Suppose I don't know the identity but suspect something along 
> > > those lines is true. How do I expand the right hand side (a quotient of 
> > a 
> > > determinant by the 2 vandermondes) in Schur functions (in x's say) and 
> > > recover the coefficients (schur functions in y's times some products of 
> > 1 - 
> > > q^? ) 
> > > 
> > > I tried the following naive idea (suggested some time ago in a slightly 
> > > different context) and failed. Basically, using power series rings. 
> > > 
> > > n=2 # number of variables 
> > > # setup of the rings 
> > > R1.<t> = QQ[] 
> > > R1 = FractionField(R1) 
> > > dp = n+4 
> > > R = PowerSeriesRing(R1, n, 'z', default_prec = dp) 
> > > S = PowerSeriesRing(R, n, 'x', default_prec=dp) 
> > > Sym = SymmetricFunctions(R) 
> > > 
> > > # set up the determinant divided by the vandermondes 
> > > M = matrix(SR,2, [(1-R1.gen(0)) / ( (1 - 
> > > R1.gen(0)*S.gen(0)*S.base_ring().gen(0)) * (1 - 
> > > S.gen(0)*S.base_ring().gen(0)) ), (1-R1.gen(0)) / ( (1 - 
> > > R1.gen(0)*S.gen(0)*S.base_ring().gen(1)) * (1 - 
> > > S.gen(0)*S.base_ring().gen(1)) ), (1-R1.gen(0)) / ( (1 - 
> > > R1.gen(0)*S.gen(1)*S.base_ring().gen(0)) * (1 - 
> > > S.gen(1)*S.base_ring().gen(0)) ), (1-R1.gen(0)) / ( (1 - 
> > > R1.gen(0)*S.gen(1)*S.base_ring().gen(1)) * (1 - 
> > > S.gen(1)*S.base_ring().gen(1)) )]) 
> > > 
> > > h = M.det() 
> > > h *= prod( 1/(S.gen(i) - S.gen(j)) for i in range(n) for j in 
> > range(i+1,n)) 
> > > h *= prod( 1/(S.base_ring().gen(i) - S.base_ring().gen(j)) for i in 
> > > range(n) for j in range(i+1,n)) 
> > > 
> > > Schur = Sym.schur() 
> > > 
> > > #do the expansion 
> > > Schur_det_expansion = Schur(Sym.from_polynomial(h.polynomial())) 
> > > 
> > > # for a small partition lambda print the coefficient 
> > > la = Partition([2,1]) 
> > > print Schur_det_expansion.coefficient(la) 
> > > 
> > > The errors I get are varied. If I do the determinant first (the case 
> > > above), there's an error saying symbolic ring is not the same as the 
> > power 
> > > series ring (I suppose the determinant returns an element of symbolic 
> > ring 
> > > and sees a power series inside). If I divide by the vandermondes first, 
> > > well those are not power series so the error claims I can only divide by 
> > a 
> > > unit (and x_i - x_j ain't a unit). But the two errors of course cancel 
> > each 
> > > other in theory (the vandermondes divide the determinant) and the end 
> > > result makes sense as exemplified by the theorem I stated. 
> > > 
> > > I was deliberately stating this problem in the simplest case to avoid 
> > > cumbersome notations, but the next step is to go to Hall-Littlewood and 
> > > beyond. 
> > > 
> > > As a side question, are there routines that compute Pfaffians in sage? 
> > > 
> > > Can anybody help? Please?:) 
> > > 
> > > Thanks, 
> > > 
> > > Dan 
> > > 
> > > -- 
> > > You received this message because you are subscribed to the Google 
> > Groups "sage-combinat-devel" group. 
> > > To unsubscribe from this group and stop receiving emails from it, send 
> > an email to sage-combinat-devel+unsubscr...@googlegroups.com <javascript:>. 
> >
> > > To post to this group, send email to 
> > > sage-comb...@googlegroups.com<javascript:>. 
> >
> > > Visit this group at http://groups.google.com/group/sage-combinat-devel. 
> > > For more options, visit https://groups.google.com/groups/opt_out. 
> >   
> >   
> >   
> >   
> >
> >
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "sage-combinat-devel" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to sage-combinat-devel+unsubscr...@googlegroups.com.
> To post to this group, send email to sage-combinat-devel@googlegroups.com.
> Visit this group at http://groups.google.com/group/sage-combinat-devel.
> For more options, visit https://groups.google.com/groups/opt_out.
 
 
 
 

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to