Skip to main content

Package for algebraic computation with single, double, and quantum Schubert polynomials

Project description

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

Project details


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.0.0.tar.gz (2.4 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.0.0-py3-none-any.whl (258.7 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for schubmult-4.0.0.tar.gz
Algorithm Hash digest
SHA256 39303c4ebf304e620d7210bd99bf51d0e10343f1c1b13e812fbffce0da4cbb3f
MD5 a091a83ae89842fb4f5ae560df4a6b51
BLAKE2b-256 0ddb65a4eaa5cc0534bcce47618718aebac04fb5dd31a8656f1e6b08be6e40e2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: schubmult-4.0.0-py3-none-any.whl
  • Upload date:
  • Size: 258.7 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.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bc870f94a7e8ca11724cea20fdadaa0eff79c525af88fa85d7657627d90fccec
MD5 c7a669c18154aee67efe22e944d94191
BLAKE2b-256 ab7530723ab245e87ef5e2a1d229a1c92ea8667954a2e5e48995e8899763fb25

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 Pingdom Monitoring Sentry Error logging StatusPage Status page