I have been digging into Macdonald polynomials all this last week and every time I think I have a way of cleaning up the problem, I scratch the surface and another problem arises.
I'd like some advice about what should be going on behind the scenes. I know what behavior we would like to have. Here is some strange behavior (bugs) with what we have now: Example 1 sage: reset() sage: R = FractionField(QQ['q','t']) sage: (q,t) = R.gens() sage: Ht = MacdonaldPolynomialsHt(R) sage: s = SFASchur(R) sage: s(Ht[3,1]) # I don't think this is correct behavior TypeError: not a constant polynomial sage: s = SFASchur(Ht.base_ring()) # ah, thats better q^3*t*s[1, 1, 1, 1] + (q^3+q^2*t+q*t)*s[2, 1, 1] + (q^2+q*t)*s[2, 2] + (q^2+q+t)*s[3, 1] + s[4] sage: s.base_ring() Fraction Field of Multivariate Polynomial Ring in q, t over Fraction Field of Multivariate Polynomial Ring in q, t over Rational Field Example 2 - sage: reset() sage: R = FractionField(QQ['q','t']) sage: (q,t) = R.gens() sage: Ht1 = MacdonaldPolynomialsHt(R) sage: Ht2 = MacdonaldPolynomialsHt(R,t=1) sage: s = SFASchur(Ht1.base_ring()) sage: s(Ht1[3,1]) # I guess this answer is right q^3*t*s[1, 1, 1, 1] + (q^3+q^2*t+q*t)*s[2, 1, 1] + (q^2+q*t)*s[2, 2] + (q^2+q+t)*s[3, 1] + s[4] sage: s(Ht2[3,1]) #but this one is clearly wrong q^3*t*s[1, 1, 1, 1] + (q^3+q^2*t+q*t)*s[2, 1, 1] + (q^2+q*t)*s[2, 2] + (q^2+q+t)*s[3, 1] + s[4] sage: s.base_ring() Fraction Field of Multivariate Polynomial Ring in q, t over Fraction Field of Multivariate Polynomial Ring in q, t over Rational Field sage: reset() sage: R = FractionField(QQ['q','t']) sage: Ht = MacdonaldPolynomialsHt(R,q=1) sage: s = SFASchur(Ht.base_ring()) sage: Ht Macdonald polynomials in the Ht basis with q=1 over Fraction Field of Univariate Polynomial Ring in t over Fraction Field of Multivariate Polynomial Ring in q, t over Rational Field sage: s(Ht[3,1]) # and the same problem exists with q=1 q^3*t*s[1, 1, 1, 1] + (q^3+q^2*t+q*t)*s[2, 1, 1] + (q^2+q*t)*s[2, 2] + (q^2+q+t)*s[3, 1] + s[4] # So what seems to make these work better is that we assign a value to both q and t at the same time sage: R = FractionField(QQ['q','t']) sage: (q,t) = R.gens() sage: Ht = MacdonaldPolynomialsHt(R,q=1,t=t) sage: s = SFASchur(Ht.base_ring()) sage: s(Ht[3,1]) t*s[1, 1, 1, 1] + (2*t+1)*s[2, 1, 1] + (t+1)*s[2, 2] + (t+2)*s[3, 1] + s[4] So what is the right way of fixing this? Should I calculate the qt-Kostka polynomials for arbitrary q and t and specialize later? Should I make sure that the base_ring() behaves the way it does when set q=x, t=y? I have a patch I am working on but it is disabled. -Mike -- You received this message because you are subscribed to the Google Groups "sage-combinat-devel" group. To view this discussion on the web visit https://groups.google.com/d/msg/sage-combinat-devel/-/R2gCbe4gC0oJ. To post to this group, send email to sage-combinat-devel@googlegroups.com. To unsubscribe from this group, send email to sage-combinat-devel+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en.