2937
Comment:

3326

Deletions are marked like this.  Additions are marked like this. 
Line 2:  Line 2: 
This page contains preliminary results for doing computations with the HallLittlewood polynomials in the P, Q, and Q' bases. == P Basis: == == Q Basis: == 

Line 6:  Line 12: 
Conversion to the Schur basis uses symmetrica.hall_littlewood.  
Line 32:  Line 39: 
Multiplication in the Q' basis is performed by converting to the Schur basis, performing the multiplication there, and then converting back to the Q' basis. 
HallLittlewood Polynomials
This page contains preliminary results for doing computations with the HallLittlewood polynomials in the P, Q, and Q' bases.
P Basis:
Q Basis:
Q' Basis:
Timing data for arithmetic with HallLittlewood polynomials in the Q' basis.
Conversion to Schur basis
Conversion to the Schur basis uses symmetrica.hall_littlewood.
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]
Multiplication
Multiplication in the Q' basis is performed by converting to the Schur basis, performing the multiplication there, and then converting back to the Q' basis.
Over ZZ:
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
Over QQ:
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
The majority of time spent in the last computation is due to coercion from ZZ['t'] to QQ('t') (which should really be much faster).
Over RR:
sage: Qp = HallLittlewood_qp(RR) sage: time c = Qp([2,2])^2 CPU times: user 0.78 s, sys: 0.01 s, total: 0.78 s Wall time: 0.99 sage: time c = Qp([3,2,1])^2 CPU times: user 13.28 s, sys: 0.33 s, total: 13.61 s Wall time: 13.67 sage: time c = Qp([2,2])^2 CPU times: user 0.44 s, sys: 0.00 s, total: 0.44 s Wall time: 0.44 sage: time c = Qp([3,2,1])^2 CPU times: user 2.88 s, sys: 0.05 s, total: 2.94 s Wall time: 2.95
The majority of time spent in the last computation is due to coercion from ZZ['t'] to RR('t') (which should really be much faster).