def grothendieck_P(num_variables, mu, nu=(), degree_bound=None): # noqa if type(mu) == Permutation: assert nu == () return mu.symplectic_stable_grothendieck(num_variables, degree_bound) else: return SymmetricPolynomial.stable_grothendieck_p( num_variables, mu, nu, degree_bound)
def _test(it, upper): for w in it: nu = w.fpf_involution_shape() if nu: for n in range(upper): f = SymmetricPolynomial.stable_grothendieck_p(nu, n, n) g = w.symplectic_stable_grothendieck(degree_bound=n) print(w, nu) print() print(f) print() print(g) print() print(f - g) print() print() print() assert f == g
def test_strict_symmetric_functions(): nn = 5 for mu in Partition.all(nn, strict=True): for nu in Partition.all(nn, strict=True): for n in range(nn): print(n, mu, nu) print() # Schur-P and GP f = SymmetricPolynomial.schur_p(n, mu, nu) g = SymmetricPolynomial.stable_grothendieck_p(n, mu, nu) h = SymmetricPolynomial.dual_stable_grothendieck_p(n, mu, nu) fs = SymmetricPolynomial._slow_schur_p(n, mu, nu) gs = SymmetricPolynomial._slow_stable_grothendieck_p(n, mu, nu) hs = SymmetricPolynomial._slow_dual_stable_grothendieck_p( n, mu, nu) if f != fs: print(f) print(fs) print() if g != gs: print(g) print(gs) print() if h != hs: print(h) print(hs) print() print() print() assert f == fs assert g == gs assert h == hs if mu == nu: assert f == 1 assert g == 1 assert h == 1 assert fs == 1 assert gs == 1 assert hs == 1 if not Partition.contains(mu, nu): assert f == 0 assert g == 0 assert h == 0 assert fs == 0 assert gs == 0 assert hs == 0 # Schur-Q and GQ f = SymmetricPolynomial.schur_q(n, mu, nu) g = SymmetricPolynomial.stable_grothendieck_q(n, mu, nu) h = SymmetricPolynomial.dual_stable_grothendieck_q(n, mu, nu) fs = SymmetricPolynomial._slow_schur_q(n, mu, nu) gs = SymmetricPolynomial._slow_stable_grothendieck_q(n, mu, nu) hs = SymmetricPolynomial._slow_dual_stable_grothendieck_q( n, mu, nu) if f != fs: print(f) print(fs) print() if g != gs: print(g) print(gs) print() if h != hs: print(h) print(hs) print() print() print() assert f == fs assert g == gs assert h == hs if mu == nu: assert f == 1 assert g == 1 assert h == 1 assert fs == 1 assert gs == 1 assert hs == 1 if not Partition.contains(mu, nu): assert f == 0 assert g == 0 assert h == 0 assert fs == 0 assert gs == 0 assert hs == 0