Skip to main content

schubmult

Program and package for rapid computation of Littlewood-Richardson coefficients of Schubert polynomials, compliant with sympy/symengine (and hence indirectly Sage)

The main purpose of this python package is for doing Schubert calculus-related calculations in python (and/or Sage).

  • Kinds of things covered (not exhaustive):
    • Permutation library
    • Fast multiplication of single, double, mixed-variable Schubert polynomials; quantum, quantum double, quantum mixed-variable, and all parabolic versions.
    • Noncommutative algebras such as NSym and the free algebra on words of nonnegative integers augmented with combinatorial bases.
    • RC graphs/PDs, BPDs, HPDs, SSYT, EG tableaux, and algebraic structures derived from them (Coxeter-Knuth insertion, RSK, RC graph transition formulas, tableaux decompositions). Kashiwara/Demazure crystal raising/lowering operators
    • Compatible with sympy and symengine, and hence Sage, probably not terribly difficult to integrate with libraries I'm not familiar with.

Docs to be hosted on Wiki

To install dev version

pip install git+https://github.com/matthematics/schubmult.git

RCGraph and BPD Functionality

The package implements two main combinatorial models for Schubert calculus:

  • RCGraph (Reduced Compatible Graphs): Encodes reduced words for permutations as graphs, supporting crystal operations and algebraic manipulations.
  • BPD (Bumpless Pipe Dreams): Represents tilings of an $n \times n$ grid with local tile rules, providing an alternative model for Schubert polynomials.
  • HPD (Hybrid Pipe Dreams): They exist in the library and are functional, not nearly as well developed at this time.

Bijections and Conversions

There is a canonical bijection (Gao and Huang, 2017) between RCGraphs and BPDs for a given permutation and grid size:

  • BPD.from_rc_graph(rc_graph): Converts an RCGraph to a BPD using the inversion data.
  • BPD.to_rc_graph(): Converts a BPD back to its corresponding RCGraph by extracting the reduced compatible sequence from the tile configuration. These conversions are invertible up to normalization and grid size.

Operations

RCGraph and BPD objects support:

  • Enumeration for a given permutation and grid size
  • Crystal operators (raising/lowering) and combinatorial mutations (currently BPDs only through the bijection)
  • Conversion to algebraic elements in the Schubert and nilHecke rings
  • Visualization and pretty-printing
  • RCGraphs have a product through RCGraphRing (similar to concatenation, not polynomial product)

Example Usage

from schubmult import RCGraph, BPD, Permutation

rc = RCGraph.random_rc_graph(Permutation([5,1,6,2,4,3]), 5)
bpd = BPD.from_rc_graph(rc)
rc2 = bpd.to_rc_graph()
assert rc2 == rc

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

schubmult-4.1.0.tar.gz (10.0 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

schubmult-4.1.0-py3-none-any.whl (851.0 kB view details)

Uploaded Python 3

File details

Details for the file schubmult-4.1.0.tar.gz.

File metadata

  • Download URL: schubmult-4.1.0.tar.gz
  • Upload date:
  • Size: 10.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for schubmult-4.1.0.tar.gz
Algorithm Hash digest
SHA256 ba2db48a6f19ecb09f279234ccd83b3107757c7891b062cfa62daa2679ef198c
MD5 a905e65582a839917fb4802ce2b23aca
BLAKE2b-256 1afa4f2fece9123cbc3a6023732c60fa0fa5c7e0b7527e35e2dfed5a7a62706e

See more details on using hashes here.

File details

Details for the file schubmult-4.1.0-py3-none-any.whl.

File metadata

  • Download URL: schubmult-4.1.0-py3-none-any.whl
  • Upload date:
  • Size: 851.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for schubmult-4.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b26d24175471ca78df991d2742a2ca5efaa70c40a39f24a808266d4f66eb5c77
MD5 a25188f488e9cca24699c78029aa1edd
BLAKE2b-256 dc406732fda9cffb25097e1d9c26d5285316adb817388148fb1b80ba5b37afca

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page