Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
The Littlewood-Richardson rule
Synopsis
- 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