schubmult 5.2.0b2__tar.gz → 5.2.0b3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/CHANGELOG.md +22 -0
- {schubmult-5.2.0b2/src/schubmult.egg-info → schubmult-5.2.0b3}/PKG-INFO +1 -1
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/_version.py +3 -3
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/mult/positivity.py +21 -6
- {schubmult-5.2.0b2 → schubmult-5.2.0b3/src/schubmult.egg-info}/PKG-INFO +1 -1
- schubmult-5.2.0b3/src/schubmult.egg-info/scm_version.json +8 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/mult/test_positivity.py +34 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/mult/test_quantum_double.py +34 -1
- schubmult-5.2.0b2/src/schubmult.egg-info/scm_version.json +0 -8
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/LICENSE +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/MANIFEST.in +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/README.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/benchmark_equivcalc.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/benchmark_qk_kato.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/benchmark_schubmult.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/cpp/Makefile +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/cpp/compare.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/cpp/expr.h +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/cpp/kernel_double.h +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/cpp/kernel_double_alt.h +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/cpp/kernel_q.h +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/cpp/kernel_q_double.h +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/cpp/kernel_single.h +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/cpp/kernel_transition.h +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/cpp/positivity.h +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/cpp/schub_common.h +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/cpp/schub_quantum.h +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/cpp/schub_symbolic.h +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/cpp/schubmult_api.h +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/cpp/schubmult_core.cpp +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/cpp/schubmult_double_core.cpp +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/cpp/schubmult_module.cpp +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/cpp/schubmult_q_core.cpp +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/cpp/schubmult_q_double_core.cpp +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/API.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/README.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/generate_docs.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/index.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/README.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/_scripts/grothmult_double.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/_scripts/grothmult_py.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/_scripts/grothmult_q.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/_scripts/grothmult_q_double.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/_scripts/index.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/_scripts/schubmult_double.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/_scripts/schubmult_py.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/_scripts/schubmult_q.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/_scripts/schubmult_q_double.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/abc.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/combinatorics/anti_rc_graph.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/combinatorics/bpd.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/combinatorics/chute_move_element.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/combinatorics/crystal_graph.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/combinatorics/double_forest.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/combinatorics/hecke_plactic.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/combinatorics/hpd.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/combinatorics/increasing_tableau.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/combinatorics/index.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/combinatorics/indexed_forests.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/combinatorics/inversions_tableau.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/combinatorics/mbpd.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/combinatorics/nilplactic.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/combinatorics/permutation.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/combinatorics/pipe_dream.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/combinatorics/plactic.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/combinatorics/planar_history.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/combinatorics/quasi_crystal_graph.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/combinatorics/rc_graph.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/combinatorics/root_tableau.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/combinatorics/schub_poly.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/combinatorics/schubert_monomial_graph.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/combinatorics/set_valued_tableau.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/combinatorics/set_word.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/combinatorics/wc_graph.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/index.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/mult/_accel.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/mult/double.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/mult/groth.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/mult/groth_double.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/mult/groth_quantum.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/mult/groth_quantum_double.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/mult/index.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/mult/positivity.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/mult/quantum.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/mult/quantum_double.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/mult/separated_descents.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/mult/single.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/base_ring.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/combinatorial/alt_rc_graph_ring.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/combinatorial/bounded_rc_factor_algebra.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/combinatorial/bounded_rc_forest_factor_algebra.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/combinatorial/bounded_wc_factor_algebra.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/combinatorial/bpd_ring.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/combinatorial/chute_move_ring.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/combinatorial/crystal_graph_ring.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/combinatorial/dual_rc_graph_ring.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/combinatorial/eg_plactic_ring.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/combinatorial/eg_ring.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/combinatorial/forest_invariant_rc_ring.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/combinatorial/forest_rc_ring.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/combinatorial/grass_tensor_algebra.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/combinatorial/grove_wc_ring.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/combinatorial/hw_rc_ring.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/combinatorial/index.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/combinatorial/key_rc_ring.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/combinatorial/plactic_algebra.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/combinatorial/qy_rc_graph_ring.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/combinatorial/rc_graph_ring.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/combinatorial/rc_schubert_ring.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/combinatorial/schubert_monomial_ring.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/combinatorial/schubert_rc_ring.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/combinatorial/slide_rc_ring.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/combinatorial/wc_graph_ring.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/direct_product_ring.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/free_algebra/_core.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/free_algebra/composition_schubert_basis.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/free_algebra/elementary_basis.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/free_algebra/forest_basis.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/free_algebra/free_algebra_basis.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/free_algebra/fundamental_slide_basis.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/free_algebra/glide_basis.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/free_algebra/grothendieck_basis.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/free_algebra/grove_basis.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/free_algebra/index.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/free_algebra/j_basis.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/free_algebra/jt_basis.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/free_algebra/key_basis.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/free_algebra/lascoux_basis.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/free_algebra/monomial_slide_basis.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/free_algebra/nelementary_basis.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/free_algebra/schubert_basis.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/free_algebra/schubert_schur_basis.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/free_algebra/schur_elementary_basis.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/free_algebra/separated_descents_basis.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/free_algebra/word_basis.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/free_algebra/z_basis.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/index.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/nsym.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/polynomial_algebra/_core.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/polynomial_algebra/anti_schubert_poly_basis.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/polynomial_algebra/base_polynomial_basis.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/polynomial_algebra/composition_schubert_poly_basis.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/polynomial_algebra/double_forest_poly_basis.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/polynomial_algebra/elem_sym_poly_basis.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/polynomial_algebra/forest_poly_basis.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/polynomial_algebra/fundamental_slide_poly_basis.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/polynomial_algebra/glide_poly_basis.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/polynomial_algebra/grothendieck_poly_basis.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/polynomial_algebra/grove_poly_basis.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/polynomial_algebra/index.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/polynomial_algebra/key_poly_basis.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/polynomial_algebra/lascoux_poly_basis.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/polynomial_algebra/monomial_basis.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/polynomial_algebra/monomial_slide_poly_basis.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/polynomial_algebra/polynomial_basis.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/polynomial_algebra/schubert_poly_basis.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/polynomial_algebra/sepdesc_poly_basis.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/printing.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/product_ring.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/quasisymmetric_functions.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/schubert/base_schubert_ring.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/schubert/beta_coxeter.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/schubert/chevalley.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/schubert/double_grothendieck_ring.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/schubert/double_schubert_ring.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/schubert/grothendieck_ring.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/schubert/index.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/schubert/nil_hecke.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/schubert/parabolic_quantum_double_schubert_ring.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/schubert/parabolic_quantum_schubert_ring.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/schubert/quantum_double_schubert_ring.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/schubert/quantum_schubert_ring.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/schubert/schubert_ring.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/schubert/separated_descents.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/tensor_ring.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/thompson_algebra.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/sage/_common.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/sage/_convert.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/sage/double_schubert.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/sage/grothendieck.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/sage/index.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/sage/polynomial_algebra.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/sage/quantum_schubert.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/symbolic/common_polys.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/symbolic/domain.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/symbolic/functions.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/symbolic/index.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/symbolic/poly/index.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/symbolic/poly/schub_poly.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/symbolic/poly/variables.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/symbolic/symmetric_polynomials/complete_sym.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/symbolic/symmetric_polynomials/elem_sym.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/symbolic/symmetric_polynomials/functions.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/symbolic/symmetric_polynomials/index.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/symbolic/symmetric_polynomials/qelem_sym.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/utils/_grid_print.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/utils/_lazy.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/utils/_mul_utils.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/utils/_printable.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/utils/argparse.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/utils/index.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/utils/logging.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/utils/parsing.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/utils/perm_utils.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/utils/schub_lib.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/utils/test_utils.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/utils/tuple_utils.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/visualization.md +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/images/algostick.png +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/images/figure.png +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/mkdocs.yml +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/pyproject.toml +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/requirements.txt +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/setup.cfg +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/setup.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/requirements.txt +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/__init__.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/_scripts/__init__.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/_scripts/grothmult_double.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/_scripts/grothmult_py.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/_scripts/grothmult_q.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/_scripts/grothmult_q_double.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/_scripts/schubmult_double.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/_scripts/schubmult_py.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/_scripts/schubmult_q.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/_scripts/schubmult_q_double.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/_typing.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/abc.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/combinatorics/__init__.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/combinatorics/anti_rc_graph.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/combinatorics/bpd.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/combinatorics/chute_move_element.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/combinatorics/crystal_graph.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/combinatorics/double_forest.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/combinatorics/hecke_plactic.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/combinatorics/hpd.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/combinatorics/increasing_tableau.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/combinatorics/indexed_forests.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/combinatorics/inversions_tableau.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/combinatorics/mbpd.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/combinatorics/nilplactic.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/combinatorics/permutation.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/combinatorics/pipe_dream.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/combinatorics/plactic.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/combinatorics/planar_history.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/combinatorics/quasi_crystal_graph.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/combinatorics/rc_graph.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/combinatorics/root_tableau.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/combinatorics/schub_poly.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/combinatorics/schubert_monomial_graph.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/combinatorics/set_valued_tableau.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/combinatorics/set_word.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/combinatorics/wc_graph.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/mult/__init__.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/mult/_accel.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/mult/_shadow.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/mult/double.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/mult/groth.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/mult/groth_double.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/mult/groth_quantum.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/mult/groth_quantum_double.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/mult/quantum.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/mult/quantum_double.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/mult/separated_descents.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/mult/single.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/mult/transition.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/__init__.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/base_ring.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/combinatorial/__init__.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/combinatorial/alt_rc_graph_ring.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/combinatorial/bounded_rc_factor_algebra.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/combinatorial/bounded_rc_forest_factor_algebra.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/combinatorial/bounded_wc_factor_algebra.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/combinatorial/bpd_ring.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/combinatorial/chute_move_ring.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/combinatorial/crystal_graph_ring.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/combinatorial/dual_rc_graph_ring.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/combinatorial/eg_plactic_ring.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/combinatorial/eg_ring.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/combinatorial/forest_invariant_rc_ring.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/combinatorial/forest_rc_ring.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/combinatorial/grass_tensor_algebra.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/combinatorial/grove_wc_ring.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/combinatorial/hw_rc_ring.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/combinatorial/key_rc_ring.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/combinatorial/plactic_algebra.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/combinatorial/qy_rc_graph_ring.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/combinatorial/rc_graph_ring.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/combinatorial/rc_schubert_ring.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/combinatorial/schubert_monomial_ring.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/combinatorial/schubert_rc_ring.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/combinatorial/slide_rc_ring.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/combinatorial/wc_graph_ring.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/direct_product_ring.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/free_algebra/__init__.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/free_algebra/_core.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/free_algebra/composition_schubert_basis.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/free_algebra/elementary_basis.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/free_algebra/forest_basis.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/free_algebra/free_algebra_basis.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/free_algebra/fundamental_slide_basis.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/free_algebra/glide_basis.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/free_algebra/grothendieck_basis.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/free_algebra/grove_basis.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/free_algebra/j_basis.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/free_algebra/jt_basis.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/free_algebra/key_basis.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/free_algebra/lascoux_basis.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/free_algebra/monomial_slide_basis.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/free_algebra/nelementary_basis.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/free_algebra/schubert_basis.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/free_algebra/schubert_schur_basis.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/free_algebra/schur_elementary_basis.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/free_algebra/separated_descents_basis.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/free_algebra/word_basis.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/free_algebra/z_basis.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/nsym.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/polynomial_algebra/__init__.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/polynomial_algebra/_core.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/polynomial_algebra/anti_schubert_poly_basis.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/polynomial_algebra/base_polynomial_basis.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/polynomial_algebra/composition_schubert_poly_basis.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/polynomial_algebra/double_forest_poly_basis.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/polynomial_algebra/elem_sym_poly_basis.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/polynomial_algebra/forest_poly_basis.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/polynomial_algebra/fundamental_slide_poly_basis.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/polynomial_algebra/glide_poly_basis.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/polynomial_algebra/grothendieck_poly_basis.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/polynomial_algebra/grove_poly_basis.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/polynomial_algebra/key_poly_basis.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/polynomial_algebra/lascoux_poly_basis.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/polynomial_algebra/monomial_basis.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/polynomial_algebra/monomial_slide_poly_basis.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/polynomial_algebra/polynomial_basis.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/polynomial_algebra/schubert_poly_basis.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/polynomial_algebra/sepdesc_poly_basis.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/printing.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/product_ring.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/quasisymmetric_functions.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/schubert/__init__.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/schubert/base_schubert_ring.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/schubert/beta_coxeter.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/schubert/chevalley.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/schubert/double_grothendieck_ring.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/schubert/double_schubert_ring.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/schubert/grothendieck_ring.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/schubert/nil_hecke.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/schubert/parabolic_quantum_double_schubert_ring.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/schubert/parabolic_quantum_schubert_ring.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/schubert/quantum_double_schubert_ring.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/schubert/quantum_schubert_ring.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/schubert/schubert_ring.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/schubert/separated_descents.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/tensor_ring.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/rings/thompson_algebra.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/sage/__init__.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/sage/_common.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/sage/_convert.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/sage/double_schubert.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/sage/grothendieck.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/sage/polynomial_algebra.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/sage/quantum_schubert.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/sage/symengine_ring.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/symbolic/__init__.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/symbolic/common_polys.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/symbolic/domain.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/symbolic/functions.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/symbolic/poly/__init__.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/symbolic/poly/schub_poly.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/symbolic/poly/variables.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/symbolic/symmetric_polynomials/__init__.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/symbolic/symmetric_polynomials/complete_sym.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/symbolic/symmetric_polynomials/elem_sym.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/symbolic/symmetric_polynomials/functions.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/symbolic/symmetric_polynomials/qelem_sym.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/utils/__init__.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/utils/_grid_print.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/utils/_lazy.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/utils/_mul_utils.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/utils/_printable.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/utils/argparse.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/utils/logging.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/utils/parsing.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/utils/perm_utils.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/utils/schub_lib.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/utils/test_utils.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/utils/tuple_utils.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult/visualization.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult.egg-info/SOURCES.txt +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult.egg-info/dependency_links.txt +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult.egg-info/entry_points.txt +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult.egg-info/requires.txt +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult.egg-info/scm_file_list.json +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/src/schubmult.egg-info/top_level.txt +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/combinatorics/test_anti_rc_graph.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/combinatorics/test_bpd.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/combinatorics/test_indexed_forests.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/combinatorics/test_inversions_tableau.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/combinatorics/test_mbpd.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/combinatorics/test_nilplactic.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/combinatorics/test_permutation_order.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/combinatorics/test_pipe_dream.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/combinatorics/test_rc_graph.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/combinatorics/test_wc_graph.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/mult/test_accel.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/mult/test_double.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/mult/test_groth.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/mult/test_groth_double.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/mult/test_groth_quantum.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/mult/test_groth_quantum_double.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/mult/test_probabilistic.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/mult/test_quantum.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/mult/test_separated_descents.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/mult/test_single.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/mult/test_transition.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/rings/test_combinatorial.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/rings/test_duality.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/rings/test_forest_rc_ring.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/rings/test_free_algebra.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/rings/test_parabolic_quantum_ring.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/rings/test_polynomial_algebra.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/rings/test_public_imports.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/rings/test_schubert_rings.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/sage/test_polynomial_algebra.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/sage/test_sage_rings.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/scripts/_cmd_line_json.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/scripts/data/grothmult_double/grothmult_double_1_3_2T2_1_3_mixed-var.json +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/scripts/data/grothmult_double/grothmult_double_1_3_2T2_1_3_mixed-var_display-positive.json +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/scripts/data/grothmult_double/grothmult_double_2_1_3T2_1_3.json +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/scripts/data/grothmult_double/grothmult_double_code_1_1T0_1T1.json +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/scripts/data/grothmult_double/grothmult_double_code_2_0_1T1_1_mixed-var.json +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/scripts/data/grothmult_double/grothmult_double_display-mode_raw_2_1_4_3T1_3_2_mixed-var.json +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/scripts/data/grothmult_py/grothmult_py_1_3_2T1_3_2T2_1_3.json +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/scripts/data/grothmult_py/grothmult_py_2_1_4_3T1_3_2.json +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/scripts/data/grothmult_py/grothmult_py_3_1_2T2_1_3.json +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/scripts/data/grothmult_py/grothmult_py_code_1_0_1T0_1.json +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/scripts/data/grothmult_py/grothmult_py_display-mode_raw_3_1_2T1_3_2.json +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/scripts/data/grothmult_q/grothmult_q_1_3_2T1_3_2T2_1_3.json +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/scripts/data/grothmult_q/grothmult_q_2_1T2_1.json +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/scripts/data/grothmult_q/grothmult_q_2_3_1T3_1_2.json +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/scripts/data/grothmult_q/grothmult_q_code_0_2T1_1.json +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/scripts/data/grothmult_q/grothmult_q_code_1_1T2_0.json +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/scripts/data/grothmult_q/grothmult_q_display-mode_raw_3_1_2T1_3_2.json +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/scripts/data/grothmult_q_double/grothmult_q_double_1_3_2T2_1_3_mixed-var.json +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/scripts/data/grothmult_q_double/grothmult_q_double_2_1T2_1.json +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/scripts/data/grothmult_q_double/grothmult_q_double_2_1T2_1_mixed-var.json +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/scripts/data/grothmult_q_double/grothmult_q_double_code_1_0T1_0T1_0.json +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/scripts/data/grothmult_q_double/grothmult_q_double_code_1_1T0_1_mixed-var.json +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/scripts/data/grothmult_q_double/grothmult_q_double_display-mode_raw_2_3_1T1_3_2_mixed-var.json +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/scripts/data/schubmult_double/schubmult_double_3_6_1_5_2_4T2_3_5_4_1_6_mixed-var_display-positive.json +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/scripts/data/schubmult_double/schubmult_double_code_3_0_3T2_1_0_2_display-positive.json +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/scripts/data/schubmult_double/schubmult_double_code_coprod_5_0_1_2T2_3_display-positive.json +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/scripts/data/schubmult_double/schubmult_double_coprod_3_6_1_5_2_4T2_4_display-positive_mixed-var.json +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/scripts/data/schubmult_double/schubmult_double_mixed-var_display-positive_coprod_code_1_0_2_0_1T2_4.json +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/scripts/data/schubmult_py/schubmult_py_code_5_0_3_1_2T1_0_3_2_0_5.json +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/scripts/data/schubmult_q/schubmult_q_code_2_0_5T3_0_2.json +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/scripts/data/schubmult_q/schubmult_q_parabolic_2_3_code_1_2T1_3.json +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/scripts/data/schubmult_q_double/schubmult_q_double_code_1_0_3T2_0_2_mixed-var_display-positive.json +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/scripts/data/schubmult_q_double/schubmult_q_double_code_2_0_5T3_0_2.json +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/scripts/data/schubmult_q_double/schubmult_q_double_code_2_0_5T3_0_2_display-positive.json +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/scripts/data/schubmult_q_double/schubmult_q_double_parabolic_2_3_code_1_2T1_3_display-positive.json +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/scripts/test_grothmult_double.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/scripts/test_grothmult_py.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/scripts/test_grothmult_q.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/scripts/test_grothmult_q_double.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/scripts/test_schubmult_double.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/scripts/test_schubmult_py.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/scripts/test_schubmult_q.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/scripts/test_schubmult_q_double.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/test_api_surface.py +0 -0
- {schubmult-5.2.0b2 → schubmult-5.2.0b3}/tests/web/test_download_limits.py +0 -0
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 5.2.0b3
|
|
4
|
+
|
|
5
|
+
Pre-release of 5.2.0; identical to 5.2.0b2 apart from one bug fix in the manifestly positive
|
|
6
|
+
display of double Schubert structure constants. Pre-releases install with
|
|
7
|
+
`pip install --pre schubmult`; `pip install schubmult` keeps giving 5.1.1 until 5.2.0 is final.
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- **`posify` / `q_posify` crashed or returned a wrong expression in the one-dominates recursion**
|
|
12
|
+
(`schubmult_q_double --mixed-var --display-positive`, `schubmult.mult.positivity.posify`). When
|
|
13
|
+
$u$ one-dominates $w$, `posify` strips the first row and recurses on $(\phi_1 u, v', \phi_1 w)$
|
|
14
|
+
over the shifted alphabet $y_2, y_3, \ldots$, passed as a plain tuple. Two bugs met there: the
|
|
15
|
+
reduced coefficient was still computed in the unshifted alphabet, so any recursion that bottomed
|
|
16
|
+
out in the integer program returned $c(y_1, y_2, \ldots)$ instead of $c(y_2, y_3, \ldots)$; and
|
|
17
|
+
`compute_positive_rep` used `tuple.index`, which raises on the $z$ variables where
|
|
18
|
+
`GeneratingSet.index` returns `-1`. Hit for instance by $u=2431$, $v=1432$, $w=34512$, where
|
|
19
|
+
`schubmult_q_double 2 4 3 1 - 1 4 3 2 --mixed-var --display-positive` died with a bare
|
|
20
|
+
`Exception`. The reduced coefficient is now computed in the shifted alphabet and
|
|
21
|
+
`compute_positive_rep` accepts plain sequences. `posify` and `q_posify` now reconstruct every
|
|
22
|
+
structure constant on all of $S_4$ (5,558 classical and 11,422 quantum coefficients), and both
|
|
23
|
+
are covered by direct unit tests.
|
|
24
|
+
|
|
3
25
|
## 5.2.0b2
|
|
4
26
|
|
|
5
27
|
Pre-release of 5.2.0: SageMath integration (`schubmult.sage`), a correctness fix for parabolic
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: schubmult
|
|
3
|
-
Version: 5.2.
|
|
3
|
+
Version: 5.2.0b3
|
|
4
4
|
Summary: Package for algebraic computation with single, double, and quantum Schubert polynomials
|
|
5
5
|
Author-email: Matt Samuel <schubmult@gmail.com>
|
|
6
6
|
Maintainer-email: Matt Samuel <schubmult@gmail.com>
|
|
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
|
|
|
18
18
|
commit_id: str | None
|
|
19
19
|
__commit_id__: str | None
|
|
20
20
|
|
|
21
|
-
__version__ = version = '5.2.
|
|
22
|
-
__version_tuple__ = version_tuple = (5, 2, 0, '
|
|
21
|
+
__version__ = version = '5.2.0b3'
|
|
22
|
+
__version_tuple__ = version_tuple = (5, 2, 0, 'b3')
|
|
23
23
|
|
|
24
|
-
__commit_id__ = commit_id = '
|
|
24
|
+
__commit_id__ = commit_id = 'gb2213fbec'
|
|
@@ -51,6 +51,18 @@ from .double import schubmult_double, schubmult_double_pair, schubmult_double_pa
|
|
|
51
51
|
logger = get_logger(__name__)
|
|
52
52
|
|
|
53
53
|
|
|
54
|
+
def _var_index(varlist, sym):
|
|
55
|
+
"""Position of ``sym`` in ``varlist`` or ``-1``.
|
|
56
|
+
|
|
57
|
+
``posify`` recurses with ``var2[1:]``, which turns a ``GeneratingSet`` into a plain tuple
|
|
58
|
+
whose ``.index`` raises instead of returning ``-1`` for foreign symbols.
|
|
59
|
+
"""
|
|
60
|
+
try:
|
|
61
|
+
return varlist.index(sym)
|
|
62
|
+
except ValueError:
|
|
63
|
+
return -1
|
|
64
|
+
|
|
65
|
+
|
|
54
66
|
def cbc_solver(msg=False):
|
|
55
67
|
"""PuLP ``COIN_CMD`` using the CBC binary bundled by ``pulp[cbc]``, falling back to ``cbc`` on PATH."""
|
|
56
68
|
import pulp as pu
|
|
@@ -96,10 +108,10 @@ def compute_positive_rep(val, var2=None, var3=None, msg=False):
|
|
|
96
108
|
|
|
97
109
|
frees = val.free_symbols
|
|
98
110
|
|
|
99
|
-
varsimp2 = [m for m in frees if var2
|
|
100
|
-
varsimp3 = [m for m in frees if var3
|
|
101
|
-
varsimp2.sort(key=lambda k: var2
|
|
102
|
-
varsimp3.sort(key=lambda k: var3
|
|
111
|
+
varsimp2 = [m for m in frees if _var_index(var2, m) != -1]
|
|
112
|
+
varsimp3 = [m for m in frees if _var_index(var3, m) != -1]
|
|
113
|
+
varsimp2.sort(key=lambda k: _var_index(var2, k))
|
|
114
|
+
varsimp3.sort(key=lambda k: _var_index(var3, k))
|
|
103
115
|
|
|
104
116
|
var22 = tuple(varsimp2)
|
|
105
117
|
var33 = tuple(varsimp3)
|
|
@@ -426,11 +438,14 @@ def posify(
|
|
|
426
438
|
for arr, v3 in vp:
|
|
427
439
|
tomul = prod([var2[1] - var3[arr[i]] for i in range(len(arr))])
|
|
428
440
|
|
|
429
|
-
|
|
441
|
+
# the reduced coefficient lives in the shifted alphabet var2[1:],
|
|
442
|
+
# matching the alphabet handed to the recursive posify call below
|
|
443
|
+
shifted_var2 = var2[1:]
|
|
444
|
+
val2 = schubmult_double_pair(u3, v3, shifted_var2, var3).get(
|
|
430
445
|
w3,
|
|
431
446
|
0,
|
|
432
447
|
)
|
|
433
|
-
val2 = posify(val2, u3, v3, w3,
|
|
448
|
+
val2 = posify(val2, u3, v3, w3, shifted_var2, var3, msg, optimize=optimize)
|
|
434
449
|
val += tomul * val2
|
|
435
450
|
|
|
436
451
|
return val
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: schubmult
|
|
3
|
-
Version: 5.2.
|
|
3
|
+
Version: 5.2.0b3
|
|
4
4
|
Summary: Package for algebraic computation with single, double, and quantum Schubert polynomials
|
|
5
5
|
Author-email: Matt Samuel <schubmult@gmail.com>
|
|
6
6
|
Maintainer-email: Matt Samuel <schubmult@gmail.com>
|
|
@@ -57,3 +57,37 @@ def test_forwardcoeff_matches_raw_value_when_formula_applies():
|
|
|
57
57
|
found += 1
|
|
58
58
|
assert expand(sp(forwardcoeff(u, v, w, y, z)) - sp(val)) == 0, (u, v, w)
|
|
59
59
|
assert found > 0
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
def _manifestly_positive(expr):
|
|
63
|
+
# a minus sign is only allowed directly in front of a z-variable term
|
|
64
|
+
import re
|
|
65
|
+
|
|
66
|
+
return re.search(r"-\s*(\d+\*)?[y(]", str(expr)) is None
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
def test_posify_one_dominates_recursion_uses_shifted_alphabet():
|
|
70
|
+
# Regression: u one-dominates w, so posify recurses on (phi1(u), v3, phi1(w)) over the
|
|
71
|
+
# shifted alphabet var2[1:] (a plain tuple). Previously the reduced coefficient was computed
|
|
72
|
+
# in the unshifted alphabet and compute_positive_rep crashed on tuple.index.
|
|
73
|
+
u, v, w = Permutation([2, 4, 3, 1]), Permutation([1, 4, 3, 2]), Permutation([3, 4, 5, 1, 2])
|
|
74
|
+
val = schubmult_double({u: 1}, v, y, z)[w]
|
|
75
|
+
positive = posify(val, u, v, w, y, z)
|
|
76
|
+
assert expand(sp(positive) - sp(val)) == 0
|
|
77
|
+
assert _manifestly_positive(positive)
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
def test_compute_positive_rep_accepts_plain_tuple_alphabets():
|
|
81
|
+
val = (y[2] - z[1]) + 2 * (y[3] - z[2])
|
|
82
|
+
rep = compute_positive_rep(val, tuple(y[1:5]), tuple(z[1:5]))
|
|
83
|
+
assert expand(sp(rep) - sp(val)) == 0
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
def test_posify_reconstructs_raw_value_for_s4():
|
|
87
|
+
S4 = [Permutation(list(p)) for p in itertools.permutations(range(1, 5))]
|
|
88
|
+
for u in S4:
|
|
89
|
+
for v in S4:
|
|
90
|
+
for w, val in schubmult_double({u: 1}, v, y, z).items():
|
|
91
|
+
positive = posify(val, u, v, w, y, z)
|
|
92
|
+
assert expand(sp(positive) - sp(val)) == 0, (u, v, w)
|
|
93
|
+
assert _manifestly_positive(positive), (u, v, w, positive)
|
|
@@ -8,7 +8,7 @@ from schubmult import Permutation
|
|
|
8
8
|
from schubmult.abc import x, y, z
|
|
9
9
|
from schubmult.mult.double import schubmult_double
|
|
10
10
|
from schubmult.mult.quantum import schubmult_q
|
|
11
|
-
from schubmult.mult.quantum_double import factor_out_q, mult_poly_q_double, schubmult_q_double, schubmult_q_double_fast, schubpoly_quantum, single_variable
|
|
11
|
+
from schubmult.mult.quantum_double import factor_out_q, mult_poly_q_double, q_posify, schubmult_q_double, schubmult_q_double_fast, schubpoly_quantum, single_variable
|
|
12
12
|
from schubmult.symbolic import S, sympify_sympy
|
|
13
13
|
from schubmult.symbolic.poly.schub_poly import _vars
|
|
14
14
|
from schubmult.symbolic.poly.variables import ZeroGeneratingSet
|
|
@@ -87,3 +87,36 @@ def test_factor_out_q_roundtrip():
|
|
|
87
87
|
q_dict = factor_out_q(poly)
|
|
88
88
|
total = sum((sp(k) * sp(v) for k, v in q_dict.items()), sympy.Integer(0))
|
|
89
89
|
assert sympy.expand(total - sp(poly)) == 0
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
def _manifestly_positive(expr):
|
|
93
|
+
# a minus sign is only allowed directly in front of a z-variable term
|
|
94
|
+
import re
|
|
95
|
+
|
|
96
|
+
return re.search(r"-\s*(\d+\*)?[y(]", str(expr)) is None
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
def test_q_posify_regression_one_dominates_cases():
|
|
100
|
+
# These triples route through posify's one-dominates recursion (shifted alphabet) and
|
|
101
|
+
# previously either raised or produced an expression not equal to the raw coefficient.
|
|
102
|
+
cases = [
|
|
103
|
+
([2, 4, 3, 1], [1, 4, 3, 2], [3, 4, 5, 1, 2]),
|
|
104
|
+
([2, 4, 3, 1], [3, 1, 4, 2], [3, 5, 2, 1, 4]),
|
|
105
|
+
([4, 2, 3, 1], [4, 1, 3, 2], [3, 4, 5, 1, 2]),
|
|
106
|
+
]
|
|
107
|
+
for u, v, w in cases:
|
|
108
|
+
u, v, w = Permutation(u), Permutation(v), Permutation(w)
|
|
109
|
+
val = schubmult_q_double_fast({u: S.One}, v, y, z)[w]
|
|
110
|
+
positive = q_posify(u, v, w, val, y, z, q, False)
|
|
111
|
+
assert sympy.expand(sp(positive) - sp(val)) == 0, (u, v, w)
|
|
112
|
+
assert _manifestly_positive(positive), (u, v, w, positive)
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
def test_q_posify_reconstructs_raw_value_for_s4():
|
|
116
|
+
S4 = [Permutation(list(p)) for p in itertools.permutations(range(1, 5))]
|
|
117
|
+
for u in S4:
|
|
118
|
+
for v in S4:
|
|
119
|
+
for w, val in schubmult_q_double_fast({u: S.One}, v, y, z).items():
|
|
120
|
+
positive = q_posify(u, v, w, val, y, z, q, False)
|
|
121
|
+
assert sympy.expand(sp(positive) - sp(val)) == 0, (u, v, w)
|
|
122
|
+
assert _manifestly_positive(positive), (u, v, w, positive)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/_scripts/grothmult_q_double.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/_scripts/schubmult_q_double.md
RENAMED
|
File without changes
|
|
File without changes
|
{schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/combinatorics/anti_rc_graph.md
RENAMED
|
File without changes
|
|
File without changes
|
{schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/combinatorics/chute_move_element.md
RENAMED
|
File without changes
|
{schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/combinatorics/crystal_graph.md
RENAMED
|
File without changes
|
{schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/combinatorics/double_forest.md
RENAMED
|
File without changes
|
{schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/combinatorics/hecke_plactic.md
RENAMED
|
File without changes
|
|
File without changes
|
{schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/combinatorics/increasing_tableau.md
RENAMED
|
File without changes
|
|
File without changes
|
{schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/combinatorics/indexed_forests.md
RENAMED
|
File without changes
|
{schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/combinatorics/inversions_tableau.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/combinatorics/planar_history.md
RENAMED
|
File without changes
|
{schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/combinatorics/quasi_crystal_graph.md
RENAMED
|
File without changes
|
|
File without changes
|
{schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/combinatorics/root_tableau.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/combinatorics/set_valued_tableau.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/combinatorial/bpd_ring.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/combinatorial/eg_ring.md
RENAMED
|
File without changes
|
|
File without changes
|
{schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/combinatorial/forest_rc_ring.md
RENAMED
|
File without changes
|
|
File without changes
|
{schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/combinatorial/grove_wc_ring.md
RENAMED
|
File without changes
|
{schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/combinatorial/hw_rc_ring.md
RENAMED
|
File without changes
|
|
File without changes
|
{schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/combinatorial/key_rc_ring.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/combinatorial/rc_graph_ring.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/combinatorial/slide_rc_ring.md
RENAMED
|
File without changes
|
{schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/combinatorial/wc_graph_ring.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/free_algebra/forest_basis.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/free_algebra/glide_basis.md
RENAMED
|
File without changes
|
|
File without changes
|
{schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/free_algebra/grove_basis.md
RENAMED
|
File without changes
|
|
File without changes
|
{schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/free_algebra/j_basis.md
RENAMED
|
File without changes
|
{schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/free_algebra/jt_basis.md
RENAMED
|
File without changes
|
{schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/free_algebra/key_basis.md
RENAMED
|
File without changes
|
{schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/free_algebra/lascoux_basis.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/free_algebra/schubert_basis.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/free_algebra/word_basis.md
RENAMED
|
File without changes
|
{schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/free_algebra/z_basis.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/polynomial_algebra/_core.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{schubmult-5.2.0b2 → schubmult-5.2.0b3}/docs/modules/schubmult/rings/polynomial_algebra/index.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|