passagemath-combinat 10.6.42__cp314-cp314t-win_amd64.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 (401) hide show
  1. passagemath_combinat/__init__.py +3 -0
  2. passagemath_combinat-10.6.42.dist-info/DELVEWHEEL +2 -0
  3. passagemath_combinat-10.6.42.dist-info/METADATA +160 -0
  4. passagemath_combinat-10.6.42.dist-info/RECORD +401 -0
  5. passagemath_combinat-10.6.42.dist-info/WHEEL +5 -0
  6. passagemath_combinat-10.6.42.dist-info/top_level.txt +3 -0
  7. passagemath_combinat.libs/libgmp-10-3a5f019e2510aeaad918cab2b57a689d.dll +0 -0
  8. passagemath_combinat.libs/libsymmetrica-3-7dcf900932804d0df5fd0919b4668720.dll +0 -0
  9. sage/algebras/affine_nil_temperley_lieb.py +263 -0
  10. sage/algebras/all.py +24 -0
  11. sage/algebras/all__sagemath_combinat.py +35 -0
  12. sage/algebras/askey_wilson.py +935 -0
  13. sage/algebras/associated_graded.py +345 -0
  14. sage/algebras/cellular_basis.py +350 -0
  15. sage/algebras/cluster_algebra.py +2766 -0
  16. sage/algebras/down_up_algebra.py +860 -0
  17. sage/algebras/free_algebra.py +1698 -0
  18. sage/algebras/free_algebra_element.py +345 -0
  19. sage/algebras/free_algebra_quotient.py +405 -0
  20. sage/algebras/free_algebra_quotient_element.py +295 -0
  21. sage/algebras/free_zinbiel_algebra.py +885 -0
  22. sage/algebras/hall_algebra.py +783 -0
  23. sage/algebras/hecke_algebras/all.py +4 -0
  24. sage/algebras/hecke_algebras/ariki_koike_algebra.py +1796 -0
  25. sage/algebras/hecke_algebras/ariki_koike_specht_modules.py +475 -0
  26. sage/algebras/hecke_algebras/cubic_hecke_algebra.py +3520 -0
  27. sage/algebras/hecke_algebras/cubic_hecke_base_ring.py +1473 -0
  28. sage/algebras/hecke_algebras/cubic_hecke_matrix_rep.py +1079 -0
  29. sage/algebras/iwahori_hecke_algebra.py +3095 -0
  30. sage/algebras/jordan_algebra.py +1773 -0
  31. sage/algebras/lie_conformal_algebras/abelian_lie_conformal_algebra.py +113 -0
  32. sage/algebras/lie_conformal_algebras/affine_lie_conformal_algebra.py +156 -0
  33. sage/algebras/lie_conformal_algebras/all.py +18 -0
  34. sage/algebras/lie_conformal_algebras/bosonic_ghosts_lie_conformal_algebra.py +134 -0
  35. sage/algebras/lie_conformal_algebras/examples.py +43 -0
  36. sage/algebras/lie_conformal_algebras/fermionic_ghosts_lie_conformal_algebra.py +131 -0
  37. sage/algebras/lie_conformal_algebras/finitely_freely_generated_lca.py +139 -0
  38. sage/algebras/lie_conformal_algebras/free_bosons_lie_conformal_algebra.py +174 -0
  39. sage/algebras/lie_conformal_algebras/free_fermions_lie_conformal_algebra.py +167 -0
  40. sage/algebras/lie_conformal_algebras/freely_generated_lie_conformal_algebra.py +107 -0
  41. sage/algebras/lie_conformal_algebras/graded_lie_conformal_algebra.py +135 -0
  42. sage/algebras/lie_conformal_algebras/lie_conformal_algebra.py +353 -0
  43. sage/algebras/lie_conformal_algebras/lie_conformal_algebra_element.py +236 -0
  44. sage/algebras/lie_conformal_algebras/lie_conformal_algebra_with_basis.py +78 -0
  45. sage/algebras/lie_conformal_algebras/lie_conformal_algebra_with_structure_coefs.py +328 -0
  46. sage/algebras/lie_conformal_algebras/n2_lie_conformal_algebra.py +117 -0
  47. sage/algebras/lie_conformal_algebras/neveu_schwarz_lie_conformal_algebra.py +86 -0
  48. sage/algebras/lie_conformal_algebras/virasoro_lie_conformal_algebra.py +82 -0
  49. sage/algebras/lie_conformal_algebras/weyl_lie_conformal_algebra.py +205 -0
  50. sage/algebras/nil_coxeter_algebra.py +191 -0
  51. sage/algebras/q_commuting_polynomials.py +673 -0
  52. sage/algebras/q_system.py +608 -0
  53. sage/algebras/quantum_clifford.py +959 -0
  54. sage/algebras/quantum_groups/ace_quantum_onsager.py +693 -0
  55. sage/algebras/quantum_groups/all.py +9 -0
  56. sage/algebras/quantum_groups/fock_space.py +2219 -0
  57. sage/algebras/quantum_groups/q_numbers.py +207 -0
  58. sage/algebras/quantum_groups/quantum_group_gap.py +2695 -0
  59. sage/algebras/quantum_groups/representations.py +591 -0
  60. sage/algebras/quantum_matrix_coordinate_algebra.py +1006 -0
  61. sage/algebras/quantum_oscillator.py +623 -0
  62. sage/algebras/quaternion_algebra.py +20 -0
  63. sage/algebras/quaternion_algebra_element.py +55 -0
  64. sage/algebras/rational_cherednik_algebra.py +525 -0
  65. sage/algebras/schur_algebra.py +670 -0
  66. sage/algebras/shuffle_algebra.py +1011 -0
  67. sage/algebras/splitting_algebra.py +779 -0
  68. sage/algebras/tensor_algebra.py +709 -0
  69. sage/algebras/yangian.py +1082 -0
  70. sage/algebras/yokonuma_hecke_algebra.py +1018 -0
  71. sage/all__sagemath_combinat.py +44 -0
  72. sage/combinat/SJT.py +255 -0
  73. sage/combinat/affine_permutation.py +2405 -0
  74. sage/combinat/algebraic_combinatorics.py +55 -0
  75. sage/combinat/all.py +53 -0
  76. sage/combinat/all__sagemath_combinat.py +195 -0
  77. sage/combinat/alternating_sign_matrix.py +2063 -0
  78. sage/combinat/baxter_permutations.py +346 -0
  79. sage/combinat/bijectionist.py +3220 -0
  80. sage/combinat/binary_recurrence_sequences.py +1180 -0
  81. sage/combinat/blob_algebra.py +685 -0
  82. sage/combinat/catalog_partitions.py +27 -0
  83. sage/combinat/chas/all.py +23 -0
  84. sage/combinat/chas/fsym.py +1180 -0
  85. sage/combinat/chas/wqsym.py +2601 -0
  86. sage/combinat/cluster_complex.py +326 -0
  87. sage/combinat/colored_permutations.py +2039 -0
  88. sage/combinat/colored_permutations_representations.py +964 -0
  89. sage/combinat/composition_signed.py +142 -0
  90. sage/combinat/composition_tableau.py +855 -0
  91. sage/combinat/constellation.py +1729 -0
  92. sage/combinat/core.py +751 -0
  93. sage/combinat/counting.py +12 -0
  94. sage/combinat/crystals/affine.py +742 -0
  95. sage/combinat/crystals/affine_factorization.py +518 -0
  96. sage/combinat/crystals/affinization.py +331 -0
  97. sage/combinat/crystals/alcove_path.py +2013 -0
  98. sage/combinat/crystals/all.py +22 -0
  99. sage/combinat/crystals/bkk_crystals.py +141 -0
  100. sage/combinat/crystals/catalog.py +115 -0
  101. sage/combinat/crystals/catalog_elementary_crystals.py +18 -0
  102. sage/combinat/crystals/catalog_infinity_crystals.py +33 -0
  103. sage/combinat/crystals/catalog_kirillov_reshetikhin.py +18 -0
  104. sage/combinat/crystals/crystals.py +257 -0
  105. sage/combinat/crystals/direct_sum.py +260 -0
  106. sage/combinat/crystals/elementary_crystals.py +1251 -0
  107. sage/combinat/crystals/fast_crystals.py +441 -0
  108. sage/combinat/crystals/fully_commutative_stable_grothendieck.py +1205 -0
  109. sage/combinat/crystals/generalized_young_walls.py +1076 -0
  110. sage/combinat/crystals/highest_weight_crystals.py +436 -0
  111. sage/combinat/crystals/induced_structure.py +695 -0
  112. sage/combinat/crystals/infinity_crystals.py +730 -0
  113. sage/combinat/crystals/kac_modules.py +863 -0
  114. sage/combinat/crystals/kirillov_reshetikhin.py +4196 -0
  115. sage/combinat/crystals/kyoto_path_model.py +497 -0
  116. sage/combinat/crystals/letters.cp314t-win_amd64.pyd +0 -0
  117. sage/combinat/crystals/letters.pxd +79 -0
  118. sage/combinat/crystals/letters.pyx +3056 -0
  119. sage/combinat/crystals/littelmann_path.py +1518 -0
  120. sage/combinat/crystals/monomial_crystals.py +1262 -0
  121. sage/combinat/crystals/multisegments.py +462 -0
  122. sage/combinat/crystals/mv_polytopes.py +467 -0
  123. sage/combinat/crystals/pbw_crystal.py +511 -0
  124. sage/combinat/crystals/pbw_datum.cp314t-win_amd64.pyd +0 -0
  125. sage/combinat/crystals/pbw_datum.pxd +4 -0
  126. sage/combinat/crystals/pbw_datum.pyx +487 -0
  127. sage/combinat/crystals/polyhedral_realization.py +372 -0
  128. sage/combinat/crystals/spins.cp314t-win_amd64.pyd +0 -0
  129. sage/combinat/crystals/spins.pxd +21 -0
  130. sage/combinat/crystals/spins.pyx +756 -0
  131. sage/combinat/crystals/star_crystal.py +290 -0
  132. sage/combinat/crystals/subcrystal.py +464 -0
  133. sage/combinat/crystals/tensor_product.py +1177 -0
  134. sage/combinat/crystals/tensor_product_element.cp314t-win_amd64.pyd +0 -0
  135. sage/combinat/crystals/tensor_product_element.pxd +35 -0
  136. sage/combinat/crystals/tensor_product_element.pyx +1870 -0
  137. sage/combinat/crystals/virtual_crystal.py +420 -0
  138. sage/combinat/cyclic_sieving_phenomenon.py +204 -0
  139. sage/combinat/debruijn_sequence.cp314t-win_amd64.pyd +0 -0
  140. sage/combinat/debruijn_sequence.pyx +355 -0
  141. sage/combinat/decorated_permutation.py +270 -0
  142. sage/combinat/degree_sequences.cp314t-win_amd64.pyd +0 -0
  143. sage/combinat/degree_sequences.pyx +588 -0
  144. sage/combinat/derangements.py +527 -0
  145. sage/combinat/descent_algebra.py +1008 -0
  146. sage/combinat/diagram.py +1551 -0
  147. sage/combinat/diagram_algebras.py +5886 -0
  148. sage/combinat/dyck_word.py +4349 -0
  149. sage/combinat/e_one_star.py +1623 -0
  150. sage/combinat/enumerated_sets.py +123 -0
  151. sage/combinat/expnums.cp314t-win_amd64.pyd +0 -0
  152. sage/combinat/expnums.pyx +148 -0
  153. sage/combinat/fast_vector_partitions.cp314t-win_amd64.pyd +0 -0
  154. sage/combinat/fast_vector_partitions.pyx +346 -0
  155. sage/combinat/fqsym.py +1977 -0
  156. sage/combinat/free_dendriform_algebra.py +954 -0
  157. sage/combinat/free_prelie_algebra.py +1141 -0
  158. sage/combinat/fully_commutative_elements.py +1077 -0
  159. sage/combinat/fully_packed_loop.py +1523 -0
  160. sage/combinat/gelfand_tsetlin_patterns.py +1409 -0
  161. sage/combinat/gray_codes.py +311 -0
  162. sage/combinat/grossman_larson_algebras.py +667 -0
  163. sage/combinat/growth.py +4352 -0
  164. sage/combinat/hall_polynomial.py +188 -0
  165. sage/combinat/hillman_grassl.py +866 -0
  166. sage/combinat/integer_matrices.py +329 -0
  167. sage/combinat/integer_vectors_mod_permgroup.py +1238 -0
  168. sage/combinat/k_tableau.py +4564 -0
  169. sage/combinat/kazhdan_lusztig.py +215 -0
  170. sage/combinat/key_polynomial.py +885 -0
  171. sage/combinat/knutson_tao_puzzles.py +2286 -0
  172. sage/combinat/lr_tableau.py +311 -0
  173. sage/combinat/matrices/all.py +24 -0
  174. sage/combinat/matrices/hadamard_matrix.py +3790 -0
  175. sage/combinat/matrices/latin.py +2912 -0
  176. sage/combinat/misc.py +401 -0
  177. sage/combinat/multiset_partition_into_sets_ordered.py +3541 -0
  178. sage/combinat/ncsf_qsym/all.py +21 -0
  179. sage/combinat/ncsf_qsym/combinatorics.py +317 -0
  180. sage/combinat/ncsf_qsym/generic_basis_code.py +1427 -0
  181. sage/combinat/ncsf_qsym/ncsf.py +5637 -0
  182. sage/combinat/ncsf_qsym/qsym.py +4053 -0
  183. sage/combinat/ncsf_qsym/tutorial.py +447 -0
  184. sage/combinat/ncsym/all.py +21 -0
  185. sage/combinat/ncsym/bases.py +855 -0
  186. sage/combinat/ncsym/dual.py +593 -0
  187. sage/combinat/ncsym/ncsym.py +2076 -0
  188. sage/combinat/necklace.py +551 -0
  189. sage/combinat/non_decreasing_parking_function.py +634 -0
  190. sage/combinat/nu_dyck_word.py +1474 -0
  191. sage/combinat/output.py +861 -0
  192. sage/combinat/parallelogram_polyomino.py +4326 -0
  193. sage/combinat/parking_functions.py +1602 -0
  194. sage/combinat/partition_algebra.py +1998 -0
  195. sage/combinat/partition_kleshchev.py +1982 -0
  196. sage/combinat/partition_shifting_algebras.py +584 -0
  197. sage/combinat/partition_tuple.py +3114 -0
  198. sage/combinat/path_tableaux/all.py +13 -0
  199. sage/combinat/path_tableaux/catalog.py +29 -0
  200. sage/combinat/path_tableaux/dyck_path.py +380 -0
  201. sage/combinat/path_tableaux/frieze.py +476 -0
  202. sage/combinat/path_tableaux/path_tableau.py +728 -0
  203. sage/combinat/path_tableaux/semistandard.py +510 -0
  204. sage/combinat/perfect_matching.py +779 -0
  205. sage/combinat/plane_partition.py +3300 -0
  206. sage/combinat/q_bernoulli.cp314t-win_amd64.pyd +0 -0
  207. sage/combinat/q_bernoulli.pyx +128 -0
  208. sage/combinat/quickref.py +81 -0
  209. sage/combinat/recognizable_series.py +2051 -0
  210. sage/combinat/regular_sequence.py +4316 -0
  211. sage/combinat/regular_sequence_bounded.py +543 -0
  212. sage/combinat/restricted_growth.py +81 -0
  213. sage/combinat/ribbon.py +20 -0
  214. sage/combinat/ribbon_shaped_tableau.py +489 -0
  215. sage/combinat/ribbon_tableau.py +1180 -0
  216. sage/combinat/rigged_configurations/all.py +46 -0
  217. sage/combinat/rigged_configurations/bij_abstract_class.py +548 -0
  218. sage/combinat/rigged_configurations/bij_infinity.py +370 -0
  219. sage/combinat/rigged_configurations/bij_type_A.py +163 -0
  220. sage/combinat/rigged_configurations/bij_type_A2_dual.py +338 -0
  221. sage/combinat/rigged_configurations/bij_type_A2_even.py +218 -0
  222. sage/combinat/rigged_configurations/bij_type_A2_odd.py +199 -0
  223. sage/combinat/rigged_configurations/bij_type_B.py +900 -0
  224. sage/combinat/rigged_configurations/bij_type_C.py +267 -0
  225. sage/combinat/rigged_configurations/bij_type_D.py +771 -0
  226. sage/combinat/rigged_configurations/bij_type_D_tri.py +392 -0
  227. sage/combinat/rigged_configurations/bij_type_D_twisted.py +576 -0
  228. sage/combinat/rigged_configurations/bij_type_E67.py +402 -0
  229. sage/combinat/rigged_configurations/bijection.py +143 -0
  230. sage/combinat/rigged_configurations/kleber_tree.py +1475 -0
  231. sage/combinat/rigged_configurations/kr_tableaux.py +1898 -0
  232. sage/combinat/rigged_configurations/rc_crystal.py +461 -0
  233. sage/combinat/rigged_configurations/rc_infinity.py +540 -0
  234. sage/combinat/rigged_configurations/rigged_configuration_element.py +2403 -0
  235. sage/combinat/rigged_configurations/rigged_configurations.py +1918 -0
  236. sage/combinat/rigged_configurations/rigged_partition.cp314t-win_amd64.pyd +0 -0
  237. sage/combinat/rigged_configurations/rigged_partition.pxd +15 -0
  238. sage/combinat/rigged_configurations/rigged_partition.pyx +680 -0
  239. sage/combinat/rigged_configurations/tensor_product_kr_tableaux.py +499 -0
  240. sage/combinat/rigged_configurations/tensor_product_kr_tableaux_element.py +428 -0
  241. sage/combinat/rsk.py +3438 -0
  242. sage/combinat/schubert_polynomial.py +508 -0
  243. sage/combinat/set_partition.py +3318 -0
  244. sage/combinat/set_partition_iterator.cp314t-win_amd64.pyd +0 -0
  245. sage/combinat/set_partition_iterator.pyx +136 -0
  246. sage/combinat/set_partition_ordered.py +1590 -0
  247. sage/combinat/sf/abreu_nigro.py +346 -0
  248. sage/combinat/sf/all.py +52 -0
  249. sage/combinat/sf/character.py +576 -0
  250. sage/combinat/sf/classical.py +319 -0
  251. sage/combinat/sf/dual.py +996 -0
  252. sage/combinat/sf/elementary.py +549 -0
  253. sage/combinat/sf/hall_littlewood.py +1028 -0
  254. sage/combinat/sf/hecke.py +336 -0
  255. sage/combinat/sf/homogeneous.py +464 -0
  256. sage/combinat/sf/jack.py +1428 -0
  257. sage/combinat/sf/k_dual.py +1458 -0
  258. sage/combinat/sf/kfpoly.py +447 -0
  259. sage/combinat/sf/llt.py +789 -0
  260. sage/combinat/sf/macdonald.py +2019 -0
  261. sage/combinat/sf/monomial.py +525 -0
  262. sage/combinat/sf/multiplicative.py +113 -0
  263. sage/combinat/sf/new_kschur.py +1786 -0
  264. sage/combinat/sf/ns_macdonald.py +964 -0
  265. sage/combinat/sf/orthogonal.py +246 -0
  266. sage/combinat/sf/orthotriang.py +355 -0
  267. sage/combinat/sf/powersum.py +963 -0
  268. sage/combinat/sf/schur.py +880 -0
  269. sage/combinat/sf/sf.py +1653 -0
  270. sage/combinat/sf/sfa.py +7053 -0
  271. sage/combinat/sf/symplectic.py +253 -0
  272. sage/combinat/sf/witt.py +721 -0
  273. sage/combinat/shifted_primed_tableau.py +2735 -0
  274. sage/combinat/shuffle.py +830 -0
  275. sage/combinat/sidon_sets.py +146 -0
  276. sage/combinat/similarity_class_type.py +1721 -0
  277. sage/combinat/sine_gordon.py +618 -0
  278. sage/combinat/six_vertex_model.py +784 -0
  279. sage/combinat/skew_partition.py +2053 -0
  280. sage/combinat/skew_tableau.py +2989 -0
  281. sage/combinat/sloane_functions.py +8935 -0
  282. sage/combinat/specht_module.py +1403 -0
  283. sage/combinat/species/all.py +48 -0
  284. sage/combinat/species/characteristic_species.py +321 -0
  285. sage/combinat/species/composition_species.py +273 -0
  286. sage/combinat/species/cycle_species.py +284 -0
  287. sage/combinat/species/empty_species.py +155 -0
  288. sage/combinat/species/functorial_composition_species.py +148 -0
  289. sage/combinat/species/generating_series.py +673 -0
  290. sage/combinat/species/library.py +148 -0
  291. sage/combinat/species/linear_order_species.py +169 -0
  292. sage/combinat/species/misc.py +83 -0
  293. sage/combinat/species/partition_species.py +290 -0
  294. sage/combinat/species/permutation_species.py +268 -0
  295. sage/combinat/species/product_species.py +423 -0
  296. sage/combinat/species/recursive_species.py +476 -0
  297. sage/combinat/species/set_species.py +192 -0
  298. sage/combinat/species/species.py +820 -0
  299. sage/combinat/species/structure.py +539 -0
  300. sage/combinat/species/subset_species.py +243 -0
  301. sage/combinat/species/sum_species.py +225 -0
  302. sage/combinat/subword.py +564 -0
  303. sage/combinat/subword_complex.py +2122 -0
  304. sage/combinat/subword_complex_c.cp314t-win_amd64.pyd +0 -0
  305. sage/combinat/subword_complex_c.pyx +119 -0
  306. sage/combinat/super_tableau.py +821 -0
  307. sage/combinat/superpartition.py +1154 -0
  308. sage/combinat/symmetric_group_algebra.py +3774 -0
  309. sage/combinat/symmetric_group_representations.py +1830 -0
  310. sage/combinat/t_sequences.py +877 -0
  311. sage/combinat/tableau.py +9506 -0
  312. sage/combinat/tableau_residues.py +860 -0
  313. sage/combinat/tableau_tuple.py +5353 -0
  314. sage/combinat/tiling.py +2432 -0
  315. sage/combinat/triangles_FHM.py +777 -0
  316. sage/combinat/tutorial.py +1857 -0
  317. sage/combinat/vector_partition.py +337 -0
  318. sage/combinat/words/abstract_word.py +1722 -0
  319. sage/combinat/words/all.py +59 -0
  320. sage/combinat/words/alphabet.py +268 -0
  321. sage/combinat/words/finite_word.py +7201 -0
  322. sage/combinat/words/infinite_word.py +113 -0
  323. sage/combinat/words/lyndon_word.py +652 -0
  324. sage/combinat/words/morphic.py +351 -0
  325. sage/combinat/words/morphism.py +3878 -0
  326. sage/combinat/words/paths.py +2932 -0
  327. sage/combinat/words/shuffle_product.py +278 -0
  328. sage/combinat/words/suffix_trees.py +1873 -0
  329. sage/combinat/words/word.py +769 -0
  330. sage/combinat/words/word_char.cp314t-win_amd64.pyd +0 -0
  331. sage/combinat/words/word_char.pyx +847 -0
  332. sage/combinat/words/word_datatypes.cp314t-win_amd64.pyd +0 -0
  333. sage/combinat/words/word_datatypes.pxd +4 -0
  334. sage/combinat/words/word_datatypes.pyx +1067 -0
  335. sage/combinat/words/word_generators.py +2026 -0
  336. sage/combinat/words/word_infinite_datatypes.py +1218 -0
  337. sage/combinat/words/word_options.py +99 -0
  338. sage/combinat/words/words.py +2396 -0
  339. sage/data_structures/all__sagemath_combinat.py +1 -0
  340. sage/databases/all__sagemath_combinat.py +13 -0
  341. sage/databases/findstat.py +4897 -0
  342. sage/databases/oeis.py +2058 -0
  343. sage/databases/sloane.py +393 -0
  344. sage/dynamics/all__sagemath_combinat.py +14 -0
  345. sage/dynamics/cellular_automata/all.py +7 -0
  346. sage/dynamics/cellular_automata/catalog.py +34 -0
  347. sage/dynamics/cellular_automata/elementary.py +612 -0
  348. sage/dynamics/cellular_automata/glca.py +477 -0
  349. sage/dynamics/cellular_automata/solitons.py +1463 -0
  350. sage/dynamics/finite_dynamical_system.py +1249 -0
  351. sage/dynamics/finite_dynamical_system_catalog.py +382 -0
  352. sage/games/all.py +7 -0
  353. sage/games/hexad.py +704 -0
  354. sage/games/quantumino.py +591 -0
  355. sage/games/sudoku.py +889 -0
  356. sage/games/sudoku_backtrack.cp314t-win_amd64.pyd +0 -0
  357. sage/games/sudoku_backtrack.pyx +189 -0
  358. sage/groups/all__sagemath_combinat.py +1 -0
  359. sage/groups/indexed_free_group.py +489 -0
  360. sage/libs/all__sagemath_combinat.py +6 -0
  361. sage/libs/lrcalc/__init__.py +1 -0
  362. sage/libs/lrcalc/lrcalc.py +525 -0
  363. sage/libs/symmetrica/__init__.py +7 -0
  364. sage/libs/symmetrica/all.py +101 -0
  365. sage/libs/symmetrica/kostka.pxi +168 -0
  366. sage/libs/symmetrica/part.pxi +193 -0
  367. sage/libs/symmetrica/plet.pxi +42 -0
  368. sage/libs/symmetrica/sab.pxi +196 -0
  369. sage/libs/symmetrica/sb.pxi +332 -0
  370. sage/libs/symmetrica/sc.pxi +192 -0
  371. sage/libs/symmetrica/schur.pxi +956 -0
  372. sage/libs/symmetrica/symmetrica.cp314t-win_amd64.pyd +0 -0
  373. sage/libs/symmetrica/symmetrica.pxi +1172 -0
  374. sage/libs/symmetrica/symmetrica.pyx +39 -0
  375. sage/monoids/all.py +13 -0
  376. sage/monoids/automatic_semigroup.py +1054 -0
  377. sage/monoids/free_abelian_monoid.py +315 -0
  378. sage/monoids/free_abelian_monoid_element.cp314t-win_amd64.pyd +0 -0
  379. sage/monoids/free_abelian_monoid_element.pxd +16 -0
  380. sage/monoids/free_abelian_monoid_element.pyx +397 -0
  381. sage/monoids/free_monoid.py +335 -0
  382. sage/monoids/free_monoid_element.py +431 -0
  383. sage/monoids/hecke_monoid.py +65 -0
  384. sage/monoids/string_monoid.py +817 -0
  385. sage/monoids/string_monoid_element.py +547 -0
  386. sage/monoids/string_ops.py +143 -0
  387. sage/monoids/trace_monoid.py +972 -0
  388. sage/rings/all__sagemath_combinat.py +2 -0
  389. sage/sat/all.py +4 -0
  390. sage/sat/boolean_polynomials.py +405 -0
  391. sage/sat/converters/__init__.py +6 -0
  392. sage/sat/converters/anf2cnf.py +14 -0
  393. sage/sat/converters/polybori.py +611 -0
  394. sage/sat/solvers/__init__.py +5 -0
  395. sage/sat/solvers/cryptominisat.py +287 -0
  396. sage/sat/solvers/dimacs.py +783 -0
  397. sage/sat/solvers/picosat.py +228 -0
  398. sage/sat/solvers/sat_lp.py +156 -0
  399. sage/sat/solvers/satsolver.cp314t-win_amd64.pyd +0 -0
  400. sage/sat/solvers/satsolver.pxd +3 -0
  401. sage/sat/solvers/satsolver.pyx +405 -0
