Safe Haskell | None |
---|---|

Language | Haskell2010 |

The Littlewood-Richardson rule

- lrCoeff :: Partition -> (Partition, Partition) -> Int
- lrCoeff' :: SkewPartition -> Partition -> Int
- lrMult :: Partition -> Partition -> Map Partition Int
- lrRule :: SkewPartition -> Map Partition Int
- _lrRule :: Partition -> Partition -> Map Partition Int
- lrRuleNaive :: SkewPartition -> Map Partition Int
- lrScalar :: SkewPartition -> SkewPartition -> Int
- _lrScalar :: (Partition, Partition) -> (Partition, Partition) -> Int

# Documentation

lrMult :: Partition -> Partition -> Map Partition Int Source #

Computes the expansion of the product of Schur polynomials `s[mu]*s[nu]`

using the
Littlewood-Richardson rule. Note: this is symmetric in the two arguments.

Based on the wikipedia article https://en.wikipedia.org/wiki/Littlewood-Richardson_rule

lrMult mu nu == Map.fromList list where lamw = weight nu + weight mu list = [ (lambda, coeff) | lambda <- partitions lamw , let coeff = lrCoeff lambda (mu,nu) , coeff /= 0 ]

lrRule :: SkewPartition -> Map Partition Int Source #

`lrRule`

computes the expansion of a skew Schur function
`s[lambda/mu]`

via the Littlewood-Richardson rule.

Adapted from John Stembridge's Maple code: http://www.math.lsa.umich.edu/~jrs/software/SFexamples/LR_rule

lrRule (mkSkewPartition (lambda,nu)) == Map.fromList list where muw = weight lambda - weight nu list = [ (mu, coeff) | mu <- partitions muw , let coeff = lrCoeff lambda (mu,nu) , coeff /= 0 ]

_lrRule :: Partition -> Partition -> Map Partition Int Source #

`_lrRule lambda mu`

computes the expansion of the skew
Schur function `s[lambda/mu]`

via the Littlewood-Richardson rule.

lrRuleNaive :: SkewPartition -> Map Partition Int Source #

Naive (very slow) reference implementation of the Littlewood-Richardson rule, based on the definition "count the semistandard skew tableaux whose row content is a lattice word"

lrScalar :: SkewPartition -> SkewPartition -> Int Source #

`lrScalar (lambda/mu) (alpha/beta)`

computes the scalar product of the two skew
Schur functions `s[lambda/mu]`

and `s[alpha/beta]`

via the Littlewood-Richardson rule.

Adapted from John Stembridge Maple code: http://www.math.lsa.umich.edu/~jrs/software/SFexamples/LR_rule