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,284 @@
1
+ # sage_setup: distribution = sagemath-combinat
2
+ """
3
+ Cycle species
4
+ """
5
+
6
+ # ****************************************************************************
7
+ # Copyright (C) 2008 Mike Hansen <mhansen@gmail.com>,
8
+ #
9
+ # This program is free software: you can redistribute it and/or modify
10
+ # it under the terms of the GNU General Public License as published by
11
+ # the Free Software Foundation, either version 2 of the License, or
12
+ # (at your option) any later version.
13
+ # http://www.gnu.org/licenses/
14
+ # ***************************************************************************
15
+
16
+ from sage.arith.misc import divisors, euler_phi
17
+ from sage.combinat.species.misc import accept_size
18
+ from sage.combinat.species.species import GenericCombinatorialSpecies
19
+ from sage.combinat.species.structure import GenericSpeciesStructure
20
+ from sage.structure.unique_representation import UniqueRepresentation
21
+
22
+
23
+ class CycleSpeciesStructure(GenericSpeciesStructure):
24
+ def __repr__(self):
25
+ """
26
+ EXAMPLES::
27
+
28
+ sage: S = species.CycleSpecies()
29
+ sage: S.structures(["a","b","c"])[0]
30
+ ('a', 'b', 'c')
31
+ """
32
+ s = GenericSpeciesStructure.__repr__(self)
33
+ return "("+s[1:-1]+")"
34
+
35
+ def canonical_label(self):
36
+ """
37
+ EXAMPLES::
38
+
39
+ sage: P = species.CycleSpecies()
40
+ sage: P.structures(["a","b","c"]).random_element().canonical_label()
41
+ ('a', 'b', 'c')
42
+ """
43
+ n = len(self._labels)
44
+ return CycleSpeciesStructure(self.parent(), self._labels, range(1, n+1))
45
+
46
+ def permutation_group_element(self):
47
+ """
48
+ Return this cycle as a permutation group element.
49
+
50
+ EXAMPLES::
51
+
52
+ sage: F = species.CycleSpecies()
53
+ sage: a = F.structures(["a", "b", "c"])[0]; a
54
+ ('a', 'b', 'c')
55
+ sage: a.permutation_group_element() # needs sage.groups
56
+ (1,2,3)
57
+ """
58
+ from sage.groups.perm_gps.constructor import PermutationGroupElement
59
+ return PermutationGroupElement(tuple(self._list))
60
+
61
+ def transport(self, perm):
62
+ """
63
+ Return the transport of this structure along the permutation
64
+ perm.
65
+
66
+ EXAMPLES::
67
+
68
+ sage: F = species.CycleSpecies()
69
+ sage: a = F.structures(["a", "b", "c"])[0]; a
70
+ ('a', 'b', 'c')
71
+ sage: p = PermutationGroupElement((1,2)) # needs sage.groups
72
+ sage: a.transport(p) # needs sage.groups
73
+ ('a', 'c', 'b')
74
+ """
75
+ p = self.permutation_group_element()
76
+ p = perm*p*~perm
77
+ new_list = [1]
78
+ for i in range(len(self._list)-1):
79
+ new_list.append( p(new_list[-1]) )
80
+ return CycleSpeciesStructure(self.parent(), self._labels, new_list)
81
+
82
+ def automorphism_group(self):
83
+ """
84
+ Return the group of permutations whose action on this structure
85
+ leave it fixed.
86
+
87
+ EXAMPLES::
88
+
89
+ sage: P = species.CycleSpecies()
90
+ sage: a = P.structures([1, 2, 3, 4])[0]; a
91
+ (1, 2, 3, 4)
92
+ sage: a.automorphism_group() # needs sage.groups
93
+ Permutation Group with generators [(1,2,3,4)]
94
+
95
+ ::
96
+
97
+ sage: [a.transport(perm) for perm in a.automorphism_group()] # needs sage.groups
98
+ [(1, 2, 3, 4), (1, 2, 3, 4), (1, 2, 3, 4), (1, 2, 3, 4)]
99
+ """
100
+ from sage.groups.perm_gps.permgroup_named import SymmetricGroup
101
+ from sage.groups.perm_gps.permgroup import PermutationGroup
102
+ S = SymmetricGroup(len(self._labels))
103
+ p = self.permutation_group_element()
104
+ return PermutationGroup(S.centralizer(p).gens())
105
+
106
+
107
+ class CycleSpecies(GenericCombinatorialSpecies, UniqueRepresentation):
108
+ @staticmethod
109
+ @accept_size
110
+ def __classcall__(cls, *args, **kwds):
111
+ r"""
112
+ EXAMPLES::
113
+
114
+ sage: C = species.CycleSpecies(); C
115
+ Cyclic permutation species
116
+ """
117
+ return super().__classcall__(cls, *args, **kwds)
118
+
119
+ def __init__(self, min=None, max=None, weight=None):
120
+ """
121
+ Return the species of cycles.
122
+
123
+ EXAMPLES::
124
+
125
+ sage: C = species.CycleSpecies(); C
126
+ Cyclic permutation species
127
+ sage: C.structures([1,2,3,4]).list()
128
+ [(1, 2, 3, 4),
129
+ (1, 2, 4, 3),
130
+ (1, 3, 2, 4),
131
+ (1, 3, 4, 2),
132
+ (1, 4, 2, 3),
133
+ (1, 4, 3, 2)]
134
+
135
+ TESTS:
136
+
137
+ We check to verify that the caching of species is actually
138
+ working.
139
+
140
+ ::
141
+
142
+ sage: species.CycleSpecies() is species.CycleSpecies()
143
+ True
144
+
145
+ sage: P = species.CycleSpecies()
146
+ sage: c = P.generating_series()[:3]
147
+ sage: P._check()
148
+ True
149
+ sage: P == loads(dumps(P))
150
+ True
151
+ """
152
+ GenericCombinatorialSpecies.__init__(self, min=min, max=max, weight=weight)
153
+ self._name = "Cyclic permutation species"
154
+
155
+ _default_structure_class = CycleSpeciesStructure
156
+
157
+ def _structures(self, structure_class, labels):
158
+ """
159
+ EXAMPLES::
160
+
161
+ sage: P = species.CycleSpecies()
162
+ sage: P.structures([1,2,3]).list()
163
+ [(1, 2, 3), (1, 3, 2)]
164
+ """
165
+ from sage.combinat.permutation import CyclicPermutations
166
+ for c in CyclicPermutations(range(1, len(labels)+1)):
167
+ yield structure_class(self, labels, c)
168
+
169
+ def _isotypes(self, structure_class, labels):
170
+ """
171
+ EXAMPLES::
172
+
173
+ sage: P = species.CycleSpecies()
174
+ sage: P.isotypes([1,2,3]).list()
175
+ [(1, 2, 3)]
176
+ """
177
+ if len(labels) != 0:
178
+ yield structure_class(self, labels, range(1, len(labels)+1))
179
+
180
+ def _gs_callable(self, base_ring, n):
181
+ r"""
182
+ The generating series for cyclic permutations is
183
+ `-\log(1-x) = \sum_{n=1}^\infty x^n/n`.
184
+
185
+ EXAMPLES::
186
+
187
+ sage: P = species.CycleSpecies()
188
+ sage: g = P.generating_series()
189
+ sage: g[0:10]
190
+ [0, 1, 1/2, 1/3, 1/4, 1/5, 1/6, 1/7, 1/8, 1/9]
191
+
192
+ TESTS::
193
+
194
+ sage: P = species.CycleSpecies()
195
+ sage: g = P.generating_series(RR)
196
+ sage: g[0:3]
197
+ [0.0..., 1.0..., 0.5...]
198
+ """
199
+ if n:
200
+ return self._weight * base_ring.one() / n
201
+ return base_ring.zero()
202
+
203
+ def _order(self):
204
+ """
205
+ Return the order of the generating series.
206
+
207
+ EXAMPLES::
208
+
209
+ sage: P = species.CycleSpecies()
210
+ sage: P._order()
211
+ 1
212
+ """
213
+ return 1
214
+
215
+ def _itgs_list(self, base_ring, n):
216
+ """
217
+ The isomorphism type generating series for cyclic permutations is
218
+ given by `x/(1-x)`.
219
+
220
+ EXAMPLES::
221
+
222
+ sage: P = species.CycleSpecies()
223
+ sage: g = P.isotype_generating_series()
224
+ sage: g[0:5]
225
+ [0, 1, 1, 1, 1]
226
+
227
+ TESTS::
228
+
229
+ sage: P = species.CycleSpecies()
230
+ sage: g = P.isotype_generating_series(RR)
231
+ sage: g[0:3]
232
+ [0.0..., 1.0..., 1.0...]
233
+ """
234
+ if n:
235
+ return self._weight * base_ring.one()
236
+ return base_ring.zero()
237
+
238
+ def _cis_callable(self, base_ring, n):
239
+ r"""
240
+ The cycle index series of the species of cyclic permutations is
241
+ given by
242
+
243
+ .. MATH::
244
+
245
+ -\sum_{k=1}^\infty \phi(k)/k * log(1 - x_k)
246
+
247
+
248
+ which is equal to
249
+
250
+ .. MATH::
251
+
252
+ \sum_{n=1}^\infty \frac{1}{n} * \sum_{k|n} \phi(k) * x_k^{n/k}
253
+
254
+ .
255
+
256
+ EXAMPLES::
257
+
258
+ sage: P = species.CycleSpecies()
259
+ sage: cis = P.cycle_index_series() # needs sage.modules
260
+ sage: cis[0:7] # needs sage.libs.pari sage.modules
261
+ [0,
262
+ p[1],
263
+ 1/2*p[1, 1] + 1/2*p[2],
264
+ 1/3*p[1, 1, 1] + 2/3*p[3],
265
+ 1/4*p[1, 1, 1, 1] + 1/4*p[2, 2] + 1/2*p[4],
266
+ 1/5*p[1, 1, 1, 1, 1] + 4/5*p[5],
267
+ 1/6*p[1, 1, 1, 1, 1, 1] + 1/6*p[2, 2, 2] + 1/3*p[3, 3] + 1/3*p[6]]
268
+ """
269
+ from sage.combinat.sf.sf import SymmetricFunctions
270
+ p = SymmetricFunctions(base_ring).power()
271
+
272
+ zero = base_ring.zero()
273
+
274
+ if not n:
275
+ return zero
276
+ res = zero
277
+ for k in divisors(n):
278
+ res += euler_phi(k)*p([k])**(n//k)
279
+ res /= n
280
+ return self._weight * res
281
+
282
+
283
+ #Backward compatibility
284
+ CycleSpecies_class = CycleSpecies
@@ -0,0 +1,155 @@
1
+ # sage_setup: distribution = sagemath-combinat
2
+ """
3
+ Empty species
4
+ """
5
+ # ****************************************************************************
6
+ # Copyright (C) 2008 Florent Hivert <Florent.Hivert@univ-rouen,fr>,
7
+ #
8
+ # Distributed under the terms of the GNU General Public License (GPL)
9
+ #
10
+ # This code is distributed in the hope that it will be useful,
11
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13
+ # General Public License for more details.
14
+ #
15
+ # The full text of the GPL is available at:
16
+ #
17
+ # http://www.gnu.org/licenses/
18
+ # ****************************************************************************
19
+ from .species import GenericCombinatorialSpecies
20
+ from sage.structure.unique_representation import UniqueRepresentation
21
+
22
+
23
+ class EmptySpecies(GenericCombinatorialSpecies, UniqueRepresentation):
24
+ """
25
+ Return the empty species. This species has no structure at all.
26
+ It is the zero of the semi-ring of species.
27
+
28
+ EXAMPLES::
29
+
30
+ sage: X = species.EmptySpecies(); X
31
+ Empty species
32
+ sage: X.structures([]).list()
33
+ []
34
+ sage: X.structures([1]).list()
35
+ []
36
+ sage: X.structures([1,2]).list()
37
+ []
38
+ sage: X.generating_series()[0:4]
39
+ [0, 0, 0, 0]
40
+ sage: X.isotype_generating_series()[0:4]
41
+ [0, 0, 0, 0]
42
+ sage: X.cycle_index_series()[0:4] # needs sage.modules
43
+ [0, 0, 0, 0]
44
+
45
+ The empty species is the zero of the semi-ring of species.
46
+ The following tests that it is neutral with respect to addition::
47
+
48
+ sage: Empt = species.EmptySpecies()
49
+ sage: S = species.CharacteristicSpecies(2)
50
+ sage: X = S + Empt
51
+ sage: X == S # TODO: Not Implemented
52
+ True
53
+ sage: (X.generating_series()[0:4] ==
54
+ ....: S.generating_series()[0:4])
55
+ True
56
+ sage: (X.isotype_generating_series()[0:4] ==
57
+ ....: S.isotype_generating_series()[0:4])
58
+ True
59
+ sage: (X.cycle_index_series()[0:4] == # needs sage.modules
60
+ ....: S.cycle_index_series()[0:4])
61
+ True
62
+
63
+ The following tests that it is the zero element with respect to
64
+ multiplication::
65
+
66
+ sage: Y = Empt*S
67
+ sage: Y == Empt # TODO: Not Implemented
68
+ True
69
+ sage: Y.generating_series()[0:4]
70
+ [0, 0, 0, 0]
71
+ sage: Y.isotype_generating_series()[0:4]
72
+ [0, 0, 0, 0]
73
+ sage: Y.cycle_index_series()[0:4] # needs sage.modules
74
+ [0, 0, 0, 0]
75
+
76
+ TESTS::
77
+
78
+ sage: Empt = species.EmptySpecies()
79
+ sage: Empt2 = species.EmptySpecies()
80
+ sage: Empt is Empt2
81
+ True
82
+ """
83
+
84
+ def __init__(self, min=None, max=None, weight=None):
85
+ """
86
+ Initializer for the empty species.
87
+
88
+ EXAMPLES::
89
+
90
+ sage: F = species.EmptySpecies()
91
+ sage: F._check()
92
+ True
93
+ sage: F == loads(dumps(F))
94
+ True
95
+ """
96
+ # There is no structure at all, so we set min and max accordingly.
97
+ GenericCombinatorialSpecies.__init__(self, weight=weight)
98
+ self._name = "Empty species"
99
+
100
+ def _gs(self, series_ring, base_ring):
101
+ """
102
+ Return the generating series for ``self``.
103
+
104
+ EXAMPLES::
105
+
106
+ sage: F = species.EmptySpecies()
107
+ sage: F.generating_series()[0:5] # indirect doctest
108
+ [0, 0, 0, 0, 0]
109
+ sage: F.generating_series().count(3)
110
+ 0
111
+ sage: F.generating_series().count(4)
112
+ 0
113
+ """
114
+ return series_ring.zero()
115
+
116
+ _itgs = _gs
117
+ _cis = _gs
118
+
119
+ def _structures(self, structure_class, labels):
120
+ """
121
+ Thanks to the counting optimisation, this is never called... Otherwise
122
+ this should return an empty iterator.
123
+
124
+ EXAMPLES::
125
+
126
+ sage: F = species.EmptySpecies()
127
+ sage: F.structures([]).list() # indirect doctest
128
+ []
129
+ sage: F.structures([1,2,3]).list() # indirect doctest
130
+ []
131
+ """
132
+ assert False, "This should never be called"
133
+
134
+ _default_structure_class = 0
135
+ _isotypes = _structures
136
+
137
+ def _equation(self, var_mapping):
138
+ """
139
+ Return the right hand side of an algebraic equation satisfied by
140
+ this species. This is a utility function called by the
141
+ algebraic_equation_system method.
142
+
143
+ EXAMPLES::
144
+
145
+ sage: C = species.EmptySpecies()
146
+ sage: Qz = QQ['z']
147
+ sage: R.<node0> = Qz[]
148
+ sage: var_mapping = {'z':Qz.gen(), 'node0':R.gen()}
149
+ sage: C._equation(var_mapping)
150
+ 0
151
+ """
152
+ return 0
153
+
154
+
155
+ EmptySpecies_class = EmptySpecies
@@ -0,0 +1,148 @@
1
+ # sage_setup: distribution = sagemath-combinat
2
+ """
3
+ Functorial composition species
4
+ """
5
+ # ****************************************************************************
6
+ # Copyright (C) 2008 Mike Hansen <mhansen@gmail.com>,
7
+ #
8
+ # Distributed under the terms of the GNU General Public License (GPL)
9
+ #
10
+ # This code is distributed in the hope that it will be useful,
11
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13
+ # General Public License for more details.
14
+ #
15
+ # The full text of the GPL is available at:
16
+ #
17
+ # https://www.gnu.org/licenses/
18
+ # ****************************************************************************
19
+ from .species import GenericCombinatorialSpecies
20
+ from .structure import GenericSpeciesStructure
21
+
22
+
23
+ class FunctorialCompositionStructure(GenericSpeciesStructure):
24
+ pass
25
+
26
+
27
+ class FunctorialCompositionSpecies(GenericCombinatorialSpecies):
28
+ def __init__(self, F, G, min=None, max=None, weight=None):
29
+ """
30
+ Return the functorial composition of two species.
31
+
32
+ EXAMPLES::
33
+
34
+ sage: E = species.SetSpecies()
35
+ sage: E2 = species.SetSpecies(size=2)
36
+ sage: WP = species.SubsetSpecies()
37
+ sage: P2 = E2*E
38
+ sage: G = WP.functorial_composition(P2)
39
+ sage: G.isotype_generating_series()[0:5] # needs sage.modules
40
+ [1, 1, 2, 4, 11]
41
+
42
+ sage: G = species.SimpleGraphSpecies()
43
+ sage: c = G.generating_series()[0:2]
44
+ sage: type(G)
45
+ <class 'sage.combinat.species.functorial_composition_species.FunctorialCompositionSpecies'>
46
+ sage: G == loads(dumps(G))
47
+ True
48
+ sage: G._check() # False due to isomorphism types not being implemented # needs sage.modules
49
+ False
50
+ """
51
+ self._F = F
52
+ self._G = G
53
+ self._state_info = [F, G]
54
+ self._name = f"Functorial composition of ({F}) and ({G})"
55
+ GenericCombinatorialSpecies.__init__(self, min=None, max=None, weight=None)
56
+
57
+ _default_structure_class = FunctorialCompositionStructure
58
+
59
+ def _structures(self, structure_class, s):
60
+ """
61
+ EXAMPLES::
62
+
63
+ sage: G = species.SimpleGraphSpecies()
64
+ sage: G.structures([1,2,3]).list()
65
+ [{},
66
+ {{1, 2}*{3}},
67
+ {{1, 3}*{2}},
68
+ {{2, 3}*{1}},
69
+ {{1, 2}*{3}, {1, 3}*{2}},
70
+ {{1, 2}*{3}, {2, 3}*{1}},
71
+ {{1, 3}*{2}, {2, 3}*{1}},
72
+ {{1, 2}*{3}, {1, 3}*{2}, {2, 3}*{1}}]
73
+ """
74
+ gs = self._G.structures(s).list()
75
+ yield from self._F.structures(gs)
76
+
77
+ def _isotypes(self, structure_class, s):
78
+ """
79
+ There is no known algorithm for efficiently generating the
80
+ isomorphism types of the functorial composition of two species.
81
+
82
+ EXAMPLES::
83
+
84
+ sage: G = species.SimpleGraphSpecies()
85
+ sage: G.isotypes([1,2,3]).list() # needs sage.modules
86
+ Traceback (most recent call last):
87
+ ...
88
+ NotImplementedError
89
+ """
90
+ raise NotImplementedError
91
+
92
+ def _gs(self, series_ring, base_ring):
93
+ """
94
+ EXAMPLES::
95
+
96
+ sage: G = species.SimpleGraphSpecies()
97
+ sage: G.generating_series()[0:5]
98
+ [1, 1, 1, 4/3, 8/3]
99
+ """
100
+ return self._F.generating_series(base_ring).functorial_composition(self._G.generating_series(base_ring))
101
+
102
+ def _itgs(self, series_ring, base_ring):
103
+ """
104
+ EXAMPLES::
105
+
106
+ sage: G = species.SimpleGraphSpecies()
107
+ sage: G.isotype_generating_series()[0:5] # needs sage.modules
108
+ [1, 1, 2, 4, 11]
109
+ """
110
+ return self.cycle_index_series(base_ring).isotype_generating_series()
111
+
112
+ def _cis(self, series_ring, base_ring):
113
+ """
114
+ EXAMPLES::
115
+
116
+ sage: G = species.SimpleGraphSpecies()
117
+ sage: G.cycle_index_series()[0:5] # needs sage.modules
118
+ [p[],
119
+ p[1],
120
+ p[1, 1] + p[2],
121
+ 4/3*p[1, 1, 1] + 2*p[2, 1] + 2/3*p[3],
122
+ 8/3*p[1, 1, 1, 1] + 4*p[2, 1, 1] + 2*p[2, 2] + 4/3*p[3, 1] + p[4]]
123
+ """
124
+ return self._F.cycle_index_series(base_ring).functorial_composition(self._G.cycle_index_series(base_ring))
125
+
126
+ def weight_ring(self):
127
+ """
128
+ Return the weight ring for this species. This is determined by
129
+ asking Sage's coercion model what the result is when you multiply
130
+ (and add) elements of the weight rings for each of the operands.
131
+
132
+ EXAMPLES::
133
+
134
+ sage: G = species.SimpleGraphSpecies()
135
+ sage: G.weight_ring()
136
+ Rational Field
137
+ """
138
+ from sage.structure.element import get_coercion_model
139
+ cm = get_coercion_model()
140
+
141
+ f_weights = self._F.weight_ring()
142
+ g_weights = self._G.weight_ring()
143
+
144
+ return cm.explain(f_weights, g_weights, verbosity=0)
145
+
146
+
147
+ # Backward compatibility
148
+ FunctorialCompositionSpecies_class = FunctorialCompositionSpecies