Symplectic group#
This module provides tools for computations of integrals of polynomials on the symplectic group.
Symplectic group Python interface
References
[1] Collins, B., & Śniady, P. (2006). Integration with respect to the Haar measure on unitary, orthogonal and symplectic group. Communications in Mathematical Physics, 264(3), 773-795.
[2] Matsumoto, S. (2013). Weingarten calculus for matrix ensembles associated with compact symmetric spaces. arXiv preprint arXiv:1301.5401.
[3] Macdonald, I. G. (1998). Symmetric functions and Hall polynomials. Oxford university press.
- haarpy.symplectic.twisted_spherical_function(permutation, partition)[source]#
Returns the twisted spherical function of the Gelfand pair \((S_{2p}, H_p)\)
- Parameters:
permutation (
Permutation) – A permutation of the symmetric group \(S_{2p}\)partition (
tuple[int,...]) – An integer partition of \(p\)
- Returns:
The twisted spherical function of the given permutation
- Return type:
Fraction- Raises:
TypeError – If
partitionis not of typetupleTypeError – If
permutationof typePermutationValueError – If the degree of the permutation is odd
ValueError – If the partition and the permutation are incompatible
Examples
>>> from sympy.combinatorics import Permutation >>> from haarpy import twisted_spherical_function >>> twisted_spherical_function(Permutation(5, 0, 1, 2), (2, 1)) Fraction(1, 4)
See also
haarpy.symmetric.murn_naka_rule()Implementation of the Murnaghan-Nakayama rule for the characters irreducible representations of the symmetric group
- haarpy.symplectic.weingarten_symplectic(permutation, half_dimension)[source]#
Returns the symplectic Weingarten function
- Parameters:
permutation (
Permutation) – A permutation of the symmetric group \(S_{2p}\)half_dimension (
Symbol) – Half the dimension of the symplectic group
- Returns:
The Weingarten function
- Return type:
Expr- Raises:
ValueError – If the degree \(2p\) of the symmetric group \(S_{2p}\) is odd
Examples
>>> from sympy import Symbol >>> from sympy.combinatorics import Permutation >>> from haarpy import weingarten_symplectic >>> d = Symbol("d") >>> weingarten_symplectic(Permutation(0, 1, 2, 3, 4, 5), 7) Fraction(-1, 201600) >>> weingarten_symplectic(Permutation(0, 1, 2, 3, 4, 5), d) -1/(8*d*(d - 2)*(d - 1)*(d + 1)*(2*d + 1))
See also
haarpy.symplectic.twisted_spherical_function()Computes the twisted spherical function of the Gelfand pair \((S_{2p}, H_p)\)
- haarpy.symplectic.haar_integral_symplectic(sequences, half_dimension)[source]#
Returns integral over symplectic group polynomial sampled at random from the Haar measure
- Parameters:
sequences (
tuple[tuple[Expr,...],...]) – Indices of matrix elementshalf_dimension (
Symbol) – Half the dimension of the symplectic group
- Returns:
Integral under the Haar measure
- Return type:
Expr- Raises:
ValueError – If
sequencesdo not contain 2 tuplesValueError – If the sequences are of different lengths
TypeError – If
half_dimensionis neitherintorSymbolTypeError – If
half_dimensionis anintbutsequencescontain aSymbolValueError – If not all sequence indices are between
0and2*half_dimension - 1TypeError – If
sequencescontaint something else thanExprandintTypeError – If symbolic sequences have the wrong format
Examples
>>> from sympy import Symbol >>> from haarpy import haar_integral_symplectic
>>> d = Symbol("d") >>> sequence_1, sequence_2 = (0, 1, 2, d, d+1, d+2), (0, 0, 0, d, d, d) >>> haar_integral_symplectic((sequence_1, sequence_2), d) 1/(4*d*(d + 1)*(2*d + 1))
>>> d = 4 >>> sequence_1, sequence_2 = (0, 1, 2, d, d+1, d+2), (0, 0, 0, d, d, d) >>> haar_integral_symplectic((sequence_1, sequence_2), d) Fraction(1, 720)
See also
haarpy.symmetric.hyperoctahedral_transversal()Yields the permutations of \(M_{2p}\), the complete set of coset representatives of the quotient group \(S_{2p}/H_p\)
haarpy.symplectic.weingarten_symplectic()Returns the symplectic Weingarten function