-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Jack, zonal, Schur, and other symmetric polynomials -- -- This library can compute Jack polynomials, zonal polynomials, Schur -- polynomials, flagged Schur polynomials, factorial Schur polynomials, -- t-Schur polynomials, Hall-Littlewood polynomials, Macdonald -- polynomials, Kostka-Foulkes polynomials, and Kostka-Macdonald -- polynomials. @package jackpolynomials @version 1.4.5.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 -- | Jack polynomial jackPol' :: Int -> Partition -> Rational -> Char -> QSpray -- | Skew Jack polynomial skewJackPol' :: Int -> Partition -> Partition -> Rational -> Char -> QSpray -- | Zonal polynomial zonalPol' :: Int -> Partition -> QSpray -- | Skew zonal polynomial skewZonalPol' :: Int -> Partition -> Partition -> QSpray -- | Schur polynomial schurPol' :: Int -> Partition -> QSpray -- | Skew Schur polynomial skewSchurPol' :: Int -> Partition -> Partition -> QSpray -- | Jack polynomial jackPol :: forall a. (Eq a, C a) => Int -> Partition -> a -> Char -> Spray a -- | Skew Jack polynomial skewJackPol :: (Eq a, C a) => Int -> Partition -> Partition -> a -> Char -> Spray a -- | Zonal polynomial zonalPol :: (Eq a, C a) => Int -> Partition -> Spray a -- | Zonal polynomial skewZonalPol :: (Eq a, C a) => Int -> Partition -> Partition -> Spray a -- | Schur polynomial schurPol :: forall a. (Eq a, C a) => Int -> Partition -> Spray a -- | 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 skewJackSymbolicPol :: (Eq a, C a) => Int -> Partition -> Partition -> Char -> ParametricSpray a skewJackSymbolicPol' :: Int -> Partition -> 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 :: (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' :: (Eq a, C Rational a, C a) => Spray a -> Map Partition a -- | Symmetric parametric spray as a linear combination of power sum -- polynomials. psCombination'' :: (FunctionLike b, Eq b, C b, C (BaseRing b)) => Spray b -> Map Partition b -- | Symmetric polynomial as a linear combination of complete symmetric -- homogeneous polynomials. Symmetry is not checked. cshCombination :: (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' :: (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 :: (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' :: (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 :: (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' :: (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 -- | Prints a symmetric simple parametric spray as a linear combination of -- monomial symmetric polynomials. prettySymmetricSimpleParametricQSpray :: [String] -> SimpleParametricQSpray -> 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 Jack parameter, aka Jack-scalar product. It -- makes sense only for symmetric sprays, and the symmetry is not -- checked. hallInnerProduct :: (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' :: (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''' :: (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'''' :: (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 Jack 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 Jack 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) -- | Skew Kostka numbers <math> with a given Jack parameter -- <math> and a given skew partition <math>. This returns a -- map whose keys represent the partitions <math>. skewKostkaNumbers :: Rational -> Partition -> Partition -> Map Partition Rational -- | Skew Kostka numbers <math> with symbolic Jack parameter -- <math> for a given skew partition <math>. This returns a -- map whose keys represent the partitions <math>. symbolicSkewKostkaNumbers :: Partition -> Partition -> Map Partition RatioOfQSprays -- | Kostka-Foulkes polynomial of two given partitions. This is a -- univariate polynomial whose value at 1 is the Kostka number -- of the two partitions. kostkaFoulkesPolynomial :: (Eq a, C a) => Partition -> Partition -> Spray a -- | Kostka-Foulkes polynomial of two given partitions. This is a -- univariate polynomial whose value at 1 is the Kostka number -- of the two partitions. kostkaFoulkesPolynomial' :: Partition -> Partition -> QSpray -- | Skew Kostka-Foulkes polynomial. This is a univariate polynomial -- associated to a skew partition and a partition, and its value at -- 1 is the skew Kostka number associated to these partitions. skewKostkaFoulkesPolynomial :: (Eq a, C a) => Partition -> Partition -> Partition -> Spray a -- | Skew Kostka-Foulkes polynomial. This is a univariate polynomial -- associated to a skew partition and a partition, and its value at -- 1 is the skew Kostka number associated to these partitions. skewKostkaFoulkesPolynomial' :: Partition -> Partition -> Partition -> QSpray -- | qt-Kostka polynomials, aka Kostka-Macdonald polynomials. They are -- usually denoted by <math> for two integer partitions -- <math> and <math>. For a given partition <math>, the -- function returns the polynomials <math> for all partitions -- <math> of the same weight as <math>. qtKostkaPolynomials :: (Eq a, C a) => Partition -> Map Partition (Spray a) -- | qt-Kostka polynomials, aka Kostka-Macdonald polynomials. They are -- usually denoted by <math> for two integer partitions -- <math> and <math>. For a given partition <math>, the -- function returns the polynomials <math> for all partitions -- <math> of the same weight as <math>. qtKostkaPolynomials' :: Partition -> Map Partition QSpray -- | Skew qt-Kostka polynomials. They are usually denoted by <math> -- for two integer partitions <math> and <math> defining a -- skew partition and an integer partition <math>. For given -- partitions <math> and <math>, the function returns the -- polynomials <math> for all partitions <math> of the same -- weight as the skew partition. qtSkewKostkaPolynomials :: (Eq a, C a) => Partition -> Partition -> Map Partition (Spray a) -- | Skew qt-Kostka polynomials. They are usually denoted by <math> -- for two integer partitions <math> and <math> defining a -- skew partition and an integer partition <math>. For given -- partitions <math> and <math>, the function returns the -- polynomials <math> for all partitions <math> of the same -- weight as the skew partition. qtSkewKostkaPolynomials' :: Partition -> Partition -> Map Partition QSpray -- | Hall-Littlewood polynomial of a given partition. This is a -- multivariate symmetric polynomial whose coefficients are polynomial in -- a single parameter. hallLittlewoodPolynomial :: (Eq a, C a) => Int -> Partition -> Char -> SimpleParametricSpray a -- | Hall-Littlewood polynomial of a given partition. This is a -- multivariate symmetric polynomial whose coefficients are polynomial in -- a single parameter. hallLittlewoodPolynomial' :: Int -> Partition -> Char -> SimpleParametricQSpray -- | Hall-Littlewood polynomials as linear combinations of Schur -- polynomials. transitionsSchurToHallLittlewood :: Int -> Char -> Map Partition (Map Partition (Spray Int)) -- | Skew Hall-Littlewood polynomial of a given skew partition. This is a -- multivariate symmetric polynomial whose coefficients are polynomial in -- a single parameter. skewHallLittlewoodPolynomial :: (Eq a, C a) => Int -> Partition -> Partition -> Char -> SimpleParametricSpray a -- | Skew Hall-Littlewood polynomial of a given skew partition. This is a -- multivariate symmetric polynomial whose coefficients are polynomial in -- one parameter. skewHallLittlewoodPolynomial' :: Int -> Partition -> Partition -> Char -> SimpleParametricQSpray -- | t-Schur polynomial. This is a multivariate symmetric polynomial whose -- coefficients are polynomial in a single parameter. tSchurPolynomial :: (Eq a, C a) => Int -> Partition -> SimpleParametricSpray a -- | t-Schur polynomial. This is a multivariate symmetric polynomial whose -- coefficients are polynomial in one parameter. tSchurPolynomial' :: Int -> Partition -> SimpleParametricQSpray -- | Skew t-Schur polynomial of a given skew partition. This is a -- multivariate symmetric polynomial whose coefficients are polynomial in -- one parameter. tSkewSchurPolynomial :: (Eq a, C a) => Int -> Partition -> Partition -> SimpleParametricSpray a -- | Skew t-Schur polynomial of a given skew partition. This is a -- multivariate symmetric polynomial whose coefficients are polynomial in -- one parameter. tSkewSchurPolynomial' :: Int -> Partition -> Partition -> SimpleParametricQSpray -- | Macdonald polynomial. This is a symmetric multivariate polynomial -- depending on two parameters usually denoted by q and -- t. -- --
--   >>> macPoly = macdonaldPolynomial 3 [2, 1] 'P'
--   
--   >>> putStrLn $ prettySymmetricParametricQSpray ["q", "t"] macPoly
--   { [ 1 ] }*M[2,1] + { [ 2*q.t^2 - q.t - q + t^2 + t - 2 ] %//% [ q.t^2 - 1 ] }*M[1,1,1]
--   
macdonaldPolynomial :: (Eq a, C a) => Int -> Partition -> Char -> ParametricSpray a -- | Macdonald polynomial. This is a symmetric multivariate polynomial -- depending on two parameters usually denoted by q and -- t. macdonaldPolynomial' :: Int -> Partition -> Char -> ParametricQSpray -- | Skew Macdonald polynomial of a given skew partition. This is a -- multivariate symmetric polynomial with two parameters. skewMacdonaldPolynomial :: (Eq a, C a) => Int -> Partition -> Partition -> Char -> ParametricSpray a -- | Skew Macdonald polynomial of a given skew partition. This is a -- multivariate symmetric polynomial with two parameters. skewMacdonaldPolynomial' :: Int -> Partition -> Partition -> Char -> ParametricQSpray -- | Macdonald J-polynomial. This is a multivariate symmetric polynomial -- whose coefficients are polynomial in two parameters. macdonaldJpolynomial :: forall a. (Eq a, C a) => Int -> Partition -> SimpleParametricSpray a -- | Macdonald J-polynomial. This is a multivariate symmetric polynomial -- whose coefficients are polynomial in two parameters. macdonaldJpolynomial' :: Int -> Partition -> SimpleParametricQSpray -- | Skew Macdonald J-polynomial. This is a multivariate symmetric -- polynomial whose coefficients depend on two parameters. skewMacdonaldJpolynomial :: (Eq a, C a) => Int -> Partition -> Partition -> ParametricSpray a -- | Skew Macdonald J-polynomial. This is a multivariate symmetric -- polynomial whose coefficients depend on two parameters. skewMacdonaldJpolynomial' :: Int -> Partition -> Partition -> ParametricQSpray -- | Modified Macdonald polynomial. This is a multivariate symmetric -- polynomial whose coefficients are polynomials in two parameters. modifiedMacdonaldPolynomial :: (Eq a, C a) => Int -> Partition -> SimpleParametricSpray a -- | Modified Macdonald polynomial. This is a multivariate symmetric -- polynomial whose coefficients are polynomials in two parameters. modifiedMacdonaldPolynomial' :: Int -> Partition -> SimpleParametricQSpray -- | Flagged Schur polynomial. A flagged Schur polynomial is not symmetric -- in general. flaggedSchurPol :: (Eq a, C a) => Partition -> [Int] -> [Int] -> Spray a -- | Flagged Schur polynomial. A flagged Schur polynomial is not symmetric -- in general. flaggedSchurPol' :: Partition -> [Int] -> [Int] -> QSpray -- | Flagged skew Schur polynomial. A flagged skew Schur polynomial is not -- symmetric in general. flaggedSkewSchurPol :: (Eq a, C a) => Partition -> Partition -> [Int] -> [Int] -> Spray a -- | Flagged skew Schur polynomial. A flagged skew Schur polynomial is not -- symmetric in general. flaggedSkewSchurPol' :: Partition -> Partition -> [Int] -> [Int] -> QSpray -- | Factorial Schur polynomial. See Kreiman's paper Products of -- factorial Schur functions for the definition. factorialSchurPol :: (Eq a, C a) => Int -> Partition -> [a] -> Spray a -- | Factorial Schur polynomial. See Kreiman's paper Products of -- factorial Schur functions for the definition. factorialSchurPol' :: Int -> Partition -> [Rational] -> QSpray -- | Skew factorial Schur polynomial. See Macdonald's paper Schur -- functions: theme and variations, 6th variation, for the -- definition. skewFactorialSchurPol :: (Eq a, C a) => Int -> Partition -> Partition -> IntMap a -> Spray a -- | Skew factorial Schur polynomial. See Macdonald's paper Schur -- functions: theme and variations, 6th variation, for the -- definition. skewFactorialSchurPol' :: Int -> Partition -> Partition -> IntMap Rational -> QSpray