-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Jack, zonal, Schur and skew Schur polynomials -- -- This library can compute Jack polynomials, zonal polynomials, Schur -- and skew Schur polynomials. It also provides some utilities for -- symmetric polynomials. @package jackpolynomials @version 1.4.2.0 -- | Evaluation of Jack polynomials, zonal polynomials, Schur polynomials -- and skew Schur polynomials. See README for examples and references. module Math.Algebra.Jack type Partition = [Int] -- | Evaluation of Jack polynomial jack' :: [Rational] -> Partition -> Rational -> Char -> Rational -- | Evaluation of zonal polynomial zonal' :: [Rational] -> Partition -> Rational -- | Evaluation of Schur polynomial schur' :: [Rational] -> Partition -> Rational -- | Evaluation of a skew Schur polynomial skewSchur' :: [Rational] -> Partition -> Partition -> Rational -- | Evaluation of Jack polynomial jack :: forall a. (Eq a, C a) => [a] -> Partition -> a -> Char -> a -- | Evaluation of zonal polynomial zonal :: (Eq a, C a) => [a] -> Partition -> a -- | Evaluation of Schur polynomial schur :: forall a. C a => [a] -> Partition -> a -- | Evaluation of a skew Schur polynomial skewSchur :: forall a. (Eq a, C a) => [a] -> Partition -> Partition -> a module Math.Algebra.Jack.HypergeoPQ -- | Inefficient hypergeometric function of a matrix argument (for testing -- purpose) hypergeoPQ :: (Eq a, C a) => Int -> [a] -> [a] -> [a] -> a -- | Computation of symbolic Jack polynomials, zonal polynomials, Schur -- polynomials and skew Schur polynomials. See README for examples and -- references. module Math.Algebra.JackPol -- | Symbolic Jack polynomial jackPol' :: Int -> Partition -> Rational -> Char -> Spray Rational -- | Symbolic zonal polynomial zonalPol' :: Int -> Partition -> Spray Rational -- | Symbolic Schur polynomial schurPol' :: Int -> Partition -> Spray Rational -- | Symbolic skew Schur polynomial skewSchurPol' :: Int -> Partition -> Partition -> Spray Rational -- | Symbolic Jack polynomial jackPol :: forall a. (Eq a, C a) => Int -> Partition -> a -> Char -> Spray a -- | Symbolic zonal polynomial zonalPol :: forall a. (Eq a, C a) => Int -> Partition -> Spray a -- | Symbolic Schur polynomial schurPol :: forall a. (Eq a, C a) => Int -> Partition -> Spray a -- | Symbolic skew Schur polynomial skewSchurPol :: forall a. (Eq a, C a) => Int -> Partition -> Partition -> Spray a -- | Computation of Jack polynomials with a symbolic Jack parameter. See -- README for examples and references. module Math.Algebra.JackSymbolicPol -- | Jack polynomial with symbolic Jack parameter jackSymbolicPol :: forall a. (Eq a, C a) => Int -> Partition -> Char -> ParametricSpray a -- | Jack polynomial with symbolic Jack parameter jackSymbolicPol' :: Int -> Partition -> Char -> ParametricQSpray -- | 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. module Math.Algebra.SymmetricPolynomials -- | Checks whether a spray defines a symmetric polynomial. -- --
-- >>> -- note that the sum of two symmetric polynomials is not symmetric -- -- >>> -- if they have different numbers of variables: -- -- >>> spray = schurPol' 4 [2, 2] ^+^ schurPol' 3 [2, 1] -- -- >>> isSymmetricSpray spray --isSymmetricSpray :: (C a, Eq a) => Spray a -> Bool -- | 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 --msPolynomial :: (C a, Eq a) => Int -> 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 --psPolynomial :: (C a, Eq a) => Int -> Partition -> Spray a -- | Complete symmetric homogeneous polynomial -- --
-- >>> putStrLn $ prettyQSpray (cshPolynomial 3 [2, 1]) -- x^3 + 2*x^2.y + 2*x^2.z + 2*x.y^2 + 3*x.y.z + 2*x.z^2 + y^3 + 2*y^2.z + 2*y.z^2 + z^3 --cshPolynomial :: (C a, Eq a) => Int -> Partition -> Spray a -- | Elementary symmetric polynomial. -- --
-- >>> putStrLn $ prettyQSpray (esPolynomial 3 [2, 1]) -- x^2.y + x^2.z + x.y^2 + 3*x.y.z + x.z^2 + y^2.z + y.z^2 --esPolynomial :: (C a, Eq a) => Int -> Partition -> Spray a -- | Symmetric polynomial as a linear combination of monomial symmetric -- polynomials. msCombination :: C a => Spray a -> Map Partition a -- | Symmetric polynomial as a linear combination of power sum polynomials. -- Symmetry is not checked. psCombination :: forall a. (Eq a, C a) => Spray a -> Map Partition a -- | Symmetric polynomial as a linear combination of power sum polynomials. -- Same as psCombination but with other constraints on the base -- ring of the spray. psCombination' :: forall a. (Eq a, C Rational a, C a) => Spray a -> Map Partition a -- | Symmetric polynomial as a linear combination of complete symmetric -- homogeneous polynomials. Symmetry is not checked. cshCombination :: forall a. (Eq a, C a) => Spray a -> Map Partition a -- | Symmetric polynomial as a linear combination of complete symmetric -- homogeneous polynomials. Same as cshCombination but with -- other constraints on the base ring of the spray. cshCombination' :: forall a. (Eq a, C Rational a, C a) => Spray a -> Map Partition a -- | Symmetric polynomial as a linear combination of elementary symmetric -- polynomials. Symmetry is not checked. esCombination :: forall a. (Eq a, C a) => Spray a -> Map Partition a -- | Symmetric polynomial as a linear combination of elementary symmetric -- polynomials. Same as esCombination but with other constraints -- on the base ring of the spray. esCombination' :: forall a. (Eq a, C Rational a, C a) => Spray a -> Map Partition a -- | Symmetric polynomial as a linear combination of Schur polynomials. -- Symmetry is not checked. schurCombination :: forall a. (Eq a, C a) => Spray a -> Map Partition a -- | Symmetric polynomial as a linear combination of Schur polynomials. -- Same as schurCombination but with other constraints on the -- base ring of the spray. schurCombination' :: forall a. (Eq a, C Rational a, C a) => Spray a -> Map Partition a -- | Symmetric polynomial as a linear combination of Jack polynomials with -- a given Jack parameter. Symmetry is not checked. jackCombination :: (Eq a, C a) => a -> Char -> Spray a -> Map Partition a -- | Symmetric polynomial as a linear combination of Jack polynomials with -- symbolic parameter. Symmetry is not checked. jackSymbolicCombination :: Char -> QSpray -> Map Partition RatioOfQSprays -- | Symmetric parametric polynomial as a linear combination of Jack -- polynomials with symbolic parameter. Similar to -- jackSymbolicCombination but for a parametric spray. jackSymbolicCombination' :: (Eq a, C a) => Char -> ParametricSpray a -> Map Partition (RatioOfSprays a) -- | 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] --prettySymmetricNumSpray :: (Num a, Ord a, Show a, C a) => Spray a -> String -- | 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] --prettySymmetricQSpray :: QSpray -> String -- | Same as prettySymmetricQSpray but for a QSpray' -- symmetric spray prettySymmetricQSpray' :: QSpray' -> String -- | 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]
--
prettySymmetricParametricQSpray :: [String] -> ParametricQSpray -> String
-- | Laplace-Beltrami operator on the space of homogeneous symmetric
-- polynomials; neither symmetry and homogeneity are checked
laplaceBeltrami :: (Eq a, C a) => a -> Spray a -> Spray a
-- | Calogero-Sutherland operator on the space of homogeneous symmetric
-- polynomials; neither symmetry and homogeneity are checked
calogeroSutherland :: (Eq a, C a) => a -> Spray a -> Spray a
-- | Hall inner product with parameter, aka Jack-scalar product. It makes
-- sense only for symmetric sprays, and the symmetry is not checked.
hallInnerProduct :: forall a. (Eq a, C a) => Spray a -> Spray a -> a -> a
-- | Hall inner product with parameter. Same as hallInnerProduct
-- but with other constraints on the base ring of the sprays.
hallInnerProduct' :: forall a. (Eq a, C Rational a, C a) => Spray a -> Spray a -> a -> a
-- | 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'' :: forall a. Real a => Spray a -> Spray a -> a -> Rational
-- | 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''' :: forall b. (Eq b, C b, C (BaseRing b) b) => Spray b -> Spray b -> BaseRing b -> 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. hallInnerProduct'''' :: forall b. (Eq b, C b, C Rational b, C (BaseRing b) b) => Spray b -> Spray b -> BaseRing b -> b -- | Hall inner product with symbolic parameter. See README for some -- examples. symbolicHallInnerProduct :: (Eq a, C a) => Spray a -> Spray a -> Spray a -- | Hall inner product with symbolic parameter. Same as -- symbolicHallInnerProduct but with other type constraints. symbolicHallInnerProduct' :: (Eq a, C Rational (Spray a), C a) => Spray a -> Spray a -> Spray a -- | Hall inner product with symbolic parameter. Same as -- symbolicHallInnerProduct but with other type constraints. It -- is applicable to Spray Int sprays. symbolicHallInnerProduct'' :: forall a. Real a => Spray a -> Spray a -> QSpray -- | Kostka numbers <math> for a given weight of the partitions -- <math> and <math> and a given parameter <math> -- (these are the standard Kostka numbers when <math>). This -- returns a map whose keys represent the partitions <math> and the -- value attached to a partition <math> represents the map -- <math> where the partition <math> is included in the keys -- of this map if and only if <math>. kostkaNumbers :: Int -> Rational -> Map Partition (Map Partition Rational) -- | Kostka numbers <math> with symbolic parameter <math> for a -- given weight of the partitions <math> and <math>. This -- returns a map whose keys represent the partitions <math> and the -- value attached to a partition <math> represents the map -- <math> where the partition <math> is included in the keys -- of this map if and only if <math>. symbolicKostkaNumbers :: Int -> Map Partition (Map Partition RatioOfQSprays)