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,1028 @@
1
+ # sage_setup: distribution = sagemath-combinat
2
+ # sage.doctest: needs sage.combinat sage.modules
3
+ r"""
4
+ Hall-Littlewood polynomials
5
+
6
+ Notation used in the definitions follows mainly [Mac1995]_.
7
+ """
8
+ #*****************************************************************************
9
+ # Copyright (C) 2007 Mike Hansen <mhansen@gmail.com>,
10
+ #
11
+ # Distributed under the terms of the GNU General Public License (GPL)
12
+ #
13
+ # This code is distributed in the hope that it will be useful,
14
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16
+ # General Public License for more details.
17
+ #
18
+ # The full text of the GPL is available at:
19
+ #
20
+ # http://www.gnu.org/licenses/
21
+ #*****************************************************************************
22
+
23
+ import sage.combinat.partition
24
+ from sage.categories.homset import Hom
25
+ from sage.categories.morphism import SetMorphism
26
+ from sage.misc.lazy_import import lazy_import
27
+ from sage.rings.rational_field import QQ
28
+ from sage.structure.unique_representation import UniqueRepresentation
29
+
30
+ from . import sfa
31
+
32
+ lazy_import('sage.libs.symmetrica.all', 'hall_littlewood')
33
+ lazy_import('sage.matrix.constructor', 'matrix')
34
+
35
+
36
+ # P basis cache
37
+ p_to_s_cache = {}
38
+ s_to_p_cache = {}
39
+ # Qp basis cache
40
+ qp_to_s_cache = {}
41
+ s_to_qp_cache = {}
42
+
43
+ QQt = QQ['t'].fraction_field()
44
+
45
+ # TODO: optimize! which is the fastest way of computing HL's and kostka-polynomials?
46
+ # Qp basis is computed using symmetrica, while P basis is computed using rigged
47
+ # configurations
48
+
49
+
50
+ class HallLittlewood(UniqueRepresentation):
51
+ r"""
52
+ The family of Hall-Littlewood symmetric function bases.
53
+
54
+ The Hall-Littlewood symmetric functions are a family of symmetric
55
+ functions that depend on a parameter `t`.
56
+
57
+ INPUT:
58
+
59
+ By default the parameter for these functions is `t`, and
60
+ whatever the parameter is, it must be in the base ring.
61
+
62
+ EXAMPLES::
63
+
64
+ sage: SymmetricFunctions(QQ).hall_littlewood(1)
65
+ Hall-Littlewood polynomials with t=1 over Rational Field
66
+ sage: SymmetricFunctions(QQ['t'].fraction_field()).hall_littlewood()
67
+ Hall-Littlewood polynomials over Fraction Field of Univariate Polynomial Ring in t over Rational Field
68
+ """
69
+
70
+ def __repr__(self):
71
+ r"""
72
+ A string representing the family of Hall-Littlewood symmetric function bases.
73
+
74
+ OUTPUT: string representing the class
75
+
76
+ EXAMPLES::
77
+
78
+ sage: SymmetricFunctions(QQ).hall_littlewood(1)
79
+ Hall-Littlewood polynomials with t=1 over Rational Field
80
+ """
81
+ return self._name + " over %s" % self._sym.base_ring()
82
+
83
+ @staticmethod
84
+ def __classcall__(cls, Sym, t='t'):
85
+ """
86
+ Normalize the arguments.
87
+
88
+ TESTS::
89
+
90
+ sage: R.<q, t> = QQ[]
91
+ sage: B1 = SymmetricFunctions(R).hall_littlewood()
92
+ sage: B2 = SymmetricFunctions(R).hall_littlewood(t)
93
+ sage: B3 = SymmetricFunctions(R).hall_littlewood(q)
94
+ sage: B1 is B2
95
+ True
96
+ sage: B1 == B3
97
+ False
98
+ """
99
+ return super().__classcall__(cls, Sym, Sym.base_ring()(t))
100
+
101
+ def __init__(self, Sym, t):
102
+ """
103
+ Initialize ``self``.
104
+
105
+ EXAMPLES::
106
+
107
+ sage: HL = SymmetricFunctions(FractionField(QQ['t'])).hall_littlewood()
108
+ sage: TestSuite(HL).run()
109
+ """
110
+ self._sym = Sym
111
+ self.t = Sym.base_ring()(t)
112
+ self._name_suffix = ""
113
+ if str(t) != 't':
114
+ self._name_suffix += " with t=%s" % t
115
+ self._name = "Hall-Littlewood polynomials"+self._name_suffix
116
+
117
+ def symmetric_function_ring( self ):
118
+ r"""
119
+ Return the ring of symmetric functions associated to the class of
120
+ Hall-Littlewood symmetric functions.
121
+
122
+ INPUT:
123
+
124
+ - ``self`` -- a class of Hall-Littlewood symmetric function bases
125
+
126
+ EXAMPLES::
127
+
128
+ sage: HL = SymmetricFunctions(FractionField(QQ['t'])).hall_littlewood()
129
+ sage: HL.symmetric_function_ring()
130
+ Symmetric Functions over Fraction Field of Univariate Polynomial Ring in t over Rational Field
131
+ """
132
+ return self._sym
133
+
134
+ def base_ring( self ):
135
+ r"""
136
+ Return the base ring of the symmetric functions where the
137
+ Hall-Littlewood symmetric functions live.
138
+
139
+ INPUT:
140
+
141
+ - ``self`` -- a class of Hall-Littlewood symmetric function bases
142
+
143
+ EXAMPLES::
144
+
145
+ sage: HL = SymmetricFunctions(QQ['t'].fraction_field()).hall_littlewood(t=1)
146
+ sage: HL.base_ring()
147
+ Fraction Field of Univariate Polynomial Ring in t over Rational Field
148
+ """
149
+ return self._sym.base_ring()
150
+
151
+ def P(self):
152
+ r"""
153
+ Return the algebra of symmetric functions in the Hall-Littlewood
154
+ `P` basis. This is the same as the `HL` basis in John Stembridge's
155
+ SF examples file.
156
+
157
+ INPUT:
158
+
159
+ - ``self`` -- a class of Hall-Littlewood symmetric function bases
160
+
161
+ OUTPUT: the class of the Hall-Littlewood `P` basis
162
+
163
+ EXAMPLES::
164
+
165
+ sage: Sym = SymmetricFunctions(FractionField(QQ['t']))
166
+ sage: HLP = Sym.hall_littlewood().P(); HLP
167
+ Symmetric Functions over Fraction Field of Univariate Polynomial Ring in t over Rational Field in the Hall-Littlewood P basis
168
+ sage: SP = Sym.hall_littlewood(t=-1).P(); SP
169
+ Symmetric Functions over Fraction Field of Univariate Polynomial Ring in t over Rational Field in the Hall-Littlewood P with t=-1 basis
170
+ sage: s = Sym.schur()
171
+ sage: s(HLP([2,1]))
172
+ (-t^2-t)*s[1, 1, 1] + s[2, 1]
173
+
174
+ The Hall-Littlewood polynomials in the `P` basis at `t = 0` are the
175
+ Schur functions::
176
+
177
+ sage: Sym = SymmetricFunctions(QQ)
178
+ sage: HLP = Sym.hall_littlewood(t=0).P()
179
+ sage: s = Sym.schur()
180
+ sage: s(HLP([2,1])) == s([2,1])
181
+ True
182
+
183
+ The Hall-Littlewood polynomials in the `P` basis at `t = 1` are the
184
+ monomial symmetric functions::
185
+
186
+ sage: Sym = SymmetricFunctions(QQ)
187
+ sage: HLP = Sym.hall_littlewood(t=1).P()
188
+ sage: m = Sym.monomial()
189
+ sage: m(HLP([2,2,1])) == m([2,2,1])
190
+ True
191
+
192
+ We end with some examples of coercions between:
193
+
194
+ 1. Hall-Littlewood `P` basis.
195
+
196
+ 2. Hall-Littlewood polynomials in the `Q` basis
197
+
198
+ 3. Hall-Littlewood polynomials in the `Q^\prime` basis (via the Schurs)
199
+
200
+ 4. Classical symmetric functions
201
+
202
+ ::
203
+
204
+ sage: Sym = SymmetricFunctions(FractionField(QQ['t']))
205
+ sage: HLP = Sym.hall_littlewood().P()
206
+ sage: HLQ = Sym.hall_littlewood().Q()
207
+ sage: HLQp = Sym.hall_littlewood().Qp()
208
+ sage: s = Sym.schur()
209
+ sage: p = Sym.power()
210
+ sage: HLP(HLQ([2])) # indirect doctest
211
+ (-t+1)*HLP[2]
212
+ sage: HLP(HLQp([2]))
213
+ t*HLP[1, 1] + HLP[2]
214
+ sage: HLP(s([2]))
215
+ t*HLP[1, 1] + HLP[2]
216
+ sage: HLP(p([2]))
217
+ (t-1)*HLP[1, 1] + HLP[2]
218
+ sage: s = HLQp.symmetric_function_ring().s()
219
+ sage: HLQp.transition_matrix(s,3)
220
+ [ 1 0 0]
221
+ [ t 1 0]
222
+ [ t^3 t^2 + t 1]
223
+ sage: s.transition_matrix(HLP,3)
224
+ [ 1 t t^3]
225
+ [ 0 1 t^2 + t]
226
+ [ 0 0 1]
227
+
228
+ The method :meth:`sage.combinat.sf.sfa.SymmetricFunctionAlgebra_generic_Element.hl_creation_operator`
229
+ is a creation operator for the `Q` basis::
230
+
231
+ sage: HLQp[1].hl_creation_operator([3]).hl_creation_operator([3]) # needs lrcalc_python
232
+ HLQp[3, 3, 1]
233
+
234
+ Transitions between bases with the parameter `t` specialized::
235
+
236
+ sage: Sym = SymmetricFunctions(FractionField(QQ['y','z']))
237
+ sage: (y,z) = Sym.base_ring().gens()
238
+ sage: HLy = Sym.hall_littlewood(t=y)
239
+ sage: HLz = Sym.hall_littlewood(t=z)
240
+ sage: Qpy = HLy.Qp()
241
+ sage: Qpz = HLz.Qp()
242
+ sage: s = Sym.schur()
243
+ sage: s( Qpy[3,1] + z*Qpy[2,2] )
244
+ z*s[2, 2] + (y*z+1)*s[3, 1] + (y^2*z+y)*s[4]
245
+ sage: s( Qpy[3,1] + y*Qpz[2,2] )
246
+ y*s[2, 2] + (y*z+1)*s[3, 1] + (y*z^2+y)*s[4]
247
+ sage: s( Qpy[3,1] + y*Qpy[2,2] )
248
+ y*s[2, 2] + (y^2+1)*s[3, 1] + (y^3+y)*s[4]
249
+
250
+ sage: Qy = HLy.Q()
251
+ sage: Qz = HLz.Q()
252
+ sage: Py = HLy.P()
253
+ sage: Pz = HLz.P()
254
+ sage: Pz(Qpy[2,1])
255
+ (y*z^3+z^2+z)*HLP[1, 1, 1] + (y*z+1)*HLP[2, 1] + y*HLP[3]
256
+ sage: Pz(Qz[2,1])
257
+ (z^2-2*z+1)*HLP[2, 1]
258
+ sage: Qz(Py[2])
259
+ -((y-z)/(z^3-z^2-z+1))*HLQ[1, 1] + (1/(-z+1))*HLQ[2]
260
+ sage: Qy(Pz[2])
261
+ ((y-z)/(y^3-y^2-y+1))*HLQ[1, 1] + (1/(-y+1))*HLQ[2]
262
+ sage: Qy.hall_littlewood_family() == HLy
263
+ True
264
+ sage: Qy.hall_littlewood_family() == HLz
265
+ False
266
+ sage: Qz.symmetric_function_ring() == Qy.symmetric_function_ring()
267
+ True
268
+
269
+ sage: Sym = SymmetricFunctions(FractionField(QQ['q']))
270
+ sage: q = Sym.base_ring().gen()
271
+ sage: HL = Sym.hall_littlewood(t=q)
272
+ sage: HLQp = HL.Qp()
273
+ sage: HLQ = HL.Q()
274
+ sage: HLP = HL.P()
275
+ sage: s = Sym.schur()
276
+ sage: s(HLQp[3,2].plethysm((1-q)*s[1]))/(1-q)^2
277
+ (-q^5-q^4)*s[1, 1, 1, 1, 1] + (q^3+q^2)*s[2, 1, 1, 1] - q*s[2, 2, 1] - q*s[3, 1, 1] + s[3, 2]
278
+ sage: s(HLP[3,2])
279
+ (-q^5-q^4)*s[1, 1, 1, 1, 1] + (q^3+q^2)*s[2, 1, 1, 1] - q*s[2, 2, 1] - q*s[3, 1, 1] + s[3, 2]
280
+
281
+ The `P` and `Q`-Schur at `t=-1` indexed by strict partitions are a basis for
282
+ the space algebraically generated by the odd power sum symmetric functions::
283
+
284
+ sage: Sym = SymmetricFunctions(FractionField(QQ['q']))
285
+ sage: SP = Sym.hall_littlewood(t=-1).P()
286
+ sage: SQ = Sym.hall_littlewood(t=-1).Q()
287
+ sage: p = Sym.power()
288
+ sage: SP(SQ[3,2,1])
289
+ 8*HLP[3, 2, 1]
290
+ sage: SP(SQ[2,2,1])
291
+ 0
292
+ sage: p(SP[3,2,1])
293
+ 1/45*p[1, 1, 1, 1, 1, 1] - 1/9*p[3, 1, 1, 1] - 1/9*p[3, 3] + 1/5*p[5, 1]
294
+ sage: SP(p[3,3])
295
+ -4*HLP[3, 2, 1] + 2*HLP[4, 2] - 2*HLP[5, 1] + HLP[6]
296
+ sage: SQ( SQ[1]*SQ[3] -2*(1-q)*SQ[4] ) # needs lrcalc_python
297
+ HLQ[3, 1] + 2*q*HLQ[4]
298
+
299
+ TESTS::
300
+
301
+ sage: HLP(s[[]])
302
+ HLP[]
303
+ sage: HLQ(s[[]])
304
+ HLQ[]
305
+ sage: HLQp(s[[]])
306
+ HLQp[]
307
+ """
308
+ return HallLittlewood_p(self)
309
+
310
+ def Q(self):
311
+ r"""
312
+ Return the algebra of symmetric functions in Hall-Littlewood `Q`
313
+ basis. This is the same as the `Q` basis in John Stembridge's SF
314
+ examples file.
315
+
316
+ More extensive examples can be found in the documentation for the
317
+ Hall-Littlewood `P` basis.
318
+
319
+ INPUT:
320
+
321
+ - ``self`` -- a class of Hall-Littlewood symmetric function bases
322
+
323
+ OUTPUT: the class of the Hall-Littlewood `Q` basis
324
+
325
+ EXAMPLES::
326
+
327
+ sage: Sym = SymmetricFunctions(FractionField(QQ['t']))
328
+ sage: HLQ = Sym.hall_littlewood().Q(); HLQ
329
+ Symmetric Functions over Fraction Field of Univariate Polynomial Ring in t over Rational Field in the Hall-Littlewood Q basis
330
+ sage: SQ = SymmetricFunctions(QQ).hall_littlewood(t=-1).Q(); SQ
331
+ Symmetric Functions over Rational Field in the Hall-Littlewood Q with t=-1 basis
332
+ """
333
+ return HallLittlewood_q(self)
334
+
335
+ def Qp(self):
336
+ r"""
337
+ Return the algebra of symmetric functions in Hall-Littlewood `Q^\prime` (Qp)
338
+ basis. This is dual to the Hall-Littlewood `P` basis with respect to
339
+ the standard scalar product.
340
+
341
+ More extensive examples can be found in the documentation for the
342
+ Hall-Littlewood P basis.
343
+
344
+ INPUT:
345
+
346
+ - ``self`` -- a class of Hall-Littlewood symmetric function bases
347
+
348
+ OUTPUT: the class of the Hall-Littlewood `Qp`-basis
349
+
350
+ EXAMPLES::
351
+
352
+ sage: Sym = SymmetricFunctions(FractionField(QQ['t']))
353
+ sage: HLQp = Sym.hall_littlewood().Qp(); HLQp
354
+ Symmetric Functions over Fraction Field of Univariate Polynomial Ring in t over Rational Field in the Hall-Littlewood Qp basis
355
+ """
356
+ return HallLittlewood_qp(self)
357
+
358
+
359
+ class HallLittlewood_generic(sfa.SymmetricFunctionAlgebra_generic):
360
+ def __init__(self, hall_littlewood):
361
+ r"""
362
+ A class with methods for working with Hall-Littlewood symmetric functions which
363
+ are common to all bases.
364
+
365
+ INPUT:
366
+
367
+ - ``self`` -- a Hall-Littlewood symmetric function basis
368
+ - ``hall_littlewood`` -- a class of Hall-Littlewood bases
369
+
370
+ TESTS::
371
+
372
+ sage: SymmetricFunctions(QQ['t'].fraction_field()).hall_littlewood().P()
373
+ Symmetric Functions over Fraction Field of Univariate Polynomial Ring in t over Rational Field in the Hall-Littlewood P basis
374
+ sage: SymmetricFunctions(QQ).hall_littlewood(t=2).P()
375
+ Symmetric Functions over Rational Field in the Hall-Littlewood P with t=2 basis
376
+ """
377
+ s = self.__class__.__name__[15:].capitalize()
378
+ sfa.SymmetricFunctionAlgebra_generic.__init__(
379
+ self, hall_littlewood._sym,
380
+ basis_name="Hall-Littlewood " + s + hall_littlewood._name_suffix,
381
+ prefix="HL" + s)
382
+ self.t = hall_littlewood.t
383
+ self._sym = hall_littlewood._sym
384
+ self._hall_littlewood = hall_littlewood
385
+ self._s = self._sym.schur()
386
+
387
+ # This coercion is broken: HLP = HallLittlewoodP(QQ); HLP(HLP._s[1])
388
+
389
+ # Bases defined by orthotriangularity should inherit from some
390
+ # common category BasesByOrthotriangularity (shared with Jack, HL, orthotriang, Mcdo)
391
+ if hasattr(self, "_s_cache"):
392
+ # temporary until Hom(GradedHopfAlgebrasWithBasis work better)
393
+ category = sage.categories.all.ModulesWithBasis(self._sym.base_ring())
394
+ self .register_coercion(SetMorphism(Hom(self._s, self, category), self._s_to_self))
395
+ self._s.register_coercion(SetMorphism(Hom(self, self._s, category), self._self_to_s))
396
+
397
+ def construction(self):
398
+ """
399
+ Return a pair ``(F, R)``, where ``F`` is a
400
+ :class:`SymmetricFunctionsFunctor` and `R` is a ring, such
401
+ that ``F(R)`` returns ``self``.
402
+
403
+ EXAMPLES::
404
+
405
+ sage: P = SymmetricFunctions(QQ).hall_littlewood(t=2).P()
406
+ sage: P.construction()
407
+ (SymmetricFunctionsFunctor[Hall-Littlewood P with t=2], Rational Field)
408
+ """
409
+
410
+ return (sfa.SymmetricFunctionsFamilyFunctor(self,
411
+ HallLittlewood,
412
+ self.basis_name(),
413
+ self.t),
414
+ self.base_ring())
415
+
416
+ def _s_to_self(self, x):
417
+ r"""
418
+ Isomorphism from the Schur basis into ``self``.
419
+
420
+ INPUT:
421
+
422
+ - ``self`` -- a Hall-Littlewood symmetric function basis
423
+ - ``x`` -- an element of the Schur basis
424
+
425
+ OUTPUT: an element of ``self`` equivalent to ``x``
426
+
427
+ EXAMPLES::
428
+
429
+ sage: P = SymmetricFunctions(QQ).hall_littlewood(t=2).P()
430
+ sage: s = SymmetricFunctions(QQ).schur()
431
+ sage: P._s_to_self(s[2,1])
432
+ 6*HLP[1, 1, 1] + HLP[2, 1]
433
+
434
+ This is for internal use only. Please use instead::
435
+
436
+ sage: P(s[2,1])
437
+ 6*HLP[1, 1, 1] + HLP[2, 1]
438
+ """
439
+ return self._from_cache(x, self._s_cache, self._s_to_self_cache,
440
+ t=self.t)
441
+
442
+ def _self_to_s(self, x):
443
+ r"""
444
+ Isomorphism from ``self`` to the Schur basis.
445
+
446
+ INPUT:
447
+
448
+ - ``self`` -- a Hall-Littlewood symmetric function basis
449
+ - ``x`` -- an element of the basis ``self``
450
+
451
+ OUTPUT: an element of the Schur basis equivalent to ``x``
452
+
453
+ EXAMPLES::
454
+
455
+ sage: Sym = SymmetricFunctions(QQ)
456
+ sage: P = Sym.hall_littlewood(t=2).P()
457
+ sage: s = Sym.schur()
458
+ sage: P._self_to_s(P[2,1])
459
+ -6*s[1, 1, 1] + s[2, 1]
460
+
461
+ This is for internal use only. Please use instead::
462
+
463
+ sage: s(P[2,1])
464
+ -6*s[1, 1, 1] + s[2, 1]
465
+ """
466
+ return self._s._from_cache(x, self._s_cache, self._self_to_s_cache,
467
+ t=self.t)
468
+
469
+ def transition_matrix(self, basis, n):
470
+ r"""
471
+ Return the transitions matrix between ``self`` and ``basis`` for the
472
+ homogeneous component of degree ``n``.
473
+
474
+ INPUT:
475
+
476
+ - ``self`` -- a Hall-Littlewood symmetric function basis
477
+ - ``basis`` -- another symmetric function basis
478
+ - ``n`` -- nonnegative integer representing the degree
479
+
480
+ OUTPUT:
481
+
482
+ - Returns a `r \times r` matrix of elements of the base ring of ``self``
483
+ where `r` is the number of partitions of ``n``.
484
+ The entry corresponding to row `\mu`, column `\nu` is the
485
+ coefficient of ``basis`` `(\nu)` in ``self`` `(\mu)`
486
+
487
+ EXAMPLES::
488
+
489
+ sage: Sym = SymmetricFunctions(FractionField(QQ['t']))
490
+ sage: HLP = Sym.hall_littlewood().P()
491
+ sage: s = Sym.schur()
492
+ sage: HLP.transition_matrix(s, 4)
493
+ [ 1 -t 0 t^2 -t^3]
494
+ [ 0 1 -t -t t^3 + t^2]
495
+ [ 0 0 1 -t t^3]
496
+ [ 0 0 0 1 -t^3 - t^2 - t]
497
+ [ 0 0 0 0 1]
498
+ sage: HLQ = Sym.hall_littlewood().Q()
499
+ sage: HLQ.transition_matrix(s,3)
500
+ [ -t + 1 t^2 - t -t^3 + t^2]
501
+ [ 0 t^2 - 2*t + 1 -t^4 + t^3 + t^2 - t]
502
+ [ 0 0 -t^6 + t^5 + t^4 - t^2 - t + 1]
503
+ sage: HLQp = Sym.hall_littlewood().Qp()
504
+ sage: HLQp.transition_matrix(s,3)
505
+ [ 1 0 0]
506
+ [ t 1 0]
507
+ [ t^3 t^2 + t 1]
508
+ """
509
+ P = sage.combinat.partition.Partitions_n(n)
510
+ Plist = P.list()
511
+ m = []
512
+ for row_part in Plist:
513
+ z = basis(self(row_part))
514
+ m.append( [z.coefficient(col_part) for col_part in Plist] )
515
+ return matrix(m)
516
+
517
+ def product(self, left, right):
518
+ r"""
519
+ Multiply an element of the Hall-Littlewood symmetric function
520
+ basis ``self`` and another symmetric function
521
+
522
+ Convert to the Schur basis, do the multiplication there, and
523
+ convert back to ``self`` basis.
524
+
525
+ INPUT:
526
+
527
+ - ``self`` -- a Hall-Littlewood symmetric function basis
528
+ - ``left`` -- an element of the basis ``self``
529
+ - ``right`` -- another symmetric function
530
+
531
+ OUTPUT: the product of ``left`` and ``right`` expanded in the basis ``self``
532
+
533
+ EXAMPLES::
534
+
535
+ sage: Sym = SymmetricFunctions(FractionField(QQ['t']))
536
+ sage: HLP = Sym.hall_littlewood().P()
537
+ sage: HLP([2])^2 # indirect doctest # needs lrcalc_python
538
+ (t+1)*HLP[2, 2] + (-t+1)*HLP[3, 1] + HLP[4]
539
+
540
+ sage: HLQ = Sym.hall_littlewood().Q()
541
+ sage: HLQ([2])^2 # indirect doctest # needs lrcalc_python
542
+ HLQ[2, 2] + (-t+1)*HLQ[3, 1] + (-t+1)*HLQ[4]
543
+
544
+ sage: HLQp = Sym.hall_littlewood().Qp()
545
+ sage: HLQp([2])^2 # indirect doctest # needs lrcalc_python
546
+ HLQp[2, 2] + (-t+1)*HLQp[3, 1] + (-t+1)*HLQp[4]
547
+ """
548
+ return self(self._s(left) * self._s(right))
549
+
550
+ def hall_littlewood_family(self):
551
+ r"""
552
+ The family of Hall-Littlewood bases associated to ``self``.
553
+
554
+ INPUT:
555
+
556
+ - ``self`` -- a Hall-Littlewood symmetric function basis
557
+
558
+ OUTPUT: the class of Hall-Littlewood bases
559
+
560
+ EXAMPLES::
561
+
562
+ sage: HLP = SymmetricFunctions(FractionField(QQ['t'])).hall_littlewood(1).P()
563
+ sage: HLP.hall_littlewood_family()
564
+ Hall-Littlewood polynomials with t=1 over Fraction Field of Univariate Polynomial Ring in t over Rational Field
565
+ """
566
+ return self._hall_littlewood
567
+
568
+ class Element(sfa.SymmetricFunctionAlgebra_generic.Element):
569
+ r"""
570
+ Methods for elements of a Hall-Littlewood basis that are common to all bases.
571
+ """
572
+
573
+ def expand(self, n, alphabet='x'):
574
+ r"""
575
+ Expand the symmetric function as a symmetric polynomial in ``n`` variables.
576
+
577
+ INPUT:
578
+
579
+ - ``self`` -- an element of a Hall-Littlewood basis
580
+ - ``n`` -- positive integer
581
+ - ``alphabet`` -- string representing a variable name (default: ``'x'``)
582
+
583
+ OUTPUT: a symmetric polynomial of ``self`` in ``n`` variables
584
+
585
+ EXAMPLES::
586
+
587
+ sage: Sym = SymmetricFunctions(FractionField(QQ['t']))
588
+ sage: HLP = Sym.hall_littlewood().P()
589
+ sage: HLQ = Sym.hall_littlewood().Q()
590
+ sage: HLQp = Sym.hall_littlewood().Qp()
591
+ sage: HLP([2]).expand(2)
592
+ x0^2 + (-t + 1)*x0*x1 + x1^2
593
+ sage: HLQ([2]).expand(2)
594
+ (-t + 1)*x0^2 + (t^2 - 2*t + 1)*x0*x1 + (-t + 1)*x1^2
595
+ sage: HLQp([2]).expand(2)
596
+ x0^2 + x0*x1 + x1^2
597
+ sage: HLQp([2]).expand(2, 'y')
598
+ y0^2 + y0*y1 + y1^2
599
+ sage: HLQp([2]).expand(1)
600
+ x^2
601
+ """
602
+ s = self.parent().realization_of().schur()
603
+ return s(self).expand(n, alphabet=alphabet)
604
+
605
+ def scalar(self, x, zee=None):
606
+ r"""
607
+ Return standard scalar product between ``self`` and ``x``.
608
+
609
+ This is the default implementation that converts both ``self`` and ``x``
610
+ into Schur functions and performs the scalar product that basis.
611
+
612
+ The Hall-Littlewood `P` basis is dual to the `Qp` basis with respect to
613
+ this scalar product.
614
+
615
+ INPUT:
616
+
617
+ - ``self`` -- an element of a Hall-Littlewood basis
618
+ - ``x`` -- another symmetric element of the symmetric functions
619
+
620
+ OUTPUT: the scalar product between ``self`` and ``x``
621
+
622
+ EXAMPLES::
623
+
624
+ sage: Sym = SymmetricFunctions(FractionField(QQ['t']))
625
+ sage: HLP = Sym.hall_littlewood().P()
626
+ sage: HLQ = Sym.hall_littlewood().Q()
627
+ sage: HLQp = Sym.hall_littlewood().Qp()
628
+ sage: HLP([2]).scalar(HLQp([2]))
629
+ 1
630
+ sage: HLP([2]).scalar(HLQp([1,1]))
631
+ 0
632
+ sage: HLP([2]).scalar(HLQ([2]), lambda mu: mu.centralizer_size(t = HLP.t))
633
+ 1
634
+ sage: HLP([2]).scalar(HLQ([1,1]), lambda mu: mu.centralizer_size(t = HLP.t))
635
+ 0
636
+ """
637
+ s = self.parent().realization_of().schur()
638
+ s_self = s(self)
639
+ s_x = s(x)
640
+ return s_self.scalar(s_x, zee)
641
+
642
+ def scalar_hl(self, x, t=None):
643
+ r"""
644
+ Return the Hall-Littlewood (with parameter ``t``) scalar product
645
+ of ``self`` and ``x``.
646
+
647
+ The Hall-Littlewood scalar product is defined in Macdonald's
648
+ book [Mac1995]_. The power sum basis is orthogonal and
649
+ `\langle p_\mu, p_\mu \rangle = z_\mu \prod_{i} 1/(1-t^{\mu_i})`
650
+
651
+ The Hall-Littlewood `P` basis is dual to the `Q` basis with respect to
652
+ this scalar product.
653
+
654
+ INPUT:
655
+
656
+ - ``self`` -- an element of a Hall-Littlewood basis
657
+ - ``x`` -- another symmetric element of the symmetric functions
658
+ - ``t`` -- an optional parameter, if this parameter is not specified then
659
+ the value of the ``t`` from the basis is used in the calculation
660
+
661
+ OUTPUT: the Hall-Littlewood scalar product between ``self`` and ``x``
662
+
663
+ EXAMPLES::
664
+
665
+ sage: Sym = SymmetricFunctions(FractionField(QQ['t']))
666
+ sage: HLP = Sym.hall_littlewood().P()
667
+ sage: HLQ = Sym.hall_littlewood().Q()
668
+ sage: HLP([2]).scalar_hl(HLQ([2]))
669
+ 1
670
+ sage: HLP([2]).scalar_hl(HLQ([1,1]))
671
+ 0
672
+ sage: HLQ([2]).scalar_hl(HLQ([2]))
673
+ -t + 1
674
+ sage: HLQ([2]).scalar_hl(HLQ([1,1]))
675
+ 0
676
+ sage: HLP([2]).scalar_hl(HLP([2]))
677
+ -1/(t - 1)
678
+ """
679
+ parent = self.parent()
680
+ if t is None:
681
+ t = parent.t
682
+ p = parent.realization_of().power()
683
+ f = lambda part1, part2: part1.centralizer_size(t=t)
684
+ return parent._apply_multi_module_morphism(p(self), p(x), f,
685
+ orthogonal=True)
686
+
687
+
688
+ ###########
689
+ # P basis #
690
+ ###########
691
+
692
+ class HallLittlewood_p(HallLittlewood_generic):
693
+ r"""
694
+ A class representing the Hall-Littlewood `P` basis of symmetric functions
695
+ """
696
+
697
+ class Element(HallLittlewood_generic.Element):
698
+ pass
699
+
700
+ def __init__(self, hall_littlewood):
701
+ r"""
702
+ A class with methods for working with the Hall-Littlewood `P` basis.
703
+
704
+ The `P` basis is calculated from the Schur basis using the functions
705
+ in :meth:`sage.combinat.sf.kfpoly`. These functions calculate Kostka-Foulkes polynomials
706
+ using rigged configuration formulas.
707
+
708
+ This change of basis is inverted to convert to the Schur basis.
709
+
710
+ INPUT:
711
+
712
+ - ``self`` -- an instance of the Hall-Littlewood `P` basis
713
+ - ``hall_littlewood`` -- a class for the family of Hall-Littlewood bases
714
+
715
+ EXAMPLES::
716
+
717
+ sage: # needs lrcalc_python
718
+ sage: Sym = SymmetricFunctions(FractionField(QQ['t']))
719
+ sage: P = Sym.hall_littlewood().P()
720
+ sage: TestSuite(P).run(skip=['_test_associativity', '_test_distributivity', '_test_prod']) # products are too expensive
721
+ sage: TestSuite(P).run(elements = [P.t*P[1,1]+P[2], P[1]+(1+P.t)*P[1,1]])
722
+ """
723
+ HallLittlewood_generic.__init__(self, hall_littlewood)
724
+ self._self_to_s_cache = p_to_s_cache
725
+ self._s_to_self_cache = s_to_p_cache
726
+
727
+ def _q_to_p_normalization(self, m):
728
+ r"""
729
+ The coefficient relating the `Q` and the `P` bases.
730
+
731
+ Returns the scalar coefficient that is used when converting from the
732
+ `Q` basis to the `P` basis. Note that this assumes that ``m`` is a
733
+ Partition object.
734
+
735
+ INPUT:
736
+
737
+ - ``self`` -- an instance of the Hall-Littlewood `P` basis
738
+ - ``m`` -- a partition
739
+
740
+ OUTPUT:
741
+
742
+ - returns the coefficient equal to `Q(m)/P(m)`
743
+
744
+ EXAMPLES::
745
+
746
+ sage: Sym = SymmetricFunctions(FractionField(QQ['t']))
747
+ sage: HLP = Sym.hall_littlewood().P()
748
+ sage: HLP._q_to_p_normalization(Partition([2,1]))
749
+ t^2 - 2*t + 1
750
+ """
751
+ t = self.t
752
+ coeff = (1-t)**len(m)
753
+ for i in m.to_exp():
754
+ for j in range(1,i+1):
755
+ coeff *= (1-t**j)/(1-t)
756
+ return coeff
757
+
758
+ def _s_to_self_base(self, part):
759
+ r"""
760
+ Return a function which gives the coefficient of a partition
761
+ in the expansion of the Schur functions ``s(part)`` in the Hall-Littlewood
762
+ `P` basis.
763
+
764
+ INPUT:
765
+
766
+ - ``self`` -- an instance of the Hall-Littlewood `P` basis
767
+ - ``part`` -- a partition
768
+
769
+ OUTPUT:
770
+
771
+ - returns a function which accepts a partition ``part2`` and returns
772
+ the coefficient of ``P(part2)`` in ``s(part)``
773
+ This coefficient is the t-Kostka-Foulkes polynomial `K_{part,part2}(t)`
774
+
775
+ EXAMPLES::
776
+
777
+ sage: Sym = SymmetricFunctions(FractionField(QQ['t']))
778
+ sage: HLP = Sym.hall_littlewood().P()
779
+ sage: f21 = HLP._s_to_self_base(Partition([2,1]))
780
+ sage: [f21(p) for p in Partitions(3)]
781
+ [0, 1, t^2 + t]
782
+ """
783
+ from sage.combinat.sf.kfpoly import schur_to_hl
784
+ t = QQt.gen()
785
+ zero = self.base_ring().zero()
786
+ res_dict = schur_to_hl(part, t)
787
+ f = lambda part2: res_dict.get(part2,zero)
788
+ return f
789
+
790
+ def _s_cache(self, n):
791
+ r"""
792
+ Compute the change of basis between the `P` polynomials and the
793
+ Schur functions for partitions of size ``n``.
794
+
795
+ Uses the fact that the transformation matrix is upper-triangular in
796
+ order to obtain the inverse transformation.
797
+
798
+ INPUT:
799
+
800
+ - ``self`` -- an instance of the Hall-Littlewood `P` basis
801
+ - ``n`` -- positive integer
802
+
803
+ EXAMPLES::
804
+
805
+ sage: Sym = SymmetricFunctions(FractionField(QQ['t']))
806
+ sage: HLP = Sym.hall_littlewood().P()
807
+ sage: HLP._s_cache(2)
808
+ sage: l = lambda c: [ (i[0],[j for j in sorted(i[1].items())]) for i in sorted(c.items())]
809
+ sage: l(HLP._s_to_self_cache[2])
810
+ [([1, 1], [([1, 1], 1)]), ([2], [([1, 1], t), ([2], 1)])]
811
+ sage: l(HLP._self_to_s_cache[2])
812
+ [([1, 1], [([1, 1], 1)]), ([2], [([1, 1], -t), ([2], 1)])]
813
+ sage: HLP = Sym.hall_littlewood(10).P()
814
+ sage: HLP._s_cache(2)
815
+ sage: l(HLP._s_to_self_cache[2])
816
+ [([1, 1], [([1, 1], 1)]), ([2], [([1, 1], t), ([2], 1)])]
817
+ """
818
+ self._invert_morphism(n, QQt, self._self_to_s_cache,
819
+ self._s_to_self_cache, to_self_function=self._s_to_self_base,
820
+ upper_triangular=True, ones_on_diagonal=True)
821
+
822
+
823
+ ###########
824
+ # Q basis #
825
+ ###########
826
+
827
+ class HallLittlewood_q(HallLittlewood_generic):
828
+ class Element(HallLittlewood_generic.Element):
829
+ pass
830
+
831
+ def __init__(self, hall_littlewood):
832
+ r"""
833
+ The `Q` basis is defined as a normalization of the `P` basis.
834
+
835
+ INPUT:
836
+
837
+ - ``self`` -- an instance of the Hall-Littlewood `P` basis
838
+ - ``hall_littlewood`` -- a class for the family of Hall-Littlewood bases
839
+
840
+ EXAMPLES::
841
+
842
+ sage: Sym = SymmetricFunctions(FractionField(QQ['t']))
843
+ sage: Q = Sym.hall_littlewood().Q()
844
+ sage: TestSuite(Q).run(skip=['_test_associativity', '_test_distributivity', '_test_prod']) # products are too expensive, long time (3s on sage.math, 2012)
845
+ sage: TestSuite(Q).run(elements = [Q.t*Q[1,1]+Q[2], Q[1]+(1+Q.t)*Q[1,1]]) # long time (depends on previous)
846
+
847
+ sage: Sym = SymmetricFunctions(FractionField(QQ['t']))
848
+ sage: HLP = Sym.hall_littlewood().P()
849
+ sage: HLQ = Sym.hall_littlewood().Q()
850
+ sage: HLQp = Sym.hall_littlewood().Qp()
851
+ sage: s = Sym.schur(); p = Sym.power()
852
+ sage: HLQ( HLP([2,1]) + HLP([3]) )
853
+ (1/(t^2-2*t+1))*HLQ[2, 1] - (1/(t-1))*HLQ[3]
854
+ sage: HLQ(HLQp([2])) # indirect doctest
855
+ (t/(t^3-t^2-t+1))*HLQ[1, 1] - (1/(t-1))*HLQ[2]
856
+ sage: HLQ(s([2]))
857
+ (t/(t^3-t^2-t+1))*HLQ[1, 1] - (1/(t-1))*HLQ[2]
858
+ sage: HLQ(p([2]))
859
+ (1/(t^2-1))*HLQ[1, 1] - (1/(t-1))*HLQ[2]
860
+ """
861
+ HallLittlewood_generic.__init__(self, hall_littlewood)
862
+
863
+ self._P = self._hall_littlewood.P()
864
+ # temporary until Hom(GradedHopfAlgebrasWithBasis work better)
865
+ category = sage.categories.all.ModulesWithBasis(self.base_ring())
866
+
867
+ phi = self.module_morphism(diagonal=self._P._q_to_p_normalization,
868
+ codomain=self._P, category=category)
869
+ self._P.register_coercion(phi)
870
+ self.register_coercion(~phi)
871
+
872
+ def _p_to_q_normalization(self, m):
873
+ r"""
874
+ Return the scalar coefficient on self(m) when converting from the
875
+ `Q` basis to the `P` basis. Note that this assumes that ``m`` is a
876
+ Partition object.
877
+
878
+ Note: this is not used anymore!
879
+
880
+ Returns the scalar coefficient that is used when converting from the
881
+ `P` basis to the `Q` basis. Note that this assumes that ``m`` is a
882
+ Partition object.
883
+
884
+ INPUT:
885
+
886
+ - ``self`` -- an instance of the Hall-Littlewood `P` basis
887
+ - ``m`` -- a partition
888
+
889
+ OUTPUT:
890
+
891
+ - returns the coefficient equal to `P(m)/Q(m)`
892
+
893
+ EXAMPLES::
894
+
895
+ sage: Sym = SymmetricFunctions(FractionField(QQ['t']))
896
+ sage: HLQ = Sym.hall_littlewood().Q()
897
+ sage: HLQ._p_to_q_normalization(Partition([2,1]))
898
+ 1/(t^2 - 2*t + 1)
899
+ """
900
+ t = self.t
901
+ coeff = 1/(1-t)**len(m)
902
+ for i in m.to_exp():
903
+ for j in range(1,i+1):
904
+ coeff *= (1-t)/(1-t**j)
905
+ return coeff
906
+
907
+
908
+ ############
909
+ # Qp basis #
910
+ ############
911
+
912
+ class HallLittlewood_qp(HallLittlewood_generic):
913
+
914
+ class Element(HallLittlewood_generic.Element):
915
+ pass
916
+
917
+ def __init__(self, hall_littlewood):
918
+ r"""
919
+ The Hall-Littlewood `Qp` basis is calculated through the symmetrica
920
+ library (see the function :meth:`HallLittlewood_qp._to_s`).
921
+
922
+ INPUT:
923
+
924
+ - ``self`` -- an instance of the Hall-Littlewood `P` basis
925
+ - ``hall_littlewood`` -- a class for the family of Hall-Littlewood bases
926
+
927
+ EXAMPLES::
928
+
929
+ sage: Sym = SymmetricFunctions(FractionField(QQ['t']))
930
+ sage: Qp = Sym.hall_littlewood().Q()
931
+ sage: TestSuite(Qp).run(skip=['_test_passociativity', '_test_distributivity', '_test_prod']) # products are too expensive, long time (3s on sage.math, 2012)
932
+ sage: TestSuite(Qp).run(elements = [Qp.t*Qp[1,1]+Qp[2], Qp[1]+(1+Qp.t)*Qp[1,1]]) # long time (depends on previous)
933
+
934
+ sage: Sym = SymmetricFunctions(FractionField(QQ['t']))
935
+ sage: HLP = Sym.hall_littlewood().P()
936
+ sage: HLQ = Sym.hall_littlewood().Q()
937
+ sage: HLQp = Sym.hall_littlewood().Qp()
938
+ sage: s = Sym.schur(); p = Sym.power()
939
+ sage: HLQp(HLP([2])) # indirect doctest
940
+ -t*HLQp[1, 1] + (t^2+1)*HLQp[2]
941
+ sage: HLQp(s(HLQ([2]))) # work around bug reported in issue #12969
942
+ (t^2-t)*HLQp[1, 1] + (-t^3+t^2-t+1)*HLQp[2]
943
+ sage: HLQp(s([2]))
944
+ HLQp[2]
945
+ sage: HLQp(p([2]))
946
+ -HLQp[1, 1] + (t+1)*HLQp[2]
947
+ sage: s = HLQp.symmetric_function_ring().s()
948
+ sage: HLQp.transition_matrix(s,3)
949
+ [ 1 0 0]
950
+ [ t 1 0]
951
+ [ t^3 t^2 + t 1]
952
+ sage: s.transition_matrix(HLP,3)
953
+ [ 1 t t^3]
954
+ [ 0 1 t^2 + t]
955
+ [ 0 0 1]
956
+ """
957
+ HallLittlewood_generic.__init__(self, hall_littlewood)
958
+ self._self_to_s_cache = qp_to_s_cache
959
+ self._s_to_self_cache = s_to_qp_cache
960
+
961
+ def _to_s(self, part):
962
+ r"""
963
+ Return a function which gives the coefficient of a partition
964
+ in the Schur expansion of ``self(part)``.
965
+
966
+ INPUT:
967
+
968
+ - ``self`` -- an instance of the Hall-Littlewood `P` basis
969
+ - ``part`` -- a partition
970
+
971
+ OUTPUT:
972
+
973
+ - returns a function which accepts a second partition ``part2``
974
+ and returns the coefficient of the expansion of the `Qp`
975
+ in the Schur basis. This is the `t`-Kostka-Foulkes polynomial
976
+ `K_{part2,part}(t)`
977
+
978
+ EXAMPLES::
979
+
980
+ sage: Sym = SymmetricFunctions(FractionField(QQ['t']))
981
+ sage: HLQp = Sym.hall_littlewood().Qp()
982
+ sage: f21 = HLQp._to_s(Partition([2,1]))
983
+ sage: [f21(p) for p in Partitions(3)]
984
+ [t, 1, 0]
985
+ """
986
+ t = QQt.gen()
987
+
988
+ if not part:
989
+ return lambda part2: QQt.one()
990
+
991
+ res = hall_littlewood(part) # call to symmetrica (returns in variable x)
992
+ f = lambda part2: res.coefficient(part2).subs(x=t)
993
+ return f
994
+
995
+ def _s_cache(self, n):
996
+ r"""
997
+ Compute the change of basis between the `Q^\prime` polynomials and the
998
+ Schur functions for partitions of size ``n``.
999
+
1000
+ Uses the fact that the transformation matrix is lower-triangular in
1001
+ order to obtain the inverse transformation.
1002
+
1003
+ INPUT:
1004
+
1005
+ - ``self`` -- an instance of the Hall-Littlewood `P` basis
1006
+ - ``n`` -- positive integer
1007
+
1008
+ EXAMPLES::
1009
+
1010
+ sage: Sym = SymmetricFunctions(FractionField(QQ['t']))
1011
+ sage: HLQp = Sym.hall_littlewood().Qp()
1012
+ sage: HLQp._s_cache(2)
1013
+ sage: l = lambda c: [ (i[0],[j for j in sorted(i[1].items())]) for i in sorted(c.items())]
1014
+ sage: l(HLQp._s_to_self_cache[2])
1015
+ [([1, 1], [([1, 1], 1), ([2], -t)]), ([2], [([2], 1)])]
1016
+ sage: l(HLQp._self_to_s_cache[2])
1017
+ [([1, 1], [([1, 1], 1), ([2], t)]), ([2], [([2], 1)])]
1018
+ """
1019
+ self._invert_morphism(n, QQt, self._self_to_s_cache,
1020
+ self._s_to_self_cache,
1021
+ to_other_function=self._to_s,
1022
+ lower_triangular=True, ones_on_diagonal=True)
1023
+
1024
+
1025
+ # Unpickling backward compatibility
1026
+ sage.misc.persist.register_unpickle_override('sage.combinat.sf.hall_littlewood', 'HallLittlewoodElement_p', HallLittlewood_p.Element)
1027
+ sage.misc.persist.register_unpickle_override('sage.combinat.sf.hall_littlewood', 'HallLittlewoodElement_q', HallLittlewood_q.Element)
1028
+ sage.misc.persist.register_unpickle_override('sage.combinat.sf.hall_littlewood', 'HallLittlewoodElement_qp', HallLittlewood_qp.Element)