passagemath-modules 10.6.31__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.

Potentially problematic release.


This version of passagemath-modules might be problematic. Click here for more details.

Files changed (808) hide show
  1. passagemath_modules-10.6.31.dist-info/METADATA +281 -0
  2. passagemath_modules-10.6.31.dist-info/RECORD +808 -0
  3. passagemath_modules-10.6.31.dist-info/WHEEL +5 -0
  4. passagemath_modules-10.6.31.dist-info/top_level.txt +2 -0
  5. passagemath_modules.libs/libgcc_s-0cd532bd.so.1 +0 -0
  6. passagemath_modules.libs/libgfortran-2c33b284.so.5.0.0 +0 -0
  7. passagemath_modules.libs/libgmp-0e7fc84e.so.10.5.0 +0 -0
  8. passagemath_modules.libs/libgsl-42cda06f.so.28.0.0 +0 -0
  9. passagemath_modules.libs/libmpc-d8ebe4b5.so.3.3.1 +0 -0
  10. passagemath_modules.libs/libmpfr-aaecbfc0.so.6.2.1 +0 -0
  11. passagemath_modules.libs/libopenblasp-r0-905cb27d.3.29.so +0 -0
  12. passagemath_modules.libs/libquadmath-bb76a5fc.so.0.0.0 +0 -0
  13. sage/algebras/all__sagemath_modules.py +20 -0
  14. sage/algebras/catalog.py +148 -0
  15. sage/algebras/clifford_algebra.py +3107 -0
  16. sage/algebras/clifford_algebra_element.cpython-314-x86_64-linux-musl.so +0 -0
  17. sage/algebras/clifford_algebra_element.pxd +16 -0
  18. sage/algebras/clifford_algebra_element.pyx +997 -0
  19. sage/algebras/commutative_dga.py +4252 -0
  20. sage/algebras/exterior_algebra_groebner.cpython-314-x86_64-linux-musl.so +0 -0
  21. sage/algebras/exterior_algebra_groebner.pxd +55 -0
  22. sage/algebras/exterior_algebra_groebner.pyx +727 -0
  23. sage/algebras/finite_dimensional_algebras/all.py +2 -0
  24. sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra.py +1029 -0
  25. sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra_element.cpython-314-x86_64-linux-musl.so +0 -0
  26. sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra_element.pxd +12 -0
  27. sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra_element.pyx +706 -0
  28. sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra_ideal.py +196 -0
  29. sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra_morphism.py +255 -0
  30. sage/algebras/finite_gca.py +528 -0
  31. sage/algebras/group_algebra.py +232 -0
  32. sage/algebras/lie_algebras/abelian.py +197 -0
  33. sage/algebras/lie_algebras/affine_lie_algebra.py +1213 -0
  34. sage/algebras/lie_algebras/all.py +25 -0
  35. sage/algebras/lie_algebras/all__sagemath_modules.py +1 -0
  36. sage/algebras/lie_algebras/bch.py +177 -0
  37. sage/algebras/lie_algebras/bgg_dual_module.py +1184 -0
  38. sage/algebras/lie_algebras/bgg_resolution.py +232 -0
  39. sage/algebras/lie_algebras/center_uea.py +767 -0
  40. sage/algebras/lie_algebras/classical_lie_algebra.py +2516 -0
  41. sage/algebras/lie_algebras/examples.py +683 -0
  42. sage/algebras/lie_algebras/free_lie_algebra.py +973 -0
  43. sage/algebras/lie_algebras/heisenberg.py +820 -0
  44. sage/algebras/lie_algebras/lie_algebra.py +1562 -0
  45. sage/algebras/lie_algebras/lie_algebra_element.cpython-314-x86_64-linux-musl.so +0 -0
  46. sage/algebras/lie_algebras/lie_algebra_element.pxd +68 -0
  47. sage/algebras/lie_algebras/lie_algebra_element.pyx +2122 -0
  48. sage/algebras/lie_algebras/morphism.py +661 -0
  49. sage/algebras/lie_algebras/nilpotent_lie_algebra.py +457 -0
  50. sage/algebras/lie_algebras/onsager.py +1324 -0
  51. sage/algebras/lie_algebras/poincare_birkhoff_witt.py +816 -0
  52. sage/algebras/lie_algebras/quotient.py +462 -0
  53. sage/algebras/lie_algebras/rank_two_heisenberg_virasoro.py +355 -0
  54. sage/algebras/lie_algebras/representation.py +1040 -0
  55. sage/algebras/lie_algebras/structure_coefficients.py +459 -0
  56. sage/algebras/lie_algebras/subalgebra.py +967 -0
  57. sage/algebras/lie_algebras/symplectic_derivation.py +289 -0
  58. sage/algebras/lie_algebras/verma_module.py +1630 -0
  59. sage/algebras/lie_algebras/virasoro.py +1186 -0
  60. sage/algebras/octonion_algebra.cpython-314-x86_64-linux-musl.so +0 -0
  61. sage/algebras/octonion_algebra.pxd +20 -0
  62. sage/algebras/octonion_algebra.pyx +987 -0
  63. sage/algebras/orlik_solomon.py +907 -0
  64. sage/algebras/orlik_terao.py +779 -0
  65. sage/algebras/steenrod/all.py +7 -0
  66. sage/algebras/steenrod/steenrod_algebra.py +4258 -0
  67. sage/algebras/steenrod/steenrod_algebra_bases.py +1179 -0
  68. sage/algebras/steenrod/steenrod_algebra_misc.py +1167 -0
  69. sage/algebras/steenrod/steenrod_algebra_mult.py +954 -0
  70. sage/algebras/weyl_algebra.py +1126 -0
  71. sage/all__sagemath_modules.py +62 -0
  72. sage/calculus/all__sagemath_modules.py +19 -0
  73. sage/calculus/expr.py +205 -0
  74. sage/calculus/integration.cpython-314-x86_64-linux-musl.so +0 -0
  75. sage/calculus/integration.pyx +698 -0
  76. sage/calculus/interpolation.cpython-314-x86_64-linux-musl.so +0 -0
  77. sage/calculus/interpolation.pxd +13 -0
  78. sage/calculus/interpolation.pyx +387 -0
  79. sage/calculus/interpolators.cpython-314-x86_64-linux-musl.so +0 -0
  80. sage/calculus/interpolators.pyx +326 -0
  81. sage/calculus/ode.cpython-314-x86_64-linux-musl.so +0 -0
  82. sage/calculus/ode.pxd +5 -0
  83. sage/calculus/ode.pyx +610 -0
  84. sage/calculus/riemann.cpython-314-x86_64-linux-musl.so +0 -0
  85. sage/calculus/riemann.pyx +1521 -0
  86. sage/calculus/test_sympy.py +201 -0
  87. sage/calculus/transforms/all.py +7 -0
  88. sage/calculus/transforms/dft.py +844 -0
  89. sage/calculus/transforms/dwt.cpython-314-x86_64-linux-musl.so +0 -0
  90. sage/calculus/transforms/dwt.pxd +7 -0
  91. sage/calculus/transforms/dwt.pyx +160 -0
  92. sage/calculus/transforms/fft.cpython-314-x86_64-linux-musl.so +0 -0
  93. sage/calculus/transforms/fft.pxd +12 -0
  94. sage/calculus/transforms/fft.pyx +487 -0
  95. sage/calculus/wester.py +662 -0
  96. sage/coding/abstract_code.py +1108 -0
  97. sage/coding/ag_code.py +868 -0
  98. sage/coding/ag_code_decoders.cpython-314-x86_64-linux-musl.so +0 -0
  99. sage/coding/ag_code_decoders.pyx +2639 -0
  100. sage/coding/all.py +15 -0
  101. sage/coding/bch_code.py +494 -0
  102. sage/coding/binary_code.cpython-314-x86_64-linux-musl.so +0 -0
  103. sage/coding/binary_code.pxd +124 -0
  104. sage/coding/binary_code.pyx +4139 -0
  105. sage/coding/bounds_catalog.py +43 -0
  106. sage/coding/channel.py +819 -0
  107. sage/coding/channels_catalog.py +29 -0
  108. sage/coding/code_bounds.py +755 -0
  109. sage/coding/code_constructions.py +804 -0
  110. sage/coding/codes_catalog.py +111 -0
  111. sage/coding/cyclic_code.py +1329 -0
  112. sage/coding/databases.py +316 -0
  113. sage/coding/decoder.py +373 -0
  114. sage/coding/decoders_catalog.py +88 -0
  115. sage/coding/delsarte_bounds.py +709 -0
  116. sage/coding/encoder.py +390 -0
  117. sage/coding/encoders_catalog.py +64 -0
  118. sage/coding/extended_code.py +468 -0
  119. sage/coding/gabidulin_code.py +1058 -0
  120. sage/coding/golay_code.py +404 -0
  121. sage/coding/goppa_code.py +441 -0
  122. sage/coding/grs_code.py +2371 -0
  123. sage/coding/guava.py +107 -0
  124. sage/coding/guruswami_sudan/all.py +1 -0
  125. sage/coding/guruswami_sudan/gs_decoder.py +897 -0
  126. sage/coding/guruswami_sudan/interpolation.py +409 -0
  127. sage/coding/guruswami_sudan/utils.py +176 -0
  128. sage/coding/hamming_code.py +176 -0
  129. sage/coding/information_set_decoder.py +1032 -0
  130. sage/coding/kasami_codes.cpython-314-x86_64-linux-musl.so +0 -0
  131. sage/coding/kasami_codes.pyx +351 -0
  132. sage/coding/linear_code.py +3067 -0
  133. sage/coding/linear_code_no_metric.py +1354 -0
  134. sage/coding/linear_rank_metric.py +961 -0
  135. sage/coding/parity_check_code.py +353 -0
  136. sage/coding/punctured_code.py +719 -0
  137. sage/coding/reed_muller_code.py +999 -0
  138. sage/coding/self_dual_codes.py +942 -0
  139. sage/coding/source_coding/all.py +2 -0
  140. sage/coding/source_coding/huffman.py +553 -0
  141. sage/coding/subfield_subcode.py +423 -0
  142. sage/coding/two_weight_db.py +399 -0
  143. sage/combinat/all__sagemath_modules.py +7 -0
  144. sage/combinat/cartesian_product.py +347 -0
  145. sage/combinat/family.py +11 -0
  146. sage/combinat/free_module.py +1977 -0
  147. sage/combinat/root_system/all.py +147 -0
  148. sage/combinat/root_system/ambient_space.py +527 -0
  149. sage/combinat/root_system/associahedron.py +471 -0
  150. sage/combinat/root_system/braid_move_calculator.py +143 -0
  151. sage/combinat/root_system/braid_orbit.cpython-314-x86_64-linux-musl.so +0 -0
  152. sage/combinat/root_system/braid_orbit.pyx +144 -0
  153. sage/combinat/root_system/branching_rules.py +2301 -0
  154. sage/combinat/root_system/cartan_matrix.py +1245 -0
  155. sage/combinat/root_system/cartan_type.py +3069 -0
  156. sage/combinat/root_system/coxeter_group.py +162 -0
  157. sage/combinat/root_system/coxeter_matrix.py +1261 -0
  158. sage/combinat/root_system/coxeter_type.py +681 -0
  159. sage/combinat/root_system/dynkin_diagram.py +900 -0
  160. sage/combinat/root_system/extended_affine_weyl_group.py +2993 -0
  161. sage/combinat/root_system/fundamental_group.py +795 -0
  162. sage/combinat/root_system/hecke_algebra_representation.py +1203 -0
  163. sage/combinat/root_system/integrable_representations.py +1227 -0
  164. sage/combinat/root_system/non_symmetric_macdonald_polynomials.py +1965 -0
  165. sage/combinat/root_system/pieri_factors.py +1147 -0
  166. sage/combinat/root_system/plot.py +1615 -0
  167. sage/combinat/root_system/root_lattice_realization_algebras.py +1214 -0
  168. sage/combinat/root_system/root_lattice_realizations.py +4628 -0
  169. sage/combinat/root_system/root_space.py +487 -0
  170. sage/combinat/root_system/root_system.py +882 -0
  171. sage/combinat/root_system/type_A.py +348 -0
  172. sage/combinat/root_system/type_A_affine.py +227 -0
  173. sage/combinat/root_system/type_A_infinity.py +241 -0
  174. sage/combinat/root_system/type_B.py +347 -0
  175. sage/combinat/root_system/type_BC_affine.py +287 -0
  176. sage/combinat/root_system/type_B_affine.py +216 -0
  177. sage/combinat/root_system/type_C.py +317 -0
  178. sage/combinat/root_system/type_C_affine.py +188 -0
  179. sage/combinat/root_system/type_D.py +357 -0
  180. sage/combinat/root_system/type_D_affine.py +208 -0
  181. sage/combinat/root_system/type_E.py +641 -0
  182. sage/combinat/root_system/type_E_affine.py +231 -0
  183. sage/combinat/root_system/type_F.py +387 -0
  184. sage/combinat/root_system/type_F_affine.py +137 -0
  185. sage/combinat/root_system/type_G.py +293 -0
  186. sage/combinat/root_system/type_G_affine.py +132 -0
  187. sage/combinat/root_system/type_H.py +105 -0
  188. sage/combinat/root_system/type_I.py +110 -0
  189. sage/combinat/root_system/type_Q.py +150 -0
  190. sage/combinat/root_system/type_affine.py +509 -0
  191. sage/combinat/root_system/type_dual.py +704 -0
  192. sage/combinat/root_system/type_folded.py +301 -0
  193. sage/combinat/root_system/type_marked.py +748 -0
  194. sage/combinat/root_system/type_reducible.py +601 -0
  195. sage/combinat/root_system/type_relabel.py +730 -0
  196. sage/combinat/root_system/type_super_A.py +837 -0
  197. sage/combinat/root_system/weight_lattice_realizations.py +1188 -0
  198. sage/combinat/root_system/weight_space.py +639 -0
  199. sage/combinat/root_system/weyl_characters.py +2238 -0
  200. sage/crypto/__init__.py +4 -0
  201. sage/crypto/all.py +28 -0
  202. sage/crypto/block_cipher/all.py +7 -0
  203. sage/crypto/block_cipher/des.py +1065 -0
  204. sage/crypto/block_cipher/miniaes.py +2171 -0
  205. sage/crypto/block_cipher/present.py +909 -0
  206. sage/crypto/block_cipher/sdes.py +1527 -0
  207. sage/crypto/boolean_function.cpython-314-x86_64-linux-musl.so +0 -0
  208. sage/crypto/boolean_function.pxd +10 -0
  209. sage/crypto/boolean_function.pyx +1487 -0
  210. sage/crypto/cipher.py +78 -0
  211. sage/crypto/classical.py +3668 -0
  212. sage/crypto/classical_cipher.py +569 -0
  213. sage/crypto/cryptosystem.py +387 -0
  214. sage/crypto/key_exchange/all.py +7 -0
  215. sage/crypto/key_exchange/catalog.py +24 -0
  216. sage/crypto/key_exchange/diffie_hellman.py +323 -0
  217. sage/crypto/key_exchange/key_exchange_scheme.py +107 -0
  218. sage/crypto/lattice.py +312 -0
  219. sage/crypto/lfsr.py +295 -0
  220. sage/crypto/lwe.py +840 -0
  221. sage/crypto/mq/__init__.py +4 -0
  222. sage/crypto/mq/mpolynomialsystemgenerator.py +204 -0
  223. sage/crypto/mq/rijndael_gf.py +2345 -0
  224. sage/crypto/mq/sbox.py +7 -0
  225. sage/crypto/mq/sr.py +3344 -0
  226. sage/crypto/public_key/all.py +5 -0
  227. sage/crypto/public_key/blum_goldwasser.py +776 -0
  228. sage/crypto/sbox.cpython-314-x86_64-linux-musl.so +0 -0
  229. sage/crypto/sbox.pyx +2090 -0
  230. sage/crypto/sboxes.py +2090 -0
  231. sage/crypto/stream.py +390 -0
  232. sage/crypto/stream_cipher.py +297 -0
  233. sage/crypto/util.py +519 -0
  234. sage/ext/all__sagemath_modules.py +1 -0
  235. sage/ext/interpreters/__init__.py +1 -0
  236. sage/ext/interpreters/all__sagemath_modules.py +2 -0
  237. sage/ext/interpreters/wrapper_cc.cpython-314-x86_64-linux-musl.so +0 -0
  238. sage/ext/interpreters/wrapper_cc.pxd +30 -0
  239. sage/ext/interpreters/wrapper_cc.pyx +252 -0
  240. sage/ext/interpreters/wrapper_cdf.cpython-314-x86_64-linux-musl.so +0 -0
  241. sage/ext/interpreters/wrapper_cdf.pxd +26 -0
  242. sage/ext/interpreters/wrapper_cdf.pyx +245 -0
  243. sage/ext/interpreters/wrapper_rdf.cpython-314-x86_64-linux-musl.so +0 -0
  244. sage/ext/interpreters/wrapper_rdf.pxd +23 -0
  245. sage/ext/interpreters/wrapper_rdf.pyx +221 -0
  246. sage/ext/interpreters/wrapper_rr.cpython-314-x86_64-linux-musl.so +0 -0
  247. sage/ext/interpreters/wrapper_rr.pxd +28 -0
  248. sage/ext/interpreters/wrapper_rr.pyx +335 -0
  249. sage/geometry/all__sagemath_modules.py +5 -0
  250. sage/geometry/toric_lattice.py +1745 -0
  251. sage/geometry/toric_lattice_element.cpython-314-x86_64-linux-musl.so +0 -0
  252. sage/geometry/toric_lattice_element.pyx +432 -0
  253. sage/groups/abelian_gps/abelian_group.py +1925 -0
  254. sage/groups/abelian_gps/abelian_group_element.py +164 -0
  255. sage/groups/abelian_gps/all__sagemath_modules.py +5 -0
  256. sage/groups/abelian_gps/dual_abelian_group.py +421 -0
  257. sage/groups/abelian_gps/dual_abelian_group_element.py +179 -0
  258. sage/groups/abelian_gps/element_base.py +341 -0
  259. sage/groups/abelian_gps/values.py +488 -0
  260. sage/groups/additive_abelian/additive_abelian_group.py +476 -0
  261. sage/groups/additive_abelian/additive_abelian_wrapper.py +857 -0
  262. sage/groups/additive_abelian/all.py +4 -0
  263. sage/groups/additive_abelian/qmodnz.py +231 -0
  264. sage/groups/additive_abelian/qmodnz_element.py +349 -0
  265. sage/groups/affine_gps/affine_group.py +535 -0
  266. sage/groups/affine_gps/all.py +1 -0
  267. sage/groups/affine_gps/catalog.py +17 -0
  268. sage/groups/affine_gps/euclidean_group.py +246 -0
  269. sage/groups/affine_gps/group_element.py +562 -0
  270. sage/groups/all__sagemath_modules.py +12 -0
  271. sage/groups/galois_group.py +479 -0
  272. sage/groups/matrix_gps/all.py +4 -0
  273. sage/groups/matrix_gps/all__sagemath_modules.py +13 -0
  274. sage/groups/matrix_gps/catalog.py +26 -0
  275. sage/groups/matrix_gps/coxeter_group.py +927 -0
  276. sage/groups/matrix_gps/finitely_generated.py +487 -0
  277. sage/groups/matrix_gps/group_element.cpython-314-x86_64-linux-musl.so +0 -0
  278. sage/groups/matrix_gps/group_element.pxd +11 -0
  279. sage/groups/matrix_gps/group_element.pyx +431 -0
  280. sage/groups/matrix_gps/linear.py +440 -0
  281. sage/groups/matrix_gps/matrix_group.py +617 -0
  282. sage/groups/matrix_gps/named_group.py +296 -0
  283. sage/groups/matrix_gps/orthogonal.py +544 -0
  284. sage/groups/matrix_gps/symplectic.py +251 -0
  285. sage/groups/matrix_gps/unitary.py +436 -0
  286. sage/groups/misc_gps/all__sagemath_modules.py +1 -0
  287. sage/groups/misc_gps/argument_groups.py +1905 -0
  288. sage/groups/misc_gps/imaginary_groups.py +479 -0
  289. sage/groups/perm_gps/all__sagemath_modules.py +1 -0
  290. sage/groups/perm_gps/partn_ref/all__sagemath_modules.py +1 -0
  291. sage/groups/perm_gps/partn_ref/refinement_binary.cpython-314-x86_64-linux-musl.so +0 -0
  292. sage/groups/perm_gps/partn_ref/refinement_binary.pxd +41 -0
  293. sage/groups/perm_gps/partn_ref/refinement_binary.pyx +1167 -0
  294. sage/groups/perm_gps/partn_ref/refinement_matrices.cpython-314-x86_64-linux-musl.so +0 -0
  295. sage/groups/perm_gps/partn_ref/refinement_matrices.pxd +31 -0
  296. sage/groups/perm_gps/partn_ref/refinement_matrices.pyx +385 -0
  297. sage/homology/algebraic_topological_model.py +595 -0
  298. sage/homology/all.py +2 -0
  299. sage/homology/all__sagemath_modules.py +8 -0
  300. sage/homology/chain_complex.py +2148 -0
  301. sage/homology/chain_complex_homspace.py +165 -0
  302. sage/homology/chain_complex_morphism.py +629 -0
  303. sage/homology/chain_homotopy.py +604 -0
  304. sage/homology/chains.py +653 -0
  305. sage/homology/free_resolution.py +923 -0
  306. sage/homology/graded_resolution.py +567 -0
  307. sage/homology/hochschild_complex.py +756 -0
  308. sage/homology/homology_group.py +188 -0
  309. sage/homology/homology_morphism.py +422 -0
  310. sage/homology/homology_vector_space_with_basis.py +1454 -0
  311. sage/homology/koszul_complex.py +169 -0
  312. sage/homology/matrix_utils.py +205 -0
  313. sage/libs/all__sagemath_modules.py +1 -0
  314. sage/libs/gsl/__init__.py +1 -0
  315. sage/libs/gsl/airy.pxd +56 -0
  316. sage/libs/gsl/all.pxd +66 -0
  317. sage/libs/gsl/array.cpython-314-x86_64-linux-musl.so +0 -0
  318. sage/libs/gsl/array.pxd +5 -0
  319. sage/libs/gsl/array.pyx +102 -0
  320. sage/libs/gsl/bessel.pxd +208 -0
  321. sage/libs/gsl/blas.pxd +116 -0
  322. sage/libs/gsl/blas_types.pxd +34 -0
  323. sage/libs/gsl/block.pxd +52 -0
  324. sage/libs/gsl/chebyshev.pxd +37 -0
  325. sage/libs/gsl/clausen.pxd +12 -0
  326. sage/libs/gsl/combination.pxd +47 -0
  327. sage/libs/gsl/complex.pxd +151 -0
  328. sage/libs/gsl/coulomb.pxd +30 -0
  329. sage/libs/gsl/coupling.pxd +21 -0
  330. sage/libs/gsl/dawson.pxd +12 -0
  331. sage/libs/gsl/debye.pxd +24 -0
  332. sage/libs/gsl/dilog.pxd +14 -0
  333. sage/libs/gsl/eigen.pxd +46 -0
  334. sage/libs/gsl/elementary.pxd +12 -0
  335. sage/libs/gsl/ellint.pxd +48 -0
  336. sage/libs/gsl/elljac.pxd +8 -0
  337. sage/libs/gsl/erf.pxd +32 -0
  338. sage/libs/gsl/errno.pxd +26 -0
  339. sage/libs/gsl/exp.pxd +44 -0
  340. sage/libs/gsl/expint.pxd +44 -0
  341. sage/libs/gsl/fermi_dirac.pxd +44 -0
  342. sage/libs/gsl/fft.pxd +121 -0
  343. sage/libs/gsl/fit.pxd +50 -0
  344. sage/libs/gsl/gamma.pxd +94 -0
  345. sage/libs/gsl/gegenbauer.pxd +26 -0
  346. sage/libs/gsl/histogram.pxd +176 -0
  347. sage/libs/gsl/hyperg.pxd +52 -0
  348. sage/libs/gsl/integration.pxd +69 -0
  349. sage/libs/gsl/interp.pxd +109 -0
  350. sage/libs/gsl/laguerre.pxd +24 -0
  351. sage/libs/gsl/lambert.pxd +16 -0
  352. sage/libs/gsl/legendre.pxd +90 -0
  353. sage/libs/gsl/linalg.pxd +185 -0
  354. sage/libs/gsl/log.pxd +26 -0
  355. sage/libs/gsl/math.pxd +43 -0
  356. sage/libs/gsl/matrix.pxd +143 -0
  357. sage/libs/gsl/matrix_complex.pxd +130 -0
  358. sage/libs/gsl/min.pxd +67 -0
  359. sage/libs/gsl/monte.pxd +56 -0
  360. sage/libs/gsl/ntuple.pxd +32 -0
  361. sage/libs/gsl/odeiv.pxd +70 -0
  362. sage/libs/gsl/permutation.pxd +78 -0
  363. sage/libs/gsl/poly.pxd +40 -0
  364. sage/libs/gsl/pow_int.pxd +12 -0
  365. sage/libs/gsl/psi.pxd +28 -0
  366. sage/libs/gsl/qrng.pxd +29 -0
  367. sage/libs/gsl/random.pxd +257 -0
  368. sage/libs/gsl/rng.pxd +100 -0
  369. sage/libs/gsl/roots.pxd +72 -0
  370. sage/libs/gsl/sort.pxd +36 -0
  371. sage/libs/gsl/statistics.pxd +59 -0
  372. sage/libs/gsl/sum.pxd +55 -0
  373. sage/libs/gsl/synchrotron.pxd +16 -0
  374. sage/libs/gsl/transport.pxd +24 -0
  375. sage/libs/gsl/trig.pxd +58 -0
  376. sage/libs/gsl/types.pxd +137 -0
  377. sage/libs/gsl/vector.pxd +101 -0
  378. sage/libs/gsl/vector_complex.pxd +83 -0
  379. sage/libs/gsl/wavelet.pxd +49 -0
  380. sage/libs/gsl/zeta.pxd +28 -0
  381. sage/libs/mpc/__init__.pxd +114 -0
  382. sage/libs/mpc/types.pxd +28 -0
  383. sage/libs/mpfr/__init__.pxd +299 -0
  384. sage/libs/mpfr/types.pxd +26 -0
  385. sage/libs/mpmath/__init__.py +1 -0
  386. sage/libs/mpmath/all.py +27 -0
  387. sage/libs/mpmath/all__sagemath_modules.py +1 -0
  388. sage/libs/mpmath/utils.cpython-314-x86_64-linux-musl.so +0 -0
  389. sage/libs/mpmath/utils.pxd +4 -0
  390. sage/libs/mpmath/utils.pyx +319 -0
  391. sage/matrix/action.cpython-314-x86_64-linux-musl.so +0 -0
  392. sage/matrix/action.pxd +26 -0
  393. sage/matrix/action.pyx +596 -0
  394. sage/matrix/all.py +9 -0
  395. sage/matrix/args.cpython-314-x86_64-linux-musl.so +0 -0
  396. sage/matrix/args.pxd +144 -0
  397. sage/matrix/args.pyx +1668 -0
  398. sage/matrix/benchmark.py +1258 -0
  399. sage/matrix/berlekamp_massey.py +95 -0
  400. sage/matrix/compute_J_ideal.py +926 -0
  401. sage/matrix/constructor.cpython-314-x86_64-linux-musl.so +0 -0
  402. sage/matrix/constructor.pyx +750 -0
  403. sage/matrix/docs.py +430 -0
  404. sage/matrix/echelon_matrix.cpython-314-x86_64-linux-musl.so +0 -0
  405. sage/matrix/echelon_matrix.pyx +155 -0
  406. sage/matrix/matrix.pxd +2 -0
  407. sage/matrix/matrix0.cpython-314-x86_64-linux-musl.so +0 -0
  408. sage/matrix/matrix0.pxd +68 -0
  409. sage/matrix/matrix0.pyx +6324 -0
  410. sage/matrix/matrix1.cpython-314-x86_64-linux-musl.so +0 -0
  411. sage/matrix/matrix1.pxd +8 -0
  412. sage/matrix/matrix1.pyx +2851 -0
  413. sage/matrix/matrix2.cpython-314-x86_64-linux-musl.so +0 -0
  414. sage/matrix/matrix2.pxd +25 -0
  415. sage/matrix/matrix2.pyx +20181 -0
  416. sage/matrix/matrix_cdv.cpython-314-x86_64-linux-musl.so +0 -0
  417. sage/matrix/matrix_cdv.pxd +4 -0
  418. sage/matrix/matrix_cdv.pyx +93 -0
  419. sage/matrix/matrix_complex_double_dense.cpython-314-x86_64-linux-musl.so +0 -0
  420. sage/matrix/matrix_complex_double_dense.pxd +5 -0
  421. sage/matrix/matrix_complex_double_dense.pyx +98 -0
  422. sage/matrix/matrix_dense.cpython-314-x86_64-linux-musl.so +0 -0
  423. sage/matrix/matrix_dense.pxd +5 -0
  424. sage/matrix/matrix_dense.pyx +343 -0
  425. sage/matrix/matrix_domain_dense.pxd +5 -0
  426. sage/matrix/matrix_domain_sparse.pxd +5 -0
  427. sage/matrix/matrix_double_dense.cpython-314-x86_64-linux-musl.so +0 -0
  428. sage/matrix/matrix_double_dense.pxd +7 -0
  429. sage/matrix/matrix_double_dense.pyx +3906 -0
  430. sage/matrix/matrix_double_sparse.cpython-314-x86_64-linux-musl.so +0 -0
  431. sage/matrix/matrix_double_sparse.pxd +6 -0
  432. sage/matrix/matrix_double_sparse.pyx +248 -0
  433. sage/matrix/matrix_generic_dense.cpython-314-x86_64-linux-musl.so +0 -0
  434. sage/matrix/matrix_generic_dense.pxd +7 -0
  435. sage/matrix/matrix_generic_dense.pyx +354 -0
  436. sage/matrix/matrix_generic_sparse.cpython-314-x86_64-linux-musl.so +0 -0
  437. sage/matrix/matrix_generic_sparse.pxd +7 -0
  438. sage/matrix/matrix_generic_sparse.pyx +461 -0
  439. sage/matrix/matrix_laurent_mpolynomial_dense.cpython-314-x86_64-linux-musl.so +0 -0
  440. sage/matrix/matrix_laurent_mpolynomial_dense.pxd +5 -0
  441. sage/matrix/matrix_laurent_mpolynomial_dense.pyx +115 -0
  442. sage/matrix/matrix_misc.py +313 -0
  443. sage/matrix/matrix_numpy_dense.cpython-314-x86_64-linux-musl.so +0 -0
  444. sage/matrix/matrix_numpy_dense.pxd +14 -0
  445. sage/matrix/matrix_numpy_dense.pyx +450 -0
  446. sage/matrix/matrix_numpy_integer_dense.cpython-314-x86_64-linux-musl.so +0 -0
  447. sage/matrix/matrix_numpy_integer_dense.pxd +7 -0
  448. sage/matrix/matrix_numpy_integer_dense.pyx +59 -0
  449. sage/matrix/matrix_polynomial_dense.cpython-314-x86_64-linux-musl.so +0 -0
  450. sage/matrix/matrix_polynomial_dense.pxd +5 -0
  451. sage/matrix/matrix_polynomial_dense.pyx +5341 -0
  452. sage/matrix/matrix_real_double_dense.cpython-314-x86_64-linux-musl.so +0 -0
  453. sage/matrix/matrix_real_double_dense.pxd +7 -0
  454. sage/matrix/matrix_real_double_dense.pyx +122 -0
  455. sage/matrix/matrix_space.py +2848 -0
  456. sage/matrix/matrix_sparse.cpython-314-x86_64-linux-musl.so +0 -0
  457. sage/matrix/matrix_sparse.pxd +5 -0
  458. sage/matrix/matrix_sparse.pyx +1222 -0
  459. sage/matrix/matrix_window.cpython-314-x86_64-linux-musl.so +0 -0
  460. sage/matrix/matrix_window.pxd +37 -0
  461. sage/matrix/matrix_window.pyx +242 -0
  462. sage/matrix/misc_mpfr.cpython-314-x86_64-linux-musl.so +0 -0
  463. sage/matrix/misc_mpfr.pyx +80 -0
  464. sage/matrix/operation_table.py +1182 -0
  465. sage/matrix/special.py +3666 -0
  466. sage/matrix/strassen.cpython-314-x86_64-linux-musl.so +0 -0
  467. sage/matrix/strassen.pyx +851 -0
  468. sage/matrix/symplectic_basis.py +541 -0
  469. sage/matrix/template.pxd +6 -0
  470. sage/matrix/tests.py +71 -0
  471. sage/matroids/advanced.py +77 -0
  472. sage/matroids/all.py +13 -0
  473. sage/matroids/basis_exchange_matroid.cpython-314-x86_64-linux-musl.so +0 -0
  474. sage/matroids/basis_exchange_matroid.pxd +96 -0
  475. sage/matroids/basis_exchange_matroid.pyx +2344 -0
  476. sage/matroids/basis_matroid.cpython-314-x86_64-linux-musl.so +0 -0
  477. sage/matroids/basis_matroid.pxd +45 -0
  478. sage/matroids/basis_matroid.pyx +1217 -0
  479. sage/matroids/catalog.py +44 -0
  480. sage/matroids/chow_ring.py +473 -0
  481. sage/matroids/chow_ring_ideal.py +849 -0
  482. sage/matroids/circuit_closures_matroid.cpython-314-x86_64-linux-musl.so +0 -0
  483. sage/matroids/circuit_closures_matroid.pxd +16 -0
  484. sage/matroids/circuit_closures_matroid.pyx +559 -0
  485. sage/matroids/circuits_matroid.cpython-314-x86_64-linux-musl.so +0 -0
  486. sage/matroids/circuits_matroid.pxd +38 -0
  487. sage/matroids/circuits_matroid.pyx +947 -0
  488. sage/matroids/constructor.py +1086 -0
  489. sage/matroids/database_collections.py +365 -0
  490. sage/matroids/database_matroids.py +5338 -0
  491. sage/matroids/dual_matroid.py +583 -0
  492. sage/matroids/extension.cpython-314-x86_64-linux-musl.so +0 -0
  493. sage/matroids/extension.pxd +34 -0
  494. sage/matroids/extension.pyx +519 -0
  495. sage/matroids/flats_matroid.cpython-314-x86_64-linux-musl.so +0 -0
  496. sage/matroids/flats_matroid.pxd +28 -0
  497. sage/matroids/flats_matroid.pyx +715 -0
  498. sage/matroids/gammoid.py +600 -0
  499. sage/matroids/graphic_matroid.cpython-314-x86_64-linux-musl.so +0 -0
  500. sage/matroids/graphic_matroid.pxd +39 -0
  501. sage/matroids/graphic_matroid.pyx +2024 -0
  502. sage/matroids/lean_matrix.cpython-314-x86_64-linux-musl.so +0 -0
  503. sage/matroids/lean_matrix.pxd +126 -0
  504. sage/matroids/lean_matrix.pyx +3667 -0
  505. sage/matroids/linear_matroid.cpython-314-x86_64-linux-musl.so +0 -0
  506. sage/matroids/linear_matroid.pxd +180 -0
  507. sage/matroids/linear_matroid.pyx +6649 -0
  508. sage/matroids/matroid.cpython-314-x86_64-linux-musl.so +0 -0
  509. sage/matroids/matroid.pxd +243 -0
  510. sage/matroids/matroid.pyx +8759 -0
  511. sage/matroids/matroids_catalog.py +190 -0
  512. sage/matroids/matroids_plot_helpers.py +890 -0
  513. sage/matroids/minor_matroid.py +480 -0
  514. sage/matroids/minorfix.h +9 -0
  515. sage/matroids/named_matroids.py +5 -0
  516. sage/matroids/rank_matroid.py +268 -0
  517. sage/matroids/set_system.cpython-314-x86_64-linux-musl.so +0 -0
  518. sage/matroids/set_system.pxd +38 -0
  519. sage/matroids/set_system.pyx +800 -0
  520. sage/matroids/transversal_matroid.cpython-314-x86_64-linux-musl.so +0 -0
  521. sage/matroids/transversal_matroid.pxd +14 -0
  522. sage/matroids/transversal_matroid.pyx +893 -0
  523. sage/matroids/union_matroid.cpython-314-x86_64-linux-musl.so +0 -0
  524. sage/matroids/union_matroid.pxd +20 -0
  525. sage/matroids/union_matroid.pyx +331 -0
  526. sage/matroids/unpickling.cpython-314-x86_64-linux-musl.so +0 -0
  527. sage/matroids/unpickling.pyx +843 -0
  528. sage/matroids/utilities.py +809 -0
  529. sage/misc/all__sagemath_modules.py +20 -0
  530. sage/misc/c3.cpython-314-x86_64-linux-musl.so +0 -0
  531. sage/misc/c3.pyx +238 -0
  532. sage/misc/compat.py +87 -0
  533. sage/misc/element_with_label.py +173 -0
  534. sage/misc/func_persist.py +79 -0
  535. sage/misc/pickle_old.cpython-314-x86_64-linux-musl.so +0 -0
  536. sage/misc/pickle_old.pyx +19 -0
  537. sage/misc/proof.py +7 -0
  538. sage/misc/replace_dot_all.py +472 -0
  539. sage/misc/sagedoc_conf.py +168 -0
  540. sage/misc/sphinxify.py +167 -0
  541. sage/misc/test_class_pickling.py +85 -0
  542. sage/modules/all.py +42 -0
  543. sage/modules/complex_double_vector.py +25 -0
  544. sage/modules/diamond_cutting.py +380 -0
  545. sage/modules/fg_pid/all.py +1 -0
  546. sage/modules/fg_pid/fgp_element.py +456 -0
  547. sage/modules/fg_pid/fgp_module.py +2091 -0
  548. sage/modules/fg_pid/fgp_morphism.py +550 -0
  549. sage/modules/filtered_vector_space.py +1271 -0
  550. sage/modules/finite_submodule_iter.cpython-314-x86_64-linux-musl.so +0 -0
  551. sage/modules/finite_submodule_iter.pxd +27 -0
  552. sage/modules/finite_submodule_iter.pyx +452 -0
  553. sage/modules/fp_graded/all.py +1 -0
  554. sage/modules/fp_graded/element.py +346 -0
  555. sage/modules/fp_graded/free_element.py +298 -0
  556. sage/modules/fp_graded/free_homspace.py +53 -0
  557. sage/modules/fp_graded/free_module.py +1060 -0
  558. sage/modules/fp_graded/free_morphism.py +217 -0
  559. sage/modules/fp_graded/homspace.py +563 -0
  560. sage/modules/fp_graded/module.py +1340 -0
  561. sage/modules/fp_graded/morphism.py +1990 -0
  562. sage/modules/fp_graded/steenrod/all.py +1 -0
  563. sage/modules/fp_graded/steenrod/homspace.py +65 -0
  564. sage/modules/fp_graded/steenrod/module.py +477 -0
  565. sage/modules/fp_graded/steenrod/morphism.py +404 -0
  566. sage/modules/fp_graded/steenrod/profile.py +241 -0
  567. sage/modules/free_module.py +8447 -0
  568. sage/modules/free_module_element.cpython-314-x86_64-linux-musl.so +0 -0
  569. sage/modules/free_module_element.pxd +22 -0
  570. sage/modules/free_module_element.pyx +5445 -0
  571. sage/modules/free_module_homspace.py +369 -0
  572. sage/modules/free_module_integer.py +896 -0
  573. sage/modules/free_module_morphism.py +823 -0
  574. sage/modules/free_module_pseudohomspace.py +352 -0
  575. sage/modules/free_module_pseudomorphism.py +578 -0
  576. sage/modules/free_quadratic_module.py +1706 -0
  577. sage/modules/free_quadratic_module_integer_symmetric.py +1790 -0
  578. sage/modules/matrix_morphism.py +1745 -0
  579. sage/modules/misc.py +103 -0
  580. sage/modules/module_functors.py +192 -0
  581. sage/modules/multi_filtered_vector_space.py +719 -0
  582. sage/modules/ore_module.py +2208 -0
  583. sage/modules/ore_module_element.py +178 -0
  584. sage/modules/ore_module_homspace.py +147 -0
  585. sage/modules/ore_module_morphism.py +968 -0
  586. sage/modules/quotient_module.py +699 -0
  587. sage/modules/real_double_vector.py +22 -0
  588. sage/modules/submodule.py +255 -0
  589. sage/modules/tensor_operations.py +567 -0
  590. sage/modules/torsion_quadratic_module.py +1352 -0
  591. sage/modules/tutorial_free_modules.py +248 -0
  592. sage/modules/vector_complex_double_dense.cpython-314-x86_64-linux-musl.so +0 -0
  593. sage/modules/vector_complex_double_dense.pxd +6 -0
  594. sage/modules/vector_complex_double_dense.pyx +117 -0
  595. sage/modules/vector_double_dense.cpython-314-x86_64-linux-musl.so +0 -0
  596. sage/modules/vector_double_dense.pxd +6 -0
  597. sage/modules/vector_double_dense.pyx +604 -0
  598. sage/modules/vector_integer_dense.cpython-314-x86_64-linux-musl.so +0 -0
  599. sage/modules/vector_integer_dense.pxd +15 -0
  600. sage/modules/vector_integer_dense.pyx +361 -0
  601. sage/modules/vector_integer_sparse.cpython-314-x86_64-linux-musl.so +0 -0
  602. sage/modules/vector_integer_sparse.pxd +29 -0
  603. sage/modules/vector_integer_sparse.pyx +406 -0
  604. sage/modules/vector_modn_dense.cpython-314-x86_64-linux-musl.so +0 -0
  605. sage/modules/vector_modn_dense.pxd +12 -0
  606. sage/modules/vector_modn_dense.pyx +394 -0
  607. sage/modules/vector_modn_sparse.cpython-314-x86_64-linux-musl.so +0 -0
  608. sage/modules/vector_modn_sparse.pxd +21 -0
  609. sage/modules/vector_modn_sparse.pyx +298 -0
  610. sage/modules/vector_numpy_dense.cpython-314-x86_64-linux-musl.so +0 -0
  611. sage/modules/vector_numpy_dense.pxd +15 -0
  612. sage/modules/vector_numpy_dense.pyx +304 -0
  613. sage/modules/vector_numpy_integer_dense.cpython-314-x86_64-linux-musl.so +0 -0
  614. sage/modules/vector_numpy_integer_dense.pxd +7 -0
  615. sage/modules/vector_numpy_integer_dense.pyx +54 -0
  616. sage/modules/vector_rational_dense.cpython-314-x86_64-linux-musl.so +0 -0
  617. sage/modules/vector_rational_dense.pxd +15 -0
  618. sage/modules/vector_rational_dense.pyx +387 -0
  619. sage/modules/vector_rational_sparse.cpython-314-x86_64-linux-musl.so +0 -0
  620. sage/modules/vector_rational_sparse.pxd +30 -0
  621. sage/modules/vector_rational_sparse.pyx +413 -0
  622. sage/modules/vector_real_double_dense.cpython-314-x86_64-linux-musl.so +0 -0
  623. sage/modules/vector_real_double_dense.pxd +6 -0
  624. sage/modules/vector_real_double_dense.pyx +126 -0
  625. sage/modules/vector_space_homspace.py +430 -0
  626. sage/modules/vector_space_morphism.py +989 -0
  627. sage/modules/with_basis/all.py +15 -0
  628. sage/modules/with_basis/cell_module.py +494 -0
  629. sage/modules/with_basis/indexed_element.cpython-314-x86_64-linux-musl.so +0 -0
  630. sage/modules/with_basis/indexed_element.pxd +13 -0
  631. sage/modules/with_basis/indexed_element.pyx +1058 -0
  632. sage/modules/with_basis/invariant.py +1075 -0
  633. sage/modules/with_basis/morphism.py +1636 -0
  634. sage/modules/with_basis/representation.py +2939 -0
  635. sage/modules/with_basis/subquotient.py +685 -0
  636. sage/numerical/all__sagemath_modules.py +6 -0
  637. sage/numerical/gauss_legendre.cpython-314-x86_64-linux-musl.so +0 -0
  638. sage/numerical/gauss_legendre.pyx +381 -0
  639. sage/numerical/optimize.py +910 -0
  640. sage/probability/all.py +10 -0
  641. sage/probability/probability_distribution.cpython-314-x86_64-linux-musl.so +0 -0
  642. sage/probability/probability_distribution.pyx +1242 -0
  643. sage/probability/random_variable.py +411 -0
  644. sage/quadratic_forms/all.py +4 -0
  645. sage/quadratic_forms/all__sagemath_modules.py +15 -0
  646. sage/quadratic_forms/binary_qf.py +2042 -0
  647. sage/quadratic_forms/bqf_class_group.py +748 -0
  648. sage/quadratic_forms/constructions.py +93 -0
  649. sage/quadratic_forms/count_local_2.cpython-314-x86_64-linux-musl.so +0 -0
  650. sage/quadratic_forms/count_local_2.pyx +365 -0
  651. sage/quadratic_forms/extras.py +195 -0
  652. sage/quadratic_forms/quadratic_form.py +1753 -0
  653. sage/quadratic_forms/quadratic_form__count_local_2.py +221 -0
  654. sage/quadratic_forms/quadratic_form__equivalence_testing.py +708 -0
  655. sage/quadratic_forms/quadratic_form__evaluate.cpython-314-x86_64-linux-musl.so +0 -0
  656. sage/quadratic_forms/quadratic_form__evaluate.pyx +139 -0
  657. sage/quadratic_forms/quadratic_form__local_density_congruence.py +977 -0
  658. sage/quadratic_forms/quadratic_form__local_field_invariants.py +1072 -0
  659. sage/quadratic_forms/quadratic_form__neighbors.py +424 -0
  660. sage/quadratic_forms/quadratic_form__reduction_theory.py +488 -0
  661. sage/quadratic_forms/quadratic_form__split_local_covering.py +416 -0
  662. sage/quadratic_forms/quadratic_form__ternary_Tornaria.py +657 -0
  663. sage/quadratic_forms/quadratic_form__theta.py +352 -0
  664. sage/quadratic_forms/quadratic_form__variable_substitutions.py +370 -0
  665. sage/quadratic_forms/random_quadraticform.py +209 -0
  666. sage/quadratic_forms/ternary.cpython-314-x86_64-linux-musl.so +0 -0
  667. sage/quadratic_forms/ternary.pyx +1154 -0
  668. sage/quadratic_forms/ternary_qf.py +2027 -0
  669. sage/rings/all__sagemath_modules.py +28 -0
  670. sage/rings/asymptotic/all__sagemath_modules.py +1 -0
  671. sage/rings/asymptotic/misc.py +1252 -0
  672. sage/rings/cc.py +4 -0
  673. sage/rings/cfinite_sequence.py +1306 -0
  674. sage/rings/complex_conversion.cpython-314-x86_64-linux-musl.so +0 -0
  675. sage/rings/complex_conversion.pxd +8 -0
  676. sage/rings/complex_conversion.pyx +23 -0
  677. sage/rings/complex_double.cpython-314-x86_64-linux-musl.so +0 -0
  678. sage/rings/complex_double.pxd +21 -0
  679. sage/rings/complex_double.pyx +2654 -0
  680. sage/rings/complex_mpc.cpython-314-x86_64-linux-musl.so +0 -0
  681. sage/rings/complex_mpc.pxd +21 -0
  682. sage/rings/complex_mpc.pyx +2576 -0
  683. sage/rings/complex_mpfr.cpython-314-x86_64-linux-musl.so +0 -0
  684. sage/rings/complex_mpfr.pxd +18 -0
  685. sage/rings/complex_mpfr.pyx +3602 -0
  686. sage/rings/derivation.py +2334 -0
  687. sage/rings/finite_rings/all__sagemath_modules.py +1 -0
  688. sage/rings/finite_rings/maps_finite_field.py +191 -0
  689. sage/rings/function_field/all__sagemath_modules.py +8 -0
  690. sage/rings/function_field/derivations.py +102 -0
  691. sage/rings/function_field/derivations_rational.py +132 -0
  692. sage/rings/function_field/differential.py +853 -0
  693. sage/rings/function_field/divisor.py +1107 -0
  694. sage/rings/function_field/drinfeld_modules/action.py +199 -0
  695. sage/rings/function_field/drinfeld_modules/all.py +1 -0
  696. sage/rings/function_field/drinfeld_modules/charzero_drinfeld_module.py +673 -0
  697. sage/rings/function_field/drinfeld_modules/drinfeld_module.py +2087 -0
  698. sage/rings/function_field/drinfeld_modules/finite_drinfeld_module.py +1131 -0
  699. sage/rings/function_field/drinfeld_modules/homset.py +420 -0
  700. sage/rings/function_field/drinfeld_modules/morphism.py +820 -0
  701. sage/rings/function_field/hermite_form_polynomial.cpython-314-x86_64-linux-musl.so +0 -0
  702. sage/rings/function_field/hermite_form_polynomial.pyx +188 -0
  703. sage/rings/function_field/khuri_makdisi.cpython-314-x86_64-linux-musl.so +0 -0
  704. sage/rings/function_field/khuri_makdisi.pyx +935 -0
  705. sage/rings/invariants/all.py +4 -0
  706. sage/rings/invariants/invariant_theory.py +4597 -0
  707. sage/rings/invariants/reconstruction.py +395 -0
  708. sage/rings/polynomial/all__sagemath_modules.py +17 -0
  709. sage/rings/polynomial/integer_valued_polynomials.py +1230 -0
  710. sage/rings/polynomial/laurent_polynomial_mpair.cpython-314-x86_64-linux-musl.so +0 -0
  711. sage/rings/polynomial/laurent_polynomial_mpair.pxd +15 -0
  712. sage/rings/polynomial/laurent_polynomial_mpair.pyx +2023 -0
  713. sage/rings/polynomial/ore_function_element.py +952 -0
  714. sage/rings/polynomial/ore_function_field.py +1028 -0
  715. sage/rings/polynomial/ore_polynomial_element.cpython-314-x86_64-linux-musl.so +0 -0
  716. sage/rings/polynomial/ore_polynomial_element.pxd +48 -0
  717. sage/rings/polynomial/ore_polynomial_element.pyx +3145 -0
  718. sage/rings/polynomial/ore_polynomial_ring.py +1334 -0
  719. sage/rings/polynomial/polynomial_real_mpfr_dense.cpython-314-x86_64-linux-musl.so +0 -0
  720. sage/rings/polynomial/polynomial_real_mpfr_dense.pyx +788 -0
  721. sage/rings/polynomial/q_integer_valued_polynomials.py +1264 -0
  722. sage/rings/polynomial/skew_polynomial_element.cpython-314-x86_64-linux-musl.so +0 -0
  723. sage/rings/polynomial/skew_polynomial_element.pxd +9 -0
  724. sage/rings/polynomial/skew_polynomial_element.pyx +684 -0
  725. sage/rings/polynomial/skew_polynomial_finite_field.cpython-314-x86_64-linux-musl.so +0 -0
  726. sage/rings/polynomial/skew_polynomial_finite_field.pxd +19 -0
  727. sage/rings/polynomial/skew_polynomial_finite_field.pyx +1093 -0
  728. sage/rings/polynomial/skew_polynomial_finite_order.cpython-314-x86_64-linux-musl.so +0 -0
  729. sage/rings/polynomial/skew_polynomial_finite_order.pxd +10 -0
  730. sage/rings/polynomial/skew_polynomial_finite_order.pyx +567 -0
  731. sage/rings/polynomial/skew_polynomial_ring.py +908 -0
  732. sage/rings/real_double_element_gsl.cpython-314-x86_64-linux-musl.so +0 -0
  733. sage/rings/real_double_element_gsl.pxd +8 -0
  734. sage/rings/real_double_element_gsl.pyx +794 -0
  735. sage/rings/real_field.py +58 -0
  736. sage/rings/real_mpfr.cpython-314-x86_64-linux-musl.so +0 -0
  737. sage/rings/real_mpfr.pxd +29 -0
  738. sage/rings/real_mpfr.pyx +6122 -0
  739. sage/rings/ring_extension.cpython-314-x86_64-linux-musl.so +0 -0
  740. sage/rings/ring_extension.pxd +42 -0
  741. sage/rings/ring_extension.pyx +2779 -0
  742. sage/rings/ring_extension_conversion.cpython-314-x86_64-linux-musl.so +0 -0
  743. sage/rings/ring_extension_conversion.pxd +16 -0
  744. sage/rings/ring_extension_conversion.pyx +462 -0
  745. sage/rings/ring_extension_element.cpython-314-x86_64-linux-musl.so +0 -0
  746. sage/rings/ring_extension_element.pxd +21 -0
  747. sage/rings/ring_extension_element.pyx +1635 -0
  748. sage/rings/ring_extension_homset.py +64 -0
  749. sage/rings/ring_extension_morphism.cpython-314-x86_64-linux-musl.so +0 -0
  750. sage/rings/ring_extension_morphism.pxd +35 -0
  751. sage/rings/ring_extension_morphism.pyx +920 -0
  752. sage/schemes/all__sagemath_modules.py +1 -0
  753. sage/schemes/projective/all__sagemath_modules.py +1 -0
  754. sage/schemes/projective/coherent_sheaf.py +300 -0
  755. sage/schemes/projective/cohomology.py +510 -0
  756. sage/stats/all.py +15 -0
  757. sage/stats/basic_stats.py +489 -0
  758. sage/stats/distributions/all.py +7 -0
  759. sage/stats/distributions/catalog.py +34 -0
  760. sage/stats/distributions/dgs.h +50 -0
  761. sage/stats/distributions/dgs.pxd +111 -0
  762. sage/stats/distributions/dgs_bern.h +400 -0
  763. sage/stats/distributions/dgs_gauss.h +614 -0
  764. sage/stats/distributions/dgs_misc.h +104 -0
  765. sage/stats/distributions/discrete_gaussian_integer.cpython-314-x86_64-linux-musl.so +0 -0
  766. sage/stats/distributions/discrete_gaussian_integer.pxd +14 -0
  767. sage/stats/distributions/discrete_gaussian_integer.pyx +498 -0
  768. sage/stats/distributions/discrete_gaussian_lattice.py +908 -0
  769. sage/stats/distributions/discrete_gaussian_polynomial.py +141 -0
  770. sage/stats/hmm/all.py +15 -0
  771. sage/stats/hmm/chmm.cpython-314-x86_64-linux-musl.so +0 -0
  772. sage/stats/hmm/chmm.pyx +1595 -0
  773. sage/stats/hmm/distributions.cpython-314-x86_64-linux-musl.so +0 -0
  774. sage/stats/hmm/distributions.pxd +29 -0
  775. sage/stats/hmm/distributions.pyx +531 -0
  776. sage/stats/hmm/hmm.cpython-314-x86_64-linux-musl.so +0 -0
  777. sage/stats/hmm/hmm.pxd +17 -0
  778. sage/stats/hmm/hmm.pyx +1388 -0
  779. sage/stats/hmm/util.cpython-314-x86_64-linux-musl.so +0 -0
  780. sage/stats/hmm/util.pxd +7 -0
  781. sage/stats/hmm/util.pyx +165 -0
  782. sage/stats/intlist.cpython-314-x86_64-linux-musl.so +0 -0
  783. sage/stats/intlist.pxd +14 -0
  784. sage/stats/intlist.pyx +588 -0
  785. sage/stats/r.py +49 -0
  786. sage/stats/time_series.cpython-314-x86_64-linux-musl.so +0 -0
  787. sage/stats/time_series.pxd +6 -0
  788. sage/stats/time_series.pyx +2546 -0
  789. sage/tensor/all.py +2 -0
  790. sage/tensor/modules/all.py +8 -0
  791. sage/tensor/modules/alternating_contr_tensor.py +761 -0
  792. sage/tensor/modules/comp.py +5598 -0
  793. sage/tensor/modules/ext_pow_free_module.py +824 -0
  794. sage/tensor/modules/finite_rank_free_module.py +3589 -0
  795. sage/tensor/modules/format_utilities.py +333 -0
  796. sage/tensor/modules/free_module_alt_form.py +858 -0
  797. sage/tensor/modules/free_module_automorphism.py +1207 -0
  798. sage/tensor/modules/free_module_basis.py +1074 -0
  799. sage/tensor/modules/free_module_element.py +284 -0
  800. sage/tensor/modules/free_module_homset.py +652 -0
  801. sage/tensor/modules/free_module_linear_group.py +564 -0
  802. sage/tensor/modules/free_module_morphism.py +1581 -0
  803. sage/tensor/modules/free_module_tensor.py +3289 -0
  804. sage/tensor/modules/reflexive_module.py +386 -0
  805. sage/tensor/modules/tensor_free_module.py +780 -0
  806. sage/tensor/modules/tensor_free_submodule.py +538 -0
  807. sage/tensor/modules/tensor_free_submodule_basis.py +140 -0
  808. sage/tensor/modules/tensor_with_indices.py +1043 -0
