Skip to main content

This Python module facilitates operations such as quantum Pieri rules, quantum Giambelli formulae, action and multiplication of Schubert classes, and conversion between different representations of Schubert classes

Project description

schubertpy

Overview

schubertpy is a powerful Python package designed for performing advanced mathematical operations on the Grassmannian, a key concept in algebraic geometry and representation theory. This module facilitates operations such as quantum Pieri rules, quantum Giambelli formulae, and the manipulation of Schubert classes. It is a Python implementation based on the comprehensive maple library available at https://sites.math.rutgers.edu/~asbuch/qcalc/.

References:

Features

  • Quantum Pieri Rule Calculations: Efficient computation of quantum Pieri rules applied to Schubert classes.
  • Quantum Giambelli Formulae: Expression of products of Schubert classes in alternative forms using quantum Giambelli formulae.
  • Schubert Class Operations: Perform actions and multiplications on Schubert classes, in both classical and quantum contexts.
  • Dualization and Conversion: Dualize Schubert classes and convert between different Schubert class representations.

Installation

To install the schubertpy module, run the following command:

pip install schubertpy

If you wanna use with sagemath, run the following command:

sage -pip install schubertpy

Usage

Example usage demonstrating the capabilities of schubertpy:

from schubertpy import Grassmannian, OrthogonalGrassmannian, IsotropicGrassmannian

def main():
    # Initialize the Grassmannian object with dimensions
    gr = Grassmannian(2, 5)
    print(gr.qpieri(1, 'S[2,1] - 7*S[3,2]'))
    print(gr.qact('S[1]+S[2]*S[3]', 'S[2,1]+S[3,2]'))
    print(gr.qgiambelli('S[2,1]*S[2,1]'))
    print(gr.qmult('S[2,1]', 'S[2,1]+S[3,2]'))
    print(gr.qtoS('S[2,1]*S[2,1]*S[2,1]'))
    print(gr.pieri(1, 'S[2,1] - 7*S[3,2]'))
    print(gr.act('S[1]+S[2]*S[3]', 'S[2,1]+S[3,2]'))
    print(gr.giambelli('S[2,1]*S[2,1]'))
    print(gr.mult('S[2,1]', 'S[2,1]+S[3,2]'))
    print(gr.toS('S[2,1]*S[2,1]*S[2,1]'))
    print(gr.dualize('S[1]+S[2]'))


    ig = Grassmannian(2, 6)
    print(ig.qpieri(1, 'S[2,1] - 7*S[3,2]'))
    print(ig.qact('S[1]+S[2]*S[3]', 'S[2,1]+S[3,2]'))
    print(ig.qgiambelli('S[2,1]*S[2,1]'))
    print(ig.qmult('S[2,1]', 'S[2,1]+S[3,2]'))
    print(ig.qtoS('S[2,1]*S[2,1]*S[2,1]'))
    print(ig.pieri(1, 'S[2,1] - 7*S[3,2]'))
    print(ig.act('S[1]+S[2]*S[3]', 'S[2,1]+S[3,2]'))
    print(ig.giambelli('S[2,1]*S[2,1]'))
    print(ig.mult('S[2,1]', 'S[2,1]+S[3,2]'))
    print(ig.toS('S[2,1]*S[2,1]*S[2,1]'))
    print(ig.dualize('S[1]+S[2]'))

    og = Grassmannian(2, 6)
    print(og.qpieri(1, 'S[2,1] - 7*S[3,2]'))
    print(og.qact('S[1]+S[2]*S[3]', 'S[2,1]+S[3,2]'))
    print(og.qgiambelli('S[2,1]*S[2,1]'))
    print(og.qmult('S[2,1]', 'S[2,1]+S[3,2]'))
    print(og.qtoS('S[2,1]*S[2,1]*S[2,1]'))
    print(og.pieri(1, 'S[2,1] - 7*S[3,2]'))
    print(og.act('S[1]+S[2]*S[3]', 'S[2,1]+S[3,2]'))
    print(og.giambelli('S[2,1]*S[2,1]'))
    print(og.mult('S[2,1]', 'S[2,1]+S[3,2]'))
    print(og.toS('S[2,1]*S[2,1]*S[2,1]'))
    print(og.dualize('S[1]+S[2]'))

    og = Grassmannian(2, 7)
    print(og.qpieri(1, 'S[2,1] - 7*S[3,2]'))
    print(og.qact('S[1]+S[2]*S[3]', 'S[2,1]+S[3,2]'))
    print(og.qgiambelli('S[2,1]*S[2,1]'))
    print(og.qmult('S[2,1]', 'S[2,1]+S[3,2]'))
    print(og.qtoS('S[2,1]*S[2,1]*S[2,1]'))
    print(og.pieri(1, 'S[2,1] - 7*S[3,2]'))
    print(og.act('S[1]+S[2]*S[3]', 'S[2,1]+S[3,2]'))
    print(og.giambelli('S[2,1]*S[2,1]'))
    print(og.mult('S[2,1]', 'S[2,1]+S[3,2]'))
    print(og.toS('S[2,1]*S[2,1]*S[2,1]'))
    print(og.dualize('S[1]+S[2]'))


if __name__ == "__main__":
    main()

You wanna use with sagemath? You can save above example to main.py and then run:

sage -python main.py

For detailed examples and more operations, refer to the test cases provided within the module's documentation.

Running Tests

To verify the module's functionality, you can run the included tests with either of the following commands:

make test

Or directly with Python:

python3 -m unittest schubertpy/testcases/*.py

Contributing

Contributions to schubertpy are highly encouraged, whether they involve extending functionality, enhancing performance, or fixing bugs. Please feel free to submit issues or pull requests on GitHub to suggest changes or improvements.

License

schubertpy is made available under the MIT License. For more details, see the LICENSE file included with the source code.

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

schubertpy-0.3.15.tar.gz (22.4 kB view details)

Uploaded Source

Built Distribution

schubertpy-0.3.15-py3-none-any.whl (26.1 kB view details)

Uploaded Python 3

File details

Details for the file schubertpy-0.3.15.tar.gz.

File metadata

  • Download URL: schubertpy-0.3.15.tar.gz
  • Upload date:
  • Size: 22.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.10.10

File hashes

Hashes for schubertpy-0.3.15.tar.gz
Algorithm Hash digest
SHA256 3ebef75f9a9e70e1f1fda7b8a88949aae18072f82c0bfec3e6d69c6c4dbf4f00
MD5 c5c198190022edfe7864201fd5812b32
BLAKE2b-256 44ed9aae07e4f6089b17b8b2a4a4567caedd4af4a617e2bdadcb8ab602032fc0

See more details on using hashes here.

File details

Details for the file schubertpy-0.3.15-py3-none-any.whl.

File metadata

  • Download URL: schubertpy-0.3.15-py3-none-any.whl
  • Upload date:
  • Size: 26.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.10.10

File hashes

Hashes for schubertpy-0.3.15-py3-none-any.whl
Algorithm Hash digest
SHA256 a2dbf63606f7176e01b38fc48ec42f1afc8f4fe6fc8edaca16e1ddea069e161c
MD5 181cf75ba5f0683baf225230fd0036e6
BLAKE2b-256 42449e0bae6777910db986ab28ac0cb7166406d7942996a27d412ce8dc4a61c9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page