jackpolynomials-1.4.1.0: Jack, zonal, Schur and skew Schur polynomials
Copyright(c) Stéphane Laurent 2024
LicenseGPL-3
Maintainerlaurent_step@outlook.fr
Safe HaskellSafe-Inferred
LanguageHaskell2010

Math.Algebra.SymmetricPolynomials

Description

A Jack polynomial can have a very long expression in the canonical basis. A considerably shorter expression is obtained by writing the polynomial as a linear combination of the monomial symmetric polynomials instead, which is always possible since Jack polynomials are symmetric. This is the initial motivation of this module. But now it contains more stuff dealing with symmetric polynomials.

Synopsis

Checking symmetry

isSymmetricSpray :: (C a, Eq a) => Spray a -> Bool Source #

Checks whether a spray defines a symmetric polynomial; this is useless for Jack polynomials because they always are symmetric, but this module contains everything needed to build this function which can be useful in another context

Classical symmetric polynomials

msPolynomial Source #

Arguments

:: (C a, Eq a) 
=> Int

number of variables

-> Partition

integer partition

-> Spray a 

Monomial symmetric polynomial

>>> putStrLn $ prettySpray' (msPolynomial 3 [2, 1])
(1) x1^2.x2 + (1) x1^2.x3 + (1) x1.x2^2 + (1) x1.x3^2 + (1) x2^2.x3 + (1) x2.x3^2

psPolynomial Source #

Arguments

:: (C a, Eq a) 
=> Int

number of variables

-> Partition

integer partition

-> Spray a 

Power sum polynomial

>>> putStrLn $ prettyQSpray (psPolynomial 3 [2, 1])
x^3 + x^2.y + x^2.z + x.y^2 + x.z^2 + y^3 + y^2.z + y.z^2 + z^3

Decomposition of symmetric polynomials

msCombination :: C a => Spray a -> Map Partition a Source #

Symmetric polynomial as a linear combination of monomial symmetric polynomials

psCombination :: forall a. (Eq a, C a) => Spray a -> Map Partition a Source #

Symmetric polynomial as a linear combination of power sum polynomials. Symmetry is not checked.

psCombination' :: forall a. (Eq a, C Rational a, C a) => Spray a -> Map Partition a Source #

Symmetric polynomial as a linear combination of power sum polynomials. Same as psCombination but with other constraints on the base ring of the spray.

Printing symmetric polynomials

prettySymmetricNumSpray :: (Num a, Ord a, Show a, C a) => Spray a -> String Source #

Prints a symmetric spray as a linear combination of monomial symmetric polynomials

>>> putStrLn $ prettySymmetricNumSpray $ schurPol' 3 [3, 1, 1]
M[3,1,1] + M[2,2,1]

prettySymmetricQSpray :: QSpray -> String Source #

Prints a symmetric spray as a linear combination of monomial symmetric polynomials

>>> putStrLn $ prettySymmetricQSpray $ jackPol' 3 [3, 1, 1] 2 'J'
42*M[3,1,1] + 28*M[2,2,1]

prettySymmetricParametricQSpray :: [String] -> ParametricQSpray -> String Source #

Prints a symmetric parametric spray as a linear combination of monomial symmetric polynomials

>>> putStrLn $ prettySymmetricParametricQSpray ["a"] $ jackSymbolicPol' 3 [3, 1, 1] 'J'
{ [ 4*a^2 + 10*a + 6 ] }*M[3,1,1] + { [ 8*a + 12 ] }*M[2,2,1]

Operators on the space of symmetric polynomials

laplaceBeltrami :: (Eq a, C a) => a -> Spray a -> Spray a Source #

Laplace-Beltrami operator on the space of homogeneous symmetric polynomials; neither symmetry and homogeneity are checked

calogeroSutherland :: (Eq a, C a) => a -> Spray a -> Spray a Source #

Calogero-Sutherland operator on the space of homogeneous symmetric polynomials; neither symmetry and homogeneity are checked

Hall inner product of symmetric polynomials

hallInnerProduct Source #

Arguments

:: forall a. (Eq a, C a) 
=> Spray a

spray

-> Spray a

spray

-> a

parameter

-> a 

Hall inner product with parameter. It makes sense only for symmetric sprays, and the symmetry is not checked.

hallInnerProduct' Source #

Arguments

:: forall a. (Eq a, C Rational a, C a) 
=> Spray a

spray

-> Spray a

spray

-> a

parameter

-> a 

Hall inner product with parameter. Same as hallInnerProduct but with other constraints on the base ring of the sprays.

hallInnerProduct'' Source #

Arguments

:: forall a. Real a 
=> Spray a

spray

-> Spray a

spray

-> a

parameter

-> Rational 

Hall inner product with parameter. Same as hallInnerProduct but with other constraints on the base ring of the sprays. It is applicable to Spray Int sprays.

hallInnerProduct''' Source #

Arguments

:: forall b. (Eq b, C b, C (BaseRing b) b) 
=> Spray b

parametric spray

-> Spray b

parametric spray

-> BaseRing b

parameter

-> b 

Hall inner product with parameter for parametric sprays, because the type of the parameter in hallInnerProduct is strange. For example, a ParametricQSpray spray is a Spray RatioOfQSprays spray, and it makes more sense to compute the Hall product with a Rational parameter then to compute the Hall product with a RatioOfQSprays parameter.

>>> import Math.Algebra.Jack.SymmetricPolynomials
>>> import Math.Algebra.JackSymbolicPol
>>> import Math.Algebra.Hspray
>>> jp = jackSymbolicPol 3 [2, 1] 'P'
>>> hallInnerProduct''' jp jp 5 == hallInnerProduct jp jp (constantRatioOfSprays 5)

hallInnerProduct'''' Source #

Arguments

:: forall b. (Eq b, C b, C Rational b, C (BaseRing b) b) 
=> Spray b

parametric spray

-> Spray b

parametric spray

-> BaseRing b

parameter

-> b 

Hall inner product with parameter for parametric sprays. Same as hallInnerProduct''' but with other constraints on the types. It is applicable to SimpleParametricQSpray sprays, while hallInnerProduct''' is not.

symbolicHallInnerProduct :: (Eq a, C a) => Spray a -> Spray a -> Spray a Source #

Hall inner product with symbolic parameter. See README for some examples.

symbolicHallInnerProduct' :: (Eq a, C Rational (Spray a), C a) => Spray a -> Spray a -> Spray a Source #

Hall inner product with symbolic parameter. Same as symbolicHallInnerProduct but with other type constraints.

symbolicHallInnerProduct'' :: forall a. Real a => Spray a -> Spray a -> QSpray Source #

Hall inner product with symbolic parameter. Same as symbolicHallInnerProduct but with other type constraints. It is applicable to Spray Int sprays.