Skip to content

Commit

Permalink
JackCombination'
Browse files Browse the repository at this point in the history
  • Loading branch information
stla committed Jul 12, 2024
1 parent d521a37 commit c4ada69
Showing 1 changed file with 24 additions and 0 deletions.
24 changes: 24 additions & 0 deletions src/Math/Algebra/SymmetricPolynomials.hs
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ module Math.Algebra.SymmetricPolynomials
, schurCombination
, schurCombination'
, jackCombination
, jackCombination'
, jackSymbolicCombination
, jackSymbolicCombination'
-- * Printing symmetric polynomials
Expand Down Expand Up @@ -863,6 +864,29 @@ jackCombination alpha which spray =
IM.fromList
(zip weights (map (msPolynomialsInJackBasis alpha which n) weights))

-- | Symmetric parametric polynomial as a linear combination of Jack
-- polynomials with a given Jack parameter. Symmetry is not checked.
-- Similar to @jackCombination@ but for a parametric spray.
jackCombination' ::
(FunctionLike b, Eq b, AlgRing.C b, Eq (BaseRing b), AlgField.C (BaseRing b))
=> BaseRing b -- ^ Jack parameter
-> Char -- ^ which Jack polynomials, @'J'@, @'C'@, @'P'@ or @'Q'@
-> Spray b -- ^ parametric spray representing a symmetric polynomial
-> Map Partition b
jackCombination' alpha which spray =
if not (which `elem` ['J', 'C', 'P', 'Q'])
then error "jackCombination': invalid character, must be 'J', 'C', 'P' or 'Q'."
else
_symmPolyCombination
(\lambda -> (combos IM.! (sum lambda)) DM.! lambda)
(flip (*^)) spray
where
weights = filter (/= 0) (map DF.sum (allExponents spray))
n = numberOfVariables spray
combos =
IM.fromList
(zip weights (map (msPolynomialsInJackBasis alpha which n) weights))

-- | Symmetric polynomial as a linear combination of Jack polynomials with
-- symbolic parameter. Symmetry is not checked.
jackSymbolicCombination ::
Expand Down

0 comments on commit c4ada69

Please sign in to comment.