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.
Files changed (400) hide show
  1. passagemath_combinat/__init__.py +3 -0
  2. passagemath_combinat-10.6.42.dist-info/METADATA +160 -0
  3. passagemath_combinat-10.6.42.dist-info/RECORD +400 -0
  4. passagemath_combinat-10.6.42.dist-info/WHEEL +5 -0
  5. passagemath_combinat-10.6.42.dist-info/top_level.txt +3 -0
  6. passagemath_combinat.libs/libgmp-0e7fc84e.so.10.5.0 +0 -0
  7. passagemath_combinat.libs/libsymmetrica-81fe8739.so.3.0.0 +0 -0
  8. sage/algebras/affine_nil_temperley_lieb.py +263 -0
  9. sage/algebras/all.py +24 -0
  10. sage/algebras/all__sagemath_combinat.py +35 -0
  11. sage/algebras/askey_wilson.py +935 -0
  12. sage/algebras/associated_graded.py +345 -0
  13. sage/algebras/cellular_basis.py +350 -0
  14. sage/algebras/cluster_algebra.py +2766 -0
  15. sage/algebras/down_up_algebra.py +860 -0
  16. sage/algebras/free_algebra.py +1698 -0
  17. sage/algebras/free_algebra_element.py +345 -0
  18. sage/algebras/free_algebra_quotient.py +405 -0
  19. sage/algebras/free_algebra_quotient_element.py +295 -0
  20. sage/algebras/free_zinbiel_algebra.py +885 -0
  21. sage/algebras/hall_algebra.py +783 -0
  22. sage/algebras/hecke_algebras/all.py +4 -0
  23. sage/algebras/hecke_algebras/ariki_koike_algebra.py +1796 -0
  24. sage/algebras/hecke_algebras/ariki_koike_specht_modules.py +475 -0
  25. sage/algebras/hecke_algebras/cubic_hecke_algebra.py +3520 -0
  26. sage/algebras/hecke_algebras/cubic_hecke_base_ring.py +1473 -0
  27. sage/algebras/hecke_algebras/cubic_hecke_matrix_rep.py +1079 -0
  28. sage/algebras/iwahori_hecke_algebra.py +3095 -0
  29. sage/algebras/jordan_algebra.py +1773 -0
  30. sage/algebras/lie_conformal_algebras/abelian_lie_conformal_algebra.py +113 -0
  31. sage/algebras/lie_conformal_algebras/affine_lie_conformal_algebra.py +156 -0
  32. sage/algebras/lie_conformal_algebras/all.py +18 -0
  33. sage/algebras/lie_conformal_algebras/bosonic_ghosts_lie_conformal_algebra.py +134 -0
  34. sage/algebras/lie_conformal_algebras/examples.py +43 -0
  35. sage/algebras/lie_conformal_algebras/fermionic_ghosts_lie_conformal_algebra.py +131 -0
  36. sage/algebras/lie_conformal_algebras/finitely_freely_generated_lca.py +139 -0
  37. sage/algebras/lie_conformal_algebras/free_bosons_lie_conformal_algebra.py +174 -0
  38. sage/algebras/lie_conformal_algebras/free_fermions_lie_conformal_algebra.py +167 -0
  39. sage/algebras/lie_conformal_algebras/freely_generated_lie_conformal_algebra.py +107 -0
  40. sage/algebras/lie_conformal_algebras/graded_lie_conformal_algebra.py +135 -0
  41. sage/algebras/lie_conformal_algebras/lie_conformal_algebra.py +353 -0
  42. sage/algebras/lie_conformal_algebras/lie_conformal_algebra_element.py +236 -0
  43. sage/algebras/lie_conformal_algebras/lie_conformal_algebra_with_basis.py +78 -0
  44. sage/algebras/lie_conformal_algebras/lie_conformal_algebra_with_structure_coefs.py +328 -0
  45. sage/algebras/lie_conformal_algebras/n2_lie_conformal_algebra.py +117 -0
  46. sage/algebras/lie_conformal_algebras/neveu_schwarz_lie_conformal_algebra.py +86 -0
  47. sage/algebras/lie_conformal_algebras/virasoro_lie_conformal_algebra.py +82 -0
  48. sage/algebras/lie_conformal_algebras/weyl_lie_conformal_algebra.py +205 -0
  49. sage/algebras/nil_coxeter_algebra.py +191 -0
  50. sage/algebras/q_commuting_polynomials.py +673 -0
  51. sage/algebras/q_system.py +608 -0
  52. sage/algebras/quantum_clifford.py +959 -0
  53. sage/algebras/quantum_groups/ace_quantum_onsager.py +693 -0
  54. sage/algebras/quantum_groups/all.py +9 -0
  55. sage/algebras/quantum_groups/fock_space.py +2219 -0
  56. sage/algebras/quantum_groups/q_numbers.py +207 -0
  57. sage/algebras/quantum_groups/quantum_group_gap.py +2695 -0
  58. sage/algebras/quantum_groups/representations.py +591 -0
  59. sage/algebras/quantum_matrix_coordinate_algebra.py +1006 -0
  60. sage/algebras/quantum_oscillator.py +623 -0
  61. sage/algebras/quaternion_algebra.py +20 -0
  62. sage/algebras/quaternion_algebra_element.py +55 -0
  63. sage/algebras/rational_cherednik_algebra.py +525 -0
  64. sage/algebras/schur_algebra.py +670 -0
  65. sage/algebras/shuffle_algebra.py +1011 -0
  66. sage/algebras/splitting_algebra.py +779 -0
  67. sage/algebras/tensor_algebra.py +709 -0
  68. sage/algebras/yangian.py +1082 -0
  69. sage/algebras/yokonuma_hecke_algebra.py +1018 -0
  70. sage/all__sagemath_combinat.py +35 -0
  71. sage/combinat/SJT.py +255 -0
  72. sage/combinat/affine_permutation.py +2405 -0
  73. sage/combinat/algebraic_combinatorics.py +55 -0
  74. sage/combinat/all.py +53 -0
  75. sage/combinat/all__sagemath_combinat.py +195 -0
  76. sage/combinat/alternating_sign_matrix.py +2063 -0
  77. sage/combinat/baxter_permutations.py +346 -0
  78. sage/combinat/bijectionist.py +3220 -0
  79. sage/combinat/binary_recurrence_sequences.py +1180 -0
  80. sage/combinat/blob_algebra.py +685 -0
  81. sage/combinat/catalog_partitions.py +27 -0
  82. sage/combinat/chas/all.py +23 -0
  83. sage/combinat/chas/fsym.py +1180 -0
  84. sage/combinat/chas/wqsym.py +2601 -0
  85. sage/combinat/cluster_complex.py +326 -0
  86. sage/combinat/colored_permutations.py +2039 -0
  87. sage/combinat/colored_permutations_representations.py +964 -0
  88. sage/combinat/composition_signed.py +142 -0
  89. sage/combinat/composition_tableau.py +855 -0
  90. sage/combinat/constellation.py +1729 -0
  91. sage/combinat/core.py +751 -0
  92. sage/combinat/counting.py +12 -0
  93. sage/combinat/crystals/affine.py +742 -0
  94. sage/combinat/crystals/affine_factorization.py +518 -0
  95. sage/combinat/crystals/affinization.py +331 -0
  96. sage/combinat/crystals/alcove_path.py +2013 -0
  97. sage/combinat/crystals/all.py +22 -0
  98. sage/combinat/crystals/bkk_crystals.py +141 -0
  99. sage/combinat/crystals/catalog.py +115 -0
  100. sage/combinat/crystals/catalog_elementary_crystals.py +18 -0
  101. sage/combinat/crystals/catalog_infinity_crystals.py +33 -0
  102. sage/combinat/crystals/catalog_kirillov_reshetikhin.py +18 -0
  103. sage/combinat/crystals/crystals.py +257 -0
  104. sage/combinat/crystals/direct_sum.py +260 -0
  105. sage/combinat/crystals/elementary_crystals.py +1251 -0
  106. sage/combinat/crystals/fast_crystals.py +441 -0
  107. sage/combinat/crystals/fully_commutative_stable_grothendieck.py +1205 -0
  108. sage/combinat/crystals/generalized_young_walls.py +1076 -0
  109. sage/combinat/crystals/highest_weight_crystals.py +436 -0
  110. sage/combinat/crystals/induced_structure.py +695 -0
  111. sage/combinat/crystals/infinity_crystals.py +730 -0
  112. sage/combinat/crystals/kac_modules.py +863 -0
  113. sage/combinat/crystals/kirillov_reshetikhin.py +4196 -0
  114. sage/combinat/crystals/kyoto_path_model.py +497 -0
  115. sage/combinat/crystals/letters.cpython-314-x86_64-linux-musl.so +0 -0
  116. sage/combinat/crystals/letters.pxd +79 -0
  117. sage/combinat/crystals/letters.pyx +3056 -0
  118. sage/combinat/crystals/littelmann_path.py +1518 -0
  119. sage/combinat/crystals/monomial_crystals.py +1262 -0
  120. sage/combinat/crystals/multisegments.py +462 -0
  121. sage/combinat/crystals/mv_polytopes.py +467 -0
  122. sage/combinat/crystals/pbw_crystal.py +511 -0
  123. sage/combinat/crystals/pbw_datum.cpython-314-x86_64-linux-musl.so +0 -0
  124. sage/combinat/crystals/pbw_datum.pxd +4 -0
  125. sage/combinat/crystals/pbw_datum.pyx +487 -0
  126. sage/combinat/crystals/polyhedral_realization.py +372 -0
  127. sage/combinat/crystals/spins.cpython-314-x86_64-linux-musl.so +0 -0
  128. sage/combinat/crystals/spins.pxd +21 -0
  129. sage/combinat/crystals/spins.pyx +756 -0
  130. sage/combinat/crystals/star_crystal.py +290 -0
  131. sage/combinat/crystals/subcrystal.py +464 -0
  132. sage/combinat/crystals/tensor_product.py +1177 -0
  133. sage/combinat/crystals/tensor_product_element.cpython-314-x86_64-linux-musl.so +0 -0
  134. sage/combinat/crystals/tensor_product_element.pxd +35 -0
  135. sage/combinat/crystals/tensor_product_element.pyx +1870 -0
  136. sage/combinat/crystals/virtual_crystal.py +420 -0
  137. sage/combinat/cyclic_sieving_phenomenon.py +204 -0
  138. sage/combinat/debruijn_sequence.cpython-314-x86_64-linux-musl.so +0 -0
  139. sage/combinat/debruijn_sequence.pyx +355 -0
  140. sage/combinat/decorated_permutation.py +270 -0
  141. sage/combinat/degree_sequences.cpython-314-x86_64-linux-musl.so +0 -0
  142. sage/combinat/degree_sequences.pyx +588 -0
  143. sage/combinat/derangements.py +527 -0
  144. sage/combinat/descent_algebra.py +1008 -0
  145. sage/combinat/diagram.py +1551 -0
  146. sage/combinat/diagram_algebras.py +5886 -0
  147. sage/combinat/dyck_word.py +4349 -0
  148. sage/combinat/e_one_star.py +1623 -0
  149. sage/combinat/enumerated_sets.py +123 -0
  150. sage/combinat/expnums.cpython-314-x86_64-linux-musl.so +0 -0
  151. sage/combinat/expnums.pyx +148 -0
  152. sage/combinat/fast_vector_partitions.cpython-314-x86_64-linux-musl.so +0 -0
  153. sage/combinat/fast_vector_partitions.pyx +346 -0
  154. sage/combinat/fqsym.py +1977 -0
  155. sage/combinat/free_dendriform_algebra.py +954 -0
  156. sage/combinat/free_prelie_algebra.py +1141 -0
  157. sage/combinat/fully_commutative_elements.py +1077 -0
  158. sage/combinat/fully_packed_loop.py +1523 -0
  159. sage/combinat/gelfand_tsetlin_patterns.py +1409 -0
  160. sage/combinat/gray_codes.py +311 -0
  161. sage/combinat/grossman_larson_algebras.py +667 -0
  162. sage/combinat/growth.py +4352 -0
  163. sage/combinat/hall_polynomial.py +188 -0
  164. sage/combinat/hillman_grassl.py +866 -0
  165. sage/combinat/integer_matrices.py +329 -0
  166. sage/combinat/integer_vectors_mod_permgroup.py +1238 -0
  167. sage/combinat/k_tableau.py +4564 -0
  168. sage/combinat/kazhdan_lusztig.py +215 -0
  169. sage/combinat/key_polynomial.py +885 -0
  170. sage/combinat/knutson_tao_puzzles.py +2286 -0
  171. sage/combinat/lr_tableau.py +311 -0
  172. sage/combinat/matrices/all.py +24 -0
  173. sage/combinat/matrices/hadamard_matrix.py +3790 -0
  174. sage/combinat/matrices/latin.py +2912 -0
  175. sage/combinat/misc.py +401 -0
  176. sage/combinat/multiset_partition_into_sets_ordered.py +3541 -0
  177. sage/combinat/ncsf_qsym/all.py +21 -0
  178. sage/combinat/ncsf_qsym/combinatorics.py +317 -0
  179. sage/combinat/ncsf_qsym/generic_basis_code.py +1427 -0
  180. sage/combinat/ncsf_qsym/ncsf.py +5637 -0
  181. sage/combinat/ncsf_qsym/qsym.py +4053 -0
  182. sage/combinat/ncsf_qsym/tutorial.py +447 -0
  183. sage/combinat/ncsym/all.py +21 -0
  184. sage/combinat/ncsym/bases.py +855 -0
  185. sage/combinat/ncsym/dual.py +593 -0
  186. sage/combinat/ncsym/ncsym.py +2076 -0
  187. sage/combinat/necklace.py +551 -0
  188. sage/combinat/non_decreasing_parking_function.py +634 -0
  189. sage/combinat/nu_dyck_word.py +1474 -0
  190. sage/combinat/output.py +861 -0
  191. sage/combinat/parallelogram_polyomino.py +4326 -0
  192. sage/combinat/parking_functions.py +1602 -0
  193. sage/combinat/partition_algebra.py +1998 -0
  194. sage/combinat/partition_kleshchev.py +1982 -0
  195. sage/combinat/partition_shifting_algebras.py +584 -0
  196. sage/combinat/partition_tuple.py +3114 -0
  197. sage/combinat/path_tableaux/all.py +13 -0
  198. sage/combinat/path_tableaux/catalog.py +29 -0
  199. sage/combinat/path_tableaux/dyck_path.py +380 -0
  200. sage/combinat/path_tableaux/frieze.py +476 -0
  201. sage/combinat/path_tableaux/path_tableau.py +728 -0
  202. sage/combinat/path_tableaux/semistandard.py +510 -0
  203. sage/combinat/perfect_matching.py +779 -0
  204. sage/combinat/plane_partition.py +3300 -0
  205. sage/combinat/q_bernoulli.cpython-314-x86_64-linux-musl.so +0 -0
  206. sage/combinat/q_bernoulli.pyx +128 -0
  207. sage/combinat/quickref.py +81 -0
  208. sage/combinat/recognizable_series.py +2051 -0
  209. sage/combinat/regular_sequence.py +4316 -0
  210. sage/combinat/regular_sequence_bounded.py +543 -0
  211. sage/combinat/restricted_growth.py +81 -0
  212. sage/combinat/ribbon.py +20 -0
  213. sage/combinat/ribbon_shaped_tableau.py +489 -0
  214. sage/combinat/ribbon_tableau.py +1180 -0
  215. sage/combinat/rigged_configurations/all.py +46 -0
  216. sage/combinat/rigged_configurations/bij_abstract_class.py +548 -0
  217. sage/combinat/rigged_configurations/bij_infinity.py +370 -0
  218. sage/combinat/rigged_configurations/bij_type_A.py +163 -0
  219. sage/combinat/rigged_configurations/bij_type_A2_dual.py +338 -0
  220. sage/combinat/rigged_configurations/bij_type_A2_even.py +218 -0
  221. sage/combinat/rigged_configurations/bij_type_A2_odd.py +199 -0
  222. sage/combinat/rigged_configurations/bij_type_B.py +900 -0
  223. sage/combinat/rigged_configurations/bij_type_C.py +267 -0
  224. sage/combinat/rigged_configurations/bij_type_D.py +771 -0
  225. sage/combinat/rigged_configurations/bij_type_D_tri.py +392 -0
  226. sage/combinat/rigged_configurations/bij_type_D_twisted.py +576 -0
  227. sage/combinat/rigged_configurations/bij_type_E67.py +402 -0
  228. sage/combinat/rigged_configurations/bijection.py +143 -0
  229. sage/combinat/rigged_configurations/kleber_tree.py +1475 -0
  230. sage/combinat/rigged_configurations/kr_tableaux.py +1898 -0
  231. sage/combinat/rigged_configurations/rc_crystal.py +461 -0
  232. sage/combinat/rigged_configurations/rc_infinity.py +540 -0
  233. sage/combinat/rigged_configurations/rigged_configuration_element.py +2403 -0
  234. sage/combinat/rigged_configurations/rigged_configurations.py +1918 -0
  235. sage/combinat/rigged_configurations/rigged_partition.cpython-314-x86_64-linux-musl.so +0 -0
  236. sage/combinat/rigged_configurations/rigged_partition.pxd +15 -0
  237. sage/combinat/rigged_configurations/rigged_partition.pyx +680 -0
  238. sage/combinat/rigged_configurations/tensor_product_kr_tableaux.py +499 -0
  239. sage/combinat/rigged_configurations/tensor_product_kr_tableaux_element.py +428 -0
  240. sage/combinat/rsk.py +3438 -0
  241. sage/combinat/schubert_polynomial.py +508 -0
  242. sage/combinat/set_partition.py +3318 -0
  243. sage/combinat/set_partition_iterator.cpython-314-x86_64-linux-musl.so +0 -0
  244. sage/combinat/set_partition_iterator.pyx +136 -0
  245. sage/combinat/set_partition_ordered.py +1590 -0
  246. sage/combinat/sf/abreu_nigro.py +346 -0
  247. sage/combinat/sf/all.py +52 -0
  248. sage/combinat/sf/character.py +576 -0
  249. sage/combinat/sf/classical.py +319 -0
  250. sage/combinat/sf/dual.py +996 -0
  251. sage/combinat/sf/elementary.py +549 -0
  252. sage/combinat/sf/hall_littlewood.py +1028 -0
  253. sage/combinat/sf/hecke.py +336 -0
  254. sage/combinat/sf/homogeneous.py +464 -0
  255. sage/combinat/sf/jack.py +1428 -0
  256. sage/combinat/sf/k_dual.py +1458 -0
  257. sage/combinat/sf/kfpoly.py +447 -0
  258. sage/combinat/sf/llt.py +789 -0
  259. sage/combinat/sf/macdonald.py +2019 -0
  260. sage/combinat/sf/monomial.py +525 -0
  261. sage/combinat/sf/multiplicative.py +113 -0
  262. sage/combinat/sf/new_kschur.py +1786 -0
  263. sage/combinat/sf/ns_macdonald.py +964 -0
  264. sage/combinat/sf/orthogonal.py +246 -0
  265. sage/combinat/sf/orthotriang.py +355 -0
  266. sage/combinat/sf/powersum.py +963 -0
  267. sage/combinat/sf/schur.py +880 -0
  268. sage/combinat/sf/sf.py +1653 -0
  269. sage/combinat/sf/sfa.py +7053 -0
  270. sage/combinat/sf/symplectic.py +253 -0
  271. sage/combinat/sf/witt.py +721 -0
  272. sage/combinat/shifted_primed_tableau.py +2735 -0
  273. sage/combinat/shuffle.py +830 -0
  274. sage/combinat/sidon_sets.py +146 -0
  275. sage/combinat/similarity_class_type.py +1721 -0
  276. sage/combinat/sine_gordon.py +618 -0
  277. sage/combinat/six_vertex_model.py +784 -0
  278. sage/combinat/skew_partition.py +2053 -0
  279. sage/combinat/skew_tableau.py +2989 -0
  280. sage/combinat/sloane_functions.py +8935 -0
  281. sage/combinat/specht_module.py +1403 -0
  282. sage/combinat/species/all.py +48 -0
  283. sage/combinat/species/characteristic_species.py +321 -0
  284. sage/combinat/species/composition_species.py +273 -0
  285. sage/combinat/species/cycle_species.py +284 -0
  286. sage/combinat/species/empty_species.py +155 -0
  287. sage/combinat/species/functorial_composition_species.py +148 -0
  288. sage/combinat/species/generating_series.py +673 -0
  289. sage/combinat/species/library.py +148 -0
  290. sage/combinat/species/linear_order_species.py +169 -0
  291. sage/combinat/species/misc.py +83 -0
  292. sage/combinat/species/partition_species.py +290 -0
  293. sage/combinat/species/permutation_species.py +268 -0
  294. sage/combinat/species/product_species.py +423 -0
  295. sage/combinat/species/recursive_species.py +476 -0
  296. sage/combinat/species/set_species.py +192 -0
  297. sage/combinat/species/species.py +820 -0
  298. sage/combinat/species/structure.py +539 -0
  299. sage/combinat/species/subset_species.py +243 -0
  300. sage/combinat/species/sum_species.py +225 -0
  301. sage/combinat/subword.py +564 -0
  302. sage/combinat/subword_complex.py +2122 -0
  303. sage/combinat/subword_complex_c.cpython-314-x86_64-linux-musl.so +0 -0
  304. sage/combinat/subword_complex_c.pyx +119 -0
  305. sage/combinat/super_tableau.py +821 -0
  306. sage/combinat/superpartition.py +1154 -0
  307. sage/combinat/symmetric_group_algebra.py +3774 -0
  308. sage/combinat/symmetric_group_representations.py +1830 -0
  309. sage/combinat/t_sequences.py +877 -0
  310. sage/combinat/tableau.py +9506 -0
  311. sage/combinat/tableau_residues.py +860 -0
  312. sage/combinat/tableau_tuple.py +5353 -0
  313. sage/combinat/tiling.py +2432 -0
  314. sage/combinat/triangles_FHM.py +777 -0
  315. sage/combinat/tutorial.py +1857 -0
  316. sage/combinat/vector_partition.py +337 -0
  317. sage/combinat/words/abstract_word.py +1722 -0
  318. sage/combinat/words/all.py +59 -0
  319. sage/combinat/words/alphabet.py +268 -0
  320. sage/combinat/words/finite_word.py +7201 -0
  321. sage/combinat/words/infinite_word.py +113 -0
  322. sage/combinat/words/lyndon_word.py +652 -0
  323. sage/combinat/words/morphic.py +351 -0
  324. sage/combinat/words/morphism.py +3878 -0
  325. sage/combinat/words/paths.py +2932 -0
  326. sage/combinat/words/shuffle_product.py +278 -0
  327. sage/combinat/words/suffix_trees.py +1873 -0
  328. sage/combinat/words/word.py +769 -0
  329. sage/combinat/words/word_char.cpython-314-x86_64-linux-musl.so +0 -0
  330. sage/combinat/words/word_char.pyx +847 -0
  331. sage/combinat/words/word_datatypes.cpython-314-x86_64-linux-musl.so +0 -0
  332. sage/combinat/words/word_datatypes.pxd +4 -0
  333. sage/combinat/words/word_datatypes.pyx +1067 -0
  334. sage/combinat/words/word_generators.py +2026 -0
  335. sage/combinat/words/word_infinite_datatypes.py +1218 -0
  336. sage/combinat/words/word_options.py +99 -0
  337. sage/combinat/words/words.py +2396 -0
  338. sage/data_structures/all__sagemath_combinat.py +1 -0
  339. sage/databases/all__sagemath_combinat.py +13 -0
  340. sage/databases/findstat.py +4897 -0
  341. sage/databases/oeis.py +2058 -0
  342. sage/databases/sloane.py +393 -0
  343. sage/dynamics/all__sagemath_combinat.py +14 -0
  344. sage/dynamics/cellular_automata/all.py +7 -0
  345. sage/dynamics/cellular_automata/catalog.py +34 -0
  346. sage/dynamics/cellular_automata/elementary.py +612 -0
  347. sage/dynamics/cellular_automata/glca.py +477 -0
  348. sage/dynamics/cellular_automata/solitons.py +1463 -0
  349. sage/dynamics/finite_dynamical_system.py +1249 -0
  350. sage/dynamics/finite_dynamical_system_catalog.py +382 -0
  351. sage/games/all.py +7 -0
  352. sage/games/hexad.py +704 -0
  353. sage/games/quantumino.py +591 -0
  354. sage/games/sudoku.py +889 -0
  355. sage/games/sudoku_backtrack.cpython-314-x86_64-linux-musl.so +0 -0
  356. sage/games/sudoku_backtrack.pyx +189 -0
  357. sage/groups/all__sagemath_combinat.py +1 -0
  358. sage/groups/indexed_free_group.py +489 -0
  359. sage/libs/all__sagemath_combinat.py +6 -0
  360. sage/libs/lrcalc/__init__.py +1 -0
  361. sage/libs/lrcalc/lrcalc.py +525 -0
  362. sage/libs/symmetrica/__init__.py +7 -0
  363. sage/libs/symmetrica/all.py +101 -0
  364. sage/libs/symmetrica/kostka.pxi +168 -0
  365. sage/libs/symmetrica/part.pxi +193 -0
  366. sage/libs/symmetrica/plet.pxi +42 -0
  367. sage/libs/symmetrica/sab.pxi +196 -0
  368. sage/libs/symmetrica/sb.pxi +332 -0
  369. sage/libs/symmetrica/sc.pxi +192 -0
  370. sage/libs/symmetrica/schur.pxi +956 -0
  371. sage/libs/symmetrica/symmetrica.cpython-314-x86_64-linux-musl.so +0 -0
  372. sage/libs/symmetrica/symmetrica.pxi +1172 -0
  373. sage/libs/symmetrica/symmetrica.pyx +39 -0
  374. sage/monoids/all.py +13 -0
  375. sage/monoids/automatic_semigroup.py +1054 -0
  376. sage/monoids/free_abelian_monoid.py +315 -0
  377. sage/monoids/free_abelian_monoid_element.cpython-314-x86_64-linux-musl.so +0 -0
  378. sage/monoids/free_abelian_monoid_element.pxd +16 -0
  379. sage/monoids/free_abelian_monoid_element.pyx +397 -0
  380. sage/monoids/free_monoid.py +335 -0
  381. sage/monoids/free_monoid_element.py +431 -0
  382. sage/monoids/hecke_monoid.py +65 -0
  383. sage/monoids/string_monoid.py +817 -0
  384. sage/monoids/string_monoid_element.py +547 -0
  385. sage/monoids/string_ops.py +143 -0
  386. sage/monoids/trace_monoid.py +972 -0
  387. sage/rings/all__sagemath_combinat.py +2 -0
  388. sage/sat/all.py +4 -0
  389. sage/sat/boolean_polynomials.py +405 -0
  390. sage/sat/converters/__init__.py +6 -0
  391. sage/sat/converters/anf2cnf.py +14 -0
  392. sage/sat/converters/polybori.py +611 -0
  393. sage/sat/solvers/__init__.py +5 -0
  394. sage/sat/solvers/cryptominisat.py +287 -0
  395. sage/sat/solvers/dimacs.py +783 -0
  396. sage/sat/solvers/picosat.py +228 -0
  397. sage/sat/solvers/sat_lp.py +156 -0
  398. sage/sat/solvers/satsolver.cpython-314-x86_64-linux-musl.so +0 -0
  399. sage/sat/solvers/satsolver.pxd +3 -0
  400. sage/sat/solvers/satsolver.pyx +405 -0
