Package: schubertpy
schubertpyOverviewschubertpyis 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 athttps://sites.math.rutgers.edu/~asbuch/qcalc/.FeaturesQuantum 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.InstallationTo install theschubertpymodule, run the following command:pipinstallschubertpyUsageExample usage demonstrating the capabilities ofschubertpy:fromschubertpyimportGrassmannian,OrthogonalGrassmannian,IsotropicGrassmanniandefmain():# Initialize the Grassmannian object with dimensionsgr=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()For detailed examples and more operations, refer to the test cases provided within the module's documentation.Running TestsTo verify the module's functionality, you can run the included tests with either of the following commands:maketestOr directly with Python:python3-munittestschubertpy/testcases/*.pyContributingContributions toschubertpyare 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.Licenseschubertpyis made available under the MIT License. For more details, see the LICENSE file included with the source code.