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

Release files for schubmult 4.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for schubmult 4.2.0
File Size Uploaded
schubmult-4.2.0.tar.gz 1.1 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for schubmult 4.2.0
File Interpreter ABI Platform
schubmult-4.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 2.0 MB

Release files / schubmult-4.2.0.tar.gz

Download URL schubmult-4.2.0.tar.gz
Size 1.1 MB
Tags Source
SHA-256 checksum
How to use checksums
a2c7fe1122846a78f22295d7aef48e89a85ad825726696b45549826fbb42d0ee
BLAKE2b-256 checksum
How to use checksums
624146c76829b2ddf7d01659bb864744e27e39d682cc6fd60538ce958e6bf078
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.12

Release files / schubmult-4.2.0-py3-none-any.whl

Download URL schubmult-4.2.0-py3-none-any.whl
Size 876.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d12b838c3e6a83238310e29578f5c326cabc021f935c0e8453cd19b3664d7d95
BLAKE2b-256 checksum
How to use checksums
3e479fc5686965c211f3a916d264584f5e34526b845fc5329f9875df078c533c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.12

Release history Release notifications | RSS feed

5.1.1

26 release files

5.1.0

26 release files

5.0.0

26 release files

This release

4.2.0 This release

2 release files

4.1.0

2 release files

4.0.0

2 release files

3.0.1

2 release files

3.0.0

2 release files

2.0.4

2 release files

2.0.3

2 release files

2.0.2

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.4.3

1 release file

1.4.2

1 release file

1.4.1

1 release file

1.4.0

1 release file

1.3.9

1 release file

1.3.8

1 release file

1.3.7

1 release file

1.3.6

1 release file

1.3.5

1 release file

1.3.4

1 release file

1.3.3

1 release file

1.3.2

1 release file

1.3.1

1 release file

1.3.0

1 release file

1.2.11

1 release file

1.2.10

1 release file

1.2.9

1 release file

1.2.8

1 release file

1.2.7

1 release file

1.2.6

1 release file

1.2.5

1 release file

1.2.4

1 release file

1.2.3

1 release file

1.2.2

1 release file

1.2.1

1 release file

1.2.0

1 release file

1.1.6

1 release file

1.1.5

1 release file

1.1.4

1 release file

1.1.3

1 release file

1.1.2

1 release file

1.1.1

1 release file

1.1.0

1 release file

1.0.20

1 release file

1.0.19

1 release file

1.0.18

1 release file

1.0.17

1 release file

1.0.16

1 release file

1.0.15

1 release file

1.0.14

1 release file

1.0.13

1 release file

1.0.12

1 release file

1.0.11

1 release file

1.0.10

1 release file

1.0.9

1 release file

1.0.8

1 release file

1.0.7

1 release file

1.0.6

1 release file

1.0.5

1 release file

1.0.4

1 release file

1.0.3

1 release file

1.0.2

1 release file

1.0.1

1 release file

1.0.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page