@@ -0,0 +1,882 @@
1
+ # sage_setup: distribution = sagemath-modules
2
+ r"""
3
+ Root systems
4
+ ============
5
+
6
+ See :ref:`sage.combinat.root_system.all` for an overview.
7
+ """
8
+ # ***************************************************************************
9
+ # Copyright (C) 2007 Mike Hansen <mhansen@gmail.com>,
10
+ # Justin Walker <justin at mac.com>
11
+ # 2008-2009 Nicolas M. Thiery <nthiery at users.sf.net>
12
+ #
13
+ # Distributed under the terms of the GNU General Public License (GPL)
14
+ # The full text of the GPL is available at:
15
+ #
16
+ # https://www.gnu.org/licenses/
17
+ # ***************************************************************************
18
+ # Design largely inspired from MuPAD-Combinat
19
+ from sage.structure.sage_object import SageObject
20
+ from sage.structure.unique_representation import UniqueRepresentation
21
+ from .cartan_type import CartanType
22
+ from sage.rings.integer_ring import ZZ
23
+ from sage.rings.rational_field import QQ
24
+ from sage.misc.cachefunc import cached_method
25
+ from .root_space import RootSpace
26
+ from .weight_space import WeightSpace
27
+
28
+
29
+ class RootSystem(UniqueRepresentation, SageObject):
30
+ r"""
31
+ A class for root systems.
32
+
33
+ EXAMPLES:
34
+
35
+ We construct the root system for type `B_3`::
36
+
37
+ sage: R = RootSystem(['B',3]); R
38
+ Root system of type ['B', 3]
39
+
40
+ ``R`` models the root system abstractly. It comes equipped with various
41
+ realizations of the root and weight lattices, where all computations
42
+ take place. Let us play first with the root lattice::
43
+
44
+ sage: space = R.root_lattice(); space
45
+ Root lattice of the Root system of type ['B', 3]
46
+
47
+ This is the free `\ZZ`-module `\bigoplus_i \ZZ.\alpha_i` spanned
48
+ by the simple roots::
49
+
50
+ sage: space.base_ring()
51
+ Integer Ring
52
+ sage: list(space.basis())
53
+ [alpha[1], alpha[2], alpha[3]]
54
+
55
+ Let us do some computations with the simple roots::
56
+
57
+ sage: alpha = space.simple_roots()
58
+ sage: alpha[1] + alpha[2]
59
+ alpha[1] + alpha[2]
60
+
61
+ There is a canonical pairing between the root lattice and the
62
+ coroot lattice::
63
+
64
+ sage: R.coroot_lattice()
65
+ Coroot lattice of the Root system of type ['B', 3]
66
+
67
+ We construct the simple coroots, and do some computations (see
68
+ comments about duality below for some caveat)::
69
+
70
+ sage: alphacheck = space.simple_coroots()
71
+ sage: list(alphacheck)
72
+ [alphacheck[1], alphacheck[2], alphacheck[3]]
73
+
74
+ We can carry over the same computations in any of the other
75
+ realizations of the root lattice, like the root space
76
+ `\bigoplus_i \QQ.\alpha_i`, the weight lattice
77
+ `\bigoplus_i \ZZ.\Lambda_i`, the weight
78
+ space `\bigoplus_i \QQ.\Lambda_i`. For example::
79
+
80
+ sage: space = R.weight_space(); space
81
+ Weight space over the Rational Field of the Root system of type ['B', 3]
82
+
83
+ ::
84
+
85
+ sage: space.base_ring()
86
+ Rational Field
87
+ sage: list(space.basis())
88
+ [Lambda[1], Lambda[2], Lambda[3]]
89
+
90
+ ::
91
+
92
+ sage: alpha = space.simple_roots() # needs sage.graphs
93
+ sage: alpha[1] + alpha[2] # needs sage.graphs
94
+ Lambda[1] + Lambda[2] - 2*Lambda[3]
95
+
96
+ The fundamental weights are the dual basis of the coroots::
97
+
98
+ sage: Lambda = space.fundamental_weights()
99
+ sage: Lambda[1]
100
+ Lambda[1]
101
+
102
+ ::
103
+
104
+ sage: alphacheck = space.simple_coroots() # needs sage.graphs
105
+ sage: list(alphacheck) # needs sage.graphs
106
+ [alphacheck[1], alphacheck[2], alphacheck[3]]
107
+
108
+ ::
109
+
110
+ sage: [Lambda[i].scalar(alphacheck[1]) for i in space.index_set()]
111
+ [1, 0, 0]
112
+ sage: [Lambda[i].scalar(alphacheck[2]) for i in space.index_set()]
113
+ [0, 1, 0]
114
+ sage: [Lambda[i].scalar(alphacheck[3]) for i in space.index_set()]
115
+ [0, 0, 1]
116
+
117
+ Let us use the simple reflections. In the weight space, they
118
+ work as in the *number game*: firing the node `i` on an
119
+ element `x` adds `c` times the simple root
120
+ `\alpha_i`, where `c` is the coefficient of
121
+ `i` in `x`::
122
+
123
+ sage: # needs sage.graphs
124
+ sage: Lambda[1].simple_reflection(1)
125
+ -Lambda[1] + Lambda[2]
126
+ sage: Lambda[2].simple_reflection(1)
127
+ Lambda[2]
128
+ sage: Lambda[3].simple_reflection(1)
129
+ Lambda[3]
130
+ sage: (-2*Lambda[1] + Lambda[2] + Lambda[3]).simple_reflection(1)
131
+ 2*Lambda[1] - Lambda[2] + Lambda[3]
132
+
133
+ It can be convenient to manipulate the simple reflections
134
+ themselves::
135
+
136
+ sage: # needs sage.graphs
137
+ sage: s = space.simple_reflections()
138
+ sage: s[1](Lambda[1])
139
+ -Lambda[1] + Lambda[2]
140
+ sage: s[1](Lambda[2])
141
+ Lambda[2]
142
+ sage: s[1](Lambda[3])
143
+ Lambda[3]
144
+
145
+ .. RUBRIC:: Ambient spaces
146
+
147
+ The root system may also come equipped with an ambient space.
148
+ This is a `\QQ`-module, endowed with its canonical Euclidean
149
+ scalar product, which admits simultaneous embeddings of the
150
+ (extended) weight and the (extended) coweight lattice, and
151
+ therefore the root and the coroot lattice. This is implemented on
152
+ a type by type basis for the finite crystallographic root systems
153
+ following Bourbaki's conventions and is extended to the affine
154
+ cases. Coefficients permitting, this is also available as an
155
+ ambient lattice.
156
+
157
+ .. SEEALSO:: :meth:`ambient_space` and :meth:`ambient_lattice` for details
158
+
159
+ In finite type `A`, we recover the natural representation of the
160
+ symmetric group as group of permutation matrices::
161
+
162
+ sage: RootSystem(["A",2]).ambient_space().weyl_group().simple_reflections() # needs sage.libs.gap sage.libs.pari
163
+ Finite family {1: [0 1 0]
164
+ [1 0 0]
165
+ [0 0 1],
166
+ 2: [1 0 0]
167
+ [0 0 1]
168
+ [0 1 0]}
169
+
170
+ In type `B`, `C`, and `D`, we recover the natural representation
171
+ of the Weyl group as groups of signed permutation matrices::
172
+
173
+ sage: RootSystem(["B",3]).ambient_space().weyl_group().simple_reflections() # needs sage.libs.gap sage.libs.pari
174
+ Finite family {1: [0 1 0]
175
+ [1 0 0]
176
+ [0 0 1],
177
+ 2: [1 0 0]
178
+ [0 0 1]
179
+ [0 1 0],
180
+ 3: [ 1 0 0]
181
+ [ 0 1 0]
182
+ [ 0 0 -1]}
183
+
184
+ In (untwisted) affine types `A`, ..., `D`, one can recover from
185
+ the ambient space the affine permutation representation, in window
186
+ notation. Let us consider the ambient space for affine type `A`::
187
+
188
+ sage: L = RootSystem(["A",2,1]).ambient_space(); L
189
+ Ambient space of the Root system of type ['A', 2, 1]
190
+
191
+ Define the "identity" by an appropriate vector at level `-3`::
192
+
193
+ sage: e = L.basis(); Lambda = L.fundamental_weights() # needs sage.graphs
194
+ sage: id = e[0] + 2*e[1] + 3*e[2] - 3*Lambda[0] # needs sage.graphs
195
+
196
+ The corresponding permutation is obtained by projecting it onto
197
+ the classical ambient space::
198
+
199
+ sage: L.classical()
200
+ Ambient space of the Root system of type ['A', 2]
201
+ sage: L.classical()(id) # needs sage.graphs
202
+ (1, 2, 3)
203
+
204
+ Here is the orbit of the identity under the action of the finite
205
+ group::
206
+
207
+ sage: # needs sage.graphs sage.libs.gap sage.libs.pari
208
+ sage: W = L.weyl_group()
209
+ sage: S3 = [ w.action(id) for w in W.classical() ]
210
+ sage: [L.classical()(x) for x in S3]
211
+ [(1, 2, 3), (3, 1, 2), (2, 3, 1), (2, 1, 3), (1, 3, 2), (3, 2, 1)]
212
+
213
+ And the action of `s_0` on these yields::
214
+
215
+ sage: # needs sage.graphs sage.libs.gap sage.libs.pari
216
+ sage: s = W.simple_reflections()
217
+ sage: [L.classical()(s[0].action(x)) for x in S3]
218
+ [(0, 2, 4), (-1, 1, 6), (-2, 3, 5), (0, 1, 5), (-1, 3, 4), (-2, 2, 6)]
219
+
220
+ We can also plot various components of the ambient spaces::
221
+
222
+ sage: L = RootSystem(['A',2]).ambient_space()
223
+ sage: L.plot() # needs sage.plot sage.symbolic
224
+ Graphics object consisting of 13 graphics primitives
225
+
226
+ For more on plotting, see :ref:`sage.combinat.root_system.plot`.
227
+
228
+ .. RUBRIC:: Dual root systems
229
+
230
+ The root system is aware of its dual root system::
231
+
232
+ sage: R.dual
233
+ Dual of root system of type ['B', 3]
234
+
235
+ ``R.dual`` is really the root system of type `C_3`::
236
+
237
+ sage: R.dual.cartan_type()
238
+ ['C', 3]
239
+
240
+ And the coroot lattice that we have been manipulating before is
241
+ really implemented as the root lattice of the dual root system::
242
+
243
+ sage: R.dual.root_lattice()
244
+ Coroot lattice of the Root system of type ['B', 3]
245
+
246
+ In particular, the coroots for the root lattice are in fact the
247
+ roots of the coroot lattice::
248
+
249
+ sage: list(R.root_lattice().simple_coroots())
250
+ [alphacheck[1], alphacheck[2], alphacheck[3]]
251
+ sage: list(R.coroot_lattice().simple_roots())
252
+ [alphacheck[1], alphacheck[2], alphacheck[3]]
253
+ sage: list(R.dual.root_lattice().simple_roots())
254
+ [alphacheck[1], alphacheck[2], alphacheck[3]]
255
+
256
+ The coweight lattice and space are defined similarly. Note that, to
257
+ limit confusion, all the output have been tweaked appropriately.
258
+
259
+ .. SEEALSO::
260
+
261
+ - :mod:`sage.combinat.root_system`
262
+ - :class:`RootSpace`
263
+ - :class:`WeightSpace`
264
+ - :class:`AmbientSpace`
265
+ - :class:`~sage.combinat.root_system.root_lattice_realizations.RootLatticeRealizations`
266
+ - :class:`~sage.combinat.root_system.weight_lattice_realizations.WeightLatticeRealizations`
267
+
268
+ TESTS::
269
+
270
+ sage: R = RootSystem(['C',3])
271
+ sage: TestSuite(R).run() # needs sage.graphs
272
+ sage: L = R.ambient_space()
273
+ sage: s = L.simple_reflections() # this used to break the testsuite below due to caching an unpicklable method
274
+ sage: s = L.simple_projections() # todo: not implemented
275
+ sage: TestSuite(L).run() # needs sage.graphs
276
+ sage: L = R.root_space()
277
+ sage: s = L.simple_reflections()
278
+ sage: TestSuite(L).run()
279
+
280
+ ::
281
+
282
+ sage: for T in CartanType.samples(crystallographic=True): # long time (13s on sage.math, 2012)
283
+ ....: TestSuite(RootSystem(T)).run()
284
+
285
+ Some checks for equality::
286
+
287
+ sage: r1 = RootSystem(['A',3])
288
+ sage: r2 = RootSystem(['B',3])
289
+ sage: r1 == r1
290
+ True
291
+ sage: r1 == r2
292
+ False
293
+ sage: r1 != r1
294
+ False
295
+
296
+ Check that root systems inherit a hash method from ``UniqueRepresentation``::
297
+
298
+ sage: hash(r1) # random
299
+ 42
300
+ """
301
+
302
+ @staticmethod
303
+ def __classcall__(cls, cartan_type, as_dual_of=None):
304
+ """
305
+ Straighten arguments to enable unique representation.
306
+
307
+ .. SEEALSO:: :class:`UniqueRepresentation`
308
+
309
+ TESTS::
310
+
311
+ sage: RootSystem(["A",3]) is RootSystem(CartanType(["A",3]))
312
+ True
313
+ sage: RootSystem(["B",3], as_dual_of=None) is RootSystem("B3")
314
+ True
315
+ """
316
+ return super().__classcall__(cls, CartanType(cartan_type), as_dual_of)
317
+
318
+ def __init__(self, cartan_type, as_dual_of=None):
319
+ """
320
+ TESTS::
321
+
322
+ sage: R = RootSystem(['A',3])
323
+ sage: R
324
+ Root system of type ['A', 3]
325
+ """
326
+ self._cartan_type = CartanType(cartan_type)
327
+
328
+ # Duality
329
+ # The root system can be defined as dual of another root system. This will
330
+ # only affects the pretty printing
331
+ if as_dual_of is None:
332
+ self.dual_side = False
333
+ # still fails for CartanType G2xA1
334
+ try:
335
+ self.dual = RootSystem(self._cartan_type.dual(),
336
+ as_dual_of=self)
337
+ except Exception:
338
+ pass
339
+ else:
340
+ self.dual_side = True
341
+ self.dual = as_dual_of
342
+
343
+ def _test_root_lattice_realizations(self, **options):
344
+ """
345
+ Run tests on all the root lattice realizations of this root
346
+ system.
347
+
348
+ EXAMPLES::
349
+
350
+ sage: RootSystem(["A",3])._test_root_lattice_realizations() # needs sage.graphs
351
+
352
+ .. SEEALSO:: :class:`TestSuite`.
353
+ """
354
+ options.pop('tester', None)
355
+ from sage.misc.sage_unittest import TestSuite
356
+ TestSuite(self.root_lattice()).run(**options)
357
+ TestSuite(self.root_space()).run(**options)
358
+ TestSuite(self.weight_lattice()).run(**options)
359
+ TestSuite(self.weight_space()).run(**options)
360
+ if self.cartan_type().is_affine():
361
+ TestSuite(self.weight_lattice(extended=True)).run(**options)
362
+ TestSuite(self.weight_space(extended=True)).run(**options)
363
+ if self.ambient_lattice() is not None:
364
+ TestSuite(self.ambient_lattice()).run(**options)
365
+ if self.ambient_space() is not None:
366
+ TestSuite(self.ambient_space()).run(**options)
367
+
368
+ def _repr_(self):
369
+ """
370
+ EXAMPLES::
371
+
372
+ sage: RootSystem(['A',3]) # indirect doctest
373
+ Root system of type ['A', 3]
374
+ sage: RootSystem(['B',3]).dual # indirect doctest
375
+ Dual of root system of type ['B', 3]
376
+ """
377
+ if self.dual_side:
378
+ return "Dual of root system of type %s" % self.dual.cartan_type()
379
+ else:
380
+ return "Root system of type %s" % self.cartan_type()
381
+
382
+ def cartan_type(self):
383
+ """
384
+ Return the Cartan type of the root system.
385
+
386
+ EXAMPLES::
387
+
388
+ sage: R = RootSystem(['A',3])
389
+ sage: R.cartan_type()
390
+ ['A', 3]
391
+ """
392
+ return self._cartan_type
393
+
394
+ @cached_method
395
+ def dynkin_diagram(self):
396
+ """
397
+ Return the Dynkin diagram of the root system.
398
+
399
+ EXAMPLES::
400
+
401
+ sage: R = RootSystem(['A',3])
402
+ sage: R.dynkin_diagram() # needs sage.graphs
403
+ O---O---O
404
+ 1 2 3
405
+ A3
406
+ """
407
+ return self.cartan_type().dynkin_diagram()
408
+
409
+ @cached_method
410
+ def cartan_matrix(self):
411
+ """
412
+ EXAMPLES::
413
+
414
+ sage: RootSystem(['A',3]).cartan_matrix() # needs sage.graphs
415
+ [ 2 -1 0]
416
+ [-1 2 -1]
417
+ [ 0 -1 2]
418
+ """
419
+ return self.cartan_type().cartan_matrix()
420
+
421
+ @cached_method
422
+ def index_set(self):
423
+ """
424
+ EXAMPLES::
425
+
426
+ sage: RootSystem(['A',3]).index_set()
427
+ (1, 2, 3)
428
+ """
429
+ return self.cartan_type().index_set()
430
+
431
+ @cached_method
432
+ def is_finite(self):
433
+ """
434
+ Return ``True`` if ``self`` is a finite root system.
435
+
436
+ EXAMPLES::
437
+
438
+ sage: RootSystem(["A",3]).is_finite()
439
+ True
440
+ sage: RootSystem(["A",3,1]).is_finite()
441
+ False
442
+ """
443
+ return self.cartan_type().is_finite()
444
+
445
+ @cached_method
446
+ def is_irreducible(self):
447
+ """
448
+ Return ``True`` if ``self`` is an irreducible root system.
449
+
450
+ EXAMPLES::
451
+
452
+ sage: RootSystem(['A', 3]).is_irreducible()
453
+ True
454
+ sage: RootSystem("A2xB2").is_irreducible()
455
+ False
456
+ """
457
+ return self.cartan_type().is_irreducible()
458
+
459
+ def root_lattice(self):
460
+ """
461
+ Return the root lattice associated to ``self``.
462
+
463
+ EXAMPLES::
464
+
465
+ sage: RootSystem(['A',3]).root_lattice()
466
+ Root lattice of the Root system of type ['A', 3]
467
+ """
468
+ return self.root_space(ZZ)
469
+
470
+ @cached_method
471
+ def root_space(self, base_ring=QQ):
472
+ """
473
+ Return the root space associated to ``self``.
474
+
475
+ EXAMPLES::
476
+
477
+ sage: RootSystem(['A',3]).root_space()
478
+ Root space over the Rational Field of the Root system of type ['A', 3]
479
+ """
480
+ return RootSpace(self, base_ring)
481
+
482
+ def root_poset(self, restricted=False, facade=False):
483
+ r"""
484
+ Return the (restricted) root poset associated to ``self``.
485
+
486
+ The elements are given by the positive roots (resp. non-simple, positive roots), and
487
+ `\alpha \leq \beta` iff `\beta - \alpha` is a nonnegative linear combination of simple roots.
488
+
489
+ INPUT:
490
+
491
+ - ``restricted`` -- boolean (default: ``False``); if ``True``, only
492
+ non-simple roots are considered
493
+ - ``facade`` -- boolean (default: ``False``); passes facade option to
494
+ the poset generator
495
+
496
+ EXAMPLES::
497
+
498
+ sage: Phi = RootSystem(['A',2]).root_poset(); Phi # needs sage.graphs
499
+ Finite poset containing 3 elements
500
+ sage: sorted(Phi.cover_relations(), key=str) # needs sage.graphs
501
+ [[alpha[1], alpha[1] + alpha[2]], [alpha[2], alpha[1] + alpha[2]]]
502
+
503
+ sage: Phi = RootSystem(['A',3]).root_poset(restricted=True); Phi # needs sage.graphs
504
+ Finite poset containing 3 elements
505
+ sage: sorted(Phi.cover_relations(), key=str) # needs sage.graphs
506
+ [[alpha[1] + alpha[2], alpha[1] + alpha[2] + alpha[3]],
507
+ [alpha[2] + alpha[3], alpha[1] + alpha[2] + alpha[3]]]
508
+
509
+ sage: Phi = RootSystem(['B',2]).root_poset(); Phi # needs sage.graphs
510
+ Finite poset containing 4 elements
511
+ sage: Phi.cover_relations() # needs sage.graphs
512
+ [[alpha[2], alpha[1] + alpha[2]], [alpha[1], alpha[1] + alpha[2]],
513
+ [alpha[1] + alpha[2], alpha[1] + 2*alpha[2]]]
514
+ """
515
+ return self.root_lattice().root_poset(restricted=restricted, facade=facade)
516
+
517
+ def coroot_lattice(self):
518
+ """
519
+ Return the coroot lattice associated to ``self``.
520
+
521
+ EXAMPLES::
522
+
523
+ sage: RootSystem(['A',3]).coroot_lattice()
524
+ Coroot lattice of the Root system of type ['A', 3]
525
+ """
526
+ return self.dual.root_lattice()
527
+
528
+ def coroot_space(self, base_ring=QQ):
529
+ """
530
+ Return the coroot space associated to ``self``.
531
+
532
+ EXAMPLES::
533
+
534
+ sage: RootSystem(['A',3]).coroot_space()
535
+ Coroot space over the Rational Field of the Root system of type ['A', 3]
536
+ """
537
+ return self.dual.root_space(base_ring)
538
+
539
+ @cached_method
540
+ def weight_lattice(self, extended=False):
541
+ """
542
+ Return the weight lattice associated to ``self``.
543
+
544
+ .. SEEALSO::
545
+
546
+ - :meth:`weight_space`
547
+ - :meth:`coweight_space`, :meth:`coweight_lattice`
548
+ - :class:`~sage.combinat.root_system.WeightSpace`
549
+
550
+ EXAMPLES::
551
+
552
+ sage: RootSystem(['A',3]).weight_lattice()
553
+ Weight lattice of the Root system of type ['A', 3]
554
+
555
+ sage: RootSystem(['A',3,1]).weight_space(extended=True)
556
+ Extended weight space over the Rational Field
557
+ of the Root system of type ['A', 3, 1]
558
+ """
559
+ return WeightSpace(self, ZZ, extended=extended)
560
+
561
+ @cached_method
562
+ def weight_space(self, base_ring=QQ, extended=False):
563
+ """
564
+ Return the weight space associated to ``self``.
565
+
566
+ .. SEEALSO::
567
+
568
+ - :meth:`weight_lattice`
569
+ - :meth:`coweight_space`, :meth:`coweight_lattice`
570
+ - :class:`~sage.combinat.root_system.WeightSpace`
571
+
572
+ EXAMPLES::
573
+
574
+ sage: RootSystem(['A',3]).weight_space()
575
+ Weight space over the Rational Field of the Root system of type ['A', 3]
576
+
577
+ sage: RootSystem(['A',3,1]).weight_space(extended=True)
578
+ Extended weight space over the Rational Field
579
+ of the Root system of type ['A', 3, 1]
580
+ """
581
+ return WeightSpace(self, base_ring, extended=extended)
582
+
583
+ def coweight_lattice(self, extended=False):
584
+ """
585
+ Return the coweight lattice associated to ``self``.
586
+
587
+ This is the weight lattice of the dual root system.
588
+
589
+ .. SEEALSO::
590
+
591
+ - :meth:`coweight_space`
592
+ - :meth:`weight_space`, :meth:`weight_lattice`
593
+ - :class:`~sage.combinat.root_system.WeightSpace`
594
+
595
+ EXAMPLES::
596
+
597
+ sage: RootSystem(['A',3]).coweight_lattice()
598
+ Coweight lattice of the Root system of type ['A', 3]
599
+
600
+ sage: RootSystem(['A',3,1]).coweight_lattice(extended=True)
601
+ Extended coweight lattice of the Root system of type ['A', 3, 1]
602
+ """
603
+ return self.dual.weight_lattice(extended=extended)
604
+
605
+ def coweight_space(self, base_ring=QQ, extended=False):
606
+ """
607
+ Return the coweight space associated to ``self``.
608
+
609
+ This is the weight space of the dual root system.
610
+
611
+ .. SEEALSO::
612
+
613
+ - :meth:`coweight_lattice`
614
+ - :meth:`weight_space`, :meth:`weight_lattice`
615
+ - :class:`~sage.combinat.root_system.WeightSpace`
616
+
617
+ EXAMPLES::
618
+
619
+ sage: RootSystem(['A',3]).coweight_space()
620
+ Coweight space over the Rational Field of the Root system of type ['A', 3]
621
+
622
+ sage: RootSystem(['A',3,1]).coweight_space(extended=True)
623
+ Extended coweight space over the Rational Field
624
+ of the Root system of type ['A', 3, 1]
625
+ """
626
+ return self.dual.weight_space(base_ring, extended=extended)
627
+
628
+ def ambient_lattice(self):
629
+ r"""
630
+ Return the ambient lattice for this root_system.
631
+
632
+ This is the ambient space, over `\ZZ`.
633
+
634
+ .. SEEALSO::
635
+
636
+ - :meth:`ambient_space`
637
+ - :meth:`root_lattice`
638
+ - :meth:`weight_lattice`
639
+
640
+ EXAMPLES::
641
+
642
+ sage: RootSystem(['A',4]).ambient_lattice()
643
+ Ambient lattice of the Root system of type ['A', 4]
644
+ sage: RootSystem(['A',4,1]).ambient_lattice()
645
+ Ambient lattice of the Root system of type ['A', 4, 1]
646
+
647
+ Except in type A, only an ambient space can be realized::
648
+
649
+ sage: RootSystem(['B',4]).ambient_lattice()
650
+ sage: RootSystem(['C',4]).ambient_lattice()
651
+ sage: RootSystem(['D',4]).ambient_lattice()
652
+ sage: RootSystem(['E',6]).ambient_lattice()
653
+ sage: RootSystem(['F',4]).ambient_lattice()
654
+ sage: RootSystem(['G',2]).ambient_lattice()
655
+ """
656
+ return self.ambient_space(ZZ)
657
+
658
+ @cached_method
659
+ def ambient_space(self, base_ring=QQ):
660
+ r"""
661
+ Return the usual ambient space for this root_system.
662
+
663
+ INPUT:
664
+
665
+ - ``base_ring`` -- a base ring (default: `\QQ`)
666
+
667
+ This is a ``base_ring``-module, endowed with its canonical
668
+ Euclidean scalar product, which admits simultaneous embeddings
669
+ into the weight and the coweight lattice, and therefore the
670
+ root and the coroot lattice, and preserves scalar products
671
+ between elements of the coroot lattice and elements of the
672
+ root or weight lattice (and dually).
673
+
674
+ There is no mechanical way to define the ambient space just
675
+ from the Cartan matrix. Instead it is constructed from hard
676
+ coded type by type data, according to the usual Bourbaki
677
+ conventions. Such data is provided for all the finite
678
+ (crystallographic) types. From this data, ambient spaces can be
679
+ built as well for dual types, reducible types and affine
680
+ types. When no data is available, or if the base ring is not
681
+ large enough, None is returned.
682
+
683
+ .. WARNING:: for affine types
684
+
685
+ .. SEEALSO::
686
+
687
+ - The section on ambient spaces in :class:`RootSystem`
688
+ - :meth:`ambient_lattice`
689
+ - :class:`~sage.combinat.root_system.ambient_space.AmbientSpace`
690
+ - :class:`~sage.combinat.root_system.ambient_space.type_affine.AmbientSpace`
691
+ - :meth:`root_space`
692
+ - :meth:`weight:space`
693
+
694
+ EXAMPLES::
695
+
696
+ sage: RootSystem(['A',4]).ambient_space()
697
+ Ambient space of the Root system of type ['A', 4]
698
+
699
+ ::
700
+
701
+ sage: RootSystem(['B',4]).ambient_space()
702
+ Ambient space of the Root system of type ['B', 4]
703
+
704
+ ::
705
+
706
+ sage: RootSystem(['C',4]).ambient_space()
707
+ Ambient space of the Root system of type ['C', 4]
708
+
709
+ ::
710
+
711
+ sage: RootSystem(['D',4]).ambient_space()
712
+ Ambient space of the Root system of type ['D', 4]
713
+
714
+ ::
715
+
716
+ sage: RootSystem(['E',6]).ambient_space()
717
+ Ambient space of the Root system of type ['E', 6]
718
+
719
+ ::
720
+
721
+ sage: RootSystem(['F',4]).ambient_space()
722
+ Ambient space of the Root system of type ['F', 4]
723
+
724
+ ::
725
+
726
+ sage: RootSystem(['G',2]).ambient_space()
727
+ Ambient space of the Root system of type ['G', 2]
728
+
729
+ An alternative base ring can be provided as an option::
730
+
731
+ sage: e = RootSystem(['B',3]).ambient_space(RR)
732
+ sage: TestSuite(e).run() # needs sage.graphs
733
+
734
+ It should contain the smallest ring over which the ambient
735
+ space can be defined (`\ZZ` in type `A` or `\QQ` otherwise).
736
+ Otherwise ``None`` is returned::
737
+
738
+ sage: RootSystem(['B',2]).ambient_space(ZZ)
739
+
740
+ The base ring should also be totally ordered. In practice,
741
+ only `\ZZ` and `\QQ` are really supported at this point, but
742
+ you are welcome to experiment::
743
+
744
+ sage: e = RootSystem(['G',2]).ambient_space(RR)
745
+ sage: TestSuite(e).run() # needs sage.graphs
746
+ Failure in _test_root_lattice_realization:
747
+ Traceback (most recent call last):
748
+ ...
749
+ AssertionError: 2.00000000000000 != 2.00000000000000
750
+ ------------------------------------------------------------
751
+ The following tests failed: _test_root_lattice_realization
752
+ """
753
+ if not hasattr(self.cartan_type(),"AmbientSpace"):
754
+ return None
755
+ AmbientSpace = self.cartan_type().AmbientSpace
756
+ if not base_ring.has_coerce_map_from(AmbientSpace.smallest_base_ring(self.cartan_type())):
757
+ return None
758
+ return AmbientSpace(self, base_ring)
759
+
760
+ def coambient_space(self, base_ring=QQ):
761
+ r"""
762
+ Return the coambient space for this root system.
763
+
764
+ This is the ambient space of the dual root system.
765
+
766
+ .. SEEALSO::
767
+
768
+ - :meth:`ambient_space`
769
+
770
+ EXAMPLES::
771
+
772
+ sage: L = RootSystem(["B",2]).ambient_space(); L
773
+ Ambient space of the Root system of type ['B', 2]
774
+ sage: coL = RootSystem(["B",2]).coambient_space(); coL
775
+ Coambient space of the Root system of type ['B', 2]
776
+
777
+ The roots and coroots are interchanged::
778
+
779
+ sage: coL.simple_roots()
780
+ Finite family {1: (1, -1), 2: (0, 2)}
781
+ sage: L.simple_coroots()
782
+ Finite family {1: (1, -1), 2: (0, 2)}
783
+
784
+ sage: coL.simple_coroots()
785
+ Finite family {1: (1, -1), 2: (0, 1)}
786
+ sage: L.simple_roots()
787
+ Finite family {1: (1, -1), 2: (0, 1)}
788
+ """
789
+ return self.dual.ambient_space(base_ring)
790
+
791
+ def coxeter_number(self):
792
+ """
793
+ Return the Coxeter number of an irreducible finite root system.
794
+
795
+ .. SEEALSO::
796
+
797
+ :meth:`~sage.combinat.root_system.cartan_type.CartanType_standard_finite.coxeter_number`.
798
+
799
+ EXAMPLES::
800
+
801
+ sage: rt = RootSystem(['C', 5])
802
+ sage: rt.coxeter_number()
803
+ 10
804
+ """
805
+ # Check if RootSystem is finite and irreducible
806
+ if not (self.is_finite() and self.is_irreducible()):
807
+ raise ValueError("the Coxeter number is defined only for finite and irreducible root systems")
808
+ # Hand over to CartanType method
809
+ return self._cartan_type.coxeter_number()
810
+
811
+ def dual_coxeter_number(self):
812
+ """
813
+ Return the dual Coxeter number of a irreducible finite root system.
814
+
815
+ The dual Coxeter number is equal to 1 plus the sum of the coefficients
816
+ of simple roots in the highest short root of the dual root system.
817
+
818
+ .. SEEALSO:: :meth:`~sage.combinat.root_system.cartan_type.CartanType_standard_finite.dual_coxeter_number`
819
+
820
+ EXAMPLES::
821
+
822
+ sage: rt = RootSystem(['C', 5])
823
+ sage: rt.dual_coxeter_number()
824
+ 6
825
+
826
+ The dual Coxeter number is not the same concept as the Coxeter number
827
+ of the dual root system::
828
+
829
+ sage: rt.dual
830
+ Dual of root system of type ['C', 5]
831
+ sage: rt.dual.coxeter_number()
832
+ 10
833
+ """
834
+ # Check if RootSystem is finite and irreducible
835
+ if not (self.is_finite() and self.is_irreducible()):
836
+ raise ValueError("the dual Coxeter number is defined only for finite and irreducible root systems")
837
+ # Hand over to CartanType method
838
+ return self._cartan_type.dual_coxeter_number()
839
+
840
+
841
+ def WeylDim(ct, coeffs):
842
+ """
843
+ The Weyl Dimension Formula.
844
+
845
+ INPUT:
846
+
847
+ - ``ct`` -- a Cartan type
848
+
849
+ - ``coeffs`` -- list of nonnegative integers
850
+
851
+ The length of the list must equal the rank type[1]. A dominant
852
+ weight hwv is constructed by summing the fundamental weights with
853
+ coefficients from this list. The dimension of the irreducible
854
+ representation of the semisimple complex Lie algebra with highest
855
+ weight vector hwv is returned.
856
+
857
+ EXAMPLES:
858
+
859
+ For `SO(7)`, the Cartan type is `B_3`, so::
860
+
861
+ sage: WeylDim(['B',3],[1,0,0]) # standard representation of SO(7)
862
+ 7
863
+ sage: WeylDim(['B',3],[0,1,0]) # exterior square
864
+ 21
865
+ sage: WeylDim(['B',3],[0,0,1]) # spin representation of spin(7)
866
+ 8
867
+ sage: WeylDim(['B',3],[1,0,1]) # sum of the first and third fundamental weights
868
+ 48
869
+ sage: [WeylDim(['F',4],x) for x in ([1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1])]
870
+ [52, 1274, 273, 26]
871
+ sage: [WeylDim(['E', 6], x)
872
+ ....: for x in ([0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1],
873
+ ....: [0, 0, 0, 0, 0, 2], [0, 0, 0, 0, 1, 0], [0, 0, 1, 0, 0, 0],
874
+ ....: [1, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 1], [2, 0, 0, 0, 0, 0])]
875
+ [1, 78, 27, 351, 351, 351, 27, 650, 351]
876
+ """
877
+ ct = CartanType(ct)
878
+ lattice = RootSystem(ct).ambient_space()
879
+ rank = ct.rank()
880
+ fw = lattice.fundamental_weights()
881
+ hwv = lattice.sum(coeffs[i]*fw[i+1] for i in range(min(rank, len(coeffs))))
882
+ return lattice.weyl_dimension(hwv)