Dan, Before giving any "sage advice" I need to know how bad the "real denominators" will get.
A special trick can be used if the denominators are limited to (x_i - x_j). 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. > 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.