@@ -0,0 +1,402 @@
1
+ # sage_setup: distribution = sagemath-combinat
2
+ # sage.doctest: needs sage.combinat sage.graphs sage.modules
3
+ r"""
4
+ Bijection classes for type `E_{6,7}^{(1)}`
5
+
6
+ Part of the (internal) classes which runs the bijection between rigged
7
+ configurations and KR tableaux of type `E_{6,7}^{(1)}`.
8
+
9
+ AUTHORS:
10
+
11
+ - Travis Scrimshaw (2011-04-15): Initial version
12
+
13
+ TESTS::
14
+
15
+ sage: from sage.combinat.rigged_configurations.bij_type_E67 import KRTToRCBijectionTypeE67
16
+ sage: KRT = crystals.TensorProductOfKirillovReshetikhinTableaux(['E', 6, 1], [[3,1]])
17
+ sage: bijection = KRTToRCBijectionTypeE67(KRT.module_generators[0])
18
+ sage: TestSuite(bijection).run()
19
+ sage: RC = RiggedConfigurations(['E', 6, 1], [[2, 1]])
20
+ sage: from sage.combinat.rigged_configurations.bij_type_E67 import RCToKRTBijectionTypeE67
21
+ sage: bijection = RCToKRTBijectionTypeE67(RC(partition_list=[[1],[1,1],[1,1],[1,1,1], [1,1],[1]]))
22
+ sage: TestSuite(bijection).run()
23
+ """
24
+
25
+ # ****************************************************************************
26
+ # Copyright (C) 2011, 2012 Travis Scrimshaw <tscrim@ucdavis.edu>
27
+ #
28
+ # Distributed under the terms of the GNU General Public License (GPL)
29
+ #
30
+ # This code is distributed in the hope that it will be useful,
31
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
32
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
33
+ # General Public License for more details.
34
+ #
35
+ # The full text of the GPL is available at:
36
+ #
37
+ # https://www.gnu.org/licenses/
38
+ # ****************************************************************************
39
+
40
+ from sage.combinat.rigged_configurations.bij_abstract_class import KRTToRCBijectionAbstract
41
+ from sage.combinat.rigged_configurations.bij_abstract_class import RCToKRTBijectionAbstract
42
+ from sage.combinat.crystals.letters import CrystalOfLetters
43
+ from sage.misc.lazy_attribute import lazy_attribute
44
+ from sage.misc.cachefunc import cached_method
45
+
46
+
47
+ class KRTToRCBijectionTypeE67(KRTToRCBijectionAbstract):
48
+ r"""
49
+ Specific implementation of the bijection from KR tableaux to rigged
50
+ configurations for type `E_{6,7}^{(1)}`.
51
+ """
52
+
53
+ def next_state(self, val):
54
+ r"""
55
+ Build the next state for type `E_{6,7}^{(1)}`.
56
+
57
+ TESTS::
58
+
59
+ sage: from sage.combinat.rigged_configurations.bij_type_E67 import KRTToRCBijectionTypeE67
60
+ sage: KRT = crystals.TensorProductOfKirillovReshetikhinTableaux(['E', 6, 1], [[3,1]])
61
+ sage: bijection = KRTToRCBijectionTypeE67(KRT.module_generators[0])
62
+ sage: bijection.cur_path.insert(0, [])
63
+ sage: bijection.cur_dims.insert(0, [1, 1])
64
+ sage: bijection.cur_path[0].insert(0, [(-3,4)])
65
+ sage: bijection.next_state((-3,4))
66
+ """
67
+ def find_singular_string(p, max_width):
68
+ max_pos = -1
69
+ if max_width > 0:
70
+ for i, vac_num in enumerate(p.vacancy_numbers):
71
+ if p[i] <= max_width and vac_num == p.rigging[i]:
72
+ max_pos = i
73
+ break
74
+ if max_pos == -1:
75
+ return 0
76
+ return p[max_pos]
77
+
78
+ b = self.tp_krt.parent().letters(val)
79
+ end = self._endpoint(self.cur_dims[0][0])
80
+
81
+ # Do nothing except update the vacancy numbers
82
+ if b == end:
83
+ for a in range(len(self.ret_rig_con)):
84
+ self._update_vacancy_nums(a)
85
+ return
86
+
87
+ max_width = max(nu[0] if nu else 0 for nu in self.ret_rig_con) + 1
88
+ found = True
89
+ while found:
90
+ found = False
91
+ data = [(-a, find_singular_string(self.ret_rig_con[-a-1], max_width))
92
+ for a in b.value if a < 0]
93
+ if not data:
94
+ break
95
+
96
+ max_val = max(l for a, l in data)
97
+ for a, l in data:
98
+ if l == max_val:
99
+ self.ret_rig_con[a-1].insert_cell(max_width)
100
+ max_width = l
101
+ b = b.e(a)
102
+ found = (b != self._top)
103
+ break
104
+
105
+ for a in end.to_highest_weight()[1]:
106
+ p = self.ret_rig_con[a-1]
107
+ for i in range(len(p)-1, -1, -1):
108
+ if p.rigging[i] is None:
109
+ assert p[i] == 1
110
+ p._list.pop(i)
111
+ p.vacancy_numbers.pop(i)
112
+ p.rigging.pop(i)
113
+ break
114
+
115
+ for a in range(len(self.ret_rig_con)):
116
+ self._update_vacancy_nums(a)
117
+ self._update_partition_values(a)
118
+
119
+ def _next_index(self, r, target):
120
+ """
121
+ Return the next index after ``r`` when performing a step
122
+ in the bijection going towards ``target``.
123
+
124
+ TESTS::
125
+
126
+ sage: KRT = crystals.TensorProductOfKirillovReshetikhinTableaux(['E', 6, 1], [[5,1]])
127
+ sage: from sage.combinat.rigged_configurations.bij_type_E67 import KRTToRCBijectionTypeE67
128
+ sage: bijection = KRTToRCBijectionTypeE67(KRT.module_generators[0])
129
+ sage: bijection._next_index(3, 5)
130
+ 2
131
+ sage: bijection._next_index(2, 5)
132
+ 5
133
+ sage: bijection._next_index(3, 4)
134
+ 4
135
+ sage: bijection._next_index(1, 5)
136
+ 3
137
+ sage: bijection._next_index(1, 4)
138
+ 3
139
+ sage: bijection._next_index(1, 6)
140
+ 6
141
+ """
142
+ if self.tp_krt.cartan_type().classical().rank() == 6:
143
+ # 6 2 - 5
144
+ # / /
145
+ # 0 - 1 - 3 - 4
146
+ if r == 0:
147
+ return 1
148
+ if r == 1:
149
+ if target == 6:
150
+ return 6
151
+ return 3
152
+ if r == 3:
153
+ if target == 4:
154
+ return 4
155
+ return 2
156
+ if r == 2:
157
+ return 5
158
+ else: # rank == 7
159
+ # 1-2-3
160
+ # /
161
+ # 0-7-6-5-4
162
+ if r == 0:
163
+ return 7
164
+ if r == 7:
165
+ if target <= 3:
166
+ return 1
167
+ return 6
168
+ if r <= 3:
169
+ return r + 1
170
+ # r = 6,5
171
+ return r - 1
172
+
173
+ @lazy_attribute
174
+ def _top(self):
175
+ """
176
+ Return the highest weight element in the basic crystal used
177
+ in the bijection ``self``.
178
+
179
+ TESTS::
180
+
181
+ sage: from sage.combinat.rigged_configurations.bij_type_E67 import KRTToRCBijectionTypeE67
182
+ sage: KRT = crystals.TensorProductOfKirillovReshetikhinTableaux(['E', 6, 1], [[3,1]])
183
+ sage: bijection = KRTToRCBijectionTypeE67(KRT.module_generators[0])
184
+ sage: bijection._top
185
+ (1,)
186
+ sage: KRT = crystals.TensorProductOfKirillovReshetikhinTableaux(['E', 7, 1], [[6,1]])
187
+ sage: bijection = KRTToRCBijectionTypeE67(KRT.module_generators[0])
188
+ sage: bijection._top
189
+ (7,)
190
+ """
191
+ if self.tp_krt.cartan_type().classical().rank() == 6:
192
+ return endpoint6(1)
193
+ else:
194
+ return endpoint7(7)
195
+
196
+ @cached_method
197
+ def _endpoint(self, r):
198
+ r"""
199
+ Return the endpoint for the bijection in type `E_6^{(1)}`.
200
+
201
+ EXAMPLES::
202
+
203
+ sage: from sage.combinat.rigged_configurations.bij_type_E67 import KRTToRCBijectionTypeE67, endpoint6, endpoint7
204
+ sage: KRT = crystals.TensorProductOfKirillovReshetikhinTableaux(['E', 6, 1], [[3,1]])
205
+ sage: bijection = KRTToRCBijectionTypeE67(KRT.module_generators[0])
206
+ sage: all(bijection._endpoint(r) == endpoint6(r) for r in range(1,7))
207
+ True
208
+ sage: KRT = crystals.TensorProductOfKirillovReshetikhinTableaux(['E', 7, 1], [[6,1]])
209
+ sage: bijection = KRTToRCBijectionTypeE67(KRT.module_generators[0])
210
+ sage: all(bijection._endpoint(r) == endpoint7(r) for r in range(1,8))
211
+ True
212
+ """
213
+ if self.tp_krt.cartan_type().classical().rank() == 6:
214
+ return endpoint6(r)
215
+ else:
216
+ return endpoint7(r)
217
+
218
+
219
+ class RCToKRTBijectionTypeE67(RCToKRTBijectionAbstract):
220
+ r"""
221
+ Specific implementation of the bijection from rigged configurations
222
+ to tensor products of KR tableaux for type `E_{6,7}^{(1)}`.
223
+ """
224
+
225
+ def next_state(self, r):
226
+ r"""
227
+ Build the next state for type `E_{6,7}^{(1)}`.
228
+
229
+ TESTS::
230
+
231
+ sage: RC = RiggedConfigurations(['E', 6, 1], [[2, 1]])
232
+ sage: from sage.combinat.rigged_configurations.bij_type_E67 import RCToKRTBijectionTypeE67
233
+ sage: bijection = RCToKRTBijectionTypeE67(RC(partition_list=[[1],[1,1],[1,1],[1,1,1],[1,1],[1]]))
234
+ sage: bijection.next_state(1)
235
+ (-2, 1)
236
+ """
237
+ last_size = 0
238
+ found = True
239
+ b = self._endpoint(r)
240
+ while found:
241
+ found = False
242
+ data = [(a, self._find_singular_string(self.cur_partitions[a-1], last_size))
243
+ for a in b.value if a > 0]
244
+ data = [(val, a, self.cur_partitions[a-1][val])
245
+ for a, val in data if val is not None]
246
+ if not data:
247
+ break
248
+
249
+ min_val = min(l for i, a, l in data)
250
+ for i, a, l in data:
251
+ if l == min_val:
252
+ found = True
253
+ last_size = l
254
+ self.cur_partitions[a-1].remove_cell(i)
255
+ b = b.f(a)
256
+ break
257
+
258
+ for a, p in enumerate(self.cur_partitions):
259
+ self._update_vacancy_numbers(a)
260
+ for i in range(len(p)):
261
+ if p.rigging[i] is None:
262
+ p.rigging[i] = p.vacancy_numbers[i]
263
+
264
+ return b
265
+
266
+ def _next_index(self, r):
267
+ """
268
+ Return the next index after ``r`` when performing a step
269
+ in the bijection.
270
+
271
+ TESTS::
272
+
273
+ sage: RC = RiggedConfigurations(['E', 6, 1], [[2, 1]])
274
+ sage: from sage.combinat.rigged_configurations.bij_type_E67 import RCToKRTBijectionTypeE67
275
+ sage: bijection = RCToKRTBijectionTypeE67(RC(partition_list=[[1],[1,1],[1,1],[1,1,1], [1,1],[1]]))
276
+ sage: bijection._next_index(2)
277
+ 3
278
+ """
279
+ if self.KRT.cartan_type().classical().rank() == 6:
280
+ # 6 2 - 5
281
+ # / /
282
+ # 0 - 1 - 3 - 4
283
+ if r == 1:
284
+ return 0
285
+ if r == 2:
286
+ return 3
287
+ if r == 3:
288
+ return 1
289
+ if r == 4:
290
+ return 3
291
+ if r == 5:
292
+ return 2
293
+ if r == 6:
294
+ return 1
295
+ else: # rank == 7
296
+ # 1-2-3
297
+ # /
298
+ # 0-7-6-5-4
299
+ if r == 1:
300
+ return 7
301
+ if r == 7:
302
+ return 0
303
+ if r <= 3:
304
+ return r - 1
305
+ # r = 4,5,6
306
+ return r + 1
307
+
308
+ @cached_method
309
+ def _endpoint(self, r):
310
+ r"""
311
+ Return the endpoint for the bijection in type `E_{6,7}^{(1)}`.
312
+
313
+ EXAMPLES::
314
+
315
+ sage: from sage.combinat.rigged_configurations.bij_type_E67 import RCToKRTBijectionTypeE67, endpoint6, endpoint7
316
+ sage: RC = RiggedConfigurations(['E', 6, 1], [[2, 1]])
317
+ sage: bijection = RCToKRTBijectionTypeE67(RC(partition_list=[[1],[1,1],[1,1],[1,1,1], [1,1],[1]]))
318
+ sage: all(bijection._endpoint(r) == endpoint6(r) for r in range(1,7))
319
+ True
320
+ sage: RC = RiggedConfigurations(['E', 7, 1], [[6, 1]])
321
+ sage: bijection = RCToKRTBijectionTypeE67(RC(partition_list=[[1],[1,1],[1,1],[1,1],[1],[1],[]]))
322
+ sage: all(bijection._endpoint(r) == endpoint7(r) for r in range(1,8))
323
+ True
324
+ """
325
+ if self.KRT.cartan_type().classical().rank() == 6:
326
+ return endpoint6(r)
327
+ else:
328
+ return endpoint7(r)
329
+
330
+
331
+ def endpoint6(r):
332
+ """
333
+ Return the endpoint for `B^{r,1}` in type `E_6^{(1)}`.
334
+
335
+ EXAMPLES::
336
+
337
+ sage: from sage.combinat.rigged_configurations.bij_type_E67 import endpoint6
338
+ sage: endpoint6(1)
339
+ (1,)
340
+ sage: endpoint6(2)
341
+ (-3, 2)
342
+ sage: endpoint6(3)
343
+ (-1, 3)
344
+ sage: endpoint6(4)
345
+ (-3, 4)
346
+ sage: endpoint6(5)
347
+ (-2, 5)
348
+ sage: endpoint6(6)
349
+ (-1, 6)
350
+ """
351
+ C = CrystalOfLetters(['E', 6])
352
+ if r == 1:
353
+ return C.module_generators[0] # C((1,))
354
+ elif r == 2:
355
+ return C((-3, 2))
356
+ elif r == 3:
357
+ return C((-1, 3))
358
+ elif r == 4:
359
+ return C((-3, 4))
360
+ elif r == 5:
361
+ return C((-2, 5))
362
+ elif r == 6:
363
+ return C((-1, 6))
364
+
365
+
366
+ def endpoint7(r):
367
+ """
368
+ Return the endpoint for `B^{r,1}` in type `E_7^{(1)}`.
369
+
370
+ EXAMPLES::
371
+
372
+ sage: from sage.combinat.rigged_configurations.bij_type_E67 import endpoint7
373
+ sage: endpoint7(1)
374
+ (-7, 1)
375
+ sage: endpoint7(2)
376
+ (-1, 2)
377
+ sage: endpoint7(3)
378
+ (-2, 3)
379
+ sage: endpoint7(4)
380
+ (-5, 4)
381
+ sage: endpoint7(5)
382
+ (-6, 5)
383
+ sage: endpoint7(6)
384
+ (-7, 6)
385
+ sage: endpoint7(7)
386
+ (7,)
387
+ """
388
+ C = CrystalOfLetters(['E', 7])
389
+ if r == 1:
390
+ return C((-7, 1))
391
+ elif r == 2:
392
+ return C((-1, 2))
393
+ elif r == 3:
394
+ return C((-2, 3))
395
+ elif r == 4:
396
+ return C((-5, 4))
397
+ elif r == 5:
398
+ return C((-6, 5))
399
+ elif r == 6:
400
+ return C((-7, 6))
401
+ elif r == 7:
402
+ return C.module_generators[0] # C((7,))
@@ -0,0 +1,143 @@
1
+ # sage_setup: distribution = sagemath-combinat
2
+ # sage.doctest: needs sage.combinat sage.graphs sage.modules
3
+ r"""
4
+ Bijection between rigged configurations and KR tableaux
5
+
6
+ Functions which are big switch statements to create the bijection class of the
7
+ correct type.
8
+
9
+ AUTHORS:
10
+
11
+ - Travis Scrimshaw (2011-04-15): Initial version
12
+ - Travis Scrimshaw (2012-12-21): Added all non-exceptional bijection types
13
+ - Travis Scrimshaw (2014-09-10): Added type `D_4^{(3)}`
14
+ """
15
+
16
+ #*****************************************************************************
17
+ # Copyright (C) 2011-2015 Travis Scrimshaw <tscrim@ucdavis.edu>
18
+ #
19
+ # Distributed under the terms of the GNU General Public License (GPL)
20
+ #
21
+ # This code is distributed in the hope that it will be useful,
22
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
23
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
24
+ # General Public License for more details.
25
+ #
26
+ # The full text of the GPL is available at:
27
+ #
28
+ # http://www.gnu.org/licenses/
29
+ #*****************************************************************************
30
+
31
+ from sage.combinat.rigged_configurations.bij_type_A import KRTToRCBijectionTypeA
32
+ from sage.combinat.rigged_configurations.bij_type_A import RCToKRTBijectionTypeA
33
+
34
+ from sage.combinat.rigged_configurations.bij_type_B import KRTToRCBijectionTypeB
35
+ from sage.combinat.rigged_configurations.bij_type_B import RCToKRTBijectionTypeB
36
+
37
+ from sage.combinat.rigged_configurations.bij_type_C import KRTToRCBijectionTypeC
38
+ from sage.combinat.rigged_configurations.bij_type_C import RCToKRTBijectionTypeC
39
+
40
+ from sage.combinat.rigged_configurations.bij_type_D import KRTToRCBijectionTypeD
41
+ from sage.combinat.rigged_configurations.bij_type_D import RCToKRTBijectionTypeD
42
+
43
+ from sage.combinat.rigged_configurations.bij_type_D_twisted import KRTToRCBijectionTypeDTwisted
44
+ from sage.combinat.rigged_configurations.bij_type_D_twisted import RCToKRTBijectionTypeDTwisted
45
+
46
+ from sage.combinat.rigged_configurations.bij_type_A2_even import KRTToRCBijectionTypeA2Even
47
+ from sage.combinat.rigged_configurations.bij_type_A2_even import RCToKRTBijectionTypeA2Even
48
+
49
+ from sage.combinat.rigged_configurations.bij_type_A2_dual import KRTToRCBijectionTypeA2Dual
50
+ from sage.combinat.rigged_configurations.bij_type_A2_dual import RCToKRTBijectionTypeA2Dual
51
+
52
+ from sage.combinat.rigged_configurations.bij_type_A2_odd import KRTToRCBijectionTypeA2Odd
53
+ from sage.combinat.rigged_configurations.bij_type_A2_odd import RCToKRTBijectionTypeA2Odd
54
+
55
+ from sage.combinat.rigged_configurations.bij_type_D_tri import KRTToRCBijectionTypeDTri
56
+ from sage.combinat.rigged_configurations.bij_type_D_tri import RCToKRTBijectionTypeDTri
57
+
58
+ from sage.combinat.rigged_configurations.bij_type_E67 import KRTToRCBijectionTypeE67
59
+ from sage.combinat.rigged_configurations.bij_type_E67 import RCToKRTBijectionTypeE67
60
+
61
+
62
+ def KRTToRCBijection(tp_krt):
63
+ r"""
64
+ Return the correct KR tableaux to rigged configuration bijection helper class.
65
+
66
+ TESTS::
67
+
68
+ sage: KRT = crystals.TensorProductOfKirillovReshetikhinTableaux(['A', 4, 1], [[2,1]])
69
+ sage: from sage.combinat.rigged_configurations.bijection import KRTToRCBijection
70
+ sage: bijection = KRTToRCBijection(KRT(pathlist=[[5,2]]))
71
+ """
72
+ ct = tp_krt.cartan_type()
73
+ typ = ct.type()
74
+ if ct.is_untwisted_affine():
75
+ if typ == 'A':
76
+ return KRTToRCBijectionTypeA(tp_krt)
77
+ if typ == 'B':
78
+ return KRTToRCBijectionTypeB(tp_krt)
79
+ if typ == 'C':
80
+ return KRTToRCBijectionTypeC(tp_krt)
81
+ if typ == 'D':
82
+ return KRTToRCBijectionTypeD(tp_krt)
83
+ if typ == 'E':
84
+ if ct.classical().rank() < 8:
85
+ return KRTToRCBijectionTypeE67(tp_krt)
86
+ #if typ == 'F':
87
+ #if typ == 'G':
88
+ else:
89
+ if typ == 'BC': # A_{2n}^{(2)}
90
+ return KRTToRCBijectionTypeA2Even(tp_krt)
91
+ typ = ct.dual().type()
92
+ if typ == 'BC': # A_{2n}^{(2)\dagger}
93
+ return KRTToRCBijectionTypeA2Dual(tp_krt)
94
+ if typ == 'B': # A_{2n-1}^{(2)}
95
+ return KRTToRCBijectionTypeA2Odd(tp_krt)
96
+ if typ == 'C': # D_{n+1}^{(2)}
97
+ return KRTToRCBijectionTypeDTwisted(tp_krt)
98
+ #if typ == 'F': # E_6^{(2)}
99
+ if typ == 'G': # D_4^{(3)}
100
+ return KRTToRCBijectionTypeDTri(tp_krt)
101
+ raise NotImplementedError
102
+
103
+
104
+ def RCToKRTBijection(rigged_configuration_elt):
105
+ r"""
106
+ Return the correct rigged configuration to KR tableaux bijection helper class.
107
+
108
+ TESTS::
109
+
110
+ sage: RC = RiggedConfigurations(['A', 4, 1], [[2, 1]])
111
+ sage: from sage.combinat.rigged_configurations.bijection import RCToKRTBijection
112
+ sage: bijection = RCToKRTBijection(RC(partition_list=[[1],[1],[1],[1]]))
113
+ """
114
+ ct = rigged_configuration_elt.cartan_type()
115
+ typ = ct.type()
116
+ if not ct.is_affine() or ct.is_untwisted_affine():
117
+ if typ == 'A':
118
+ return RCToKRTBijectionTypeA(rigged_configuration_elt)
119
+ if typ == 'B':
120
+ return RCToKRTBijectionTypeB(rigged_configuration_elt)
121
+ if typ == 'C':
122
+ return RCToKRTBijectionTypeC(rigged_configuration_elt)
123
+ if typ == 'D':
124
+ return RCToKRTBijectionTypeD(rigged_configuration_elt)
125
+ if typ == 'E':
126
+ if ct.classical().rank() < 8:
127
+ return RCToKRTBijectionTypeE67(rigged_configuration_elt)
128
+ #if typ == 'F':
129
+ #if typ == 'G':
130
+ else:
131
+ if typ == 'BC': # A_{2n}^{(2)}
132
+ return RCToKRTBijectionTypeA2Even(rigged_configuration_elt)
133
+ typ = ct.dual().type()
134
+ if typ == 'BC': # A_{2n}^{(2)\dagger}
135
+ return RCToKRTBijectionTypeA2Dual(rigged_configuration_elt)
136
+ if typ == 'B': # A_{2n-1}^{(2)}
137
+ return RCToKRTBijectionTypeA2Odd(rigged_configuration_elt)
138
+ if typ == 'C': # D_{n+1}^{(2)}
139
+ return RCToKRTBijectionTypeDTwisted(rigged_configuration_elt)
140
+ #if typ == 'F': # E_6^{(2)}
141
+ if typ == 'G': # D_4^{(3)}
142
+ return RCToKRTBijectionTypeDTri(rigged_configuration_elt)
143
+ raise NotImplementedError