@@ -0,0 +1,397 @@
1
+ # sage_setup: distribution = sagemath-combinat
2
+ """
3
+ Abelian Monoid Elements
4
+
5
+ AUTHORS:
6
+
7
+ - David Kohel (2005-09)
8
+
9
+ EXAMPLES:
10
+
11
+ Recall the example from abelian monoids::
12
+
13
+ sage: F = FreeAbelianMonoid(5,names = list("abcde"))
14
+ sage: (a,b,c,d,e) = F.gens()
15
+ sage: a*b^2*e*d
16
+ a*b^2*d*e
17
+ sage: x = b^2*e*d*a^7
18
+ sage: x
19
+ a^7*b^2*d*e
20
+ sage: x.list()
21
+ [7, 2, 0, 1, 1]
22
+
23
+ The list is a copy, so changing the list does not change the element::
24
+
25
+ sage: x.list()[0] = 0
26
+ sage: x
27
+ a^7*b^2*d*e
28
+ """
29
+
30
+ # ***************************************************************************
31
+ # Copyright (C) 2006 William Stein <wstein@gmail.com>
32
+ # Copyright (C) 2005 David Kohel <kohel@maths.usyd.edu>
33
+ #
34
+ # Distributed under the terms of the GNU General Public License (GPL)
35
+ # https://www.gnu.org/licenses/
36
+ # ***************************************************************************
37
+
38
+ from cysignals.memory cimport check_allocarray, sig_free
39
+ from cysignals.signals cimport sig_on, sig_off
40
+ from sage.structure.richcmp cimport rich_to_bool
41
+ from sage.rings.integer cimport Integer, _Integer_from_mpz
42
+ from sage.libs.gmp.mpz cimport *
43
+
44
+
45
+ def is_FreeAbelianMonoidElement(x):
46
+ r"""
47
+ Queries whether ``x`` is an object of type ``FreeAbelianMonoidElement``.
48
+
49
+ INPUT:
50
+
51
+ - ``x`` -- an object
52
+
53
+ OUTPUT:
54
+
55
+ - ``True`` if ``x`` is an object of type ``FreeAbelianMonoidElement``;
56
+ ``False`` otherwise.
57
+ """
58
+ from sage.misc.superseded import deprecation_cython
59
+ deprecation_cython(38184,
60
+ "The function is_FreeAbelianMonoidElement is deprecated; "
61
+ "use 'isinstance(..., FreeAbelianMonoidElement)' instead.")
62
+ return isinstance(x, FreeAbelianMonoidElement)
63
+
64
+
65
+ cdef class FreeAbelianMonoidElement(MonoidElement):
66
+ cdef int _init(self, Py_ssize_t n, Parent parent) except -1:
67
+ """
68
+ Initialize the C data structures in this vector. After calling
69
+ this, ``self`` is the identity element represented as a zero vector
70
+ of degree ``n`` with parent ``parent``.
71
+
72
+ Only if you call ``__new__`` without a ``parent`` argument, it
73
+ is needed to call this function manually. The only reason to do
74
+ that is for efficiency: calling ``__new__`` without any
75
+ additional arguments besides the type and then calling ``_init``
76
+ is (slightly) more efficient than calling ``__new__`` with a
77
+ ``parent`` argument.
78
+ """
79
+ # Assign variables only when the array is fully initialized
80
+ cdef mpz_t* entries = <mpz_t*>check_allocarray(n, sizeof(mpz_t))
81
+ cdef Py_ssize_t i
82
+ sig_on()
83
+ for i in range(n):
84
+ mpz_init(entries[i])
85
+ sig_off()
86
+ self._element_vector = entries
87
+ self._n = n
88
+ self._parent = parent
89
+
90
+ def __cinit__(self, parent=None, x=None):
91
+ """
92
+ C level initialization of ``self``.
93
+
94
+ EXAMPLES::
95
+
96
+ sage: F = FreeAbelianMonoid(5, 'abcde')
97
+ sage: F(1)
98
+ 1
99
+ """
100
+ self._element_vector = NULL
101
+ if parent is None:
102
+ self._n = 0
103
+ return
104
+ self._init(parent.ngens(), <Parent?>parent)
105
+
106
+ def __init__(self, parent, x):
107
+ r"""
108
+ Create the element ``x`` of the FreeAbelianMonoid ``parent``.
109
+
110
+ EXAMPLES::
111
+
112
+ sage: F = FreeAbelianMonoid(5, 'abcde')
113
+ sage: F
114
+ Free abelian monoid on 5 generators (a, b, c, d, e)
115
+ sage: F(1)
116
+ 1
117
+ sage: F(2)
118
+ Traceback (most recent call last):
119
+ ...
120
+ TypeError: argument x (= 2) is of the wrong type
121
+ sage: F(int(1))
122
+ 1
123
+ sage: a, b, c, d, e = F.gens()
124
+ sage: a^2 * b^3 * a^2 * b^4
125
+ a^4*b^7
126
+ sage: F = FreeAbelianMonoid(5, 'abcde')
127
+ sage: a, b, c, d, e = F.gens()
128
+ sage: a in F
129
+ True
130
+ sage: a*b in F
131
+ True
132
+ """
133
+ cdef Py_ssize_t i
134
+ cdef Integer z
135
+
136
+ if isinstance(x, int):
137
+ if (<int> x) == 1:
138
+ return # the _element_vector is already set to the 0 vector
139
+ elif isinstance(x, Integer):
140
+ if mpz_cmp_si((<Integer> x).value, 1) == 0:
141
+ return # the _element_vector is already set to the 0 vector
142
+ elif isinstance(x, (list, tuple)):
143
+ if len(x) != self._n:
144
+ raise IndexError("argument length (= %s) must be %s" % (len(x), self._n))
145
+ for i in range(self._n):
146
+ z = Integer(x[i])
147
+ mpz_set(self._element_vector[i], z.value)
148
+ return
149
+ raise TypeError("argument x (= %s) is of the wrong type" % x)
150
+
151
+ def __dealloc__(self):
152
+ """
153
+ Deallocate ``self``.
154
+
155
+ EXAMPLES::
156
+
157
+ sage: F = FreeAbelianMonoid(5, 'abcde')
158
+ sage: a, b, c, d, e = F.gens()
159
+ sage: x = a^2 * b^3
160
+ sage: del x
161
+ """
162
+ cdef Py_ssize_t i
163
+ if self._element_vector:
164
+ for i in range(self._n):
165
+ mpz_clear(self._element_vector[i])
166
+ sig_free(self._element_vector)
167
+
168
+ def __copy__(self):
169
+ """
170
+ Return a copy of ``self``.
171
+
172
+ EXAMPLES::
173
+
174
+ sage: F = FreeAbelianMonoid(5, 'abcde')
175
+ sage: a, b, c, d, e = F.gens()
176
+ sage: x = a^2 * b^3
177
+ sage: copy(x) == x
178
+ True
179
+ sage: copy(x) is x
180
+ False
181
+ """
182
+ cdef FreeAbelianMonoidElement y
183
+ y = self._new_c()
184
+ cdef Py_ssize_t i
185
+ for i in range(self._n):
186
+ mpz_set(y._element_vector[i], self._element_vector[i])
187
+ return y
188
+
189
+ def __reduce__(self):
190
+ """
191
+ Used in pickling.
192
+
193
+ EXAMPLES::
194
+
195
+ sage: F = FreeAbelianMonoid(5, 'abcde')
196
+ sage: a, b, c, d, e = F.gens()
197
+ sage: x = a^2 * b^3
198
+ sage: loads(dumps(x)) == x
199
+ True
200
+ """
201
+ return (self._parent, (self.list(),))
202
+
203
+ def _repr_(self):
204
+ """
205
+ Return a string representation of ``self``.
206
+
207
+ EXAMPLES::
208
+
209
+ sage: F = FreeAbelianMonoid(5, 'abcde')
210
+ sage: F(1)
211
+ 1
212
+ sage: a, b, c, d, e = F.gens()
213
+ sage: a^2 * b^3 * a^2 * b^4
214
+ a^4*b^7
215
+ """
216
+ cdef str s = ""
217
+ A = self._parent
218
+ cdef tuple x = A.variable_names()
219
+ cdef mpz_t *v = self._element_vector
220
+ cdef Integer val
221
+ for i in range(self._n):
222
+ val = _Integer_from_mpz(v[i])
223
+ if val == 0:
224
+ continue
225
+ elif val == 1:
226
+ if s:
227
+ s += "*"
228
+ s += "%s" % x[i]
229
+ else:
230
+ if s:
231
+ s += "*"
232
+ s += "%s^%s" % (x[i], val)
233
+ if not s:
234
+ s = "1"
235
+ return s
236
+
237
+ def _latex_(self):
238
+ r"""
239
+ Return a latex representation of ``self``.
240
+
241
+ EXAMPLES::
242
+
243
+ sage: F = FreeAbelianMonoid(2, 'alpha,beta')
244
+ sage: latex(F(1))
245
+ 1
246
+ sage: a, b = F.gens()
247
+ sage: latex(a^2 * b^3 * a^2 * b^4)
248
+ \alpha^{4} \beta^{7}
249
+ """
250
+ cdef str s = ""
251
+ A = self._parent
252
+ cdef list x = A.latex_variable_names()
253
+ cdef mpz_t *v = self._element_vector
254
+ cdef Integer val
255
+ for i in range(self._n):
256
+ val = _Integer_from_mpz(v[i])
257
+ if val == 0:
258
+ continue
259
+ elif val == 1:
260
+ if s:
261
+ s += " "
262
+ s += "%s" % x[i]
263
+ else:
264
+ if s:
265
+ s += " "
266
+ s += "%s^{%s}" % (x[i], val)
267
+ if not s:
268
+ s = "1"
269
+ return s
270
+
271
+ cpdef _richcmp_(left, right, int op):
272
+ """
273
+ Rich comparison.
274
+
275
+ EXAMPLES::
276
+
277
+ sage: F = FreeAbelianMonoid(5, 'abcde')
278
+ sage: F(1)
279
+ 1
280
+ sage: a, b, c, d, e = F.gens()
281
+ sage: x = a^2 * b^3
282
+ sage: F(1) < x
283
+ True
284
+ sage: x > b
285
+ True
286
+ sage: x <= a^4
287
+ True
288
+ sage: x != a*b
289
+ True
290
+ sage: a*b == b*a
291
+ True
292
+ sage: x > a^3*b^2
293
+ False
294
+ """
295
+ cdef Py_ssize_t i
296
+ cdef int c
297
+ for i in range(left._n):
298
+ c = mpz_cmp(left._element_vector[i], (<FreeAbelianMonoidElement>right)._element_vector[i])
299
+ if c < 0:
300
+ return rich_to_bool(op, -1)
301
+ elif c > 0:
302
+ return rich_to_bool(op, 1)
303
+ return rich_to_bool(op, 0)
304
+
305
+ def __mul__(self, y):
306
+ """
307
+ Multiply ``self`` with ``y``.
308
+
309
+ EXAMPLES::
310
+
311
+ sage: F = FreeAbelianMonoid(5, 'abcde')
312
+ sage: a, b, c, d, e = F.gens()
313
+ sage: b * a^2 * b^3
314
+ a^2*b^4
315
+ """
316
+ if not isinstance(y, FreeAbelianMonoidElement):
317
+ raise TypeError("argument y (= %s) is of wrong type" % y)
318
+ cdef FreeAbelianMonoidElement s, z, r
319
+ s = self
320
+ r = y
321
+ z = s._new_c()
322
+ cdef Py_ssize_t i
323
+ for i in range(s._n):
324
+ mpz_add(z._element_vector[i], s._element_vector[i], r._element_vector[i])
325
+ return z
326
+
327
+ def __pow__(self, n, modulus):
328
+ """
329
+ Raise ``self`` to the power of ``n``.
330
+
331
+ AUTHORS:
332
+
333
+ - Tom Boothby (2007-08): Replaced O(log n) time, O(n) space
334
+ algorithm with O(1) time and space "algorithm".
335
+
336
+ EXAMPLES::
337
+
338
+ sage: F = FreeAbelianMonoid(5,names = list("abcde"))
339
+ sage: (a,b,c,d,e) = F.gens()
340
+ sage: x = a*b^2*e*d; x
341
+ a*b^2*d*e
342
+ sage: x^3
343
+ a^3*b^6*d^3*e^3
344
+ sage: x^0
345
+ 1
346
+ """
347
+ if modulus is not None:
348
+ raise NotImplementedError("modulus for exponents not implemented")
349
+ cdef Integer val
350
+ if isinstance(n, int):
351
+ val = Integer(n)
352
+ else:
353
+ if not isinstance(n, Integer):
354
+ raise TypeError("argument n (= %s) must be an integer" % (n,))
355
+ val = <Integer> n
356
+ if val < 0:
357
+ raise IndexError("argument n (= %s) must be positive" % val)
358
+ elif val == 1:
359
+ return self
360
+ cdef FreeAbelianMonoidElement s, z
361
+ s = self
362
+ z = s._new_c()
363
+ cdef Py_ssize_t i
364
+ for i in range(s._n):
365
+ mpz_mul(z._element_vector[i], s._element_vector[i], val.value)
366
+ return z
367
+
368
+ def __hash__(self):
369
+ """
370
+ Return the hash of ``self``.
371
+
372
+ EXAMPLES::
373
+
374
+ sage: F = FreeAbelianMonoid(5,names = list("abcde"))
375
+ sage: (a,b,c,d,e) = F.gens()
376
+ sage: x = a*b^2*e*d
377
+ sage: hash(x) == hash(x)
378
+ True
379
+ """
380
+ return hash(tuple(self.list()))
381
+
382
+ def list(self):
383
+ r"""
384
+ Return the underlying list used to represent ``self``.
385
+
386
+ If this is a monoid in an abelian monoid on `n` generators,
387
+ then this is a list of nonnegative integers of length `n`.
388
+
389
+ EXAMPLES::
390
+
391
+ sage: F = FreeAbelianMonoid(5, 'abcde')
392
+ sage: (a, b, c, d, e) = F.gens()
393
+ sage: a.list()
394
+ [1, 0, 0, 0, 0]
395
+ """
396
+ cdef Py_ssize_t i
397
+ return [_Integer_from_mpz(self._element_vector[i]) for i in range(self._n)]