passagemath-combinat 10.6.42__cp314-cp314-musllinux_1_2_x86_64.whl
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.
- passagemath_combinat/__init__.py +3 -0
- passagemath_combinat-10.6.42.dist-info/METADATA +160 -0
- passagemath_combinat-10.6.42.dist-info/RECORD +400 -0
- passagemath_combinat-10.6.42.dist-info/WHEEL +5 -0
- passagemath_combinat-10.6.42.dist-info/top_level.txt +3 -0
- passagemath_combinat.libs/libgmp-0e7fc84e.so.10.5.0 +0 -0
- passagemath_combinat.libs/libsymmetrica-81fe8739.so.3.0.0 +0 -0
- sage/algebras/affine_nil_temperley_lieb.py +263 -0
- sage/algebras/all.py +24 -0
- sage/algebras/all__sagemath_combinat.py +35 -0
- sage/algebras/askey_wilson.py +935 -0
- sage/algebras/associated_graded.py +345 -0
- sage/algebras/cellular_basis.py +350 -0
- sage/algebras/cluster_algebra.py +2766 -0
- sage/algebras/down_up_algebra.py +860 -0
- sage/algebras/free_algebra.py +1698 -0
- sage/algebras/free_algebra_element.py +345 -0
- sage/algebras/free_algebra_quotient.py +405 -0
- sage/algebras/free_algebra_quotient_element.py +295 -0
- sage/algebras/free_zinbiel_algebra.py +885 -0
- sage/algebras/hall_algebra.py +783 -0
- sage/algebras/hecke_algebras/all.py +4 -0
- sage/algebras/hecke_algebras/ariki_koike_algebra.py +1796 -0
- sage/algebras/hecke_algebras/ariki_koike_specht_modules.py +475 -0
- sage/algebras/hecke_algebras/cubic_hecke_algebra.py +3520 -0
- sage/algebras/hecke_algebras/cubic_hecke_base_ring.py +1473 -0
- sage/algebras/hecke_algebras/cubic_hecke_matrix_rep.py +1079 -0
- sage/algebras/iwahori_hecke_algebra.py +3095 -0
- sage/algebras/jordan_algebra.py +1773 -0
- sage/algebras/lie_conformal_algebras/abelian_lie_conformal_algebra.py +113 -0
- sage/algebras/lie_conformal_algebras/affine_lie_conformal_algebra.py +156 -0
- sage/algebras/lie_conformal_algebras/all.py +18 -0
- sage/algebras/lie_conformal_algebras/bosonic_ghosts_lie_conformal_algebra.py +134 -0
- sage/algebras/lie_conformal_algebras/examples.py +43 -0
- sage/algebras/lie_conformal_algebras/fermionic_ghosts_lie_conformal_algebra.py +131 -0
- sage/algebras/lie_conformal_algebras/finitely_freely_generated_lca.py +139 -0
- sage/algebras/lie_conformal_algebras/free_bosons_lie_conformal_algebra.py +174 -0
- sage/algebras/lie_conformal_algebras/free_fermions_lie_conformal_algebra.py +167 -0
- sage/algebras/lie_conformal_algebras/freely_generated_lie_conformal_algebra.py +107 -0
- sage/algebras/lie_conformal_algebras/graded_lie_conformal_algebra.py +135 -0
- sage/algebras/lie_conformal_algebras/lie_conformal_algebra.py +353 -0
- sage/algebras/lie_conformal_algebras/lie_conformal_algebra_element.py +236 -0
- sage/algebras/lie_conformal_algebras/lie_conformal_algebra_with_basis.py +78 -0
- sage/algebras/lie_conformal_algebras/lie_conformal_algebra_with_structure_coefs.py +328 -0
- sage/algebras/lie_conformal_algebras/n2_lie_conformal_algebra.py +117 -0
- sage/algebras/lie_conformal_algebras/neveu_schwarz_lie_conformal_algebra.py +86 -0
- sage/algebras/lie_conformal_algebras/virasoro_lie_conformal_algebra.py +82 -0
- sage/algebras/lie_conformal_algebras/weyl_lie_conformal_algebra.py +205 -0
- sage/algebras/nil_coxeter_algebra.py +191 -0
- sage/algebras/q_commuting_polynomials.py +673 -0
- sage/algebras/q_system.py +608 -0
- sage/algebras/quantum_clifford.py +959 -0
- sage/algebras/quantum_groups/ace_quantum_onsager.py +693 -0
- sage/algebras/quantum_groups/all.py +9 -0
- sage/algebras/quantum_groups/fock_space.py +2219 -0
- sage/algebras/quantum_groups/q_numbers.py +207 -0
- sage/algebras/quantum_groups/quantum_group_gap.py +2695 -0
- sage/algebras/quantum_groups/representations.py +591 -0
- sage/algebras/quantum_matrix_coordinate_algebra.py +1006 -0
- sage/algebras/quantum_oscillator.py +623 -0
- sage/algebras/quaternion_algebra.py +20 -0
- sage/algebras/quaternion_algebra_element.py +55 -0
- sage/algebras/rational_cherednik_algebra.py +525 -0
- sage/algebras/schur_algebra.py +670 -0
- sage/algebras/shuffle_algebra.py +1011 -0
- sage/algebras/splitting_algebra.py +779 -0
- sage/algebras/tensor_algebra.py +709 -0
- sage/algebras/yangian.py +1082 -0
- sage/algebras/yokonuma_hecke_algebra.py +1018 -0
- sage/all__sagemath_combinat.py +35 -0
- sage/combinat/SJT.py +255 -0
- sage/combinat/affine_permutation.py +2405 -0
- sage/combinat/algebraic_combinatorics.py +55 -0
- sage/combinat/all.py +53 -0
- sage/combinat/all__sagemath_combinat.py +195 -0
- sage/combinat/alternating_sign_matrix.py +2063 -0
- sage/combinat/baxter_permutations.py +346 -0
- sage/combinat/bijectionist.py +3220 -0
- sage/combinat/binary_recurrence_sequences.py +1180 -0
- sage/combinat/blob_algebra.py +685 -0
- sage/combinat/catalog_partitions.py +27 -0
- sage/combinat/chas/all.py +23 -0
- sage/combinat/chas/fsym.py +1180 -0
- sage/combinat/chas/wqsym.py +2601 -0
- sage/combinat/cluster_complex.py +326 -0
- sage/combinat/colored_permutations.py +2039 -0
- sage/combinat/colored_permutations_representations.py +964 -0
- sage/combinat/composition_signed.py +142 -0
- sage/combinat/composition_tableau.py +855 -0
- sage/combinat/constellation.py +1729 -0
- sage/combinat/core.py +751 -0
- sage/combinat/counting.py +12 -0
- sage/combinat/crystals/affine.py +742 -0
- sage/combinat/crystals/affine_factorization.py +518 -0
- sage/combinat/crystals/affinization.py +331 -0
- sage/combinat/crystals/alcove_path.py +2013 -0
- sage/combinat/crystals/all.py +22 -0
- sage/combinat/crystals/bkk_crystals.py +141 -0
- sage/combinat/crystals/catalog.py +115 -0
- sage/combinat/crystals/catalog_elementary_crystals.py +18 -0
- sage/combinat/crystals/catalog_infinity_crystals.py +33 -0
- sage/combinat/crystals/catalog_kirillov_reshetikhin.py +18 -0
- sage/combinat/crystals/crystals.py +257 -0
- sage/combinat/crystals/direct_sum.py +260 -0
- sage/combinat/crystals/elementary_crystals.py +1251 -0
- sage/combinat/crystals/fast_crystals.py +441 -0
- sage/combinat/crystals/fully_commutative_stable_grothendieck.py +1205 -0
- sage/combinat/crystals/generalized_young_walls.py +1076 -0
- sage/combinat/crystals/highest_weight_crystals.py +436 -0
- sage/combinat/crystals/induced_structure.py +695 -0
- sage/combinat/crystals/infinity_crystals.py +730 -0
- sage/combinat/crystals/kac_modules.py +863 -0
- sage/combinat/crystals/kirillov_reshetikhin.py +4196 -0
- sage/combinat/crystals/kyoto_path_model.py +497 -0
- sage/combinat/crystals/letters.cpython-314-x86_64-linux-musl.so +0 -0
- sage/combinat/crystals/letters.pxd +79 -0
- sage/combinat/crystals/letters.pyx +3056 -0
- sage/combinat/crystals/littelmann_path.py +1518 -0
- sage/combinat/crystals/monomial_crystals.py +1262 -0
- sage/combinat/crystals/multisegments.py +462 -0
- sage/combinat/crystals/mv_polytopes.py +467 -0
- sage/combinat/crystals/pbw_crystal.py +511 -0
- sage/combinat/crystals/pbw_datum.cpython-314-x86_64-linux-musl.so +0 -0
- sage/combinat/crystals/pbw_datum.pxd +4 -0
- sage/combinat/crystals/pbw_datum.pyx +487 -0
- sage/combinat/crystals/polyhedral_realization.py +372 -0
- sage/combinat/crystals/spins.cpython-314-x86_64-linux-musl.so +0 -0
- sage/combinat/crystals/spins.pxd +21 -0
- sage/combinat/crystals/spins.pyx +756 -0
- sage/combinat/crystals/star_crystal.py +290 -0
- sage/combinat/crystals/subcrystal.py +464 -0
- sage/combinat/crystals/tensor_product.py +1177 -0
- sage/combinat/crystals/tensor_product_element.cpython-314-x86_64-linux-musl.so +0 -0
- sage/combinat/crystals/tensor_product_element.pxd +35 -0
- sage/combinat/crystals/tensor_product_element.pyx +1870 -0
- sage/combinat/crystals/virtual_crystal.py +420 -0
- sage/combinat/cyclic_sieving_phenomenon.py +204 -0
- sage/combinat/debruijn_sequence.cpython-314-x86_64-linux-musl.so +0 -0
- sage/combinat/debruijn_sequence.pyx +355 -0
- sage/combinat/decorated_permutation.py +270 -0
- sage/combinat/degree_sequences.cpython-314-x86_64-linux-musl.so +0 -0
- sage/combinat/degree_sequences.pyx +588 -0
- sage/combinat/derangements.py +527 -0
- sage/combinat/descent_algebra.py +1008 -0
- sage/combinat/diagram.py +1551 -0
- sage/combinat/diagram_algebras.py +5886 -0
- sage/combinat/dyck_word.py +4349 -0
- sage/combinat/e_one_star.py +1623 -0
- sage/combinat/enumerated_sets.py +123 -0
- sage/combinat/expnums.cpython-314-x86_64-linux-musl.so +0 -0
- sage/combinat/expnums.pyx +148 -0
- sage/combinat/fast_vector_partitions.cpython-314-x86_64-linux-musl.so +0 -0
- sage/combinat/fast_vector_partitions.pyx +346 -0
- sage/combinat/fqsym.py +1977 -0
- sage/combinat/free_dendriform_algebra.py +954 -0
- sage/combinat/free_prelie_algebra.py +1141 -0
- sage/combinat/fully_commutative_elements.py +1077 -0
- sage/combinat/fully_packed_loop.py +1523 -0
- sage/combinat/gelfand_tsetlin_patterns.py +1409 -0
- sage/combinat/gray_codes.py +311 -0
- sage/combinat/grossman_larson_algebras.py +667 -0
- sage/combinat/growth.py +4352 -0
- sage/combinat/hall_polynomial.py +188 -0
- sage/combinat/hillman_grassl.py +866 -0
- sage/combinat/integer_matrices.py +329 -0
- sage/combinat/integer_vectors_mod_permgroup.py +1238 -0
- sage/combinat/k_tableau.py +4564 -0
- sage/combinat/kazhdan_lusztig.py +215 -0
- sage/combinat/key_polynomial.py +885 -0
- sage/combinat/knutson_tao_puzzles.py +2286 -0
- sage/combinat/lr_tableau.py +311 -0
- sage/combinat/matrices/all.py +24 -0
- sage/combinat/matrices/hadamard_matrix.py +3790 -0
- sage/combinat/matrices/latin.py +2912 -0
- sage/combinat/misc.py +401 -0
- sage/combinat/multiset_partition_into_sets_ordered.py +3541 -0
- sage/combinat/ncsf_qsym/all.py +21 -0
- sage/combinat/ncsf_qsym/combinatorics.py +317 -0
- sage/combinat/ncsf_qsym/generic_basis_code.py +1427 -0
- sage/combinat/ncsf_qsym/ncsf.py +5637 -0
- sage/combinat/ncsf_qsym/qsym.py +4053 -0
- sage/combinat/ncsf_qsym/tutorial.py +447 -0
- sage/combinat/ncsym/all.py +21 -0
- sage/combinat/ncsym/bases.py +855 -0
- sage/combinat/ncsym/dual.py +593 -0
- sage/combinat/ncsym/ncsym.py +2076 -0
- sage/combinat/necklace.py +551 -0
- sage/combinat/non_decreasing_parking_function.py +634 -0
- sage/combinat/nu_dyck_word.py +1474 -0
- sage/combinat/output.py +861 -0
- sage/combinat/parallelogram_polyomino.py +4326 -0
- sage/combinat/parking_functions.py +1602 -0
- sage/combinat/partition_algebra.py +1998 -0
- sage/combinat/partition_kleshchev.py +1982 -0
- sage/combinat/partition_shifting_algebras.py +584 -0
- sage/combinat/partition_tuple.py +3114 -0
- sage/combinat/path_tableaux/all.py +13 -0
- sage/combinat/path_tableaux/catalog.py +29 -0
- sage/combinat/path_tableaux/dyck_path.py +380 -0
- sage/combinat/path_tableaux/frieze.py +476 -0
- sage/combinat/path_tableaux/path_tableau.py +728 -0
- sage/combinat/path_tableaux/semistandard.py +510 -0
- sage/combinat/perfect_matching.py +779 -0
- sage/combinat/plane_partition.py +3300 -0
- sage/combinat/q_bernoulli.cpython-314-x86_64-linux-musl.so +0 -0
- sage/combinat/q_bernoulli.pyx +128 -0
- sage/combinat/quickref.py +81 -0
- sage/combinat/recognizable_series.py +2051 -0
- sage/combinat/regular_sequence.py +4316 -0
- sage/combinat/regular_sequence_bounded.py +543 -0
- sage/combinat/restricted_growth.py +81 -0
- sage/combinat/ribbon.py +20 -0
- sage/combinat/ribbon_shaped_tableau.py +489 -0
- sage/combinat/ribbon_tableau.py +1180 -0
- sage/combinat/rigged_configurations/all.py +46 -0
- sage/combinat/rigged_configurations/bij_abstract_class.py +548 -0
- sage/combinat/rigged_configurations/bij_infinity.py +370 -0
- sage/combinat/rigged_configurations/bij_type_A.py +163 -0
- sage/combinat/rigged_configurations/bij_type_A2_dual.py +338 -0
- sage/combinat/rigged_configurations/bij_type_A2_even.py +218 -0
- sage/combinat/rigged_configurations/bij_type_A2_odd.py +199 -0
- sage/combinat/rigged_configurations/bij_type_B.py +900 -0
- sage/combinat/rigged_configurations/bij_type_C.py +267 -0
- sage/combinat/rigged_configurations/bij_type_D.py +771 -0
- sage/combinat/rigged_configurations/bij_type_D_tri.py +392 -0
- sage/combinat/rigged_configurations/bij_type_D_twisted.py +576 -0
- sage/combinat/rigged_configurations/bij_type_E67.py +402 -0
- sage/combinat/rigged_configurations/bijection.py +143 -0
- sage/combinat/rigged_configurations/kleber_tree.py +1475 -0
- sage/combinat/rigged_configurations/kr_tableaux.py +1898 -0
- sage/combinat/rigged_configurations/rc_crystal.py +461 -0
- sage/combinat/rigged_configurations/rc_infinity.py +540 -0
- sage/combinat/rigged_configurations/rigged_configuration_element.py +2403 -0
- sage/combinat/rigged_configurations/rigged_configurations.py +1918 -0
- sage/combinat/rigged_configurations/rigged_partition.cpython-314-x86_64-linux-musl.so +0 -0
- sage/combinat/rigged_configurations/rigged_partition.pxd +15 -0
- sage/combinat/rigged_configurations/rigged_partition.pyx +680 -0
- sage/combinat/rigged_configurations/tensor_product_kr_tableaux.py +499 -0
- sage/combinat/rigged_configurations/tensor_product_kr_tableaux_element.py +428 -0
- sage/combinat/rsk.py +3438 -0
- sage/combinat/schubert_polynomial.py +508 -0
- sage/combinat/set_partition.py +3318 -0
- sage/combinat/set_partition_iterator.cpython-314-x86_64-linux-musl.so +0 -0
- sage/combinat/set_partition_iterator.pyx +136 -0
- sage/combinat/set_partition_ordered.py +1590 -0
- sage/combinat/sf/abreu_nigro.py +346 -0
- sage/combinat/sf/all.py +52 -0
- sage/combinat/sf/character.py +576 -0
- sage/combinat/sf/classical.py +319 -0
- sage/combinat/sf/dual.py +996 -0
- sage/combinat/sf/elementary.py +549 -0
- sage/combinat/sf/hall_littlewood.py +1028 -0
- sage/combinat/sf/hecke.py +336 -0
- sage/combinat/sf/homogeneous.py +464 -0
- sage/combinat/sf/jack.py +1428 -0
- sage/combinat/sf/k_dual.py +1458 -0
- sage/combinat/sf/kfpoly.py +447 -0
- sage/combinat/sf/llt.py +789 -0
- sage/combinat/sf/macdonald.py +2019 -0
- sage/combinat/sf/monomial.py +525 -0
- sage/combinat/sf/multiplicative.py +113 -0
- sage/combinat/sf/new_kschur.py +1786 -0
- sage/combinat/sf/ns_macdonald.py +964 -0
- sage/combinat/sf/orthogonal.py +246 -0
- sage/combinat/sf/orthotriang.py +355 -0
- sage/combinat/sf/powersum.py +963 -0
- sage/combinat/sf/schur.py +880 -0
- sage/combinat/sf/sf.py +1653 -0
- sage/combinat/sf/sfa.py +7053 -0
- sage/combinat/sf/symplectic.py +253 -0
- sage/combinat/sf/witt.py +721 -0
- sage/combinat/shifted_primed_tableau.py +2735 -0
- sage/combinat/shuffle.py +830 -0
- sage/combinat/sidon_sets.py +146 -0
- sage/combinat/similarity_class_type.py +1721 -0
- sage/combinat/sine_gordon.py +618 -0
- sage/combinat/six_vertex_model.py +784 -0
- sage/combinat/skew_partition.py +2053 -0
- sage/combinat/skew_tableau.py +2989 -0
- sage/combinat/sloane_functions.py +8935 -0
- sage/combinat/specht_module.py +1403 -0
- sage/combinat/species/all.py +48 -0
- sage/combinat/species/characteristic_species.py +321 -0
- sage/combinat/species/composition_species.py +273 -0
- sage/combinat/species/cycle_species.py +284 -0
- sage/combinat/species/empty_species.py +155 -0
- sage/combinat/species/functorial_composition_species.py +148 -0
- sage/combinat/species/generating_series.py +673 -0
- sage/combinat/species/library.py +148 -0
- sage/combinat/species/linear_order_species.py +169 -0
- sage/combinat/species/misc.py +83 -0
- sage/combinat/species/partition_species.py +290 -0
- sage/combinat/species/permutation_species.py +268 -0
- sage/combinat/species/product_species.py +423 -0
- sage/combinat/species/recursive_species.py +476 -0
- sage/combinat/species/set_species.py +192 -0
- sage/combinat/species/species.py +820 -0
- sage/combinat/species/structure.py +539 -0
- sage/combinat/species/subset_species.py +243 -0
- sage/combinat/species/sum_species.py +225 -0
- sage/combinat/subword.py +564 -0
- sage/combinat/subword_complex.py +2122 -0
- sage/combinat/subword_complex_c.cpython-314-x86_64-linux-musl.so +0 -0
- sage/combinat/subword_complex_c.pyx +119 -0
- sage/combinat/super_tableau.py +821 -0
- sage/combinat/superpartition.py +1154 -0
- sage/combinat/symmetric_group_algebra.py +3774 -0
- sage/combinat/symmetric_group_representations.py +1830 -0
- sage/combinat/t_sequences.py +877 -0
- sage/combinat/tableau.py +9506 -0
- sage/combinat/tableau_residues.py +860 -0
- sage/combinat/tableau_tuple.py +5353 -0
- sage/combinat/tiling.py +2432 -0
- sage/combinat/triangles_FHM.py +777 -0
- sage/combinat/tutorial.py +1857 -0
- sage/combinat/vector_partition.py +337 -0
- sage/combinat/words/abstract_word.py +1722 -0
- sage/combinat/words/all.py +59 -0
- sage/combinat/words/alphabet.py +268 -0
- sage/combinat/words/finite_word.py +7201 -0
- sage/combinat/words/infinite_word.py +113 -0
- sage/combinat/words/lyndon_word.py +652 -0
- sage/combinat/words/morphic.py +351 -0
- sage/combinat/words/morphism.py +3878 -0
- sage/combinat/words/paths.py +2932 -0
- sage/combinat/words/shuffle_product.py +278 -0
- sage/combinat/words/suffix_trees.py +1873 -0
- sage/combinat/words/word.py +769 -0
- sage/combinat/words/word_char.cpython-314-x86_64-linux-musl.so +0 -0
- sage/combinat/words/word_char.pyx +847 -0
- sage/combinat/words/word_datatypes.cpython-314-x86_64-linux-musl.so +0 -0
- sage/combinat/words/word_datatypes.pxd +4 -0
- sage/combinat/words/word_datatypes.pyx +1067 -0
- sage/combinat/words/word_generators.py +2026 -0
- sage/combinat/words/word_infinite_datatypes.py +1218 -0
- sage/combinat/words/word_options.py +99 -0
- sage/combinat/words/words.py +2396 -0
- sage/data_structures/all__sagemath_combinat.py +1 -0
- sage/databases/all__sagemath_combinat.py +13 -0
- sage/databases/findstat.py +4897 -0
- sage/databases/oeis.py +2058 -0
- sage/databases/sloane.py +393 -0
- sage/dynamics/all__sagemath_combinat.py +14 -0
- sage/dynamics/cellular_automata/all.py +7 -0
- sage/dynamics/cellular_automata/catalog.py +34 -0
- sage/dynamics/cellular_automata/elementary.py +612 -0
- sage/dynamics/cellular_automata/glca.py +477 -0
- sage/dynamics/cellular_automata/solitons.py +1463 -0
- sage/dynamics/finite_dynamical_system.py +1249 -0
- sage/dynamics/finite_dynamical_system_catalog.py +382 -0
- sage/games/all.py +7 -0
- sage/games/hexad.py +704 -0
- sage/games/quantumino.py +591 -0
- sage/games/sudoku.py +889 -0
- sage/games/sudoku_backtrack.cpython-314-x86_64-linux-musl.so +0 -0
- sage/games/sudoku_backtrack.pyx +189 -0
- sage/groups/all__sagemath_combinat.py +1 -0
- sage/groups/indexed_free_group.py +489 -0
- sage/libs/all__sagemath_combinat.py +6 -0
- sage/libs/lrcalc/__init__.py +1 -0
- sage/libs/lrcalc/lrcalc.py +525 -0
- sage/libs/symmetrica/__init__.py +7 -0
- sage/libs/symmetrica/all.py +101 -0
- sage/libs/symmetrica/kostka.pxi +168 -0
- sage/libs/symmetrica/part.pxi +193 -0
- sage/libs/symmetrica/plet.pxi +42 -0
- sage/libs/symmetrica/sab.pxi +196 -0
- sage/libs/symmetrica/sb.pxi +332 -0
- sage/libs/symmetrica/sc.pxi +192 -0
- sage/libs/symmetrica/schur.pxi +956 -0
- sage/libs/symmetrica/symmetrica.cpython-314-x86_64-linux-musl.so +0 -0
- sage/libs/symmetrica/symmetrica.pxi +1172 -0
- sage/libs/symmetrica/symmetrica.pyx +39 -0
- sage/monoids/all.py +13 -0
- sage/monoids/automatic_semigroup.py +1054 -0
- sage/monoids/free_abelian_monoid.py +315 -0
- sage/monoids/free_abelian_monoid_element.cpython-314-x86_64-linux-musl.so +0 -0
- sage/monoids/free_abelian_monoid_element.pxd +16 -0
- sage/monoids/free_abelian_monoid_element.pyx +397 -0
- sage/monoids/free_monoid.py +335 -0
- sage/monoids/free_monoid_element.py +431 -0
- sage/monoids/hecke_monoid.py +65 -0
- sage/monoids/string_monoid.py +817 -0
- sage/monoids/string_monoid_element.py +547 -0
- sage/monoids/string_ops.py +143 -0
- sage/monoids/trace_monoid.py +972 -0
- sage/rings/all__sagemath_combinat.py +2 -0
- sage/sat/all.py +4 -0
- sage/sat/boolean_polynomials.py +405 -0
- sage/sat/converters/__init__.py +6 -0
- sage/sat/converters/anf2cnf.py +14 -0
- sage/sat/converters/polybori.py +611 -0
- sage/sat/solvers/__init__.py +5 -0
- sage/sat/solvers/cryptominisat.py +287 -0
- sage/sat/solvers/dimacs.py +783 -0
- sage/sat/solvers/picosat.py +228 -0
- sage/sat/solvers/sat_lp.py +156 -0
- sage/sat/solvers/satsolver.cpython-314-x86_64-linux-musl.so +0 -0
- sage/sat/solvers/satsolver.pxd +3 -0
- sage/sat/solvers/satsolver.pyx +405 -0
|
@@ -0,0 +1,956 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-combinat
|
|
2
|
+
# sage.doctest: needs sage.combinat sage.modules
|
|
3
|
+
|
|
4
|
+
cdef extern from 'symmetrica/def.h':
|
|
5
|
+
INT outerproduct_schur(OP parta, OP partb, OP result)
|
|
6
|
+
INT dimension_schur(OP a, OP result)
|
|
7
|
+
INT part_part_skewschur(OP big, OP small, OP result)
|
|
8
|
+
INT newtrans(OP perm, OP schur)
|
|
9
|
+
INT compute_schur_with_alphabet(OP part, OP length, OP poly)
|
|
10
|
+
INT compute_homsym_with_alphabet(OP number, OP length, OP poly)
|
|
11
|
+
INT compute_elmsym_with_alphabet(OP number, OP length, OP poly)
|
|
12
|
+
INT compute_monomial_with_alphabet(OP partition, OP length, OP poly)
|
|
13
|
+
INT compute_powsym_with_alphabet(OP number, OP length, OP poly)
|
|
14
|
+
INT compute_schur_with_alphabet_det(OP part, OP length, OP poly)
|
|
15
|
+
|
|
16
|
+
INT part_part_skewschur(OP a, OP b, OP c)
|
|
17
|
+
|
|
18
|
+
INT t_SCHUR_MONOMIAL(OP schur, OP result)
|
|
19
|
+
INT t_SCHUR_HOMSYM(OP a, OP b)
|
|
20
|
+
INT t_SCHUR_ELMSYM(OP a, OP b)
|
|
21
|
+
|
|
22
|
+
INT t_MONOMIAL_SCHUR(OP a, OP b)
|
|
23
|
+
INT t_MONOMIAL_HOMSYM(OP a, OP b)
|
|
24
|
+
INT t_MONOMIAL_ELMSYM(OP a, OP b)
|
|
25
|
+
|
|
26
|
+
INT t_ELMSYM_SCHUR(OP a, OP b)
|
|
27
|
+
INT t_ELMSYM_MONOMIAL(OP a, OP b)
|
|
28
|
+
INT t_ELMSYM_HOMSYM(OP a, OP b)
|
|
29
|
+
|
|
30
|
+
INT t_HOMSYM_SCHUR(OP a, OP b)
|
|
31
|
+
INT t_HOMSYM_MONOMIAL(OP a, OP b)
|
|
32
|
+
INT t_HOMSYM_ELMSYM(OP a, OP b)
|
|
33
|
+
|
|
34
|
+
INT t_POWSYM_SCHUR(OP a, OP b)
|
|
35
|
+
INT t_SCHUR_POWSYM(OP a, OP b)
|
|
36
|
+
INT t_POWSYM_HOMSYM(OP a, OP b)
|
|
37
|
+
INT t_HOMSYM_POWSYM(OP a, OP b)
|
|
38
|
+
INT t_POWSYM_ELMSYM(OP a, OP b)
|
|
39
|
+
INT t_ELMSYM_POWSYM(OP a, OP b)
|
|
40
|
+
INT t_POWSYM_MONOMIAL(OP a, OP b)
|
|
41
|
+
INT t_MONOMIAL_POWSYM(OP a, OP b)
|
|
42
|
+
|
|
43
|
+
INT hall_littlewood(OP part, OP res)
|
|
44
|
+
|
|
45
|
+
INT mult_schur_schur(OP s1, OP s2, OP res)
|
|
46
|
+
INT mult_monomial_monomial(OP m1, OP m2, OP res)
|
|
47
|
+
|
|
48
|
+
INT t_POLYNOM_POWER(OP a, OP b)
|
|
49
|
+
INT t_POLYNOM_SCHUR(OP a, OP b)
|
|
50
|
+
INT t_POLYNOM_ELMSYM(OP a, OP b)
|
|
51
|
+
INT t_POLYNOM_MONOMIAL(OP a, OP b)
|
|
52
|
+
|
|
53
|
+
INT symmetricp(OP a)
|
|
54
|
+
|
|
55
|
+
INT scalarproduct_schur(OP a, OP b, OP c)
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
def outerproduct_schur_symmetrica(parta, partb):
|
|
59
|
+
"""
|
|
60
|
+
You enter two PARTITION objects, and the result is
|
|
61
|
+
a SCHUR object, which is the expansion of the product
|
|
62
|
+
of the two schurfunctions, labeled by
|
|
63
|
+
the two PARTITION objects parta and partb.
|
|
64
|
+
Of course this can also be interpreted as the decomposition of the
|
|
65
|
+
outer tensor product of two irreducible representations of the
|
|
66
|
+
symmetric group.
|
|
67
|
+
|
|
68
|
+
EXAMPLES::
|
|
69
|
+
|
|
70
|
+
sage: symmetrica.outerproduct_schur([2],[2])
|
|
71
|
+
s[2, 2] + s[3, 1] + s[4]
|
|
72
|
+
"""
|
|
73
|
+
cdef OP cparta, cpartb, cresult
|
|
74
|
+
|
|
75
|
+
cparta = callocobject()
|
|
76
|
+
cpartb = callocobject()
|
|
77
|
+
cresult = callocobject()
|
|
78
|
+
|
|
79
|
+
_op_partition(parta, cparta)
|
|
80
|
+
_op_partition(partb, cpartb)
|
|
81
|
+
|
|
82
|
+
sig_on()
|
|
83
|
+
outerproduct_schur(cparta, cpartb, cresult)
|
|
84
|
+
sig_off()
|
|
85
|
+
|
|
86
|
+
res = _py(cresult)
|
|
87
|
+
|
|
88
|
+
freeall(cparta)
|
|
89
|
+
freeall(cpartb)
|
|
90
|
+
freeall(cresult)
|
|
91
|
+
|
|
92
|
+
return res
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
def dimension_schur_symmetrica(s):
|
|
96
|
+
"""
|
|
97
|
+
You enter a SCHUR object a, and the result is the
|
|
98
|
+
dimension of the corresponding representation of the
|
|
99
|
+
symmetric group sn.
|
|
100
|
+
"""
|
|
101
|
+
cdef OP ca, cresult
|
|
102
|
+
|
|
103
|
+
cresult = callocobject()
|
|
104
|
+
ca = callocobject()
|
|
105
|
+
|
|
106
|
+
_op_schur(s, ca)
|
|
107
|
+
sig_on()
|
|
108
|
+
dimension_schur(ca, cresult)
|
|
109
|
+
sig_off()
|
|
110
|
+
res = _py(cresult)
|
|
111
|
+
|
|
112
|
+
freeall(ca)
|
|
113
|
+
freeall(cresult)
|
|
114
|
+
|
|
115
|
+
return res
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
def newtrans_symmetrica(perm):
|
|
119
|
+
"""
|
|
120
|
+
Compute the decomposition of a schubertpolynomial labeled by
|
|
121
|
+
the permutation perm, as a sum of Schurfunction.
|
|
122
|
+
|
|
123
|
+
FIXME!
|
|
124
|
+
"""
|
|
125
|
+
cdef OP cperm = callocobject(), cresult = callocobject()
|
|
126
|
+
|
|
127
|
+
_op_permutation(perm, cperm)
|
|
128
|
+
|
|
129
|
+
sig_on()
|
|
130
|
+
newtrans(cperm, cresult)
|
|
131
|
+
sig_off()
|
|
132
|
+
|
|
133
|
+
res = _py(cresult)
|
|
134
|
+
|
|
135
|
+
freeall(cresult)
|
|
136
|
+
freeall(cperm)
|
|
137
|
+
|
|
138
|
+
return res
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
def compute_schur_with_alphabet_symmetrica(part, length, alphabet='x'):
|
|
142
|
+
"""
|
|
143
|
+
Compute the expansion of a schurfunction labeled by a
|
|
144
|
+
partition PART as a POLYNOM erg. The INTEGER length specifies the
|
|
145
|
+
length of the alphabet.
|
|
146
|
+
|
|
147
|
+
EXAMPLES::
|
|
148
|
+
|
|
149
|
+
sage: symmetrica.compute_schur_with_alphabet(2,2)
|
|
150
|
+
x0^2 + x0*x1 + x1^2
|
|
151
|
+
sage: symmetrica.compute_schur_with_alphabet([2],2)
|
|
152
|
+
x0^2 + x0*x1 + x1^2
|
|
153
|
+
sage: symmetrica.compute_schur_with_alphabet(Partition([2]),2)
|
|
154
|
+
x0^2 + x0*x1 + x1^2
|
|
155
|
+
sage: symmetrica.compute_schur_with_alphabet(Partition([2]),2,'y')
|
|
156
|
+
y0^2 + y0*y1 + y1^2
|
|
157
|
+
sage: symmetrica.compute_schur_with_alphabet(Partition([2]),2,'a,b')
|
|
158
|
+
a^2 + a*b + b^2
|
|
159
|
+
sage: symmetrica.compute_schur_with_alphabet([2,1],1,'x')
|
|
160
|
+
0
|
|
161
|
+
"""
|
|
162
|
+
late_import()
|
|
163
|
+
cdef OP cpart = callocobject(), cresult = callocobject(), clength = callocobject()
|
|
164
|
+
|
|
165
|
+
if isinstance(part, (int, Integer)):
|
|
166
|
+
_op_partition([part], cpart)
|
|
167
|
+
elif isinstance(part, (builtinlist, Partition)):
|
|
168
|
+
_op_partition(part, cpart)
|
|
169
|
+
else:
|
|
170
|
+
raise NotImplementedError("n must be an integer or partition")
|
|
171
|
+
_op_integer(length, clength)
|
|
172
|
+
|
|
173
|
+
sig_on()
|
|
174
|
+
compute_schur_with_alphabet(cpart, clength, cresult)
|
|
175
|
+
sig_off()
|
|
176
|
+
|
|
177
|
+
res = _py_polynom_alphabet(cresult, alphabet, length)
|
|
178
|
+
|
|
179
|
+
freeall(cresult)
|
|
180
|
+
freeall(cpart)
|
|
181
|
+
|
|
182
|
+
return res
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
def compute_homsym_with_alphabet_symmetrica(n, length, alphabet='x'):
|
|
186
|
+
"""
|
|
187
|
+
Compute the expansion of a homogeneous(=complete) symmetric
|
|
188
|
+
function labeled by a INTEGER number as a POLYNOM erg.
|
|
189
|
+
The object number may also be a PARTITION or a HOM_SYM object.
|
|
190
|
+
The INTEGER laenge specifies the length of the alphabet.
|
|
191
|
+
Both routines are the same.
|
|
192
|
+
|
|
193
|
+
EXAMPLES::
|
|
194
|
+
|
|
195
|
+
sage: symmetrica.compute_homsym_with_alphabet(3,1,'x')
|
|
196
|
+
x^3
|
|
197
|
+
sage: symmetrica.compute_homsym_with_alphabet([2,1],1,'x')
|
|
198
|
+
x^3
|
|
199
|
+
sage: symmetrica.compute_homsym_with_alphabet([2,1],2,'x')
|
|
200
|
+
x0^3 + 2*x0^2*x1 + 2*x0*x1^2 + x1^3
|
|
201
|
+
sage: symmetrica.compute_homsym_with_alphabet([2,1],2,'a,b')
|
|
202
|
+
a^3 + 2*a^2*b + 2*a*b^2 + b^3
|
|
203
|
+
sage: symmetrica.compute_homsym_with_alphabet([2,1],2,'x').parent()
|
|
204
|
+
Multivariate Polynomial Ring in x0, x1 over Integer Ring
|
|
205
|
+
"""
|
|
206
|
+
late_import()
|
|
207
|
+
cdef OP cn = callocobject(), clength = callocobject(), cresult = callocobject()
|
|
208
|
+
|
|
209
|
+
if isinstance(n, (int, Integer)):
|
|
210
|
+
_op_integer(n, cn)
|
|
211
|
+
elif isinstance(n, (builtinlist, Partition)):
|
|
212
|
+
_op_partition(n, cn)
|
|
213
|
+
else:
|
|
214
|
+
raise NotImplementedError("n must be an integer or a partition")
|
|
215
|
+
|
|
216
|
+
_op_integer(length, clength)
|
|
217
|
+
|
|
218
|
+
sig_on()
|
|
219
|
+
compute_homsym_with_alphabet(cn, clength, cresult)
|
|
220
|
+
sig_off()
|
|
221
|
+
|
|
222
|
+
res = _py_polynom_alphabet(cresult, alphabet, length)
|
|
223
|
+
|
|
224
|
+
freeall(cresult)
|
|
225
|
+
freeall(cn)
|
|
226
|
+
freeall(clength)
|
|
227
|
+
|
|
228
|
+
return res
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
def compute_elmsym_with_alphabet_symmetrica(n, length, alphabet='x'):
|
|
232
|
+
"""
|
|
233
|
+
Compute the expansion of a elementary symmetric
|
|
234
|
+
function labeled by a INTEGER number as a POLYNOM erg.
|
|
235
|
+
The object number may also be a PARTITION or a ELM_SYM object.
|
|
236
|
+
The INTEGER length specifies the length of the alphabet.
|
|
237
|
+
Both routines are the same.
|
|
238
|
+
|
|
239
|
+
EXAMPLES::
|
|
240
|
+
|
|
241
|
+
sage: a = symmetrica.compute_elmsym_with_alphabet(2,2); a
|
|
242
|
+
x0*x1
|
|
243
|
+
sage: a.parent()
|
|
244
|
+
Multivariate Polynomial Ring in x0, x1 over Integer Ring
|
|
245
|
+
sage: a = symmetrica.compute_elmsym_with_alphabet([2],2); a
|
|
246
|
+
x0*x1
|
|
247
|
+
sage: symmetrica.compute_elmsym_with_alphabet(3,2)
|
|
248
|
+
0
|
|
249
|
+
sage: symmetrica.compute_elmsym_with_alphabet([3,2,1],2)
|
|
250
|
+
0
|
|
251
|
+
"""
|
|
252
|
+
late_import()
|
|
253
|
+
cdef OP cn = callocobject(), clength = callocobject(), cresult = callocobject()
|
|
254
|
+
|
|
255
|
+
if isinstance(n, (int, Integer)):
|
|
256
|
+
if n > length:
|
|
257
|
+
return 0
|
|
258
|
+
_op_integer(n, cn)
|
|
259
|
+
elif isinstance(n, (builtinlist, Partition)):
|
|
260
|
+
if max(n) > length:
|
|
261
|
+
return 0
|
|
262
|
+
_op_partition(n, cn)
|
|
263
|
+
else:
|
|
264
|
+
raise NotImplementedError("n must be an integer or a partition")
|
|
265
|
+
|
|
266
|
+
_op_integer(length, clength)
|
|
267
|
+
|
|
268
|
+
sig_on()
|
|
269
|
+
compute_elmsym_with_alphabet(cn, clength, cresult)
|
|
270
|
+
sig_off()
|
|
271
|
+
|
|
272
|
+
res = _py_polynom_alphabet(cresult, alphabet, length)
|
|
273
|
+
|
|
274
|
+
freeall(cresult)
|
|
275
|
+
freeall(cn)
|
|
276
|
+
freeall(clength)
|
|
277
|
+
|
|
278
|
+
return res
|
|
279
|
+
|
|
280
|
+
|
|
281
|
+
def compute_monomial_with_alphabet_symmetrica(n, length, alphabet='x'):
|
|
282
|
+
"""
|
|
283
|
+
Compute the expansion of a monomial symmetric
|
|
284
|
+
function labeled by a PARTITION number as a POLYNOM erg.
|
|
285
|
+
The INTEGER laenge specifies the length of the alphabet.
|
|
286
|
+
|
|
287
|
+
EXAMPLES::
|
|
288
|
+
|
|
289
|
+
sage: symmetrica.compute_monomial_with_alphabet([2,1],2,'x')
|
|
290
|
+
x0^2*x1 + x0*x1^2
|
|
291
|
+
sage: symmetrica.compute_monomial_with_alphabet([1,1,1],2,'x')
|
|
292
|
+
0
|
|
293
|
+
sage: symmetrica.compute_monomial_with_alphabet(2,2,'x')
|
|
294
|
+
x0^2 + x1^2
|
|
295
|
+
sage: symmetrica.compute_monomial_with_alphabet(2,2,'a,b')
|
|
296
|
+
a^2 + b^2
|
|
297
|
+
sage: symmetrica.compute_monomial_with_alphabet(2,2,'x').parent()
|
|
298
|
+
Multivariate Polynomial Ring in x0, x1 over Integer Ring
|
|
299
|
+
"""
|
|
300
|
+
late_import()
|
|
301
|
+
cdef OP cn = callocobject(), clength = callocobject(), cresult = callocobject()
|
|
302
|
+
if isinstance(n, (int, Integer)):
|
|
303
|
+
_op_integer(n, cn)
|
|
304
|
+
elif isinstance(n, (builtinlist, Partition)):
|
|
305
|
+
if len(n) > length:
|
|
306
|
+
return 0
|
|
307
|
+
_op_partition(n, cn)
|
|
308
|
+
else:
|
|
309
|
+
raise NotImplementedError("n must be an integer or a partition")
|
|
310
|
+
|
|
311
|
+
_op_integer(length, clength)
|
|
312
|
+
|
|
313
|
+
sig_on()
|
|
314
|
+
compute_monomial_with_alphabet(cn, clength, cresult)
|
|
315
|
+
sig_off()
|
|
316
|
+
|
|
317
|
+
res = _py_polynom_alphabet(cresult, alphabet, length)
|
|
318
|
+
|
|
319
|
+
freeall(cresult)
|
|
320
|
+
freeall(cn)
|
|
321
|
+
freeall(clength)
|
|
322
|
+
|
|
323
|
+
return res
|
|
324
|
+
|
|
325
|
+
|
|
326
|
+
def compute_powsym_with_alphabet_symmetrica(n, length, alphabet='x'):
|
|
327
|
+
"""
|
|
328
|
+
Compute the expansion of a power symmetric
|
|
329
|
+
function labeled by a INTEGER label or by a PARTITION label
|
|
330
|
+
or a POW_SYM label as a POLYNOM erg.
|
|
331
|
+
The INTEGER laenge specifies the length of the alphabet.
|
|
332
|
+
|
|
333
|
+
EXAMPLES::
|
|
334
|
+
|
|
335
|
+
sage: symmetrica.compute_powsym_with_alphabet(2,2,'x')
|
|
336
|
+
x0^2 + x1^2
|
|
337
|
+
sage: symmetrica.compute_powsym_with_alphabet(2,2,'x').parent()
|
|
338
|
+
Multivariate Polynomial Ring in x0, x1 over Integer Ring
|
|
339
|
+
sage: symmetrica.compute_powsym_with_alphabet([2],2,'x')
|
|
340
|
+
x0^2 + x1^2
|
|
341
|
+
sage: symmetrica.compute_powsym_with_alphabet([2],2,'a,b')
|
|
342
|
+
a^2 + b^2
|
|
343
|
+
sage: symmetrica.compute_powsym_with_alphabet([2,1],2,'a,b')
|
|
344
|
+
a^3 + a^2*b + a*b^2 + b^3
|
|
345
|
+
"""
|
|
346
|
+
late_import()
|
|
347
|
+
cdef OP cn = callocobject(), clength = callocobject(), cresult = callocobject()
|
|
348
|
+
|
|
349
|
+
if isinstance(n, (int, Integer)):
|
|
350
|
+
_op_integer(n, cn)
|
|
351
|
+
elif isinstance(n, (builtinlist, Partition)):
|
|
352
|
+
_op_partition(n, cn)
|
|
353
|
+
else:
|
|
354
|
+
raise NotImplementedError("need to write code for POW_SYM")
|
|
355
|
+
|
|
356
|
+
_op_integer(length, clength)
|
|
357
|
+
|
|
358
|
+
sig_on()
|
|
359
|
+
compute_powsym_with_alphabet(cn, clength, cresult)
|
|
360
|
+
sig_off()
|
|
361
|
+
|
|
362
|
+
res = _py_polynom_alphabet(cresult, alphabet, length)
|
|
363
|
+
|
|
364
|
+
freeall(cresult)
|
|
365
|
+
freeall(cn)
|
|
366
|
+
freeall(clength)
|
|
367
|
+
|
|
368
|
+
return res
|
|
369
|
+
|
|
370
|
+
|
|
371
|
+
def compute_schur_with_alphabet_det_symmetrica(part, length, alphabet='x'):
|
|
372
|
+
"""
|
|
373
|
+
EXAMPLES::
|
|
374
|
+
|
|
375
|
+
sage: symmetrica.compute_schur_with_alphabet_det(2,2)
|
|
376
|
+
x0^2 + x0*x1 + x1^2
|
|
377
|
+
sage: symmetrica.compute_schur_with_alphabet_det([2],2)
|
|
378
|
+
x0^2 + x0*x1 + x1^2
|
|
379
|
+
sage: symmetrica.compute_schur_with_alphabet_det(Partition([2]),2)
|
|
380
|
+
x0^2 + x0*x1 + x1^2
|
|
381
|
+
sage: symmetrica.compute_schur_with_alphabet_det(Partition([2]),2,'y')
|
|
382
|
+
y0^2 + y0*y1 + y1^2
|
|
383
|
+
sage: symmetrica.compute_schur_with_alphabet_det(Partition([2]),2,'a,b')
|
|
384
|
+
a^2 + a*b + b^2
|
|
385
|
+
"""
|
|
386
|
+
cdef OP cpart = callocobject(), cresult = callocobject(), clength = callocobject()
|
|
387
|
+
|
|
388
|
+
if isinstance(part, (int, Integer)):
|
|
389
|
+
_op_partition([part], cpart)
|
|
390
|
+
elif isinstance(part, (builtinlist, Partition)):
|
|
391
|
+
_op_partition(part, cpart)
|
|
392
|
+
else:
|
|
393
|
+
raise NotImplementedError("n must be an integer or partition")
|
|
394
|
+
|
|
395
|
+
_op_integer(length, clength)
|
|
396
|
+
|
|
397
|
+
sig_on()
|
|
398
|
+
compute_schur_with_alphabet_det(cpart, clength, cresult)
|
|
399
|
+
sig_off()
|
|
400
|
+
|
|
401
|
+
res = _py_polynom_alphabet(cresult, alphabet, length)
|
|
402
|
+
|
|
403
|
+
freeall(cresult)
|
|
404
|
+
freeall(cpart)
|
|
405
|
+
freeall(clength)
|
|
406
|
+
|
|
407
|
+
return res
|
|
408
|
+
|
|
409
|
+
|
|
410
|
+
def part_part_skewschur_symmetrica(outer, inner):
|
|
411
|
+
"""
|
|
412
|
+
Return the skew Schur function s_{outer/inner}.
|
|
413
|
+
|
|
414
|
+
EXAMPLES::
|
|
415
|
+
|
|
416
|
+
sage: symmetrica.part_part_skewschur([3,2,1],[2,1])
|
|
417
|
+
s[1, 1, 1] + 2*s[2, 1] + s[3]
|
|
418
|
+
"""
|
|
419
|
+
cdef OP couter = callocobject(), cinner = callocobject(), cresult = callocobject()
|
|
420
|
+
|
|
421
|
+
_op_partition(outer, couter)
|
|
422
|
+
_op_partition(inner, cinner)
|
|
423
|
+
|
|
424
|
+
sig_on()
|
|
425
|
+
part_part_skewschur(couter, cinner, cresult)
|
|
426
|
+
sig_off()
|
|
427
|
+
|
|
428
|
+
res = _py(cresult)
|
|
429
|
+
|
|
430
|
+
freeall(couter)
|
|
431
|
+
freeall(cinner)
|
|
432
|
+
freeall(cresult)
|
|
433
|
+
|
|
434
|
+
return res
|
|
435
|
+
|
|
436
|
+
|
|
437
|
+
def hall_littlewood_symmetrica(part):
|
|
438
|
+
"""
|
|
439
|
+
Compute the so called Hall Littlewood Polynomials, i.e.
|
|
440
|
+
a SCHUR object, whose coefficient are polynomials in one
|
|
441
|
+
variable. The method, which is used for the computation is described
|
|
442
|
+
in the paper: A.O. Morris The Characters of the group GL(n,q)
|
|
443
|
+
Math Zeitschr 81, 112-123 (1963)
|
|
444
|
+
"""
|
|
445
|
+
|
|
446
|
+
cdef OP cpart = callocobject(), cresult = callocobject()
|
|
447
|
+
cdef OP pointer
|
|
448
|
+
|
|
449
|
+
if len(part) == 0:
|
|
450
|
+
raise TypeError("part must be a partition of a positive integer")
|
|
451
|
+
|
|
452
|
+
_op_partition(part, cpart)
|
|
453
|
+
|
|
454
|
+
sig_on()
|
|
455
|
+
hall_littlewood(cpart, cresult)
|
|
456
|
+
sig_off()
|
|
457
|
+
|
|
458
|
+
res = _py(cresult)
|
|
459
|
+
|
|
460
|
+
freeall(cresult)
|
|
461
|
+
freeall(cpart)
|
|
462
|
+
|
|
463
|
+
return res
|
|
464
|
+
|
|
465
|
+
|
|
466
|
+
def t_SCHUR_MONOMIAL_symmetrica(schur):
|
|
467
|
+
cdef OP cschur = callocobject(), cresult = callocobject()
|
|
468
|
+
|
|
469
|
+
_op_schur(schur, cschur)
|
|
470
|
+
|
|
471
|
+
sig_on()
|
|
472
|
+
t_SCHUR_MONOMIAL(cschur, cresult)
|
|
473
|
+
sig_off()
|
|
474
|
+
|
|
475
|
+
res = _py(cresult)
|
|
476
|
+
|
|
477
|
+
freeall(cresult)
|
|
478
|
+
freeall(cschur)
|
|
479
|
+
|
|
480
|
+
return res
|
|
481
|
+
|
|
482
|
+
|
|
483
|
+
def t_SCHUR_HOMSYM_symmetrica(schur):
|
|
484
|
+
cdef OP cschur = callocobject(), cresult = callocobject()
|
|
485
|
+
|
|
486
|
+
_op_schur(schur, cschur)
|
|
487
|
+
|
|
488
|
+
sig_on()
|
|
489
|
+
t_SCHUR_HOMSYM(cschur, cresult)
|
|
490
|
+
sig_off()
|
|
491
|
+
|
|
492
|
+
res = _py(cresult)
|
|
493
|
+
|
|
494
|
+
freeall(cresult)
|
|
495
|
+
freeall(cschur)
|
|
496
|
+
|
|
497
|
+
return res
|
|
498
|
+
|
|
499
|
+
|
|
500
|
+
def t_SCHUR_ELMSYM_symmetrica(schur):
|
|
501
|
+
cdef OP cschur = callocobject(), cresult = callocobject()
|
|
502
|
+
|
|
503
|
+
_op_schur(schur, cschur)
|
|
504
|
+
|
|
505
|
+
sig_on()
|
|
506
|
+
t_SCHUR_ELMSYM(cschur, cresult)
|
|
507
|
+
sig_off()
|
|
508
|
+
|
|
509
|
+
res = _py(cresult)
|
|
510
|
+
|
|
511
|
+
freeall(cresult)
|
|
512
|
+
freeall(cschur)
|
|
513
|
+
|
|
514
|
+
return res
|
|
515
|
+
|
|
516
|
+
|
|
517
|
+
def t_SCHUR_POWSYM_symmetrica(schur):
|
|
518
|
+
cdef OP cschur = callocobject(), cresult = callocobject()
|
|
519
|
+
|
|
520
|
+
_op_schur(schur, cschur)
|
|
521
|
+
|
|
522
|
+
sig_on()
|
|
523
|
+
t_SCHUR_POWSYM(cschur, cresult)
|
|
524
|
+
sig_off()
|
|
525
|
+
|
|
526
|
+
res = _py(cresult)
|
|
527
|
+
|
|
528
|
+
freeall(cresult)
|
|
529
|
+
freeall(cschur)
|
|
530
|
+
|
|
531
|
+
return res
|
|
532
|
+
|
|
533
|
+
|
|
534
|
+
def t_POLYNOM_SCHUR_symmetrica(p):
|
|
535
|
+
r"""
|
|
536
|
+
Convert a symmetric polynomial with base ring `\QQ` or `\ZZ` into a
|
|
537
|
+
symmetric function in the Schur basis.
|
|
538
|
+
"""
|
|
539
|
+
cdef OP polynom = callocobject(), cresult = callocobject()
|
|
540
|
+
|
|
541
|
+
_op_polynom(p, polynom)
|
|
542
|
+
|
|
543
|
+
if not symmetricp(polynom):
|
|
544
|
+
raise ValueError("the polynomial must be symmetric")
|
|
545
|
+
|
|
546
|
+
sig_on()
|
|
547
|
+
t_POLYNOM_SCHUR(polynom, cresult)
|
|
548
|
+
sig_off()
|
|
549
|
+
|
|
550
|
+
res = _py(cresult)
|
|
551
|
+
|
|
552
|
+
freeall(cresult)
|
|
553
|
+
freeall(polynom)
|
|
554
|
+
|
|
555
|
+
return res
|
|
556
|
+
|
|
557
|
+
|
|
558
|
+
def t_MONOMIAL_HOMSYM_symmetrica(monomial):
|
|
559
|
+
cdef OP cmonomial = callocobject(), cresult = callocobject()
|
|
560
|
+
|
|
561
|
+
_op_monomial(monomial, cmonomial)
|
|
562
|
+
|
|
563
|
+
sig_on()
|
|
564
|
+
t_MONOMIAL_HOMSYM(cmonomial, cresult)
|
|
565
|
+
sig_off()
|
|
566
|
+
|
|
567
|
+
res = _py(cresult)
|
|
568
|
+
|
|
569
|
+
freeall(cresult)
|
|
570
|
+
freeall(cmonomial)
|
|
571
|
+
|
|
572
|
+
return res
|
|
573
|
+
|
|
574
|
+
|
|
575
|
+
def t_MONOMIAL_ELMSYM_symmetrica(monomial):
|
|
576
|
+
cdef OP cmonomial = callocobject(), cresult = callocobject()
|
|
577
|
+
|
|
578
|
+
_op_monomial(monomial, cmonomial)
|
|
579
|
+
|
|
580
|
+
sig_on()
|
|
581
|
+
t_MONOMIAL_ELMSYM(cmonomial, cresult)
|
|
582
|
+
sig_off()
|
|
583
|
+
|
|
584
|
+
res = _py(cresult)
|
|
585
|
+
|
|
586
|
+
freeall(cresult)
|
|
587
|
+
freeall(cmonomial)
|
|
588
|
+
|
|
589
|
+
return res
|
|
590
|
+
|
|
591
|
+
|
|
592
|
+
def t_MONOMIAL_SCHUR_symmetrica(monomial):
|
|
593
|
+
cdef OP cmonomial = callocobject(), cresult = callocobject()
|
|
594
|
+
|
|
595
|
+
_op_monomial(monomial, cmonomial)
|
|
596
|
+
|
|
597
|
+
sig_on()
|
|
598
|
+
t_MONOMIAL_SCHUR(cmonomial, cresult)
|
|
599
|
+
sig_off()
|
|
600
|
+
|
|
601
|
+
res = _py(cresult)
|
|
602
|
+
|
|
603
|
+
freeall(cresult)
|
|
604
|
+
freeall(cmonomial)
|
|
605
|
+
|
|
606
|
+
return res
|
|
607
|
+
|
|
608
|
+
|
|
609
|
+
def t_MONOMIAL_POWSYM_symmetrica(monomial):
|
|
610
|
+
cdef OP cmonomial = callocobject(), cresult = callocobject()
|
|
611
|
+
|
|
612
|
+
_op_monomial(monomial, cmonomial)
|
|
613
|
+
|
|
614
|
+
sig_on()
|
|
615
|
+
t_MONOMIAL_POWSYM(cmonomial, cresult)
|
|
616
|
+
sig_off()
|
|
617
|
+
|
|
618
|
+
res = _py(cresult)
|
|
619
|
+
|
|
620
|
+
freeall(cresult)
|
|
621
|
+
freeall(cmonomial)
|
|
622
|
+
|
|
623
|
+
return res
|
|
624
|
+
|
|
625
|
+
|
|
626
|
+
def t_POLYNOM_MONOMIAL_symmetrica(p):
|
|
627
|
+
r"""
|
|
628
|
+
Convert a symmetric polynomial with base ring `\QQ` or `\ZZ` into a
|
|
629
|
+
symmetric function in the monomial basis.
|
|
630
|
+
"""
|
|
631
|
+
cdef OP polynom = callocobject(), cresult = callocobject()
|
|
632
|
+
|
|
633
|
+
_op_polynom(p, polynom)
|
|
634
|
+
|
|
635
|
+
if not symmetricp(polynom):
|
|
636
|
+
raise ValueError("the polynomial must be symmetric")
|
|
637
|
+
|
|
638
|
+
sig_on()
|
|
639
|
+
t_POLYNOM_MONOMIAL(polynom, cresult)
|
|
640
|
+
sig_off()
|
|
641
|
+
|
|
642
|
+
res = _py(cresult)
|
|
643
|
+
|
|
644
|
+
freeall(cresult)
|
|
645
|
+
freeall(polynom)
|
|
646
|
+
|
|
647
|
+
return res
|
|
648
|
+
|
|
649
|
+
|
|
650
|
+
def t_ELMSYM_SCHUR_symmetrica(elmsym):
|
|
651
|
+
cdef OP celmsym = callocobject(), cresult = callocobject()
|
|
652
|
+
|
|
653
|
+
_op_elmsym(elmsym, celmsym)
|
|
654
|
+
|
|
655
|
+
sig_on()
|
|
656
|
+
t_ELMSYM_SCHUR(celmsym, cresult)
|
|
657
|
+
sig_off()
|
|
658
|
+
|
|
659
|
+
res = _py(cresult)
|
|
660
|
+
|
|
661
|
+
freeall(cresult)
|
|
662
|
+
freeall(celmsym)
|
|
663
|
+
|
|
664
|
+
return res
|
|
665
|
+
|
|
666
|
+
|
|
667
|
+
def t_ELMSYM_POWSYM_symmetrica(elmsym):
|
|
668
|
+
cdef OP celmsym = callocobject(), cresult = callocobject()
|
|
669
|
+
|
|
670
|
+
_op_elmsym(elmsym, celmsym)
|
|
671
|
+
|
|
672
|
+
sig_on()
|
|
673
|
+
t_ELMSYM_POWSYM(celmsym, cresult)
|
|
674
|
+
sig_off()
|
|
675
|
+
|
|
676
|
+
res = _py(cresult)
|
|
677
|
+
|
|
678
|
+
freeall(cresult)
|
|
679
|
+
freeall(celmsym)
|
|
680
|
+
|
|
681
|
+
return res
|
|
682
|
+
|
|
683
|
+
|
|
684
|
+
def t_ELMSYM_MONOMIAL_symmetrica(elmsym):
|
|
685
|
+
cdef OP celmsym = callocobject(), cresult = callocobject()
|
|
686
|
+
|
|
687
|
+
_op_elmsym(elmsym, celmsym)
|
|
688
|
+
|
|
689
|
+
sig_on()
|
|
690
|
+
t_ELMSYM_MONOMIAL(celmsym, cresult)
|
|
691
|
+
sig_off()
|
|
692
|
+
|
|
693
|
+
res = _py(cresult)
|
|
694
|
+
|
|
695
|
+
freeall(cresult)
|
|
696
|
+
freeall(celmsym)
|
|
697
|
+
|
|
698
|
+
return res
|
|
699
|
+
|
|
700
|
+
|
|
701
|
+
def t_ELMSYM_HOMSYM_symmetrica(elmsym):
|
|
702
|
+
cdef OP celmsym = callocobject(), cresult = callocobject()
|
|
703
|
+
|
|
704
|
+
_op_elmsym(elmsym, celmsym)
|
|
705
|
+
|
|
706
|
+
sig_on()
|
|
707
|
+
t_ELMSYM_HOMSYM(celmsym, cresult)
|
|
708
|
+
sig_off()
|
|
709
|
+
|
|
710
|
+
res = _py(cresult)
|
|
711
|
+
|
|
712
|
+
freeall(cresult)
|
|
713
|
+
freeall(celmsym)
|
|
714
|
+
|
|
715
|
+
return res
|
|
716
|
+
|
|
717
|
+
|
|
718
|
+
def t_POLYNOM_ELMSYM_symmetrica(p):
|
|
719
|
+
r"""
|
|
720
|
+
Convert a symmetric polynomial with base ring `\QQ` or `\ZZ` into a
|
|
721
|
+
symmetric function in the elementary basis.
|
|
722
|
+
"""
|
|
723
|
+
cdef OP polynom = callocobject(), cresult = callocobject()
|
|
724
|
+
|
|
725
|
+
_op_polynom(p, polynom)
|
|
726
|
+
|
|
727
|
+
if not symmetricp(polynom):
|
|
728
|
+
raise ValueError("the polynomial must be symmetric")
|
|
729
|
+
|
|
730
|
+
sig_on()
|
|
731
|
+
t_POLYNOM_ELMSYM(polynom, cresult)
|
|
732
|
+
sig_off()
|
|
733
|
+
|
|
734
|
+
res = _py(cresult)
|
|
735
|
+
|
|
736
|
+
freeall(cresult)
|
|
737
|
+
freeall(polynom)
|
|
738
|
+
|
|
739
|
+
return res
|
|
740
|
+
|
|
741
|
+
|
|
742
|
+
def t_HOMSYM_SCHUR_symmetrica(homsym):
|
|
743
|
+
cdef OP chomsym = callocobject(), cresult = callocobject()
|
|
744
|
+
|
|
745
|
+
_op_homsym(homsym, chomsym)
|
|
746
|
+
|
|
747
|
+
sig_on()
|
|
748
|
+
t_HOMSYM_SCHUR(chomsym, cresult)
|
|
749
|
+
sig_off()
|
|
750
|
+
|
|
751
|
+
res = _py(cresult)
|
|
752
|
+
|
|
753
|
+
freeall(cresult)
|
|
754
|
+
freeall(chomsym)
|
|
755
|
+
|
|
756
|
+
return res
|
|
757
|
+
|
|
758
|
+
|
|
759
|
+
def t_HOMSYM_POWSYM_symmetrica(homsym):
|
|
760
|
+
cdef OP chomsym = callocobject(), cresult = callocobject()
|
|
761
|
+
|
|
762
|
+
_op_homsym(homsym, chomsym)
|
|
763
|
+
|
|
764
|
+
sig_on()
|
|
765
|
+
t_HOMSYM_POWSYM(chomsym, cresult)
|
|
766
|
+
sig_off()
|
|
767
|
+
|
|
768
|
+
res = _py(cresult)
|
|
769
|
+
|
|
770
|
+
freeall(cresult)
|
|
771
|
+
freeall(chomsym)
|
|
772
|
+
|
|
773
|
+
return res
|
|
774
|
+
|
|
775
|
+
|
|
776
|
+
def t_HOMSYM_MONOMIAL_symmetrica(homsym):
|
|
777
|
+
cdef OP chomsym = callocobject(), cresult = callocobject()
|
|
778
|
+
|
|
779
|
+
_op_homsym(homsym, chomsym)
|
|
780
|
+
|
|
781
|
+
sig_on()
|
|
782
|
+
t_HOMSYM_MONOMIAL(chomsym, cresult)
|
|
783
|
+
sig_off()
|
|
784
|
+
|
|
785
|
+
res = _py(cresult)
|
|
786
|
+
|
|
787
|
+
freeall(cresult)
|
|
788
|
+
freeall(chomsym)
|
|
789
|
+
|
|
790
|
+
return res
|
|
791
|
+
|
|
792
|
+
|
|
793
|
+
def t_HOMSYM_ELMSYM_symmetrica(homsym):
|
|
794
|
+
cdef OP chomsym = callocobject(), cresult = callocobject()
|
|
795
|
+
|
|
796
|
+
_op_homsym(homsym, chomsym)
|
|
797
|
+
|
|
798
|
+
sig_on()
|
|
799
|
+
t_HOMSYM_ELMSYM(chomsym, cresult)
|
|
800
|
+
sig_off()
|
|
801
|
+
|
|
802
|
+
res = _py(cresult)
|
|
803
|
+
|
|
804
|
+
freeall(cresult)
|
|
805
|
+
freeall(chomsym)
|
|
806
|
+
|
|
807
|
+
return res
|
|
808
|
+
|
|
809
|
+
|
|
810
|
+
def t_POWSYM_MONOMIAL_symmetrica(powsym):
|
|
811
|
+
cdef OP cpowsym = callocobject(), cresult = callocobject()
|
|
812
|
+
|
|
813
|
+
_op_powsym(powsym, cpowsym)
|
|
814
|
+
|
|
815
|
+
sig_on()
|
|
816
|
+
t_POWSYM_MONOMIAL(cpowsym, cresult)
|
|
817
|
+
sig_off()
|
|
818
|
+
|
|
819
|
+
res = _py(cresult)
|
|
820
|
+
|
|
821
|
+
freeall(cresult)
|
|
822
|
+
freeall(cpowsym)
|
|
823
|
+
|
|
824
|
+
return res
|
|
825
|
+
|
|
826
|
+
|
|
827
|
+
def t_POWSYM_SCHUR_symmetrica(powsym):
|
|
828
|
+
cdef OP cpowsym = callocobject(), cresult = callocobject()
|
|
829
|
+
|
|
830
|
+
_op_powsym(powsym, cpowsym)
|
|
831
|
+
|
|
832
|
+
sig_on()
|
|
833
|
+
t_POWSYM_SCHUR(cpowsym, cresult)
|
|
834
|
+
sig_off()
|
|
835
|
+
|
|
836
|
+
res = _py(cresult)
|
|
837
|
+
|
|
838
|
+
freeall(cresult)
|
|
839
|
+
freeall(cpowsym)
|
|
840
|
+
|
|
841
|
+
return res
|
|
842
|
+
|
|
843
|
+
|
|
844
|
+
def t_POWSYM_ELMSYM_symmetrica(powsym):
|
|
845
|
+
cdef OP cpowsym = callocobject(), cresult = callocobject()
|
|
846
|
+
|
|
847
|
+
_op_powsym(powsym, cpowsym)
|
|
848
|
+
|
|
849
|
+
sig_on()
|
|
850
|
+
t_POWSYM_ELMSYM(cpowsym, cresult)
|
|
851
|
+
sig_off()
|
|
852
|
+
|
|
853
|
+
res = _py(cresult)
|
|
854
|
+
|
|
855
|
+
freeall(cresult)
|
|
856
|
+
freeall(cpowsym)
|
|
857
|
+
|
|
858
|
+
return res
|
|
859
|
+
|
|
860
|
+
|
|
861
|
+
def t_POWSYM_HOMSYM_symmetrica(powsym):
|
|
862
|
+
cdef OP cpowsym = callocobject(), cresult = callocobject()
|
|
863
|
+
|
|
864
|
+
_op_powsym(powsym, cpowsym)
|
|
865
|
+
|
|
866
|
+
sig_on()
|
|
867
|
+
t_POWSYM_HOMSYM(cpowsym, cresult)
|
|
868
|
+
sig_off()
|
|
869
|
+
|
|
870
|
+
res = _py(cresult)
|
|
871
|
+
|
|
872
|
+
freeall(cresult)
|
|
873
|
+
freeall(cpowsym)
|
|
874
|
+
|
|
875
|
+
return res
|
|
876
|
+
|
|
877
|
+
|
|
878
|
+
def t_POLYNOM_POWER_symmetrica(p):
|
|
879
|
+
r"""
|
|
880
|
+
Convert a symmetric polynomial with base ring `\QQ` or `\ZZ` into a
|
|
881
|
+
symmetric function in the power sum basis.
|
|
882
|
+
"""
|
|
883
|
+
cdef OP polynom = callocobject(), cresult = callocobject()
|
|
884
|
+
|
|
885
|
+
_op_polynom(p, polynom)
|
|
886
|
+
|
|
887
|
+
if not symmetricp(polynom):
|
|
888
|
+
raise ValueError("the polynomial must be symmetric")
|
|
889
|
+
|
|
890
|
+
sig_on()
|
|
891
|
+
t_POLYNOM_POWER(polynom, cresult)
|
|
892
|
+
sig_off()
|
|
893
|
+
|
|
894
|
+
res = _py(cresult)
|
|
895
|
+
|
|
896
|
+
freeall(cresult)
|
|
897
|
+
freeall(polynom)
|
|
898
|
+
|
|
899
|
+
return res
|
|
900
|
+
|
|
901
|
+
|
|
902
|
+
def mult_schur_schur_symmetrica(s1, s2):
|
|
903
|
+
cdef OP cs1 = callocobject(), cs2 = callocobject(), cresult = callocobject()
|
|
904
|
+
|
|
905
|
+
_op_schur(s1, cs1)
|
|
906
|
+
_op_schur(s2, cs2)
|
|
907
|
+
|
|
908
|
+
sig_on()
|
|
909
|
+
mult_schur_schur(cs1, cs2, cresult)
|
|
910
|
+
sig_off()
|
|
911
|
+
|
|
912
|
+
res = _py(cresult)
|
|
913
|
+
|
|
914
|
+
freeall(cs1)
|
|
915
|
+
freeall(cs2)
|
|
916
|
+
freeall(cresult)
|
|
917
|
+
|
|
918
|
+
return res
|
|
919
|
+
|
|
920
|
+
|
|
921
|
+
def mult_monomial_monomial_symmetrica(m1, m2):
|
|
922
|
+
cdef OP cm1 = callocobject(), cm2 = callocobject(), cresult = callocobject()
|
|
923
|
+
|
|
924
|
+
_op_monomial(m1, cm1)
|
|
925
|
+
_op_monomial(m2, cm2)
|
|
926
|
+
|
|
927
|
+
sig_on()
|
|
928
|
+
mult_monomial_monomial(cm1, cm2, cresult)
|
|
929
|
+
sig_off()
|
|
930
|
+
|
|
931
|
+
res = _py(cresult)
|
|
932
|
+
|
|
933
|
+
freeall(cm1)
|
|
934
|
+
freeall(cm2)
|
|
935
|
+
freeall(cresult)
|
|
936
|
+
|
|
937
|
+
return res
|
|
938
|
+
|
|
939
|
+
|
|
940
|
+
def scalarproduct_schur_symmetrica(s1, s2):
|
|
941
|
+
cdef OP cs1 = callocobject(), cs2 = callocobject(), cresult = callocobject()
|
|
942
|
+
|
|
943
|
+
_op_schur(s1, cs1)
|
|
944
|
+
_op_schur(s2, cs2)
|
|
945
|
+
|
|
946
|
+
sig_on()
|
|
947
|
+
scalarproduct_schur(cs1, cs2, cresult)
|
|
948
|
+
sig_off()
|
|
949
|
+
|
|
950
|
+
res = _py(cresult)
|
|
951
|
+
|
|
952
|
+
freeall(cs1)
|
|
953
|
+
freeall(cs2)
|
|
954
|
+
freeall(cresult)
|
|
955
|
+
|
|
956
|
+
return res
|