Repository navigation
First release as a paclet (PerAlexandersson/MathematicaPackages). The state before
this refactoring is tagged pre-refresh-2026-10.
Breaking changes
The legacy packages are frozen; Legacy/MIGRATION.md maps every legacy name to its
supported replacement, and LegacyConversions converts legacy data.
-
ShiftedJackPSymmetricmoved fromSymmetricFunctionsto the new
ShiftedSymmetricFunctionspackage (unchanged behaviour); load that package to use it (#51). -
MacdonaldPolynomialsis a legacy package. Its key, atom and Schubert polynomials are in
the newNonsymmetricPolynomials, which indexes keys by weak compositions in the
standard way: newKeyPolynomial[alpha, x]equals legacyKeyPolynomial[Reverse[alpha], x]
(atoms and Schubert polynomials agree with the legacy ones) (#51). -
MacdonaldHSymmetricfollows Haglund's convention: H~_{2} = s_2 + q s_11. The former
MacdonaldHSymmetric[mu, q, t]equals the newMacdonaldHSymmetric[mu, t, q].
DeltaOperator,DeltaPrimOperator,NablaOperatorandToMacdonaldHBasisfollow
(B_mu = sum of q^a'(c) t^l'(c)). Results symmetric in q and t are unchanged (#35, #38). -
The repository is a paclet: packages live in
Kernel/(supported and experimental)
andLegacy/; load them withPacletDirectoryLoador install the paclet. Context
names andNeedscalls are unchanged (#7, #42). Tests and scripts are plain.mfiles (#49). -
CatalanObjectsRookPlacementPlot(aGrid) is renamedRookPlacementGrid; the nameRookPlacementPlot` belongs to RookTools (#46). -
StrictEdgesandWeakEdgesare single shared options inCombinatoricTools(#46). -
MacdonaldPolynomials no longer loads OldYoungTableaux, no longer exports its own
KnuthRepresentativeandPartitionedCompositionCoarsenings(use NewTableaux and
QuasiSymmetricFunctions), and its 3-argumentToPowerSumBasisis renamed
ToPowerSumBasisMacdonald(#43). -
MonomialQSymbolproducts and powers expand automatically (#16, #31). -
Every package uses its own private context; code that reached package helpers through
the shared top-levelPrivate`context must use full names such as
NewTableauxPrivatehelper(#3, #32). -
ChromaticFunctions, OldYoungTableaux, TreesData and RunSortedWords
are legacy packages; seeLegacy/README.md(#9).
Added
-
Example scripts for
NonsymmetricPolynomials,ShiftedSymmetricFunctions,
QuasiSymmetricFunctions,GTPatterns,NewTableauxfillings andLegacyConversions
(Examples/*.m);Tests/ExamplesTests.mruns every example in a fresh kernel. -
TUTORIAL.md: a tour of the packages and how they fit together. Its code is checked by
Tests/TutorialTests.m: every block runs, and every stated result is compared. -
NonsymmetricPolynomials: divided difference, Demazure and Demazure atom operators with
t- and K-theoretic deformations; key, atom, t-key, t-atom and Schubert polynomials
generated by operators; basis symbolsKeySymbol,AtomSymbol,SchubertSymbol;
ToKeyBasis,ToAtomBasis,ToSchubertBasis,NonsymmetricToPolynomial; Lehmer codes (#51). -
NonsymmetricPolynomials: Grothendieck and Lascoux polynomials (K-theoretic operators,
parameterbeta, default -1), fundamental slide and lock polynomials, their basis symbols
andToLascouxBasis,ToGrothendieckBasis,ToFundamentalSlideBasis,ToLockBasis.
Locks are indexed as by Assaf-Searles (Kohnert polynomials of right-justified diagrams);
legacyMacdonaldPolynomialsLockPolynomial[alpha]is the newLockPolynomial[Reverse[alpha]]`
(#51). -
NonsymmetricPolynomials: nonsymmetric Macdonald polynomialsMacdonaldEPolynomial[alpha, x, q, t], generated from 1 by the Knop-Sahi affine shift and intertwiners (they agree with the
Haglund-Haiman-Loehr filling formula, the legacy package and sym-poly), permuted basements
MacdonaldEPolynomial[alpha, sigma, x, q, t](from the identity basement by t-Demazure
operators, Alexandersson 2019, Corollary 16),NonsymmetricJackPolynomialand
IntegralMacdonaldE(#51). -
The divided-difference family of operators is applied monomial by monomial in x[i], x[i+1]
with memoized expanded formulas instead of forming and cancelling quotients (keys about 2.4
times faster, t-keys and Lascoux polynomials about 2.6-2.9 times) (#51). -
NonsymmetricPolynomials:DualGrothendieckPolynomial[alpha, x]from fillings (column
weights); for weakly increasing alpha it is the Lam-Pylyavskyy dual Grothendieck g_lambda.
LegacyDualGrothendieckPolynomial[alpha]is the new one atReverse[alpha](#51). -
AlgebraicBasessupports permutation-indexed bases. -
Polynomial bridges:
PolynomialToSymmetricFunction(to any core basis, validating
symmetry),QuasiSymmetricFunctionToPolynomial,PolynomialToQuasiSymmetricFunction,
andToQuasiSymmetric(embedding Sym into QSym) (#51). -
QuasiSchurQSymbolandQuasiSchurQSymmetric: quasisymmetric Schur functions, built from
Demazure atoms (#51). -
GTPatterns, ported fromOldYoungTableaux(bottom-to-top rows): BZ patterns
(BZPattern,BZPatterns,BZPlus),GTPlus,GTMonomial,GogPatterns,
MagogPatterns, tiles and snakes (GTTiles,GTSnakes,TilingMatrix,
ContainingFaceDimension),GTPatternFormoptionsGTPartition(string values) and
EnableSkew,GTPatternTikz,LatticePathForm,LatticePathTikz,
UpperBoundKostkaDegreeandGTEhrhartPolynomial(stretched Kostka counts) (#51). -
Helpers ported from
OldYoungTableaux:SkewShapeQ,ShapeUnion,YoungLatticePaths,
PermutationOfType,SetPartitionRefinementQ,SageForm,MacdonaldPsiPrimeand
boundedPartitionAddBox[lam, top]/PartitionRemoveBox[lam, bot](CombinatoricTools);
ShapeTripletsandBoxCountMatrix(GTPatterns);SequenceToPolynomial(with a degree
bound) andHVector(PolynomialTools);HasOuterCornerQand theYTableauTeXoptions
LineBreaksandUseArray(NewTableaux) (#51). -
New package
ShiftedSymmetricFunctions(Okounkov-Olshanski):ShiftedSchurPolynomial,
ShiftedSchurEvaluate,ShiftedJackPPolynomial,ShiftedJackJPolynomial,
ShiftedJackPEvaluate,ShiftedJackJEvaluate,NormalizedCharacterand
StanleyCharacterPolynomial(Feray-Sniady formula in multirectangular coordinates;
legacyChNormalizedCharacter= (-1)^(|mu| - length(mu)) times it) (#51). -
New package
LegacyConversionsfor old notebooks:FromLegacyGTPattern/ToLegacyGTPattern
(row order),FromLegacyYoungTableau/ToLegacyYoungTableau(skew marker),
FromLegacyAreaList/ToLegacyAreaList,FromLegacyEdges/ToLegacyEdges,
FromLegacyKeyIndexandFromLegacyIndex[family, index]. It loads no legacy package and
puts no other context on$ContextPath(#51). -
NewTableaux: semistandard augmented fillings asSSAF[rows]objects (SSAFForm,SSAFQ,
shape, basement, weight, monomial),SSAFillings,AtomFillings,KeyFillings,
TAtomFillings(standard index), statistics (SSAFMajorIndex,SSAFInversions,
SSAFCoInversions,SSAFDn,SSAFColumnSets), crystal operators viaCrystalEi/CrystalFi/
CrystalSiwithSSAFCrystalWordandSSAFCrystalString,LascouxSchutzenberger,
SSAFWeightNormalize, Mason's insertionSSYTToAtom,RPPToAtom,SSAFKnownChargeand
ChargeToMajMap(#51). The legacyLascouxSchutzenbergercan return invalid fillings (for
example on{{1}, {2}, {3, 3}}with i = 2); the new one stays within the filling set. -
UnicellularChromatics, ported from legacyChromaticFunctions:GraphAreaLists
(0-first area lists, including circular ones),AreaConjugate,ValleyEdges,
DiagramRookPlacements,OrientationPlot,PArrayPlot,UnitIntervalPlot(#51). -
GraphTools:GraphOrientations,GraphAcyclicOrientationsandOrientationSinks
accept aGraphor an edge list, withStrictEdges/WeakEdgesoptions;
UnicellularChromaticsnow uses them instead of private copies (#51). -
AlgebraicBases, an internal package withCreateBasis, shared by the algebra packages
for basis symbols (formatting, index normalization, products) (#51). -
CONVENTIONS.mdandTests/CompatibilityTests.m: shared object representations
between packages (#51). -
ClearSymmetricFunctionsCache[](#23). -
CombinatoricToolsRunSortedPermutations` (from RunSortedWords, now a shim) (#39). -
GraphToolsRootedTreeGraphs` for n <= 10 (from TreesData) (#40). -
kSchurSymmetricis exported (#27).MonomialQSymmetric,OrderedRootedTreeSizeand
RationalDyckPathsare defined and exported (#31). -
UnicellularChromatics contains the useful ChromaticFunctions API (graph and area-list
chromatic and LLT polynomials with weights and strict/weak edges, orientations,
Gasharov P-tableaux, vertical-strip LLT, dinv/maj/bounce statistics), using the 0-first
area-list convention (#44). -
Datasets in
Data/with provenance (Data/README.md), found relative to the paclet (#8, #37). -
Tests:
wolframscript -file Tests/RunTests.mruns everyTests/*Tests.mfile in a
fresh kernel (#22). It includes regression tests for all fixed defects,
load-order and isolation tests, a Code Inspector baseline (#33), usage-string coverage,
the introduction example (#48), and a cross-check against the Rust libraries
sym-poly,combinatoric-core,combpolyandpolytoolcovering about 25 families
(#34, #41). -
Scripts/BuildPaclet.mbuilds and verifies the paclet archive;RELEASING.md,
CHANGELOG.md,CONTRIBUTING.mdand an MITLICENSE. -
Examples/SymmetricFunctions-Introduction.m, a plain-text version of the introduction
notebook.
Fixed
DualGrothendieckPolynomial,SetPartitionsTypeB,SetPartitionsNoZeroBlockand
PosetNaturalLabelingwere documented but not exported (they were only reachable by full
private names). A new test checks that every documented name inKernel/is exported; test
files could not catch this, because parsing a test file creates the public symbols it
mentions.
SymmetricFunctionsMacdonaldHSymmetric,ToMacdonaldHBasis,DeltaOperator,DeltaPrimOperator,
NablaOperator,SkewKostkaCoefficientandKroneckerCoefficientno longer abort with
$RecursionLimit, and memoized functions no longer emitSet::write(regression from
eed1b77, #5, #23).- Loading no longer exports protected junk symbols
nameandrest(#23). HallInnerProduct/JackInnerProductwith constant terms,Plethysmwith constant terms,
LRCoefficientfor mismatched sizes,PrincipalSpecializationat q = 1, and
SkewMacdonaldESymmetric(unresolved helper) (#20, #27).
Core utilities
- CombinatoricTools:
LatticeWordQreturns a Boolean;IntegerCompositions[0],
Derangements[0], negativeSetPartitions;PartitionIntervalSize;
LinearlyIndependentRows;Durfeeusage; theSystemPermutations` convenience rule no
longer caches about 290 MB, and package code no longer relies on it (#4, #13, #24, #32). - PolynomialTools:
ElementarySymmetricPolynomial,CompleteHomogeneousPolynomial,
UltraLogConcaveQ,HilbertFunctionValues(stale results across calls),
InterleavingRootsQ/RealRootedQalways return Booleans,EulerianA[0, m](#4, #13, #24). - NewTableaux:
KnuthRepresentativeandBiwordRSKno longer recurse forever,
CrystalSion words,BSTHeightVector, empty skew SSYT, leaked helpers (#14, #25). - GTPatterns: partial
RowFlagslists and invalid values (#14, #25). - GraphTools, MatroidTools, RookTools:
GraphIndependentTriangles,GraphDeleteEdge,
failed data imports no longer memoized,MatroidDeletionby a set,IsMatroidQ,
MatroidContractionby dependent sets,RookPlacementPlot(#15, #26). - CatalanObjects, PermutationTools, QuasiSymmetricFunctions:
DyckPaths,
PerfectMatchings,FussCatalanPaths,ORTTo231Perm, empty base cases,
SeparablePermutationQ,SplitSeparablePermutation,GeneratePAPSand
PermutationFromWordcaches,PowerSumAltQSymmetric(#16, #31). - ChromaticFunctions and UnicellularChromatics: weighted chromatic cache,
VerticalStripLLTPolynomial,DinvFromAreaSeq,AreaRowPermutation,SystemWeightsusage no longer overwritten,UnicellularLLTSymmetricwith integer q, Schroeder orientations,ChromaticSymmetric` on arbitrary vertex labels (#17, #28). - Legacy packages:
GetTrees,FundamentalSlide,QuasiSymmetricPowerSum2, loading
MacdonaldPolynomials no longer modifies other packages,OrderPolynomialfor non-natural
labellings,StembridgePosetsize,SchurPolynomial(#18, #29). - Graph and tree data no longer load from a hard-coded
~/Dropboxpath (#8, #37).
Removed
SymmetricFunctionsTestSuite.m; its cases are inTests/SymmetricFunctionsTests.m(#27).Tex2WebUtilities(website tooling of an older project, replaced by other tools); it
remains available in thepre-refresh-2026-10tag.
Install: download the .paclet below and run PacletInstall["/path/to/PerAlexandersson__MathematicaPackages-0.1.0.paclet"], then for example Needs["SymmetricFunctions"]`. Requires Wolfram Language 14.3 or later. See TUTORIAL.md for a tour and Legacy/MIGRATION.md for old notebooks.