Hi Mark, Travis and Darij,

@ Travis: Thanks for catching the SR bug and for pointing me to the fact 
pfaffian is now implemented in sage. Last time I checked (not so recently), 
it wasn't:)

@ Mark: As I said, the denominators that *are not* power series are 
vandermondes or C Weyl denominators. For vandermondes, I suppose I could do 
the polynomial division in something (I don't know how to do it in sage and 
obtain a polynomial per se, but I can certainly do it in mathematica. In 
sage, it shouldn't be too difficult either) and then take the result, which 
will be symmetric, and use that.

As a side note, uglier denominators might involve infinite q symbols like 
\prod_{i<j} (t x_i x_j; q). This would be the Macdonald level. If infinite 
q symbols are implemented in sage in a way compatible with symmetric 
functions (I reason this might be hard), please let me know. Otherwise, I 
suppose I can expand as a power series in q, which is a headache (given the 
amount of infinite q symbols involved).

As for the ring, I want the very base ring/field to be R = Q(t) (or 
Q(q,t)), as you suggested. But if you build S = R['x1,x2,y1,y2'], take a 
poly f in here, lift it to symmetric functions (in the same 4 variables 
over R) then how do you tell sage you want the coefficient of only the 
schur function in the x's? (which again should be a nice factor times a 
schur function in the y's). 

@Darij: I didn't know about inject_variables(), but it looks like a neat 
shorthand trick. Thanks.

db

On Tuesday, March 4, 2014 8:29:27 PM UTC+1, Dan Betea wrote:
>
>
>
> On Tuesday, March 4, 2014 5:16:14 PM UTC+1, Mark Shimozono wrote:
>>
>> 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). 
>>
>
> 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.
>  
>
>>
>> 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-comb...@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