2341
Comment:

2028

Deletions are marked like this.  Additions are marked like this. 
Line 2:  Line 2: 
== Q' Basis: == Timing data for arithmetic with HallLittlewood polynomials in the Q' basis. 

Line 5:  Line 3: 
=== Conversion to Schur basis ===  == P basis == 
Line 7:  Line 5: 
sage: Qp = HallLittlewood_qp(QQ) sage: S = SFASchur(QQ['t'].fraction_field()) sage: time b = S(Qp([2,2])) CPU times: user 0.05 s, sys: 0.00 s, total: 0.05 s Wall time: 0.05 sage: time b = S(Qp([3,2,1])) CPU times: user 0.16 s, sys: 0.00 s, total: 0.16 s Wall time: 0.15 sage: time b = S(Qp([3,3,2,1])) CPU times: user 0.87 s, sys: 0.03 s, total: 0.90 s Wall time: 0.89 sage: time b = S(Qp([2,2])) CPU times: user 0.02 s, sys: 0.00 s, total: 0.02 s Wall time: 0.02 sage: time b = S(Qp([3,2,1])) CPU times: user 0.02 s, sys: 0.00 s, total: 0.03 s Wall time: 0.03 sage: time b = S(Qp([3,3,2,1])) CPU times: user 0.07 s, sys: 0.00 s, total: 0.07 s Wall time: 0.07 sage: b s[3, 3, 2, 1] + t*s[3, 3, 3] + t*s[4, 2, 2, 1] + (t^2+t)*s[4, 3, 1, 1] + (t^3+2*t^2+t)*s[4, 3, 2] + (t^4+t^3+t^2)*s[4, 4, 1] + (t^3+t^2)*s[5, 2, 1, 1] + (t^4+t^3+t^2)*s[5, 2, 2] + (t^5+2*t^4+3*t^3+t^2)*s[5, 3, 1] + (t^6+t^5+t^4+t^3)*s[5, 4] + t^4*s[6, 1, 1, 1] + (t^6+2*t^5+2*t^4+t^3)*s[6, 2, 1] + (t^7+t^6+2*t^5+2*t^4)*s[6, 3] + (t^7+t^6+t^5)*s[7, 1, 1] + (t^8+t^7+2*t^6+t^5)*s[7, 2] + (t^9+t^8+t^7)*s[8, 1] + t^10*s[9] 
sage: HallLittlewoodP(QQ) HallLittlewood polynomials in the P basis over Fraction Field of Univariate Polynomial Ring in t over Rational Field sage: HallLittlewoodP(QQ, t=1) HallLittlewood polynomials in the P basis with t=1 over Rational Field sage: HLP = HallLittlewoodP(QQ) sage: s = SFASchur(HLP.base_ring()) sage: s(HLP([2,1])) (t^2t)*s[1, 1, 1] + s[2, 1] 
Line 31:  Line 15: 
=== Multiplication === Over ZZ: 
The HallLittlewood polynomials in the P basis at $t = 0$ are the Schur functions. {{{ sage: HLP = HallLittlewoodP(QQ,t=0) sage: s = SFASchur(HLP.base_ring()) sage: s(HLP([2,1])) == s([2,1]) True }}} The HallLittlewood polynomials in the P basis at $t = 1$ are the monomial symmetric functions. {{{ sage: HLP = HallLittlewoodP(QQ,t=1) sage: m = SFAMonomial(HLP.base_ring()) sage: m(HLP([2,2,1])) == m([2,2,1]) True }}} == Q basis == The Q basis is dual to the P basis with respect to the HallLittlewood scalar product $<,>_t$. {{{ sage: HallLittlewoodQ(QQ) HallLittlewood polynomials in the Q basis over Fraction Field of Univariate Polynomial Ring in t over Rational Field sage: HallLittlewoodQ(QQ, t=1) HallLittlewood polynomials in the Q basis with t=1 over Rational Field }}} 
Line 35:  Line 41: 
sage: Qp = HallLittlewood_qp(ZZ) sage: time c = Qp([2,2])^2 CPU times: user 0.54 s, sys: 0.01 s, total: 0.55 s Wall time: 0.55 sage: time c = Qp([3,2,1])^2 CPU times: user 11.52 s, sys: 0.24 s, total: 11.76 s Wall time: 11.78 sage: time c = Qp([2,2])^2 CPU times: user 0.21 s, sys: 0.01 s, total: 0.22 s Wall time: 0.22 sage: time c = Qp([3,2,1])^2 CPU times: user 1.16 s, sys: 0.02 s, total: 1.18 s Wall time: 1.18 
sage: HLP = HallLittlewoodP(QQ) sage: HLQ = HallLittlewoodQ(QQ) sage: HLP([2,1]).scalar_t(HLQ([2,1])) 1 sage: HLP([2,1]).scalar_t(HLQ([1,1,1])) 0 sage: HLP([2,1]).scalar_t(HLQ([3])) 0 
Line 49:  Line 50: 
Over QQ:  == Qp basis == The Qp basis is dual to the P basis with respect to the standard Hall scalar product. {{{ sage: HallLittlewoodQp(QQ) HallLittlewood polynomials in the Qp basis over Fraction Field of Univariate Polynomial Ring in t over Rational Field sage: HallLittlewoodQp(QQ, t=1) HallLittlewood polynomials in the Qp basis with t=1 over Rational Field }}} 
Line 52:  Line 61: 
sage: Qp = HallLittlewood_qp(QQ) sage: time c = Qp([2,2])^2 CPU times: user 0.77 s, sys: 0.01 s, total: 0.78 s Wall time: 0.78 sage: time c = Qp([3,2,1])^2 CPU times: user 14.00 s, sys: 0.24 s, total: 14.24 s Wall time: 14.26 sage: time c = Qp([2,2])^2 CPU times: user 0.55 s, sys: 0.01 s, total: 0.56 s Wall time: 0.56 sage: time c = Qp([3,2,1])^2 CPU times: user 3.57 s, sys: 0.08 s, total: 3.65 s Wall time: 3.66 
sage: HLP = HallLittlewoodP(QQ) sage: HLQp = HallLittlewoodQp(QQ) sage: HLP([2,1]).scalar(HLQp([2,1])) 1 sage: HLP([2,1]).scalar(HLQp([1,1,1])) 0 sage: HLP([2,1]).scalar(HLQp([3])) 0 
Line 66:  Line 70: 
The majority of time spent in the second one is due to coercion from ZZ['t'] to QQ('t') (which should really be much faster). 
HallLittlewood Polynomials
P basis
sage: HallLittlewoodP(QQ) HallLittlewood polynomials in the P basis over Fraction Field of Univariate Polynomial Ring in t over Rational Field sage: HallLittlewoodP(QQ, t=1) HallLittlewood polynomials in the P basis with t=1 over Rational Field sage: HLP = HallLittlewoodP(QQ) sage: s = SFASchur(HLP.base_ring()) sage: s(HLP([2,1])) (t^2t)*s[1, 1, 1] + s[2, 1]
The HallLittlewood polynomials in the P basis at t = 0 are the Schur functions.
sage: HLP = HallLittlewoodP(QQ,t=0) sage: s = SFASchur(HLP.base_ring()) sage: s(HLP([2,1])) == s([2,1]) True
The HallLittlewood polynomials in the P basis at t = 1 are the monomial symmetric functions.
sage: HLP = HallLittlewoodP(QQ,t=1) sage: m = SFAMonomial(HLP.base_ring()) sage: m(HLP([2,2,1])) == m([2,2,1]) True
Q basis
The Q basis is dual to the P basis with respect to the HallLittlewood scalar product <,>_t.
sage: HallLittlewoodQ(QQ) HallLittlewood polynomials in the Q basis over Fraction Field of Univariate Polynomial Ring in t over Rational Field sage: HallLittlewoodQ(QQ, t=1) HallLittlewood polynomials in the Q basis with t=1 over Rational Field
sage: HLP = HallLittlewoodP(QQ) sage: HLQ = HallLittlewoodQ(QQ) sage: HLP([2,1]).scalar_t(HLQ([2,1])) 1 sage: HLP([2,1]).scalar_t(HLQ([1,1,1])) 0 sage: HLP([2,1]).scalar_t(HLQ([3])) 0
Qp basis
The Qp basis is dual to the P basis with respect to the standard Hall scalar product.
sage: HallLittlewoodQp(QQ) HallLittlewood polynomials in the Qp basis over Fraction Field of Univariate Polynomial Ring in t over Rational Field sage: HallLittlewoodQp(QQ, t=1) HallLittlewood polynomials in the Qp basis with t=1 over Rational Field
sage: HLP = HallLittlewoodP(QQ) sage: HLQp = HallLittlewoodQp(QQ) sage: HLP([2,1]).scalar(HLQp([2,1])) 1 sage: HLP([2,1]).scalar(HLQp([1,1,1])) 0 sage: HLP([2,1]).scalar(HLQp([3])) 0