Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: arxiv.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (8.8%) to scientific vocabulary
Last synced: 10 months ago · JSON representation ·

Repository

Basic Info
  • Host: GitHub
  • Owner: tranduythanh
  • License: gpl-3.0
  • Language: Python
  • Default Branch: main
  • Size: 1.75 MB
Statistics
  • Stars: 1
  • Watchers: 2
  • Forks: 1
  • Open Issues: 0
  • Releases: 0
Created over 2 years ago · Last pushed about 1 year ago
Metadata Files
Readme License Citation

README.md

schubertpy

codecov Coverage evolution PR Coverage

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:

bash pip install schubertpy

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

bash sage -pip install schubertpy

Usage

Example on Google Colab

Example usage demonstrating the capabilities of schubertpy:

```python 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] - 7S[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] - 7S[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 = IsotropicGrassmannian(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 = OrthogonalGrassmannian(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]'))

og = OrthogonalGrassmannian(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]'))

if name == "main": main() ```

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

bash 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:

bash make test

Or directly with Python:

bash python3 -m unittest schubertpy/testcases/*.py

Authors

  • Dang Tuan Hiep 🇻🇳

    • Screenshot 2024-05-08 at 15 58 33
    • Email: hiepdt@dlu.edu.vn (Đặng Tuấn Hiệp)
  • Trần Duy Thanh 🇻🇳

    • Screenshot 2024-05-08 at 16 56 22
    • Email: fbtranduythanh@gmail.com
    • Email: 2015830@dlu.edu.vn
  • Hoàng Minh Đức 🇻🇳

    • Screenshot 2024-05-08 at 16 49 14
    • Email: 2113423@dlu.edu.vn
  • Nguyễn Trương Thiên Ân 🇻🇳

    • Screenshot 2024-05-08 at 16 50 21
    • Email: 2113421@dlu.edu.vn

Contributing

We highly encourage contributions to schubertpy. Whether you are looking to expand functionality, enhance performance, or fix bugs, your input is valuable. To get started:

  • Report Issues: If you encounter issues or have suggestions, please report them by creating an issue on our GitHub page.
  • Submit Pull Requests: Feel free to fork the repository and submit pull requests. Whether it's adding new features, optimizing existing code, or correcting bugs, your contributions are welcome.

Please ensure your pull requests are well-documented and include any necessary tests. For more details on contributing, refer to our contribution guidelines on GitHub.

License

schubertpy is open source software (under the GNU General Public License).

Citing

We encourage you to cite our work if you have used our package. See "Cite this repository" on this page.

Documentation

Owner

  • Name: Trần Duy Thanh
  • Login: tranduythanh
  • Kind: user
  • Location: Da Lat city, Lam Dong province, Vietnam

Software Engineer (Freelancer)

Citation (CITATION.cff)

cff-version: 1.2.0
message: If you use this software, please cite it as below.
title: schubertpy
version: 1.0.5
abstract: 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
authors:
  - family-names: 'Dang Tuan Hiep'
    email: hiepdt@dlu.edu.vn
    affiliation: Dalat University
  - family-names: Trần Duy Thanh
    email: fbtranduythanh@gmail.com
    affiliation: Dalat University
  - family-names: 'Hoàng Minh Đức'
    email: 2113423@dlu.edu.vn
    affiliation: Dalat University
  - family-names: 'Nguyễn Trương Thiên Ân'
    email: 2113421@dlu.edu.vn
    affiliation: Dalat University
license: GNU General Public License
url: https://github.com/tranduythanh/schubertpy

GitHub Events

Total
  • Watch event: 1
  • Issue comment event: 2
  • Push event: 16
  • Pull request event: 6
  • Fork event: 1
  • Create event: 3
Last Year
  • Watch event: 1
  • Issue comment event: 2
  • Push event: 16
  • Pull request event: 6
  • Fork event: 1
  • Create event: 3

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 0
  • Total pull requests: 5
  • Average time to close issues: N/A
  • Average time to close pull requests: about 19 hours
  • Total issue authors: 0
  • Total pull request authors: 2
  • Average comments per issue: 0
  • Average comments per pull request: 0.2
  • Merged pull requests: 3
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 5
  • Average time to close issues: N/A
  • Average time to close pull requests: about 19 hours
  • Issue authors: 0
  • Pull request authors: 2
  • Average comments per issue: 0
  • Average comments per pull request: 0.2
  • Merged pull requests: 3
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
  • tranduythanh (4)
  • mkoeppe (1)
Top Labels
Issue Labels
Pull Request Labels
codex (3)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 59 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 23
  • Total maintainers: 1
pypi.org: schubertpy

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

  • Versions: 23
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 59 Last month
Rankings
Dependent packages count: 9.9%
Average: 37.5%
Dependent repos count: 65.1%
Maintainers (1)
Last synced: 11 months ago

Dependencies

requirements.txt pypi
  • numpy >=1.24.3
  • sympy >=1.11.1
setup.py pypi