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,683 @@
1
+ # sage_setup: distribution = sagemath-modules
2
+ # sage.doctest: needs sage.graphs
3
+ """
4
+ Examples of Lie Algebras
5
+
6
+ There are the following examples of Lie algebras:
7
+
8
+ - A rather comprehensive family of 3-dimensional Lie algebras
9
+ - The Lie algebra of affine transformations of the line
10
+ - All abelian Lie algebras on free modules
11
+ - The Lie algebra of upper triangular matrices
12
+ - The Lie algebra of strictly upper triangular matrices
13
+ - The symplectic derivation Lie algebra
14
+ - The rank two Heisenberg Virasoro algebra
15
+
16
+ See also
17
+ :class:`sage.algebras.lie_algebras.virasoro.LieAlgebraRegularVectorFields`
18
+ and
19
+ :class:`sage.algebras.lie_algebras.virasoro.VirasoroAlgebra` for
20
+ other examples.
21
+
22
+ AUTHORS:
23
+
24
+ - Travis Scrimshaw (07-15-2013): Initial implementation
25
+ """
26
+ # ****************************************************************************
27
+ # Copyright (C) 2013-2017 Travis Scrimshaw <tcscrims at gmail.com>
28
+ #
29
+ # This program is free software: you can redistribute it and/or modify
30
+ # it under the terms of the GNU General Public License as published by
31
+ # the Free Software Foundation, either version 2 of the License, or
32
+ # (at your option) any later version.
33
+ # https://www.gnu.org/licenses/
34
+ # ****************************************************************************
35
+
36
+ from sage.algebras.lie_algebras.virasoro import VirasoroAlgebra
37
+ from sage.algebras.lie_algebras.rank_two_heisenberg_virasoro import RankTwoHeisenbergVirasoro
38
+ from sage.algebras.lie_algebras.symplectic_derivation import SymplecticDerivationLieAlgebra as SymplecticDerivation
39
+ from sage.algebras.lie_algebras.onsager import OnsagerAlgebra
40
+ from sage.algebras.lie_algebras.onsager import OnsagerAlgebraACE as AlternatingCentralExtensionOnsagerAlgebra
41
+ from sage.algebras.lie_algebras.affine_lie_algebra import AffineLieAlgebra as Affine
42
+ from sage.algebras.lie_algebras.classical_lie_algebra import gl
43
+ from sage.algebras.lie_algebras.classical_lie_algebra import ClassicalMatrixLieAlgebra as ClassicalMatrix
44
+
45
+
46
+ # the next 6 lines are here to silence pyflakes warnings
47
+ assert VirasoroAlgebra
48
+ assert RankTwoHeisenbergVirasoro
49
+ assert OnsagerAlgebra
50
+ assert SymplecticDerivation
51
+ assert Affine
52
+ assert gl
53
+ assert ClassicalMatrix
54
+
55
+
56
+ def three_dimensional(R, a, b, c, d, names=['X', 'Y', 'Z']):
57
+ r"""
58
+ The 3-dimensional Lie algebra over a given commutative ring `R`
59
+ with basis `\{X, Y, Z\}` subject to the relations:
60
+
61
+ .. MATH::
62
+
63
+ [X, Y] = aZ + dY, \quad [Y, Z] = bX, \quad [Z, X] = cY + dZ
64
+
65
+ where `a,b,c,d \in R`.
66
+
67
+ This is always a well-defined 3-dimensional Lie algebra, as can
68
+ be easily proven by computation.
69
+
70
+ EXAMPLES::
71
+
72
+ sage: L = lie_algebras.three_dimensional(QQ, 4, 1, -1, 2)
73
+ sage: L.structure_coefficients()
74
+ Finite family {('X', 'Y'): 2*Y + 4*Z, ('X', 'Z'): Y - 2*Z, ('Y', 'Z'): X}
75
+ sage: TestSuite(L).run()
76
+ sage: L = lie_algebras.three_dimensional(QQ, 1, 0, 0, 0)
77
+ sage: L.structure_coefficients()
78
+ Finite family {('X', 'Y'): Z}
79
+ sage: L = lie_algebras.three_dimensional(QQ, 0, 0, -1, -1)
80
+ sage: L.structure_coefficients()
81
+ Finite family {('X', 'Y'): -Y, ('X', 'Z'): Y + Z}
82
+ sage: L = lie_algebras.three_dimensional(QQ, 0, 1, 0, 0)
83
+ sage: L.structure_coefficients()
84
+ Finite family {('Y', 'Z'): X}
85
+ sage: lie_algebras.three_dimensional(QQ, 0, 0, 0, 0)
86
+ Abelian Lie algebra on 3 generators (X, Y, Z) over Rational Field
87
+ sage: Q.<a,b,c,d> = PolynomialRing(QQ)
88
+ sage: L = lie_algebras.three_dimensional(Q, a, b, c, d)
89
+ sage: L.structure_coefficients()
90
+ Finite family {('X', 'Y'): d*Y + a*Z, ('X', 'Z'): -c*Y - d*Z, ('Y', 'Z'): b*X}
91
+ sage: TestSuite(L).run()
92
+ """
93
+ if isinstance(names, str):
94
+ names = names.split(',')
95
+ X = names[0]
96
+ Y = names[1]
97
+ Z = names[2]
98
+ from sage.algebras.lie_algebras.structure_coefficients import LieAlgebraWithStructureCoefficients
99
+ s_coeff = {(X,Y): {Z:a, Y:d}, (Y,Z): {X:b}, (Z,X): {Y:c, Z:d}}
100
+ return LieAlgebraWithStructureCoefficients(R, s_coeff, tuple(names))
101
+
102
+
103
+ def cross_product(R, names=['X', 'Y', 'Z']):
104
+ r"""
105
+ The Lie algebra of `\RR^3` defined by the usual cross product
106
+ `\times`.
107
+
108
+ EXAMPLES::
109
+
110
+ sage: L = lie_algebras.cross_product(QQ)
111
+ sage: L.structure_coefficients()
112
+ Finite family {('X', 'Y'): Z, ('X', 'Z'): -Y, ('Y', 'Z'): X}
113
+ sage: TestSuite(L).run()
114
+ """
115
+ L = three_dimensional(R, 1, 1, 1, 0, names=names)
116
+ L.rename("Lie algebra of RR^3 under cross product over {}".format(R))
117
+ return L
118
+
119
+
120
+ def three_dimensional_by_rank(R, n, a=None, names=['X', 'Y', 'Z']):
121
+ r"""
122
+ Return a 3-dimensional Lie algebra of rank ``n``, where `0 \leq n \leq 3`.
123
+
124
+ Here, the *rank* of a Lie algebra `L` is defined as the dimension
125
+ of its derived subalgebra `[L, L]`. (We are assuming that `R` is
126
+ a field of characteristic `0`; otherwise the Lie algebras
127
+ constructed by this function are still well-defined but no longer
128
+ might have the correct ranks.) This is not to be confused with
129
+ the other standard definition of a rank (namely, as the
130
+ dimension of a Cartan subalgebra, when `L` is semisimple).
131
+
132
+ INPUT:
133
+
134
+ - ``R`` -- the base ring
135
+ - ``n`` -- the rank
136
+ - ``a`` -- the deformation parameter (used for `n = 2`); this should
137
+ be a nonzero element of `R` in order for the resulting Lie
138
+ algebra to actually have the right rank(?)
139
+ - ``names`` -- (optional) the generator names
140
+
141
+ EXAMPLES::
142
+
143
+ sage: lie_algebras.three_dimensional_by_rank(QQ, 0)
144
+ Abelian Lie algebra on 3 generators (X, Y, Z) over Rational Field
145
+ sage: L = lie_algebras.three_dimensional_by_rank(QQ, 1)
146
+ sage: L.structure_coefficients()
147
+ Finite family {('Y', 'Z'): X}
148
+ sage: L = lie_algebras.three_dimensional_by_rank(QQ, 2, 4)
149
+ sage: L.structure_coefficients()
150
+ Finite family {('X', 'Y'): Y, ('X', 'Z'): Y + Z}
151
+ sage: L = lie_algebras.three_dimensional_by_rank(QQ, 2, 0)
152
+ sage: L.structure_coefficients()
153
+ Finite family {('X', 'Y'): Y}
154
+ sage: lie_algebras.three_dimensional_by_rank(QQ, 3)
155
+ sl2 over Rational Field
156
+ """
157
+ if isinstance(names, str):
158
+ names = names.split(',')
159
+ names = tuple(names)
160
+
161
+ if n == 0:
162
+ from sage.algebras.lie_algebras.abelian import AbelianLieAlgebra
163
+ return AbelianLieAlgebra(R, names=names)
164
+
165
+ if n == 1:
166
+ L = three_dimensional(R, 0, 1, 0, 0, names=names) # Strictly upper triangular matrices
167
+ L.rename("Lie algebra of 3x3 strictly upper triangular matrices over {}".format(R))
168
+ return L
169
+
170
+ if n == 2:
171
+ if a is None:
172
+ raise ValueError("the parameter 'a' must be specified")
173
+ X = names[0]
174
+ Y = names[1]
175
+ Z = names[2]
176
+ from sage.algebras.lie_algebras.structure_coefficients import LieAlgebraWithStructureCoefficients
177
+ if a == 0:
178
+ s_coeff = {(X,Y): {Y:R.one()}, (X,Z): {Y:R(a)}}
179
+ # Why use R(a) here if R == 0 ? Also this has rank 1.
180
+ L = LieAlgebraWithStructureCoefficients(R, s_coeff, tuple(names))
181
+ L.rename("Degenerate Lie algebra of dimension 3 and rank 2 over {}".format(R))
182
+ else:
183
+ s_coeff = {(X,Y): {Y:R.one()}, (X,Z): {Y:R.one(), Z:R.one()}}
184
+ # a doesn't appear here :/
185
+ L = LieAlgebraWithStructureCoefficients(R, s_coeff, tuple(names))
186
+ L.rename("Lie algebra of dimension 3 and rank 2 with parameter {} over {}".format(a, R))
187
+ return L
188
+
189
+ if n == 3:
190
+ # return sl(R, 2)
191
+ from sage.algebras.lie_algebras.structure_coefficients import LieAlgebraWithStructureCoefficients
192
+ E = names[0]
193
+ F = names[1]
194
+ H = names[2]
195
+ s_coeff = {(E, F): {H: R.one()}, (H, E): {E: R(2)}, (H, F): {F: R(-2)}}
196
+ L = LieAlgebraWithStructureCoefficients(R, s_coeff, tuple(names))
197
+ L.rename("sl2 over {}".format(R))
198
+ return L
199
+
200
+ raise ValueError("invalid rank")
201
+
202
+
203
+ def affine_transformations_line(R, names=['X', 'Y'], representation='bracket'):
204
+ """
205
+ The Lie algebra of affine transformations of the line.
206
+
207
+ EXAMPLES::
208
+
209
+ sage: L = lie_algebras.affine_transformations_line(QQ)
210
+ sage: L.structure_coefficients()
211
+ Finite family {('X', 'Y'): Y}
212
+ sage: X, Y = L.lie_algebra_generators()
213
+ sage: L[X, Y] == Y
214
+ True
215
+ sage: TestSuite(L).run()
216
+ sage: L = lie_algebras.affine_transformations_line(QQ, representation='matrix')
217
+ sage: X, Y = L.lie_algebra_generators()
218
+ sage: L[X, Y] == Y
219
+ True
220
+ sage: TestSuite(L).run()
221
+ """
222
+ if isinstance(names, str):
223
+ names = names.split(',')
224
+ names = tuple(names)
225
+ if representation == 'matrix':
226
+ from sage.matrix.matrix_space import MatrixSpace
227
+ MS = MatrixSpace(R, 2, sparse=True)
228
+ one = R.one()
229
+ gens = tuple(MS({(0,i):one}) for i in range(2))
230
+ from sage.algebras.lie_algebras.lie_algebra import LieAlgebraFromAssociative
231
+ return LieAlgebraFromAssociative(MS, gens, names=names)
232
+ X = names[0]
233
+ Y = names[1]
234
+ from sage.algebras.lie_algebras.structure_coefficients import LieAlgebraWithStructureCoefficients
235
+ s_coeff = {(X,Y): {Y:R.one()}}
236
+ L = LieAlgebraWithStructureCoefficients(R, s_coeff, names=names)
237
+ L.rename("Lie algebra of affine transformations of a line over {}".format(R))
238
+ return L
239
+
240
+
241
+ def abelian(R, names=None, index_set=None):
242
+ """
243
+ Return the abelian Lie algebra generated by ``names``.
244
+
245
+ EXAMPLES::
246
+
247
+ sage: lie_algebras.abelian(QQ, 'x, y, z')
248
+ Abelian Lie algebra on 3 generators (x, y, z) over Rational Field
249
+ """
250
+ if isinstance(names, str):
251
+ names = names.split(',')
252
+ elif isinstance(names, (list, tuple)):
253
+ names = tuple(names)
254
+ elif names is not None:
255
+ if index_set is not None:
256
+ raise ValueError("invalid generator names")
257
+ index_set = names
258
+ names = None
259
+ from sage.rings.infinity import infinity
260
+ if (index_set is not None
261
+ and not isinstance(index_set, (list, tuple))
262
+ and index_set.cardinality() == infinity):
263
+ from sage.algebras.lie_algebras.abelian import InfiniteDimensionalAbelianLieAlgebra
264
+ return InfiniteDimensionalAbelianLieAlgebra(R, index_set=index_set)
265
+ from sage.algebras.lie_algebras.abelian import AbelianLieAlgebra
266
+ return AbelianLieAlgebra(R, names=names, index_set=index_set)
267
+
268
+
269
+ def Heisenberg(R, n, representation='structure'):
270
+ """
271
+ Return the rank ``n`` Heisenberg algebra in the given representation.
272
+
273
+ INPUT:
274
+
275
+ - ``R`` -- the base ring
276
+ - ``n`` -- the rank (a nonnegative integer or infinity)
277
+ - ``representation`` -- (default: ``'structure'``) can be one of the
278
+ following:
279
+
280
+ - ``'structure'`` -- using structure coefficients
281
+ - ``'matrix'`` -- using matrices
282
+
283
+ EXAMPLES::
284
+
285
+ sage: lie_algebras.Heisenberg(QQ, 3)
286
+ Heisenberg algebra of rank 3 over Rational Field
287
+ """
288
+ from sage.rings.infinity import infinity
289
+ if n == infinity:
290
+ from sage.algebras.lie_algebras.heisenberg import InfiniteHeisenbergAlgebra
291
+ return InfiniteHeisenbergAlgebra(R)
292
+ if representation == "matrix":
293
+ from sage.algebras.lie_algebras.heisenberg import HeisenbergAlgebra_matrix
294
+ return HeisenbergAlgebra_matrix(R, n)
295
+ from sage.algebras.lie_algebras.heisenberg import HeisenbergAlgebra
296
+ return HeisenbergAlgebra(R, n)
297
+
298
+
299
+ def regular_vector_fields(R):
300
+ r"""
301
+ Return the Lie algebra of regular vector fields on `\CC^{\times}`.
302
+
303
+ This is also known as the Witt (Lie) algebra.
304
+
305
+ .. SEEALSO::
306
+
307
+ :class:`~sage.algebras.lie_algebras.virasoro.LieAlgebraRegularVectorFields`
308
+
309
+ EXAMPLES::
310
+
311
+ sage: lie_algebras.regular_vector_fields(QQ)
312
+ The Lie algebra of regular vector fields over Rational Field
313
+ """
314
+ from sage.algebras.lie_algebras.virasoro import LieAlgebraRegularVectorFields
315
+ return LieAlgebraRegularVectorFields(R)
316
+
317
+
318
+ witt = regular_vector_fields
319
+
320
+
321
+ def pwitt(R, p):
322
+ r"""
323
+ Return the `p`-Witt Lie algebra over `R`.
324
+
325
+ INPUT:
326
+
327
+ - ``R`` -- the base ring
328
+ - ``p`` -- positive integer that is `0` in `R`
329
+
330
+ EXAMPLES::
331
+
332
+ sage: lie_algebras.pwitt(GF(5), 5)
333
+ The 5-Witt Lie algebra over Finite Field of size 5
334
+ """
335
+ from sage.algebras.lie_algebras.virasoro import WittLieAlgebra_charp
336
+ return WittLieAlgebra_charp(R, p)
337
+
338
+
339
+ def upper_triangular_matrices(R, n):
340
+ r"""
341
+ Return the Lie algebra `\mathfrak{b}_k` of `k \times k` upper
342
+ triangular matrices.
343
+
344
+ .. TODO::
345
+
346
+ This implementation does not know it is finite-dimensional and
347
+ does not know its basis.
348
+
349
+ EXAMPLES::
350
+
351
+ sage: L = lie_algebras.upper_triangular_matrices(QQ, 4); L
352
+ Lie algebra of 4-dimensional upper triangular matrices over Rational Field
353
+ sage: TestSuite(L).run()
354
+ sage: n0, n1, n2, t0, t1, t2, t3 = L.lie_algebra_generators()
355
+ sage: L[n2, t2] == -n2
356
+ True
357
+
358
+ TESTS::
359
+
360
+ sage: L = lie_algebras.upper_triangular_matrices(QQ, 1); L
361
+ Lie algebra of 1-dimensional upper triangular matrices over Rational Field
362
+ sage: TestSuite(L).run()
363
+ sage: L = lie_algebras.upper_triangular_matrices(QQ, 0); L
364
+ Lie algebra of 0-dimensional upper triangular matrices over Rational Field
365
+ sage: TestSuite(L).run()
366
+ """
367
+ from sage.matrix.matrix_space import MatrixSpace
368
+ from sage.algebras.lie_algebras.lie_algebra import LieAlgebraFromAssociative
369
+ MS = MatrixSpace(R, n, sparse=True)
370
+ one = R.one()
371
+ names = tuple('n{}'.format(i) for i in range(n-1))
372
+ names += tuple('t{}'.format(i) for i in range(n))
373
+ gens = [MS({(i,i+1):one}) for i in range(n-1)]
374
+ gens += [MS({(i,i):one}) for i in range(n)]
375
+ L = LieAlgebraFromAssociative(MS, gens, names=names)
376
+ L.rename("Lie algebra of {}-dimensional upper triangular matrices over {}".format(n, L.base_ring()))
377
+ return L
378
+
379
+
380
+ def strictly_upper_triangular_matrices(R, n):
381
+ r"""
382
+ Return the Lie algebra `\mathfrak{n}_k` of strictly `k \times k` upper
383
+ triangular matrices.
384
+
385
+ .. TODO::
386
+
387
+ This implementation does not know it is finite-dimensional and
388
+ does not know its basis.
389
+
390
+ EXAMPLES::
391
+
392
+ sage: L = lie_algebras.strictly_upper_triangular_matrices(QQ, 4); L
393
+ Lie algebra of 4-dimensional strictly upper triangular matrices over Rational Field
394
+ sage: TestSuite(L).run()
395
+ sage: n0, n1, n2 = L.lie_algebra_generators()
396
+ sage: L[n2, n1]
397
+ [ 0 0 0 0]
398
+ [ 0 0 0 -1]
399
+ [ 0 0 0 0]
400
+ [ 0 0 0 0]
401
+
402
+ TESTS::
403
+
404
+ sage: L = lie_algebras.strictly_upper_triangular_matrices(QQ, 1); L
405
+ Lie algebra of 1-dimensional strictly upper triangular matrices over Rational Field
406
+ sage: TestSuite(L).run()
407
+ sage: L = lie_algebras.strictly_upper_triangular_matrices(QQ, 0); L
408
+ Lie algebra of 0-dimensional strictly upper triangular matrices over Rational Field
409
+ sage: TestSuite(L).run()
410
+ """
411
+ from sage.matrix.matrix_space import MatrixSpace
412
+ from sage.algebras.lie_algebras.lie_algebra import LieAlgebraFromAssociative
413
+ MS = MatrixSpace(R, n, sparse=True)
414
+ one = R.one()
415
+ names = tuple('n{}'.format(i) for i in range(n-1))
416
+ gens = tuple(MS({(i,i+1): one}) for i in range(n-1))
417
+ L = LieAlgebraFromAssociative(MS, gens, names=names)
418
+ L.rename("Lie algebra of {}-dimensional strictly upper triangular matrices over {}".format(n, L.base_ring()))
419
+ return L
420
+
421
+ #####################################################################
422
+ # Classical Lie algebras
423
+
424
+
425
+ def sl(R, n, representation='bracket'):
426
+ r"""
427
+ The Lie algebra `\mathfrak{sl}_n`.
428
+
429
+ The Lie algebra `\mathfrak{sl}_n` is the type `A_{n-1}` Lie algebra
430
+ and is finite dimensional. As a matrix Lie algebra, it is given by
431
+ the set of all `n \times n` matrices with trace 0.
432
+
433
+ INPUT:
434
+
435
+ - ``R`` -- the base ring
436
+ - ``n`` -- the size of the matrix
437
+ - ``representation`` -- (default: ``'bracket'``) can be one of
438
+ the following:
439
+
440
+ * ``'bracket'`` -- use brackets and the Chevalley basis
441
+ * ``'matrix'`` -- use matrices
442
+
443
+ EXAMPLES:
444
+
445
+ We first construct `\mathfrak{sl}_2` using the Chevalley basis::
446
+
447
+ sage: sl2 = lie_algebras.sl(QQ, 2); sl2
448
+ Lie algebra of ['A', 1] in the Chevalley basis
449
+ sage: E,F,H = sl2.gens()
450
+ sage: E.bracket(F) == H
451
+ True
452
+ sage: H.bracket(E) == 2*E
453
+ True
454
+ sage: H.bracket(F) == -2*F
455
+ True
456
+
457
+ We now construct `\mathfrak{sl}_2` as a matrix Lie algebra::
458
+
459
+ sage: sl2 = lie_algebras.sl(QQ, 2, representation='matrix')
460
+ sage: E,F,H = sl2.gens()
461
+ sage: E.bracket(F) == H
462
+ True
463
+ sage: H.bracket(E) == 2*E
464
+ True
465
+ sage: H.bracket(F) == -2*F
466
+ True
467
+ """
468
+ if representation == 'bracket':
469
+ from sage.algebras.lie_algebras.classical_lie_algebra import LieAlgebraChevalleyBasis
470
+ return LieAlgebraChevalleyBasis(R, ['A', n-1])
471
+ if representation == 'matrix':
472
+ from sage.algebras.lie_algebras.classical_lie_algebra import sl as sl_matrix
473
+ return sl_matrix(R, n)
474
+ raise ValueError("invalid representation")
475
+
476
+
477
+ def su(R, n, representation='matrix'):
478
+ r"""
479
+ The Lie algebra `\mathfrak{su}_n`.
480
+
481
+ The Lie algebra `\mathfrak{su}_n` is the compact real form of the
482
+ type `A_{n-1}` Lie algebra and is finite-dimensional. As a matrix
483
+ Lie algebra, it is given by the set of all `n \times n` skew-Hermitian
484
+ matrices with trace 0.
485
+
486
+ INPUT:
487
+
488
+ - ``R`` -- the base ring
489
+ - ``n`` -- the size of the matrix
490
+ - ``representation`` -- (default: ``'matrix'``) can be one of
491
+ the following:
492
+
493
+ * ``'bracket'`` -- use brackets and the Chevalley basis
494
+ * ``'matrix'`` -- use matrices
495
+
496
+ EXAMPLES:
497
+
498
+ We construct `\mathfrak{su}_2`, where the default is as a
499
+ matrix Lie algebra::
500
+
501
+ sage: su2 = lie_algebras.su(QQ, 2)
502
+ sage: E,H,F = su2.basis()
503
+ sage: E.bracket(F) == 2*H
504
+ True
505
+ sage: H.bracket(E) == 2*F
506
+ True
507
+ sage: H.bracket(F) == -2*E
508
+ True
509
+
510
+ Since `\mathfrak{su}_n` is the same as the type `A_{n-1}` Lie algebra,
511
+ the bracket is the same as :func:`sl`::
512
+
513
+ sage: su2 = lie_algebras.su(QQ, 2, representation='bracket')
514
+ sage: su2 is lie_algebras.sl(QQ, 2, representation='bracket')
515
+ True
516
+ """
517
+ if representation == 'bracket':
518
+ from sage.algebras.lie_algebras.classical_lie_algebra import LieAlgebraChevalleyBasis
519
+ return LieAlgebraChevalleyBasis(R, ['A', n-1])
520
+ if representation == 'matrix':
521
+ from sage.algebras.lie_algebras.classical_lie_algebra import MatrixCompactRealForm
522
+ from sage.combinat.root_system.cartan_type import CartanType
523
+ return MatrixCompactRealForm(R, CartanType(['A', n-1]))
524
+ raise ValueError("invalid representation")
525
+
526
+
527
+ def so(R, n, representation='bracket'):
528
+ r"""
529
+ The Lie algebra `\mathfrak{so}_n`.
530
+
531
+ The Lie algebra `\mathfrak{so}_n` is the type `B_k` Lie algebra
532
+ if `n = 2k - 1` or the type `D_k` Lie algebra if `n = 2k`, and in
533
+ either case is finite dimensional.
534
+
535
+ A classical description of this as a matrix Lie algebra is
536
+ the set of all anti-symmetric `n \times n` matrices. However,
537
+ the implementation here uses a different bilinear form for the Lie
538
+ group and follows the description in Chapter 8 of [HK2002]_.
539
+ See :class:`sage.algebras.lie_algebras.classical_lie_algebra.so`
540
+ for a precise description.
541
+
542
+ INPUT:
543
+
544
+ - ``R`` -- the base ring
545
+ - ``n`` -- the size of the matrix
546
+ - ``representation`` -- (default: ``'bracket'``) can be one of
547
+ the following:
548
+
549
+ * ``'bracket'`` -- use brackets and the Chevalley basis
550
+ * ``'matrix'`` -- use matrices
551
+
552
+ EXAMPLES:
553
+
554
+ We first construct `\mathfrak{so}_5` using the Chevalley basis::
555
+
556
+ sage: so5 = lie_algebras.so(QQ, 5); so5
557
+ Lie algebra of ['B', 2] in the Chevalley basis
558
+ sage: E1,E2, F1,F2, H1,H2 = so5.gens()
559
+ sage: so5([E1, [E1, E2]])
560
+ 0
561
+ sage: X = so5([E2, [E2, E1]]); X
562
+ -2*E[alpha[1] + 2*alpha[2]]
563
+ sage: H1.bracket(X)
564
+ 0
565
+ sage: H2.bracket(X)
566
+ -4*E[alpha[1] + 2*alpha[2]]
567
+ sage: so5([H1, [E1, E2]])
568
+ -E[alpha[1] + alpha[2]]
569
+ sage: so5([H2, [E1, E2]])
570
+ 0
571
+
572
+ We do the same construction of `\mathfrak{so}_4` using the Chevalley
573
+ basis::
574
+
575
+ sage: so4 = lie_algebras.so(QQ, 4); so4
576
+ Lie algebra of ['D', 2] in the Chevalley basis
577
+ sage: E1,E2, F1,F2, H1,H2 = so4.gens()
578
+ sage: H1.bracket(E1)
579
+ 2*E[alpha[1]]
580
+ sage: H2.bracket(E1) == so4.zero()
581
+ True
582
+ sage: E1.bracket(E2) == so4.zero()
583
+ True
584
+
585
+ We now construct `\mathfrak{so}_4` as a matrix Lie algebra::
586
+
587
+ sage: sl2 = lie_algebras.sl(QQ, 2, representation='matrix')
588
+ sage: E1,E2, F1,F2, H1,H2 = so4.gens()
589
+ sage: H2.bracket(E1) == so4.zero()
590
+ True
591
+ sage: E1.bracket(E2) == so4.zero()
592
+ True
593
+ """
594
+ if representation == 'bracket':
595
+ from sage.algebras.lie_algebras.classical_lie_algebra import LieAlgebraChevalleyBasis
596
+ if n % 2 == 0:
597
+ return LieAlgebraChevalleyBasis(R, ['D', n//2])
598
+ else:
599
+ return LieAlgebraChevalleyBasis(R, ['B', (n-1)//2])
600
+ if representation == 'matrix':
601
+ from sage.algebras.lie_algebras.classical_lie_algebra import so as so_matrix
602
+ return so_matrix(R, n)
603
+ raise ValueError("invalid representation")
604
+
605
+
606
+ def sp(R, n, representation='bracket'):
607
+ r"""
608
+ The Lie algebra `\mathfrak{sp}_n`.
609
+
610
+ The Lie algebra `\mathfrak{sp}_n` where `n = 2k` is the type `C_k`
611
+ Lie algebra and is finite dimensional. As a matrix Lie algebra, it
612
+ is given by the set of all matrices `X` that satisfy the equation:
613
+
614
+ .. MATH::
615
+
616
+ X^T M - M X = 0
617
+
618
+ where
619
+
620
+ .. MATH::
621
+
622
+ M = \begin{pmatrix}
623
+ 0 & I_k \\
624
+ -I_k & 0
625
+ \end{pmatrix}.
626
+
627
+ This is the Lie algebra of type `C_k`.
628
+
629
+ INPUT:
630
+
631
+ - ``R`` -- the base ring
632
+ - ``n`` -- the size of the matrix
633
+ - ``representation`` -- (default: ``'bracket'``) can be one of
634
+ the following:
635
+
636
+ * ``'bracket'`` -- use brackets and the Chevalley basis
637
+ * ``'matrix'`` -- use matrices
638
+
639
+ EXAMPLES:
640
+
641
+ We first construct `\mathfrak{sp}_4` using the Chevalley basis::
642
+
643
+ sage: sp4 = lie_algebras.sp(QQ, 4); sp4
644
+ Lie algebra of ['C', 2] in the Chevalley basis
645
+ sage: E1,E2, F1,F2, H1,H2 = sp4.gens()
646
+ sage: sp4([E2, [E2, E1]])
647
+ 0
648
+ sage: X = sp4([E1, [E1, E2]]); X
649
+ 2*E[2*alpha[1] + alpha[2]]
650
+ sage: H1.bracket(X)
651
+ 4*E[2*alpha[1] + alpha[2]]
652
+ sage: H2.bracket(X)
653
+ 0
654
+ sage: sp4([H1, [E1, E2]])
655
+ 0
656
+ sage: sp4([H2, [E1, E2]])
657
+ -E[alpha[1] + alpha[2]]
658
+
659
+ We now construct `\mathfrak{sp}_4` as a matrix Lie algebra::
660
+
661
+ sage: sp4 = lie_algebras.sp(QQ, 4, representation='matrix'); sp4
662
+ Symplectic Lie algebra of rank 4 over Rational Field
663
+ sage: E1,E2, F1,F2, H1,H2 = sp4.gens()
664
+ sage: H1.bracket(E1)
665
+ [ 0 2 0 0]
666
+ [ 0 0 0 0]
667
+ [ 0 0 0 0]
668
+ [ 0 0 -2 0]
669
+ sage: sp4([E1, [E1, E2]])
670
+ [0 0 2 0]
671
+ [0 0 0 0]
672
+ [0 0 0 0]
673
+ [0 0 0 0]
674
+ """
675
+ if n % 2:
676
+ raise ValueError("n must be even")
677
+ if representation == 'bracket':
678
+ from sage.algebras.lie_algebras.classical_lie_algebra import LieAlgebraChevalleyBasis
679
+ return LieAlgebraChevalleyBasis(R, ['C', n//2])
680
+ if representation == 'matrix':
681
+ from sage.algebras.lie_algebras.classical_lie_algebra import sp as sp_matrix
682
+ return sp_matrix(R, n)
683
+ raise ValueError("invalid representation")