Skip to content

0.1.0

Latest

Choose a tag to compare

@PerAlexandersson PerAlexandersson released this 10 Oct 18:12
· 16 commits to master since this release
8ffa530

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.

  • ShiftedJackPSymmetric moved from SymmetricFunctions to the new
    ShiftedSymmetricFunctions package (unchanged behaviour); load that package to use it (#51).

  • MacdonaldPolynomials is a legacy package. Its key, atom and Schubert polynomials are in
    the new NonsymmetricPolynomials, which indexes keys by weak compositions in the
    standard way: new KeyPolynomial[alpha, x] equals legacy KeyPolynomial[Reverse[alpha], x]
    (atoms and Schubert polynomials agree with the legacy ones) (#51).

  • MacdonaldHSymmetric follows Haglund's convention: H~_{2} = s_2 + q s_11. The former
    MacdonaldHSymmetric[mu, q, t] equals the new MacdonaldHSymmetric[mu, t, q].
    DeltaOperator, DeltaPrimOperator, NablaOperator and ToMacdonaldHBasis follow
    (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)
    and Legacy/; load them with PacletDirectoryLoad or install the paclet. Context
    names and Needs calls are unchanged (#7, #42). Tests and scripts are plain .m files (#49).

  • CatalanObjectsRookPlacementPlot(aGrid) is renamed RookPlacementGrid; the name RookPlacementPlot` belongs to RookTools (#46).

  • StrictEdges and WeakEdges are single shared options in CombinatoricTools (#46).

  • MacdonaldPolynomials no longer loads OldYoungTableaux, no longer exports its own
    KnuthRepresentative and PartitionedCompositionCoarsenings (use NewTableaux and
    QuasiSymmetricFunctions), and its 3-argument ToPowerSumBasis is renamed
    ToPowerSumBasisMacdonald (#43).

  • MonomialQSymbol products and powers expand automatically (#16, #31).

  • Every package uses its own private context; code that reached package helpers through
    the shared top-level Private` context must use full names such as
    NewTableauxPrivatehelper (#3, #32).

  • ChromaticFunctions, OldYoungTableaux, TreesData and RunSortedWords
    are legacy packages; see Legacy/README.md (#9).

Added

  • Example scripts for NonsymmetricPolynomials, ShiftedSymmetricFunctions,
    QuasiSymmetricFunctions, GTPatterns, NewTableaux fillings and LegacyConversions
    (Examples/*.m); Tests/ExamplesTests.m runs 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 symbols KeySymbol, AtomSymbol, SchubertSymbol;
    ToKeyBasis, ToAtomBasis, ToSchubertBasis, NonsymmetricToPolynomial; Lehmer codes (#51).

  • NonsymmetricPolynomials: Grothendieck and Lascoux polynomials (K-theoretic operators,
    parameter beta, default -1), fundamental slide and lock polynomials, their basis symbols
    and ToLascouxBasis, ToGrothendieckBasis, ToFundamentalSlideBasis, ToLockBasis.
    Locks are indexed as by Assaf-Searles (Kohnert polynomials of right-justified diagrams);
    legacy MacdonaldPolynomialsLockPolynomial[alpha]is the newLockPolynomial[Reverse[alpha]]`
    (#51).

  • NonsymmetricPolynomials: nonsymmetric Macdonald polynomials MacdonaldEPolynomial[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), NonsymmetricJackPolynomial and
    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.
    Legacy DualGrothendieckPolynomial[alpha] is the new one at Reverse[alpha] (#51).

  • AlgebraicBases supports permutation-indexed bases.

  • Polynomial bridges: PolynomialToSymmetricFunction (to any core basis, validating
    symmetry), QuasiSymmetricFunctionToPolynomial, PolynomialToQuasiSymmetricFunction,
    and ToQuasiSymmetric (embedding Sym into QSym) (#51).

  • QuasiSchurQSymbol and QuasiSchurQSymmetric: quasisymmetric Schur functions, built from
    Demazure atoms (#51).

  • GTPatterns, ported from OldYoungTableaux (bottom-to-top rows): BZ patterns
    (BZPattern, BZPatterns, BZPlus), GTPlus, GTMonomial, GogPatterns,
    MagogPatterns, tiles and snakes (GTTiles, GTSnakes, TilingMatrix,
    ContainingFaceDimension), GTPatternForm options GTPartition (string values) and
    EnableSkew, GTPatternTikz, LatticePathForm, LatticePathTikz,
    UpperBoundKostkaDegree and GTEhrhartPolynomial (stretched Kostka counts) (#51).

  • Helpers ported from OldYoungTableaux: SkewShapeQ, ShapeUnion, YoungLatticePaths,
    PermutationOfType, SetPartitionRefinementQ, SageForm, MacdonaldPsiPrime and
    bounded PartitionAddBox[lam, top]/PartitionRemoveBox[lam, bot] (CombinatoricTools);
    ShapeTriplets and BoxCountMatrix (GTPatterns); SequenceToPolynomial (with a degree
    bound) and HVector (PolynomialTools); HasOuterCornerQ and the YTableauTeX options
    LineBreaks and UseArray (NewTableaux) (#51).

  • New package ShiftedSymmetricFunctions (Okounkov-Olshanski): ShiftedSchurPolynomial,
    ShiftedSchurEvaluate, ShiftedJackPPolynomial, ShiftedJackJPolynomial,
    ShiftedJackPEvaluate, ShiftedJackJEvaluate, NormalizedCharacter and
    StanleyCharacterPolynomial (Feray-Sniady formula in multirectangular coordinates;
    legacy ChNormalizedCharacter = (-1)^(|mu| - length(mu)) times it) (#51).

  • New package LegacyConversions for old notebooks: FromLegacyGTPattern/ToLegacyGTPattern
    (row order), FromLegacyYoungTableau/ToLegacyYoungTableau (skew marker),
    FromLegacyAreaList/ToLegacyAreaList, FromLegacyEdges/ToLegacyEdges,
    FromLegacyKeyIndex and FromLegacyIndex[family, index]. It loads no legacy package and
    puts no other context on $ContextPath (#51).

  • NewTableaux: semistandard augmented fillings as SSAF[rows] objects (SSAFForm, SSAFQ,
    shape, basement, weight, monomial), SSAFillings, AtomFillings, KeyFillings,
    TAtomFillings (standard index), statistics (SSAFMajorIndex, SSAFInversions,
    SSAFCoInversions, SSAFDn, SSAFColumnSets), crystal operators via CrystalEi/CrystalFi/
    CrystalSi with SSAFCrystalWord and SSAFCrystalString, LascouxSchutzenberger,
    SSAFWeightNormalize, Mason's insertion SSYTToAtom, RPPToAtom, SSAFKnownCharge and
    ChargeToMajMap (#51). The legacy LascouxSchutzenberger can return invalid fillings (for
    example on {{1}, {2}, {3, 3}} with i = 2); the new one stays within the filling set.

  • UnicellularChromatics, ported from legacy ChromaticFunctions: GraphAreaLists
    (0-first area lists, including circular ones), AreaConjugate, ValleyEdges,
    DiagramRookPlacements, OrientationPlot, PArrayPlot, UnitIntervalPlot (#51).

  • GraphTools: GraphOrientations, GraphAcyclicOrientations and OrientationSinks
    accept a Graph or an edge list, with StrictEdges/WeakEdges options;
    UnicellularChromatics now uses them instead of private copies (#51).

  • AlgebraicBases, an internal package with CreateBasis, shared by the algebra packages
    for basis symbols (formatting, index normalization, products) (#51).

  • CONVENTIONS.md and Tests/CompatibilityTests.m: shared object representations
    between packages (#51).

  • ClearSymmetricFunctionsCache[] (#23).

  • CombinatoricToolsRunSortedPermutations` (from RunSortedWords, now a shim) (#39).

  • GraphToolsRootedTreeGraphs` for n <= 10 (from TreesData) (#40).

  • kSchurSymmetric is exported (#27). MonomialQSymmetric, OrderedRootedTreeSize and
    RationalDyckPaths are 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).

  • Usage strings for every public symbol (#21, #36).

  • Datasets in Data/ with provenance (Data/README.md), found relative to the paclet (#8, #37).

  • Tests: wolframscript -file Tests/RunTests.m runs every Tests/*Tests.m file 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, combpoly and polytool covering about 25 families
    (#34, #41).

  • Scripts/BuildPaclet.m builds and verifies the paclet archive; RELEASING.md,
    CHANGELOG.md, CONTRIBUTING.md and an MIT LICENSE.

  • Examples/SymmetricFunctions-Introduction.m, a plain-text version of the introduction
    notebook.

Fixed

  • DualGrothendieckPolynomial, SetPartitionsTypeB, SetPartitionsNoZeroBlock and
    PosetNaturalLabeling were documented but not exported (they were only reachable by full
    private names). A new test checks that every documented name in Kernel/ is exported; test
    files could not catch this, because parsing a test file creates the public symbols it
    mentions.
    SymmetricFunctions
  • MacdonaldHSymmetric, ToMacdonaldHBasis, DeltaOperator, DeltaPrimOperator,
    NablaOperator, SkewKostkaCoefficient and KroneckerCoefficient no longer abort with
    $RecursionLimit, and memoized functions no longer emit Set::write (regression from
    eed1b77, #5, #23).
  • Loading no longer exports protected junk symbols name and rest (#23).
  • HallInnerProduct/JackInnerProduct with constant terms, Plethysm with constant terms,
    LRCoefficient for mismatched sizes, PrincipalSpecialization at q = 1, and
    SkewMacdonaldESymmetric (unresolved helper) (#20, #27).

Core utilities

  • CombinatoricTools: LatticeWordQ returns a Boolean; IntegerCompositions[0],
    Derangements[0], negative SetPartitions; PartitionIntervalSize;
    LinearlyIndependentRows; Durfee usage; the SystemPermutations` 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/RealRootedQ always return Booleans, EulerianA[0, m] (#4, #13, #24).
  • NewTableaux: KnuthRepresentative and BiwordRSK no longer recurse forever,
    CrystalSi on words, BSTHeightVector, empty skew SSYT, leaked helpers (#14, #25).
  • GTPatterns: partial RowFlags lists and invalid values (#14, #25).
  • GraphTools, MatroidTools, RookTools: GraphIndependentTriangles, GraphDeleteEdge,
    failed data imports no longer memoized, MatroidDeletion by a set, IsMatroidQ,
    MatroidContraction by dependent sets, RookPlacementPlot (#15, #26).
  • CatalanObjects, PermutationTools, QuasiSymmetricFunctions: DyckPaths,
    PerfectMatchings, FussCatalanPaths, ORTTo231Perm, empty base cases,
    SeparablePermutationQ, SplitSeparablePermutation, GeneratePAPS and
    PermutationFromWord caches, 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, OrderPolynomial for non-natural
    labellings, StembridgePoset size, SchurPolynomial (#18, #29).
  • Graph and tree data no longer load from a hard-coded ~/Dropbox path (#8, #37).

Removed

  • SymmetricFunctionsTestSuite.m; its cases are in Tests/SymmetricFunctionsTests.m (#27).
  • Tex2WebUtilities (website tooling of an older project, replaced by other tools); it
    remains available in the pre-refresh-2026-10 tag.

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.