passagemath-modules 10.6.31rc3__cp314-cp314-musllinux_1_2_aarch64.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 (807) hide show
  1. passagemath_modules-10.6.31rc3.dist-info/METADATA +281 -0
  2. passagemath_modules-10.6.31rc3.dist-info/RECORD +807 -0
  3. passagemath_modules-10.6.31rc3.dist-info/WHEEL +5 -0
  4. passagemath_modules-10.6.31rc3.dist-info/top_level.txt +2 -0
  5. passagemath_modules.libs/libgcc_s-2d945d6c.so.1 +0 -0
  6. passagemath_modules.libs/libgfortran-67378ab2.so.5.0.0 +0 -0
  7. passagemath_modules.libs/libgmp-28992bcb.so.10.5.0 +0 -0
  8. passagemath_modules.libs/libgsl-23768756.so.28.0.0 +0 -0
  9. passagemath_modules.libs/libmpc-7897025b.so.3.3.1 +0 -0
  10. passagemath_modules.libs/libmpfr-e34bb864.so.6.2.1 +0 -0
  11. passagemath_modules.libs/libopenblasp-r0-503f0c35.3.29.so +0 -0
  12. sage/algebras/all__sagemath_modules.py +20 -0
  13. sage/algebras/catalog.py +148 -0
  14. sage/algebras/clifford_algebra.py +3107 -0
  15. sage/algebras/clifford_algebra_element.cpython-314-aarch64-linux-musl.so +0 -0
  16. sage/algebras/clifford_algebra_element.pxd +16 -0
  17. sage/algebras/clifford_algebra_element.pyx +997 -0
  18. sage/algebras/commutative_dga.py +4252 -0
  19. sage/algebras/exterior_algebra_groebner.cpython-314-aarch64-linux-musl.so +0 -0
  20. sage/algebras/exterior_algebra_groebner.pxd +55 -0
  21. sage/algebras/exterior_algebra_groebner.pyx +727 -0
  22. sage/algebras/finite_dimensional_algebras/all.py +2 -0
  23. sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra.py +1029 -0
  24. sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra_element.cpython-314-aarch64-linux-musl.so +0 -0
  25. sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra_element.pxd +12 -0
  26. sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra_element.pyx +706 -0
  27. sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra_ideal.py +196 -0
  28. sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra_morphism.py +255 -0
  29. sage/algebras/finite_gca.py +528 -0
  30. sage/algebras/group_algebra.py +232 -0
  31. sage/algebras/lie_algebras/abelian.py +197 -0
  32. sage/algebras/lie_algebras/affine_lie_algebra.py +1213 -0
  33. sage/algebras/lie_algebras/all.py +25 -0
  34. sage/algebras/lie_algebras/all__sagemath_modules.py +1 -0
  35. sage/algebras/lie_algebras/bch.py +177 -0
  36. sage/algebras/lie_algebras/bgg_dual_module.py +1184 -0
  37. sage/algebras/lie_algebras/bgg_resolution.py +232 -0
  38. sage/algebras/lie_algebras/center_uea.py +767 -0
  39. sage/algebras/lie_algebras/classical_lie_algebra.py +2516 -0
  40. sage/algebras/lie_algebras/examples.py +683 -0
  41. sage/algebras/lie_algebras/free_lie_algebra.py +973 -0
  42. sage/algebras/lie_algebras/heisenberg.py +820 -0
  43. sage/algebras/lie_algebras/lie_algebra.py +1562 -0
  44. sage/algebras/lie_algebras/lie_algebra_element.cpython-314-aarch64-linux-musl.so +0 -0
  45. sage/algebras/lie_algebras/lie_algebra_element.pxd +68 -0
  46. sage/algebras/lie_algebras/lie_algebra_element.pyx +2122 -0
  47. sage/algebras/lie_algebras/morphism.py +661 -0
  48. sage/algebras/lie_algebras/nilpotent_lie_algebra.py +457 -0
  49. sage/algebras/lie_algebras/onsager.py +1324 -0
  50. sage/algebras/lie_algebras/poincare_birkhoff_witt.py +816 -0
  51. sage/algebras/lie_algebras/quotient.py +462 -0
  52. sage/algebras/lie_algebras/rank_two_heisenberg_virasoro.py +355 -0
  53. sage/algebras/lie_algebras/representation.py +1040 -0
  54. sage/algebras/lie_algebras/structure_coefficients.py +459 -0
  55. sage/algebras/lie_algebras/subalgebra.py +967 -0
  56. sage/algebras/lie_algebras/symplectic_derivation.py +289 -0
  57. sage/algebras/lie_algebras/verma_module.py +1630 -0
  58. sage/algebras/lie_algebras/virasoro.py +1186 -0
  59. sage/algebras/octonion_algebra.cpython-314-aarch64-linux-musl.so +0 -0
  60. sage/algebras/octonion_algebra.pxd +20 -0
  61. sage/algebras/octonion_algebra.pyx +987 -0
  62. sage/algebras/orlik_solomon.py +907 -0
  63. sage/algebras/orlik_terao.py +779 -0
  64. sage/algebras/steenrod/all.py +7 -0
  65. sage/algebras/steenrod/steenrod_algebra.py +4258 -0
  66. sage/algebras/steenrod/steenrod_algebra_bases.py +1179 -0
  67. sage/algebras/steenrod/steenrod_algebra_misc.py +1167 -0
  68. sage/algebras/steenrod/steenrod_algebra_mult.py +954 -0
  69. sage/algebras/weyl_algebra.py +1126 -0
  70. sage/all__sagemath_modules.py +62 -0
  71. sage/calculus/all__sagemath_modules.py +19 -0
  72. sage/calculus/expr.py +205 -0
  73. sage/calculus/integration.cpython-314-aarch64-linux-musl.so +0 -0
  74. sage/calculus/integration.pyx +698 -0
  75. sage/calculus/interpolation.cpython-314-aarch64-linux-musl.so +0 -0
  76. sage/calculus/interpolation.pxd +13 -0
  77. sage/calculus/interpolation.pyx +387 -0
  78. sage/calculus/interpolators.cpython-314-aarch64-linux-musl.so +0 -0
  79. sage/calculus/interpolators.pyx +326 -0
  80. sage/calculus/ode.cpython-314-aarch64-linux-musl.so +0 -0
  81. sage/calculus/ode.pxd +5 -0
  82. sage/calculus/ode.pyx +610 -0
  83. sage/calculus/riemann.cpython-314-aarch64-linux-musl.so +0 -0
  84. sage/calculus/riemann.pyx +1521 -0
  85. sage/calculus/test_sympy.py +201 -0
  86. sage/calculus/transforms/all.py +7 -0
  87. sage/calculus/transforms/dft.py +844 -0
  88. sage/calculus/transforms/dwt.cpython-314-aarch64-linux-musl.so +0 -0
  89. sage/calculus/transforms/dwt.pxd +7 -0
  90. sage/calculus/transforms/dwt.pyx +160 -0
  91. sage/calculus/transforms/fft.cpython-314-aarch64-linux-musl.so +0 -0
  92. sage/calculus/transforms/fft.pxd +12 -0
  93. sage/calculus/transforms/fft.pyx +487 -0
  94. sage/calculus/wester.py +662 -0
  95. sage/coding/abstract_code.py +1108 -0
  96. sage/coding/ag_code.py +868 -0
  97. sage/coding/ag_code_decoders.cpython-314-aarch64-linux-musl.so +0 -0
  98. sage/coding/ag_code_decoders.pyx +2639 -0
  99. sage/coding/all.py +15 -0
  100. sage/coding/bch_code.py +494 -0
  101. sage/coding/binary_code.cpython-314-aarch64-linux-musl.so +0 -0
  102. sage/coding/binary_code.pxd +124 -0
  103. sage/coding/binary_code.pyx +4139 -0
  104. sage/coding/bounds_catalog.py +43 -0
  105. sage/coding/channel.py +819 -0
  106. sage/coding/channels_catalog.py +29 -0
  107. sage/coding/code_bounds.py +755 -0
  108. sage/coding/code_constructions.py +804 -0
  109. sage/coding/codes_catalog.py +111 -0
  110. sage/coding/cyclic_code.py +1329 -0
  111. sage/coding/databases.py +316 -0
  112. sage/coding/decoder.py +373 -0
  113. sage/coding/decoders_catalog.py +88 -0
  114. sage/coding/delsarte_bounds.py +709 -0
  115. sage/coding/encoder.py +390 -0
  116. sage/coding/encoders_catalog.py +64 -0
  117. sage/coding/extended_code.py +468 -0
  118. sage/coding/gabidulin_code.py +1058 -0
  119. sage/coding/golay_code.py +404 -0
  120. sage/coding/goppa_code.py +441 -0
  121. sage/coding/grs_code.py +2371 -0
  122. sage/coding/guava.py +107 -0
  123. sage/coding/guruswami_sudan/all.py +1 -0
  124. sage/coding/guruswami_sudan/gs_decoder.py +897 -0
  125. sage/coding/guruswami_sudan/interpolation.py +409 -0
  126. sage/coding/guruswami_sudan/utils.py +176 -0
  127. sage/coding/hamming_code.py +176 -0
  128. sage/coding/information_set_decoder.py +1032 -0
  129. sage/coding/kasami_codes.cpython-314-aarch64-linux-musl.so +0 -0
  130. sage/coding/kasami_codes.pyx +351 -0
  131. sage/coding/linear_code.py +3067 -0
  132. sage/coding/linear_code_no_metric.py +1354 -0
  133. sage/coding/linear_rank_metric.py +961 -0
  134. sage/coding/parity_check_code.py +353 -0
  135. sage/coding/punctured_code.py +719 -0
  136. sage/coding/reed_muller_code.py +999 -0
  137. sage/coding/self_dual_codes.py +942 -0
  138. sage/coding/source_coding/all.py +2 -0
  139. sage/coding/source_coding/huffman.py +553 -0
  140. sage/coding/subfield_subcode.py +423 -0
  141. sage/coding/two_weight_db.py +399 -0
  142. sage/combinat/all__sagemath_modules.py +7 -0
  143. sage/combinat/cartesian_product.py +347 -0
  144. sage/combinat/family.py +11 -0
  145. sage/combinat/free_module.py +1977 -0
  146. sage/combinat/root_system/all.py +147 -0
  147. sage/combinat/root_system/ambient_space.py +527 -0
  148. sage/combinat/root_system/associahedron.py +471 -0
  149. sage/combinat/root_system/braid_move_calculator.py +143 -0
  150. sage/combinat/root_system/braid_orbit.cpython-314-aarch64-linux-musl.so +0 -0
  151. sage/combinat/root_system/braid_orbit.pyx +144 -0
  152. sage/combinat/root_system/branching_rules.py +2301 -0
  153. sage/combinat/root_system/cartan_matrix.py +1245 -0
  154. sage/combinat/root_system/cartan_type.py +3069 -0
  155. sage/combinat/root_system/coxeter_group.py +162 -0
  156. sage/combinat/root_system/coxeter_matrix.py +1261 -0
  157. sage/combinat/root_system/coxeter_type.py +681 -0
  158. sage/combinat/root_system/dynkin_diagram.py +900 -0
  159. sage/combinat/root_system/extended_affine_weyl_group.py +2993 -0
  160. sage/combinat/root_system/fundamental_group.py +795 -0
  161. sage/combinat/root_system/hecke_algebra_representation.py +1203 -0
  162. sage/combinat/root_system/integrable_representations.py +1227 -0
  163. sage/combinat/root_system/non_symmetric_macdonald_polynomials.py +1965 -0
  164. sage/combinat/root_system/pieri_factors.py +1147 -0
  165. sage/combinat/root_system/plot.py +1615 -0
  166. sage/combinat/root_system/root_lattice_realization_algebras.py +1214 -0
  167. sage/combinat/root_system/root_lattice_realizations.py +4628 -0
  168. sage/combinat/root_system/root_space.py +487 -0
  169. sage/combinat/root_system/root_system.py +882 -0
  170. sage/combinat/root_system/type_A.py +348 -0
  171. sage/combinat/root_system/type_A_affine.py +227 -0
  172. sage/combinat/root_system/type_A_infinity.py +241 -0
  173. sage/combinat/root_system/type_B.py +347 -0
  174. sage/combinat/root_system/type_BC_affine.py +287 -0
  175. sage/combinat/root_system/type_B_affine.py +216 -0
  176. sage/combinat/root_system/type_C.py +317 -0
  177. sage/combinat/root_system/type_C_affine.py +188 -0
  178. sage/combinat/root_system/type_D.py +357 -0
  179. sage/combinat/root_system/type_D_affine.py +208 -0
  180. sage/combinat/root_system/type_E.py +641 -0
  181. sage/combinat/root_system/type_E_affine.py +231 -0
  182. sage/combinat/root_system/type_F.py +387 -0
  183. sage/combinat/root_system/type_F_affine.py +137 -0
  184. sage/combinat/root_system/type_G.py +293 -0
  185. sage/combinat/root_system/type_G_affine.py +132 -0
  186. sage/combinat/root_system/type_H.py +105 -0
  187. sage/combinat/root_system/type_I.py +110 -0
  188. sage/combinat/root_system/type_Q.py +150 -0
  189. sage/combinat/root_system/type_affine.py +509 -0
  190. sage/combinat/root_system/type_dual.py +704 -0
  191. sage/combinat/root_system/type_folded.py +301 -0
  192. sage/combinat/root_system/type_marked.py +748 -0
  193. sage/combinat/root_system/type_reducible.py +601 -0
  194. sage/combinat/root_system/type_relabel.py +730 -0
  195. sage/combinat/root_system/type_super_A.py +837 -0
  196. sage/combinat/root_system/weight_lattice_realizations.py +1188 -0
  197. sage/combinat/root_system/weight_space.py +639 -0
  198. sage/combinat/root_system/weyl_characters.py +2238 -0
  199. sage/crypto/__init__.py +4 -0
  200. sage/crypto/all.py +28 -0
  201. sage/crypto/block_cipher/all.py +7 -0
  202. sage/crypto/block_cipher/des.py +1065 -0
  203. sage/crypto/block_cipher/miniaes.py +2171 -0
  204. sage/crypto/block_cipher/present.py +909 -0
  205. sage/crypto/block_cipher/sdes.py +1527 -0
  206. sage/crypto/boolean_function.cpython-314-aarch64-linux-musl.so +0 -0
  207. sage/crypto/boolean_function.pxd +10 -0
  208. sage/crypto/boolean_function.pyx +1487 -0
  209. sage/crypto/cipher.py +78 -0
  210. sage/crypto/classical.py +3668 -0
  211. sage/crypto/classical_cipher.py +569 -0
  212. sage/crypto/cryptosystem.py +387 -0
  213. sage/crypto/key_exchange/all.py +7 -0
  214. sage/crypto/key_exchange/catalog.py +24 -0
  215. sage/crypto/key_exchange/diffie_hellman.py +323 -0
  216. sage/crypto/key_exchange/key_exchange_scheme.py +107 -0
  217. sage/crypto/lattice.py +312 -0
  218. sage/crypto/lfsr.py +295 -0
  219. sage/crypto/lwe.py +840 -0
  220. sage/crypto/mq/__init__.py +4 -0
  221. sage/crypto/mq/mpolynomialsystemgenerator.py +204 -0
  222. sage/crypto/mq/rijndael_gf.py +2345 -0
  223. sage/crypto/mq/sbox.py +7 -0
  224. sage/crypto/mq/sr.py +3344 -0
  225. sage/crypto/public_key/all.py +5 -0
  226. sage/crypto/public_key/blum_goldwasser.py +776 -0
  227. sage/crypto/sbox.cpython-314-aarch64-linux-musl.so +0 -0
  228. sage/crypto/sbox.pyx +2090 -0
  229. sage/crypto/sboxes.py +2090 -0
  230. sage/crypto/stream.py +390 -0
  231. sage/crypto/stream_cipher.py +297 -0
  232. sage/crypto/util.py +519 -0
  233. sage/ext/all__sagemath_modules.py +1 -0
  234. sage/ext/interpreters/__init__.py +1 -0
  235. sage/ext/interpreters/all__sagemath_modules.py +2 -0
  236. sage/ext/interpreters/wrapper_cc.cpython-314-aarch64-linux-musl.so +0 -0
  237. sage/ext/interpreters/wrapper_cc.pxd +30 -0
  238. sage/ext/interpreters/wrapper_cc.pyx +252 -0
  239. sage/ext/interpreters/wrapper_cdf.cpython-314-aarch64-linux-musl.so +0 -0
  240. sage/ext/interpreters/wrapper_cdf.pxd +26 -0
  241. sage/ext/interpreters/wrapper_cdf.pyx +245 -0
  242. sage/ext/interpreters/wrapper_rdf.cpython-314-aarch64-linux-musl.so +0 -0
  243. sage/ext/interpreters/wrapper_rdf.pxd +23 -0
  244. sage/ext/interpreters/wrapper_rdf.pyx +221 -0
  245. sage/ext/interpreters/wrapper_rr.cpython-314-aarch64-linux-musl.so +0 -0
  246. sage/ext/interpreters/wrapper_rr.pxd +28 -0
  247. sage/ext/interpreters/wrapper_rr.pyx +335 -0
  248. sage/geometry/all__sagemath_modules.py +5 -0
  249. sage/geometry/toric_lattice.py +1745 -0
  250. sage/geometry/toric_lattice_element.cpython-314-aarch64-linux-musl.so +0 -0
  251. sage/geometry/toric_lattice_element.pyx +432 -0
  252. sage/groups/abelian_gps/abelian_group.py +1925 -0
  253. sage/groups/abelian_gps/abelian_group_element.py +164 -0
  254. sage/groups/abelian_gps/all__sagemath_modules.py +5 -0
  255. sage/groups/abelian_gps/dual_abelian_group.py +421 -0
  256. sage/groups/abelian_gps/dual_abelian_group_element.py +179 -0
  257. sage/groups/abelian_gps/element_base.py +341 -0
  258. sage/groups/abelian_gps/values.py +488 -0
  259. sage/groups/additive_abelian/additive_abelian_group.py +476 -0
  260. sage/groups/additive_abelian/additive_abelian_wrapper.py +857 -0
  261. sage/groups/additive_abelian/all.py +4 -0
  262. sage/groups/additive_abelian/qmodnz.py +231 -0
  263. sage/groups/additive_abelian/qmodnz_element.py +349 -0
  264. sage/groups/affine_gps/affine_group.py +535 -0
  265. sage/groups/affine_gps/all.py +1 -0
  266. sage/groups/affine_gps/catalog.py +17 -0
  267. sage/groups/affine_gps/euclidean_group.py +246 -0
  268. sage/groups/affine_gps/group_element.py +562 -0
  269. sage/groups/all__sagemath_modules.py +12 -0
  270. sage/groups/galois_group.py +479 -0
  271. sage/groups/matrix_gps/all.py +4 -0
  272. sage/groups/matrix_gps/all__sagemath_modules.py +13 -0
  273. sage/groups/matrix_gps/catalog.py +26 -0
  274. sage/groups/matrix_gps/coxeter_group.py +927 -0
  275. sage/groups/matrix_gps/finitely_generated.py +487 -0
  276. sage/groups/matrix_gps/group_element.cpython-314-aarch64-linux-musl.so +0 -0
  277. sage/groups/matrix_gps/group_element.pxd +11 -0
  278. sage/groups/matrix_gps/group_element.pyx +431 -0
  279. sage/groups/matrix_gps/linear.py +440 -0
  280. sage/groups/matrix_gps/matrix_group.py +617 -0
  281. sage/groups/matrix_gps/named_group.py +296 -0
  282. sage/groups/matrix_gps/orthogonal.py +544 -0
  283. sage/groups/matrix_gps/symplectic.py +251 -0
  284. sage/groups/matrix_gps/unitary.py +436 -0
  285. sage/groups/misc_gps/all__sagemath_modules.py +1 -0
  286. sage/groups/misc_gps/argument_groups.py +1905 -0
  287. sage/groups/misc_gps/imaginary_groups.py +479 -0
  288. sage/groups/perm_gps/all__sagemath_modules.py +1 -0
  289. sage/groups/perm_gps/partn_ref/all__sagemath_modules.py +1 -0
  290. sage/groups/perm_gps/partn_ref/refinement_binary.cpython-314-aarch64-linux-musl.so +0 -0
  291. sage/groups/perm_gps/partn_ref/refinement_binary.pxd +41 -0
  292. sage/groups/perm_gps/partn_ref/refinement_binary.pyx +1167 -0
  293. sage/groups/perm_gps/partn_ref/refinement_matrices.cpython-314-aarch64-linux-musl.so +0 -0
  294. sage/groups/perm_gps/partn_ref/refinement_matrices.pxd +31 -0
  295. sage/groups/perm_gps/partn_ref/refinement_matrices.pyx +385 -0
  296. sage/homology/algebraic_topological_model.py +595 -0
  297. sage/homology/all.py +2 -0
  298. sage/homology/all__sagemath_modules.py +8 -0
  299. sage/homology/chain_complex.py +2148 -0
  300. sage/homology/chain_complex_homspace.py +165 -0
  301. sage/homology/chain_complex_morphism.py +629 -0
  302. sage/homology/chain_homotopy.py +604 -0
  303. sage/homology/chains.py +653 -0
  304. sage/homology/free_resolution.py +923 -0
  305. sage/homology/graded_resolution.py +567 -0
  306. sage/homology/hochschild_complex.py +756 -0
  307. sage/homology/homology_group.py +188 -0
  308. sage/homology/homology_morphism.py +422 -0
  309. sage/homology/homology_vector_space_with_basis.py +1454 -0
  310. sage/homology/koszul_complex.py +169 -0
  311. sage/homology/matrix_utils.py +205 -0
  312. sage/libs/all__sagemath_modules.py +1 -0
  313. sage/libs/gsl/__init__.py +1 -0
  314. sage/libs/gsl/airy.pxd +56 -0
  315. sage/libs/gsl/all.pxd +66 -0
  316. sage/libs/gsl/array.cpython-314-aarch64-linux-musl.so +0 -0
  317. sage/libs/gsl/array.pxd +5 -0
  318. sage/libs/gsl/array.pyx +102 -0
  319. sage/libs/gsl/bessel.pxd +208 -0
  320. sage/libs/gsl/blas.pxd +116 -0
  321. sage/libs/gsl/blas_types.pxd +34 -0
  322. sage/libs/gsl/block.pxd +52 -0
  323. sage/libs/gsl/chebyshev.pxd +37 -0
  324. sage/libs/gsl/clausen.pxd +12 -0
  325. sage/libs/gsl/combination.pxd +47 -0
  326. sage/libs/gsl/complex.pxd +151 -0
  327. sage/libs/gsl/coulomb.pxd +30 -0
  328. sage/libs/gsl/coupling.pxd +21 -0
  329. sage/libs/gsl/dawson.pxd +12 -0
  330. sage/libs/gsl/debye.pxd +24 -0
  331. sage/libs/gsl/dilog.pxd +14 -0
  332. sage/libs/gsl/eigen.pxd +46 -0
  333. sage/libs/gsl/elementary.pxd +12 -0
  334. sage/libs/gsl/ellint.pxd +48 -0
  335. sage/libs/gsl/elljac.pxd +8 -0
  336. sage/libs/gsl/erf.pxd +32 -0
  337. sage/libs/gsl/errno.pxd +26 -0
  338. sage/libs/gsl/exp.pxd +44 -0
  339. sage/libs/gsl/expint.pxd +44 -0
  340. sage/libs/gsl/fermi_dirac.pxd +44 -0
  341. sage/libs/gsl/fft.pxd +121 -0
  342. sage/libs/gsl/fit.pxd +50 -0
  343. sage/libs/gsl/gamma.pxd +94 -0
  344. sage/libs/gsl/gegenbauer.pxd +26 -0
  345. sage/libs/gsl/histogram.pxd +176 -0
  346. sage/libs/gsl/hyperg.pxd +52 -0
  347. sage/libs/gsl/integration.pxd +69 -0
  348. sage/libs/gsl/interp.pxd +109 -0
  349. sage/libs/gsl/laguerre.pxd +24 -0
  350. sage/libs/gsl/lambert.pxd +16 -0
  351. sage/libs/gsl/legendre.pxd +90 -0
  352. sage/libs/gsl/linalg.pxd +185 -0
  353. sage/libs/gsl/log.pxd +26 -0
  354. sage/libs/gsl/math.pxd +43 -0
  355. sage/libs/gsl/matrix.pxd +143 -0
  356. sage/libs/gsl/matrix_complex.pxd +130 -0
  357. sage/libs/gsl/min.pxd +67 -0
  358. sage/libs/gsl/monte.pxd +56 -0
  359. sage/libs/gsl/ntuple.pxd +32 -0
  360. sage/libs/gsl/odeiv.pxd +70 -0
  361. sage/libs/gsl/permutation.pxd +78 -0
  362. sage/libs/gsl/poly.pxd +40 -0
  363. sage/libs/gsl/pow_int.pxd +12 -0
  364. sage/libs/gsl/psi.pxd +28 -0
  365. sage/libs/gsl/qrng.pxd +29 -0
  366. sage/libs/gsl/random.pxd +257 -0
  367. sage/libs/gsl/rng.pxd +100 -0
  368. sage/libs/gsl/roots.pxd +72 -0
  369. sage/libs/gsl/sort.pxd +36 -0
  370. sage/libs/gsl/statistics.pxd +59 -0
  371. sage/libs/gsl/sum.pxd +55 -0
  372. sage/libs/gsl/synchrotron.pxd +16 -0
  373. sage/libs/gsl/transport.pxd +24 -0
  374. sage/libs/gsl/trig.pxd +58 -0
  375. sage/libs/gsl/types.pxd +137 -0
  376. sage/libs/gsl/vector.pxd +101 -0
  377. sage/libs/gsl/vector_complex.pxd +83 -0
  378. sage/libs/gsl/wavelet.pxd +49 -0
  379. sage/libs/gsl/zeta.pxd +28 -0
  380. sage/libs/mpc/__init__.pxd +114 -0
  381. sage/libs/mpc/types.pxd +28 -0
  382. sage/libs/mpfr/__init__.pxd +299 -0
  383. sage/libs/mpfr/types.pxd +26 -0
  384. sage/libs/mpmath/__init__.py +1 -0
  385. sage/libs/mpmath/all.py +27 -0
  386. sage/libs/mpmath/all__sagemath_modules.py +1 -0
  387. sage/libs/mpmath/utils.cpython-314-aarch64-linux-musl.so +0 -0
  388. sage/libs/mpmath/utils.pxd +4 -0
  389. sage/libs/mpmath/utils.pyx +319 -0
  390. sage/matrix/action.cpython-314-aarch64-linux-musl.so +0 -0
  391. sage/matrix/action.pxd +26 -0
  392. sage/matrix/action.pyx +596 -0
  393. sage/matrix/all.py +9 -0
  394. sage/matrix/args.cpython-314-aarch64-linux-musl.so +0 -0
  395. sage/matrix/args.pxd +144 -0
  396. sage/matrix/args.pyx +1668 -0
  397. sage/matrix/benchmark.py +1258 -0
  398. sage/matrix/berlekamp_massey.py +95 -0
  399. sage/matrix/compute_J_ideal.py +926 -0
  400. sage/matrix/constructor.cpython-314-aarch64-linux-musl.so +0 -0
  401. sage/matrix/constructor.pyx +750 -0
  402. sage/matrix/docs.py +430 -0
  403. sage/matrix/echelon_matrix.cpython-314-aarch64-linux-musl.so +0 -0
  404. sage/matrix/echelon_matrix.pyx +155 -0
  405. sage/matrix/matrix.pxd +2 -0
  406. sage/matrix/matrix0.cpython-314-aarch64-linux-musl.so +0 -0
  407. sage/matrix/matrix0.pxd +68 -0
  408. sage/matrix/matrix0.pyx +6324 -0
  409. sage/matrix/matrix1.cpython-314-aarch64-linux-musl.so +0 -0
  410. sage/matrix/matrix1.pxd +8 -0
  411. sage/matrix/matrix1.pyx +2851 -0
  412. sage/matrix/matrix2.cpython-314-aarch64-linux-musl.so +0 -0
  413. sage/matrix/matrix2.pxd +25 -0
  414. sage/matrix/matrix2.pyx +20181 -0
  415. sage/matrix/matrix_cdv.cpython-314-aarch64-linux-musl.so +0 -0
  416. sage/matrix/matrix_cdv.pxd +4 -0
  417. sage/matrix/matrix_cdv.pyx +93 -0
  418. sage/matrix/matrix_complex_double_dense.cpython-314-aarch64-linux-musl.so +0 -0
  419. sage/matrix/matrix_complex_double_dense.pxd +5 -0
  420. sage/matrix/matrix_complex_double_dense.pyx +98 -0
  421. sage/matrix/matrix_dense.cpython-314-aarch64-linux-musl.so +0 -0
  422. sage/matrix/matrix_dense.pxd +5 -0
  423. sage/matrix/matrix_dense.pyx +343 -0
  424. sage/matrix/matrix_domain_dense.pxd +5 -0
  425. sage/matrix/matrix_domain_sparse.pxd +5 -0
  426. sage/matrix/matrix_double_dense.cpython-314-aarch64-linux-musl.so +0 -0
  427. sage/matrix/matrix_double_dense.pxd +7 -0
  428. sage/matrix/matrix_double_dense.pyx +3906 -0
  429. sage/matrix/matrix_double_sparse.cpython-314-aarch64-linux-musl.so +0 -0
  430. sage/matrix/matrix_double_sparse.pxd +6 -0
  431. sage/matrix/matrix_double_sparse.pyx +248 -0
  432. sage/matrix/matrix_generic_dense.cpython-314-aarch64-linux-musl.so +0 -0
  433. sage/matrix/matrix_generic_dense.pxd +7 -0
  434. sage/matrix/matrix_generic_dense.pyx +354 -0
  435. sage/matrix/matrix_generic_sparse.cpython-314-aarch64-linux-musl.so +0 -0
  436. sage/matrix/matrix_generic_sparse.pxd +7 -0
  437. sage/matrix/matrix_generic_sparse.pyx +461 -0
  438. sage/matrix/matrix_laurent_mpolynomial_dense.cpython-314-aarch64-linux-musl.so +0 -0
  439. sage/matrix/matrix_laurent_mpolynomial_dense.pxd +5 -0
  440. sage/matrix/matrix_laurent_mpolynomial_dense.pyx +115 -0
  441. sage/matrix/matrix_misc.py +313 -0
  442. sage/matrix/matrix_numpy_dense.cpython-314-aarch64-linux-musl.so +0 -0
  443. sage/matrix/matrix_numpy_dense.pxd +14 -0
  444. sage/matrix/matrix_numpy_dense.pyx +450 -0
  445. sage/matrix/matrix_numpy_integer_dense.cpython-314-aarch64-linux-musl.so +0 -0
  446. sage/matrix/matrix_numpy_integer_dense.pxd +7 -0
  447. sage/matrix/matrix_numpy_integer_dense.pyx +59 -0
  448. sage/matrix/matrix_polynomial_dense.cpython-314-aarch64-linux-musl.so +0 -0
  449. sage/matrix/matrix_polynomial_dense.pxd +5 -0
  450. sage/matrix/matrix_polynomial_dense.pyx +5341 -0
  451. sage/matrix/matrix_real_double_dense.cpython-314-aarch64-linux-musl.so +0 -0
  452. sage/matrix/matrix_real_double_dense.pxd +7 -0
  453. sage/matrix/matrix_real_double_dense.pyx +122 -0
  454. sage/matrix/matrix_space.py +2848 -0
  455. sage/matrix/matrix_sparse.cpython-314-aarch64-linux-musl.so +0 -0
  456. sage/matrix/matrix_sparse.pxd +5 -0
  457. sage/matrix/matrix_sparse.pyx +1222 -0
  458. sage/matrix/matrix_window.cpython-314-aarch64-linux-musl.so +0 -0
  459. sage/matrix/matrix_window.pxd +37 -0
  460. sage/matrix/matrix_window.pyx +242 -0
  461. sage/matrix/misc_mpfr.cpython-314-aarch64-linux-musl.so +0 -0
  462. sage/matrix/misc_mpfr.pyx +80 -0
  463. sage/matrix/operation_table.py +1182 -0
  464. sage/matrix/special.py +3666 -0
  465. sage/matrix/strassen.cpython-314-aarch64-linux-musl.so +0 -0
  466. sage/matrix/strassen.pyx +851 -0
  467. sage/matrix/symplectic_basis.py +541 -0
  468. sage/matrix/template.pxd +6 -0
  469. sage/matrix/tests.py +71 -0
  470. sage/matroids/advanced.py +77 -0
  471. sage/matroids/all.py +13 -0
  472. sage/matroids/basis_exchange_matroid.cpython-314-aarch64-linux-musl.so +0 -0
  473. sage/matroids/basis_exchange_matroid.pxd +96 -0
  474. sage/matroids/basis_exchange_matroid.pyx +2344 -0
  475. sage/matroids/basis_matroid.cpython-314-aarch64-linux-musl.so +0 -0
  476. sage/matroids/basis_matroid.pxd +45 -0
  477. sage/matroids/basis_matroid.pyx +1217 -0
  478. sage/matroids/catalog.py +44 -0
  479. sage/matroids/chow_ring.py +473 -0
  480. sage/matroids/chow_ring_ideal.py +849 -0
  481. sage/matroids/circuit_closures_matroid.cpython-314-aarch64-linux-musl.so +0 -0
  482. sage/matroids/circuit_closures_matroid.pxd +16 -0
  483. sage/matroids/circuit_closures_matroid.pyx +559 -0
  484. sage/matroids/circuits_matroid.cpython-314-aarch64-linux-musl.so +0 -0
  485. sage/matroids/circuits_matroid.pxd +38 -0
  486. sage/matroids/circuits_matroid.pyx +947 -0
  487. sage/matroids/constructor.py +1086 -0
  488. sage/matroids/database_collections.py +365 -0
  489. sage/matroids/database_matroids.py +5338 -0
  490. sage/matroids/dual_matroid.py +583 -0
  491. sage/matroids/extension.cpython-314-aarch64-linux-musl.so +0 -0
  492. sage/matroids/extension.pxd +34 -0
  493. sage/matroids/extension.pyx +519 -0
  494. sage/matroids/flats_matroid.cpython-314-aarch64-linux-musl.so +0 -0
  495. sage/matroids/flats_matroid.pxd +28 -0
  496. sage/matroids/flats_matroid.pyx +715 -0
  497. sage/matroids/gammoid.py +600 -0
  498. sage/matroids/graphic_matroid.cpython-314-aarch64-linux-musl.so +0 -0
  499. sage/matroids/graphic_matroid.pxd +39 -0
  500. sage/matroids/graphic_matroid.pyx +2024 -0
  501. sage/matroids/lean_matrix.cpython-314-aarch64-linux-musl.so +0 -0
  502. sage/matroids/lean_matrix.pxd +126 -0
  503. sage/matroids/lean_matrix.pyx +3667 -0
  504. sage/matroids/linear_matroid.cpython-314-aarch64-linux-musl.so +0 -0
  505. sage/matroids/linear_matroid.pxd +180 -0
  506. sage/matroids/linear_matroid.pyx +6649 -0
  507. sage/matroids/matroid.cpython-314-aarch64-linux-musl.so +0 -0
  508. sage/matroids/matroid.pxd +243 -0
  509. sage/matroids/matroid.pyx +8759 -0
  510. sage/matroids/matroids_catalog.py +190 -0
  511. sage/matroids/matroids_plot_helpers.py +890 -0
  512. sage/matroids/minor_matroid.py +480 -0
  513. sage/matroids/minorfix.h +9 -0
  514. sage/matroids/named_matroids.py +5 -0
  515. sage/matroids/rank_matroid.py +268 -0
  516. sage/matroids/set_system.cpython-314-aarch64-linux-musl.so +0 -0
  517. sage/matroids/set_system.pxd +38 -0
  518. sage/matroids/set_system.pyx +800 -0
  519. sage/matroids/transversal_matroid.cpython-314-aarch64-linux-musl.so +0 -0
  520. sage/matroids/transversal_matroid.pxd +14 -0
  521. sage/matroids/transversal_matroid.pyx +893 -0
  522. sage/matroids/union_matroid.cpython-314-aarch64-linux-musl.so +0 -0
  523. sage/matroids/union_matroid.pxd +20 -0
  524. sage/matroids/union_matroid.pyx +331 -0
  525. sage/matroids/unpickling.cpython-314-aarch64-linux-musl.so +0 -0
  526. sage/matroids/unpickling.pyx +843 -0
  527. sage/matroids/utilities.py +809 -0
  528. sage/misc/all__sagemath_modules.py +20 -0
  529. sage/misc/c3.cpython-314-aarch64-linux-musl.so +0 -0
  530. sage/misc/c3.pyx +238 -0
  531. sage/misc/compat.py +87 -0
  532. sage/misc/element_with_label.py +173 -0
  533. sage/misc/func_persist.py +79 -0
  534. sage/misc/pickle_old.cpython-314-aarch64-linux-musl.so +0 -0
  535. sage/misc/pickle_old.pyx +19 -0
  536. sage/misc/proof.py +7 -0
  537. sage/misc/replace_dot_all.py +472 -0
  538. sage/misc/sagedoc_conf.py +168 -0
  539. sage/misc/sphinxify.py +167 -0
  540. sage/misc/test_class_pickling.py +85 -0
  541. sage/modules/all.py +42 -0
  542. sage/modules/complex_double_vector.py +25 -0
  543. sage/modules/diamond_cutting.py +380 -0
  544. sage/modules/fg_pid/all.py +1 -0
  545. sage/modules/fg_pid/fgp_element.py +456 -0
  546. sage/modules/fg_pid/fgp_module.py +2091 -0
  547. sage/modules/fg_pid/fgp_morphism.py +550 -0
  548. sage/modules/filtered_vector_space.py +1271 -0
  549. sage/modules/finite_submodule_iter.cpython-314-aarch64-linux-musl.so +0 -0
  550. sage/modules/finite_submodule_iter.pxd +27 -0
  551. sage/modules/finite_submodule_iter.pyx +452 -0
  552. sage/modules/fp_graded/all.py +1 -0
  553. sage/modules/fp_graded/element.py +346 -0
  554. sage/modules/fp_graded/free_element.py +298 -0
  555. sage/modules/fp_graded/free_homspace.py +53 -0
  556. sage/modules/fp_graded/free_module.py +1060 -0
  557. sage/modules/fp_graded/free_morphism.py +217 -0
  558. sage/modules/fp_graded/homspace.py +563 -0
  559. sage/modules/fp_graded/module.py +1340 -0
  560. sage/modules/fp_graded/morphism.py +1990 -0
  561. sage/modules/fp_graded/steenrod/all.py +1 -0
  562. sage/modules/fp_graded/steenrod/homspace.py +65 -0
  563. sage/modules/fp_graded/steenrod/module.py +477 -0
  564. sage/modules/fp_graded/steenrod/morphism.py +404 -0
  565. sage/modules/fp_graded/steenrod/profile.py +241 -0
  566. sage/modules/free_module.py +8447 -0
  567. sage/modules/free_module_element.cpython-314-aarch64-linux-musl.so +0 -0
  568. sage/modules/free_module_element.pxd +22 -0
  569. sage/modules/free_module_element.pyx +5445 -0
  570. sage/modules/free_module_homspace.py +369 -0
  571. sage/modules/free_module_integer.py +896 -0
  572. sage/modules/free_module_morphism.py +823 -0
  573. sage/modules/free_module_pseudohomspace.py +352 -0
  574. sage/modules/free_module_pseudomorphism.py +578 -0
  575. sage/modules/free_quadratic_module.py +1706 -0
  576. sage/modules/free_quadratic_module_integer_symmetric.py +1790 -0
  577. sage/modules/matrix_morphism.py +1745 -0
  578. sage/modules/misc.py +103 -0
  579. sage/modules/module_functors.py +192 -0
  580. sage/modules/multi_filtered_vector_space.py +719 -0
  581. sage/modules/ore_module.py +2208 -0
  582. sage/modules/ore_module_element.py +178 -0
  583. sage/modules/ore_module_homspace.py +147 -0
  584. sage/modules/ore_module_morphism.py +968 -0
  585. sage/modules/quotient_module.py +699 -0
  586. sage/modules/real_double_vector.py +22 -0
  587. sage/modules/submodule.py +255 -0
  588. sage/modules/tensor_operations.py +567 -0
  589. sage/modules/torsion_quadratic_module.py +1352 -0
  590. sage/modules/tutorial_free_modules.py +248 -0
  591. sage/modules/vector_complex_double_dense.cpython-314-aarch64-linux-musl.so +0 -0
  592. sage/modules/vector_complex_double_dense.pxd +6 -0
  593. sage/modules/vector_complex_double_dense.pyx +117 -0
  594. sage/modules/vector_double_dense.cpython-314-aarch64-linux-musl.so +0 -0
  595. sage/modules/vector_double_dense.pxd +6 -0
  596. sage/modules/vector_double_dense.pyx +604 -0
  597. sage/modules/vector_integer_dense.cpython-314-aarch64-linux-musl.so +0 -0
  598. sage/modules/vector_integer_dense.pxd +15 -0
  599. sage/modules/vector_integer_dense.pyx +361 -0
  600. sage/modules/vector_integer_sparse.cpython-314-aarch64-linux-musl.so +0 -0
  601. sage/modules/vector_integer_sparse.pxd +29 -0
  602. sage/modules/vector_integer_sparse.pyx +406 -0
  603. sage/modules/vector_modn_dense.cpython-314-aarch64-linux-musl.so +0 -0
  604. sage/modules/vector_modn_dense.pxd +12 -0
  605. sage/modules/vector_modn_dense.pyx +394 -0
  606. sage/modules/vector_modn_sparse.cpython-314-aarch64-linux-musl.so +0 -0
  607. sage/modules/vector_modn_sparse.pxd +21 -0
  608. sage/modules/vector_modn_sparse.pyx +298 -0
  609. sage/modules/vector_numpy_dense.cpython-314-aarch64-linux-musl.so +0 -0
  610. sage/modules/vector_numpy_dense.pxd +15 -0
  611. sage/modules/vector_numpy_dense.pyx +304 -0
  612. sage/modules/vector_numpy_integer_dense.cpython-314-aarch64-linux-musl.so +0 -0
  613. sage/modules/vector_numpy_integer_dense.pxd +7 -0
  614. sage/modules/vector_numpy_integer_dense.pyx +54 -0
  615. sage/modules/vector_rational_dense.cpython-314-aarch64-linux-musl.so +0 -0
  616. sage/modules/vector_rational_dense.pxd +15 -0
  617. sage/modules/vector_rational_dense.pyx +387 -0
  618. sage/modules/vector_rational_sparse.cpython-314-aarch64-linux-musl.so +0 -0
  619. sage/modules/vector_rational_sparse.pxd +30 -0
  620. sage/modules/vector_rational_sparse.pyx +413 -0
  621. sage/modules/vector_real_double_dense.cpython-314-aarch64-linux-musl.so +0 -0
  622. sage/modules/vector_real_double_dense.pxd +6 -0
  623. sage/modules/vector_real_double_dense.pyx +126 -0
  624. sage/modules/vector_space_homspace.py +430 -0
  625. sage/modules/vector_space_morphism.py +989 -0
  626. sage/modules/with_basis/all.py +15 -0
  627. sage/modules/with_basis/cell_module.py +494 -0
  628. sage/modules/with_basis/indexed_element.cpython-314-aarch64-linux-musl.so +0 -0
  629. sage/modules/with_basis/indexed_element.pxd +13 -0
  630. sage/modules/with_basis/indexed_element.pyx +1058 -0
  631. sage/modules/with_basis/invariant.py +1075 -0
  632. sage/modules/with_basis/morphism.py +1636 -0
  633. sage/modules/with_basis/representation.py +2939 -0
  634. sage/modules/with_basis/subquotient.py +685 -0
  635. sage/numerical/all__sagemath_modules.py +6 -0
  636. sage/numerical/gauss_legendre.cpython-314-aarch64-linux-musl.so +0 -0
  637. sage/numerical/gauss_legendre.pyx +381 -0
  638. sage/numerical/optimize.py +910 -0
  639. sage/probability/all.py +10 -0
  640. sage/probability/probability_distribution.cpython-314-aarch64-linux-musl.so +0 -0
  641. sage/probability/probability_distribution.pyx +1242 -0
  642. sage/probability/random_variable.py +411 -0
  643. sage/quadratic_forms/all.py +4 -0
  644. sage/quadratic_forms/all__sagemath_modules.py +15 -0
  645. sage/quadratic_forms/binary_qf.py +2042 -0
  646. sage/quadratic_forms/bqf_class_group.py +748 -0
  647. sage/quadratic_forms/constructions.py +93 -0
  648. sage/quadratic_forms/count_local_2.cpython-314-aarch64-linux-musl.so +0 -0
  649. sage/quadratic_forms/count_local_2.pyx +365 -0
  650. sage/quadratic_forms/extras.py +195 -0
  651. sage/quadratic_forms/quadratic_form.py +1753 -0
  652. sage/quadratic_forms/quadratic_form__count_local_2.py +221 -0
  653. sage/quadratic_forms/quadratic_form__equivalence_testing.py +708 -0
  654. sage/quadratic_forms/quadratic_form__evaluate.cpython-314-aarch64-linux-musl.so +0 -0
  655. sage/quadratic_forms/quadratic_form__evaluate.pyx +139 -0
  656. sage/quadratic_forms/quadratic_form__local_density_congruence.py +977 -0
  657. sage/quadratic_forms/quadratic_form__local_field_invariants.py +1072 -0
  658. sage/quadratic_forms/quadratic_form__neighbors.py +424 -0
  659. sage/quadratic_forms/quadratic_form__reduction_theory.py +488 -0
  660. sage/quadratic_forms/quadratic_form__split_local_covering.py +416 -0
  661. sage/quadratic_forms/quadratic_form__ternary_Tornaria.py +657 -0
  662. sage/quadratic_forms/quadratic_form__theta.py +352 -0
  663. sage/quadratic_forms/quadratic_form__variable_substitutions.py +370 -0
  664. sage/quadratic_forms/random_quadraticform.py +209 -0
  665. sage/quadratic_forms/ternary.cpython-314-aarch64-linux-musl.so +0 -0
  666. sage/quadratic_forms/ternary.pyx +1154 -0
  667. sage/quadratic_forms/ternary_qf.py +2027 -0
  668. sage/rings/all__sagemath_modules.py +28 -0
  669. sage/rings/asymptotic/all__sagemath_modules.py +1 -0
  670. sage/rings/asymptotic/misc.py +1252 -0
  671. sage/rings/cc.py +4 -0
  672. sage/rings/cfinite_sequence.py +1306 -0
  673. sage/rings/complex_conversion.cpython-314-aarch64-linux-musl.so +0 -0
  674. sage/rings/complex_conversion.pxd +8 -0
  675. sage/rings/complex_conversion.pyx +23 -0
  676. sage/rings/complex_double.cpython-314-aarch64-linux-musl.so +0 -0
  677. sage/rings/complex_double.pxd +21 -0
  678. sage/rings/complex_double.pyx +2654 -0
  679. sage/rings/complex_mpc.cpython-314-aarch64-linux-musl.so +0 -0
  680. sage/rings/complex_mpc.pxd +21 -0
  681. sage/rings/complex_mpc.pyx +2576 -0
  682. sage/rings/complex_mpfr.cpython-314-aarch64-linux-musl.so +0 -0
  683. sage/rings/complex_mpfr.pxd +18 -0
  684. sage/rings/complex_mpfr.pyx +3602 -0
  685. sage/rings/derivation.py +2334 -0
  686. sage/rings/finite_rings/all__sagemath_modules.py +1 -0
  687. sage/rings/finite_rings/maps_finite_field.py +191 -0
  688. sage/rings/function_field/all__sagemath_modules.py +8 -0
  689. sage/rings/function_field/derivations.py +102 -0
  690. sage/rings/function_field/derivations_rational.py +132 -0
  691. sage/rings/function_field/differential.py +853 -0
  692. sage/rings/function_field/divisor.py +1107 -0
  693. sage/rings/function_field/drinfeld_modules/action.py +199 -0
  694. sage/rings/function_field/drinfeld_modules/all.py +1 -0
  695. sage/rings/function_field/drinfeld_modules/charzero_drinfeld_module.py +673 -0
  696. sage/rings/function_field/drinfeld_modules/drinfeld_module.py +2087 -0
  697. sage/rings/function_field/drinfeld_modules/finite_drinfeld_module.py +1131 -0
  698. sage/rings/function_field/drinfeld_modules/homset.py +420 -0
  699. sage/rings/function_field/drinfeld_modules/morphism.py +820 -0
  700. sage/rings/function_field/hermite_form_polynomial.cpython-314-aarch64-linux-musl.so +0 -0
  701. sage/rings/function_field/hermite_form_polynomial.pyx +188 -0
  702. sage/rings/function_field/khuri_makdisi.cpython-314-aarch64-linux-musl.so +0 -0
  703. sage/rings/function_field/khuri_makdisi.pyx +935 -0
  704. sage/rings/invariants/all.py +4 -0
  705. sage/rings/invariants/invariant_theory.py +4597 -0
  706. sage/rings/invariants/reconstruction.py +395 -0
  707. sage/rings/polynomial/all__sagemath_modules.py +17 -0
  708. sage/rings/polynomial/integer_valued_polynomials.py +1230 -0
  709. sage/rings/polynomial/laurent_polynomial_mpair.cpython-314-aarch64-linux-musl.so +0 -0
  710. sage/rings/polynomial/laurent_polynomial_mpair.pxd +15 -0
  711. sage/rings/polynomial/laurent_polynomial_mpair.pyx +2023 -0
  712. sage/rings/polynomial/ore_function_element.py +952 -0
  713. sage/rings/polynomial/ore_function_field.py +1028 -0
  714. sage/rings/polynomial/ore_polynomial_element.cpython-314-aarch64-linux-musl.so +0 -0
  715. sage/rings/polynomial/ore_polynomial_element.pxd +48 -0
  716. sage/rings/polynomial/ore_polynomial_element.pyx +3145 -0
  717. sage/rings/polynomial/ore_polynomial_ring.py +1334 -0
  718. sage/rings/polynomial/polynomial_real_mpfr_dense.cpython-314-aarch64-linux-musl.so +0 -0
  719. sage/rings/polynomial/polynomial_real_mpfr_dense.pyx +788 -0
  720. sage/rings/polynomial/q_integer_valued_polynomials.py +1264 -0
  721. sage/rings/polynomial/skew_polynomial_element.cpython-314-aarch64-linux-musl.so +0 -0
  722. sage/rings/polynomial/skew_polynomial_element.pxd +9 -0
  723. sage/rings/polynomial/skew_polynomial_element.pyx +684 -0
  724. sage/rings/polynomial/skew_polynomial_finite_field.cpython-314-aarch64-linux-musl.so +0 -0
  725. sage/rings/polynomial/skew_polynomial_finite_field.pxd +19 -0
  726. sage/rings/polynomial/skew_polynomial_finite_field.pyx +1093 -0
  727. sage/rings/polynomial/skew_polynomial_finite_order.cpython-314-aarch64-linux-musl.so +0 -0
  728. sage/rings/polynomial/skew_polynomial_finite_order.pxd +10 -0
  729. sage/rings/polynomial/skew_polynomial_finite_order.pyx +567 -0
  730. sage/rings/polynomial/skew_polynomial_ring.py +908 -0
  731. sage/rings/real_double_element_gsl.cpython-314-aarch64-linux-musl.so +0 -0
  732. sage/rings/real_double_element_gsl.pxd +8 -0
  733. sage/rings/real_double_element_gsl.pyx +794 -0
  734. sage/rings/real_field.py +58 -0
  735. sage/rings/real_mpfr.cpython-314-aarch64-linux-musl.so +0 -0
  736. sage/rings/real_mpfr.pxd +29 -0
  737. sage/rings/real_mpfr.pyx +6122 -0
  738. sage/rings/ring_extension.cpython-314-aarch64-linux-musl.so +0 -0
  739. sage/rings/ring_extension.pxd +42 -0
  740. sage/rings/ring_extension.pyx +2779 -0
  741. sage/rings/ring_extension_conversion.cpython-314-aarch64-linux-musl.so +0 -0
  742. sage/rings/ring_extension_conversion.pxd +16 -0
  743. sage/rings/ring_extension_conversion.pyx +462 -0
  744. sage/rings/ring_extension_element.cpython-314-aarch64-linux-musl.so +0 -0
  745. sage/rings/ring_extension_element.pxd +21 -0
  746. sage/rings/ring_extension_element.pyx +1635 -0
  747. sage/rings/ring_extension_homset.py +64 -0
  748. sage/rings/ring_extension_morphism.cpython-314-aarch64-linux-musl.so +0 -0
  749. sage/rings/ring_extension_morphism.pxd +35 -0
  750. sage/rings/ring_extension_morphism.pyx +920 -0
  751. sage/schemes/all__sagemath_modules.py +1 -0
  752. sage/schemes/projective/all__sagemath_modules.py +1 -0
  753. sage/schemes/projective/coherent_sheaf.py +300 -0
  754. sage/schemes/projective/cohomology.py +510 -0
  755. sage/stats/all.py +15 -0
  756. sage/stats/basic_stats.py +489 -0
  757. sage/stats/distributions/all.py +7 -0
  758. sage/stats/distributions/catalog.py +34 -0
  759. sage/stats/distributions/dgs.h +50 -0
  760. sage/stats/distributions/dgs.pxd +111 -0
  761. sage/stats/distributions/dgs_bern.h +400 -0
  762. sage/stats/distributions/dgs_gauss.h +614 -0
  763. sage/stats/distributions/dgs_misc.h +104 -0
  764. sage/stats/distributions/discrete_gaussian_integer.cpython-314-aarch64-linux-musl.so +0 -0
  765. sage/stats/distributions/discrete_gaussian_integer.pxd +14 -0
  766. sage/stats/distributions/discrete_gaussian_integer.pyx +498 -0
  767. sage/stats/distributions/discrete_gaussian_lattice.py +908 -0
  768. sage/stats/distributions/discrete_gaussian_polynomial.py +141 -0
  769. sage/stats/hmm/all.py +15 -0
  770. sage/stats/hmm/chmm.cpython-314-aarch64-linux-musl.so +0 -0
  771. sage/stats/hmm/chmm.pyx +1595 -0
  772. sage/stats/hmm/distributions.cpython-314-aarch64-linux-musl.so +0 -0
  773. sage/stats/hmm/distributions.pxd +29 -0
  774. sage/stats/hmm/distributions.pyx +531 -0
  775. sage/stats/hmm/hmm.cpython-314-aarch64-linux-musl.so +0 -0
  776. sage/stats/hmm/hmm.pxd +17 -0
  777. sage/stats/hmm/hmm.pyx +1388 -0
  778. sage/stats/hmm/util.cpython-314-aarch64-linux-musl.so +0 -0
  779. sage/stats/hmm/util.pxd +7 -0
  780. sage/stats/hmm/util.pyx +165 -0
  781. sage/stats/intlist.cpython-314-aarch64-linux-musl.so +0 -0
  782. sage/stats/intlist.pxd +14 -0
  783. sage/stats/intlist.pyx +588 -0
  784. sage/stats/r.py +49 -0
  785. sage/stats/time_series.cpython-314-aarch64-linux-musl.so +0 -0
  786. sage/stats/time_series.pxd +6 -0
  787. sage/stats/time_series.pyx +2546 -0
  788. sage/tensor/all.py +2 -0
  789. sage/tensor/modules/all.py +8 -0
  790. sage/tensor/modules/alternating_contr_tensor.py +761 -0
  791. sage/tensor/modules/comp.py +5598 -0
  792. sage/tensor/modules/ext_pow_free_module.py +824 -0
  793. sage/tensor/modules/finite_rank_free_module.py +3589 -0
  794. sage/tensor/modules/format_utilities.py +333 -0
  795. sage/tensor/modules/free_module_alt_form.py +858 -0
  796. sage/tensor/modules/free_module_automorphism.py +1207 -0
  797. sage/tensor/modules/free_module_basis.py +1074 -0
  798. sage/tensor/modules/free_module_element.py +284 -0
  799. sage/tensor/modules/free_module_homset.py +652 -0
  800. sage/tensor/modules/free_module_linear_group.py +564 -0
  801. sage/tensor/modules/free_module_morphism.py +1581 -0
  802. sage/tensor/modules/free_module_tensor.py +3289 -0
  803. sage/tensor/modules/reflexive_module.py +386 -0
  804. sage/tensor/modules/tensor_free_module.py +780 -0
  805. sage/tensor/modules/tensor_free_submodule.py +538 -0
  806. sage/tensor/modules/tensor_free_submodule_basis.py +140 -0
  807. sage/tensor/modules/tensor_with_indices.py +1043 -0
@@ -0,0 +1,681 @@
1
+ # sage_setup: distribution = sagemath-modules
2
+ """
3
+ Coxeter types
4
+ """
5
+ # ****************************************************************************
6
+ # Copyright (C) 2015 Travis Scrimshaw <tscrim at ucdavis.edu>,
7
+ # 2015 Jean-Philippe Labbe <labbe at math.huji.ac.il>,
8
+ #
9
+ # Distributed under the terms of the GNU General Public License (GPL)
10
+ #
11
+ # This code is distributed in the hope that it will be useful,
12
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
+ # General Public License for more details.
15
+ #
16
+ # The full text of the GPL is available at:
17
+ #
18
+ # https://www.gnu.org/licenses/
19
+ # ****************************************************************************
20
+
21
+ import sage.rings.abc
22
+
23
+ from sage.combinat.root_system.cartan_type import CartanType
24
+ from sage.misc.abstract_method import abstract_method
25
+ from sage.misc.cachefunc import cached_method
26
+ from sage.misc.classcall_metaclass import ClasscallMetaclass
27
+ from sage.matrix.args import SparseEntry
28
+ from sage.matrix.constructor import Matrix
29
+ from sage.misc.lazy_import import lazy_import
30
+ from sage.structure.unique_representation import UniqueRepresentation
31
+ from sage.structure.sage_object import SageObject
32
+
33
+ lazy_import('sage.rings.universal_cyclotomic_field', 'UniversalCyclotomicField')
34
+
35
+
36
+ class CoxeterType(SageObject, metaclass=ClasscallMetaclass):
37
+ """
38
+ Abstract class for Coxeter types.
39
+ """
40
+ @staticmethod
41
+ def __classcall_private__(cls, *x):
42
+ """
43
+ Parse input ``x``.
44
+
45
+ EXAMPLES::
46
+
47
+ sage: CoxeterType(['A',3])
48
+ Coxeter type of ['A', 3]
49
+ """
50
+ if len(x) == 1:
51
+ x = x[0]
52
+
53
+ if isinstance(x, CoxeterType):
54
+ return x
55
+
56
+ try:
57
+ return CoxeterTypeFromCartanType(CartanType(x))
58
+ except (ValueError, TypeError):
59
+ pass
60
+
61
+ if len(x) == 1: # In case the input is similar to CoxeterType([['A',2]])
62
+ return CoxeterType(x[0])
63
+
64
+ raise NotImplementedError("Coxeter types not from Cartan types not yet implemented")
65
+
66
+ @classmethod
67
+ def samples(self, finite=None, affine=None, crystallographic=None):
68
+ """
69
+ Return a sample of the available Coxeter types.
70
+
71
+ INPUT:
72
+
73
+ - ``finite`` -- boolean or ``None`` (default: ``None``)
74
+
75
+ - ``affine`` -- boolean or ``None`` (default: ``None``)
76
+
77
+ - ``crystallographic`` -- boolean or ``None`` (default: ``None``)
78
+
79
+ The sample contains all the exceptional finite and affine
80
+ Coxeter types, as well as typical representatives of the
81
+ infinite families.
82
+
83
+ EXAMPLES::
84
+
85
+ sage: CoxeterType.samples()
86
+ [Coxeter type of ['A', 1], Coxeter type of ['A', 5],
87
+ Coxeter type of ['B', 1], Coxeter type of ['B', 5],
88
+ Coxeter type of ['C', 1], Coxeter type of ['C', 5],
89
+ Coxeter type of ['D', 4], Coxeter type of ['D', 5],
90
+ Coxeter type of ['E', 6], Coxeter type of ['E', 7],
91
+ Coxeter type of ['E', 8], Coxeter type of ['F', 4],
92
+ Coxeter type of ['H', 3], Coxeter type of ['H', 4],
93
+ Coxeter type of ['I', 10], Coxeter type of ['A', 2, 1],
94
+ Coxeter type of ['B', 5, 1], Coxeter type of ['C', 5, 1],
95
+ Coxeter type of ['D', 5, 1], Coxeter type of ['E', 6, 1],
96
+ Coxeter type of ['E', 7, 1], Coxeter type of ['E', 8, 1],
97
+ Coxeter type of ['F', 4, 1], Coxeter type of ['G', 2, 1],
98
+ Coxeter type of ['A', 1, 1]]
99
+
100
+ The finite, affine and crystallographic options allow
101
+ respectively for restricting to (non) finite, (non) affine,
102
+ and (non) crystallographic Cartan types::
103
+
104
+ sage: CoxeterType.samples(finite=True)
105
+ [Coxeter type of ['A', 1], Coxeter type of ['A', 5],
106
+ Coxeter type of ['B', 1], Coxeter type of ['B', 5],
107
+ Coxeter type of ['C', 1], Coxeter type of ['C', 5],
108
+ Coxeter type of ['D', 4], Coxeter type of ['D', 5],
109
+ Coxeter type of ['E', 6], Coxeter type of ['E', 7],
110
+ Coxeter type of ['E', 8], Coxeter type of ['F', 4],
111
+ Coxeter type of ['H', 3], Coxeter type of ['H', 4],
112
+ Coxeter type of ['I', 10]]
113
+
114
+ sage: CoxeterType.samples(affine=True)
115
+ [Coxeter type of ['A', 2, 1], Coxeter type of ['B', 5, 1],
116
+ Coxeter type of ['C', 5, 1], Coxeter type of ['D', 5, 1],
117
+ Coxeter type of ['E', 6, 1], Coxeter type of ['E', 7, 1],
118
+ Coxeter type of ['E', 8, 1], Coxeter type of ['F', 4, 1],
119
+ Coxeter type of ['G', 2, 1], Coxeter type of ['A', 1, 1]]
120
+
121
+ sage: CoxeterType.samples(crystallographic=True)
122
+ [Coxeter type of ['A', 1], Coxeter type of ['A', 5],
123
+ Coxeter type of ['B', 1], Coxeter type of ['B', 5],
124
+ Coxeter type of ['C', 1], Coxeter type of ['C', 5],
125
+ Coxeter type of ['D', 4], Coxeter type of ['D', 5],
126
+ Coxeter type of ['E', 6], Coxeter type of ['E', 7],
127
+ Coxeter type of ['E', 8], Coxeter type of ['F', 4],
128
+ Coxeter type of ['A', 2, 1], Coxeter type of ['B', 5, 1],
129
+ Coxeter type of ['C', 5, 1], Coxeter type of ['D', 5, 1],
130
+ Coxeter type of ['E', 6, 1], Coxeter type of ['E', 7, 1],
131
+ Coxeter type of ['E', 8, 1], Coxeter type of ['F', 4, 1],
132
+ Coxeter type of ['G', 2, 1], Coxeter type of ['A', 1, 1]]
133
+
134
+ sage: CoxeterType.samples(crystallographic=False)
135
+ [Coxeter type of ['H', 3],
136
+ Coxeter type of ['H', 4],
137
+ Coxeter type of ['I', 10]]
138
+
139
+ .. TODO:: add some reducible Coxeter types (suggestions?)
140
+
141
+ TESTS::
142
+
143
+ sage: for ct in CoxeterType.samples(): TestSuite(ct).run()
144
+ """
145
+ result = self._samples()
146
+ if crystallographic is not None:
147
+ result = [t for t in result if t.is_crystallographic() == crystallographic]
148
+ if finite is not None:
149
+ result = [t for t in result if t.is_finite() == finite]
150
+ if affine is not None:
151
+ result = [t for t in result if t.is_affine() == affine]
152
+ return result
153
+
154
+ @cached_method
155
+ def _samples(self):
156
+ """
157
+ Return a sample of all implemented Coxeter types.
158
+
159
+ .. NOTE::
160
+
161
+ This is intended to be used through :meth:`samples`.
162
+
163
+ EXAMPLES::
164
+
165
+ sage: CoxeterType._samples()
166
+ [Coxeter type of ['A', 1], Coxeter type of ['A', 5],
167
+ Coxeter type of ['B', 1], Coxeter type of ['B', 5],
168
+ Coxeter type of ['C', 1], Coxeter type of ['C', 5],
169
+ Coxeter type of ['D', 4], Coxeter type of ['D', 5],
170
+ Coxeter type of ['E', 6], Coxeter type of ['E', 7],
171
+ Coxeter type of ['E', 8], Coxeter type of ['F', 4],
172
+ Coxeter type of ['H', 3], Coxeter type of ['H', 4],
173
+ Coxeter type of ['I', 10], Coxeter type of ['A', 2, 1],
174
+ Coxeter type of ['B', 5, 1], Coxeter type of ['C', 5, 1],
175
+ Coxeter type of ['D', 5, 1], Coxeter type of ['E', 6, 1],
176
+ Coxeter type of ['E', 7, 1], Coxeter type of ['E', 8, 1],
177
+ Coxeter type of ['F', 4, 1], Coxeter type of ['G', 2, 1],
178
+ Coxeter type of ['A', 1, 1]]
179
+ """
180
+ finite = [CoxeterType(t) for t in [['A', 1], ['A', 5], ['B', 1], ['B', 5],
181
+ ['C', 1], ['C', 5], ['D', 4], ['D', 5],
182
+ ['E', 6], ['E', 7], ['E', 8], ['F', 4],
183
+ ['H', 3], ['H', 4], ['I', 10]]]
184
+
185
+ affine = [CoxeterType(t) for t in [['A', 2, 1], ['B', 5, 1],
186
+ ['C', 5, 1], ['D', 5, 1], ['E', 6, 1],
187
+ ['E', 7, 1], ['E', 8, 1], ['F', 4, 1],
188
+ ['G', 2, 1], ['A', 1, 1]]]
189
+
190
+ return finite + affine
191
+
192
+ @abstract_method
193
+ def rank(self):
194
+ """
195
+ Return the rank of ``self``.
196
+
197
+ This is the number of nodes of the associated Coxeter graph.
198
+
199
+ EXAMPLES::
200
+
201
+ sage: CoxeterType(['A', 4]).rank()
202
+ 4
203
+ sage: CoxeterType(['A', 7, 2]).rank()
204
+ 5
205
+ sage: CoxeterType(['I', 8]).rank()
206
+ 2
207
+ """
208
+
209
+ @abstract_method
210
+ def index_set(self):
211
+ """
212
+ Return the index set for ``self``.
213
+
214
+ This is the list of the nodes of the associated Coxeter graph.
215
+
216
+ EXAMPLES::
217
+
218
+ sage: CoxeterType(['A', 3, 1]).index_set()
219
+ (0, 1, 2, 3)
220
+ sage: CoxeterType(['D', 4]).index_set()
221
+ (1, 2, 3, 4)
222
+ sage: CoxeterType(['A', 7, 2]).index_set()
223
+ (0, 1, 2, 3, 4)
224
+ sage: CoxeterType(['A', 7, 2]).index_set()
225
+ (0, 1, 2, 3, 4)
226
+ sage: CoxeterType(['A', 6, 2]).index_set()
227
+ (0, 1, 2, 3)
228
+ sage: CoxeterType(['D', 6, 2]).index_set()
229
+ (0, 1, 2, 3, 4, 5)
230
+ sage: CoxeterType(['E', 6, 1]).index_set()
231
+ (0, 1, 2, 3, 4, 5, 6)
232
+ sage: CoxeterType(['E', 6, 2]).index_set()
233
+ (0, 1, 2, 3, 4)
234
+ sage: CoxeterType(['A', 2, 2]).index_set()
235
+ (0, 1)
236
+ sage: CoxeterType(['G', 2, 1]).index_set()
237
+ (0, 1, 2)
238
+ sage: CoxeterType(['F', 4, 1]).index_set()
239
+ (0, 1, 2, 3, 4)
240
+ """
241
+
242
+ @abstract_method
243
+ def coxeter_matrix(self):
244
+ """
245
+ Return the Coxeter matrix associated to ``self``.
246
+
247
+ EXAMPLES::
248
+
249
+ sage: CoxeterType(['A', 3]).coxeter_matrix() # needs sage.graphs
250
+ [1 3 2]
251
+ [3 1 3]
252
+ [2 3 1]
253
+ sage: CoxeterType(['A', 3, 1]).coxeter_matrix() # needs sage.graphs
254
+ [1 3 2 3]
255
+ [3 1 3 2]
256
+ [2 3 1 3]
257
+ [3 2 3 1]
258
+ """
259
+
260
+ @abstract_method
261
+ def coxeter_graph(self):
262
+ """
263
+ Return the Coxeter graph associated to ``self``.
264
+
265
+ EXAMPLES::
266
+
267
+ sage: CoxeterType(['A', 3]).coxeter_graph() # needs sage.graphs
268
+ Graph on 3 vertices
269
+ sage: CoxeterType(['A', 3, 1]).coxeter_graph() # needs sage.graphs
270
+ Graph on 4 vertices
271
+ """
272
+
273
+ @abstract_method
274
+ def is_finite(self):
275
+ """
276
+ Return whether ``self`` is finite.
277
+
278
+ EXAMPLES::
279
+
280
+ sage: CoxeterType(['A',4]).is_finite()
281
+ True
282
+ sage: CoxeterType(['A',4, 1]).is_finite()
283
+ False
284
+ """
285
+
286
+ @abstract_method
287
+ def is_affine(self):
288
+ """
289
+ Return whether ``self`` is affine.
290
+
291
+ EXAMPLES::
292
+
293
+ sage: CoxeterType(['A', 3]).is_affine()
294
+ False
295
+ sage: CoxeterType(['A', 3, 1]).is_affine()
296
+ True
297
+ """
298
+
299
+ def is_crystallographic(self):
300
+ """
301
+ Return whether ``self`` is crystallographic.
302
+
303
+ This returns ``False`` by default. Derived class should override this
304
+ appropriately.
305
+
306
+ EXAMPLES::
307
+
308
+ sage: [ [t, t.is_crystallographic() ] for t in CartanType.samples(finite=True) ]
309
+ [[['A', 1], True], [['A', 5], True],
310
+ [['B', 1], True], [['B', 5], True],
311
+ [['C', 1], True], [['C', 5], True],
312
+ [['D', 2], True], [['D', 3], True], [['D', 5], True],
313
+ [['E', 6], True], [['E', 7], True], [['E', 8], True],
314
+ [['F', 4], True], [['G', 2], True],
315
+ [['I', 5], False], [['H', 3], False], [['H', 4], False]]
316
+ """
317
+ return False
318
+
319
+ def is_simply_laced(self):
320
+ """
321
+ Return whether ``self`` is simply laced.
322
+
323
+ This returns ``False`` by default. Derived class should override this
324
+ appropriately.
325
+
326
+ EXAMPLES::
327
+
328
+ sage: [ [t, t.is_simply_laced() ] for t in CartanType.samples() ]
329
+ [[['A', 1], True], [['A', 5], True],
330
+ [['B', 1], True], [['B', 5], False],
331
+ [['C', 1], True], [['C', 5], False],
332
+ [['D', 2], True], [['D', 3], True], [['D', 5], True],
333
+ [['E', 6], True], [['E', 7], True], [['E', 8], True],
334
+ [['F', 4], False], [['G', 2], False],
335
+ [['I', 5], False], [['H', 3], False], [['H', 4], False],
336
+ [['A', 1, 1], False], [['A', 5, 1], True],
337
+ [['B', 1, 1], False], [['B', 5, 1], False],
338
+ [['C', 1, 1], False], [['C', 5, 1], False],
339
+ [['D', 3, 1], True], [['D', 5, 1], True],
340
+ [['E', 6, 1], True], [['E', 7, 1], True], [['E', 8, 1], True],
341
+ [['F', 4, 1], False], [['G', 2, 1], False],
342
+ [['BC', 1, 2], False], [['BC', 5, 2], False],
343
+ [['B', 5, 1]^*, False], [['C', 4, 1]^*, False],
344
+ [['F', 4, 1]^*, False], [['G', 2, 1]^*, False],
345
+ [['BC', 1, 2]^*, False], [['BC', 5, 2]^*, False]]
346
+ """
347
+ return False
348
+
349
+ @cached_method
350
+ def bilinear_form(self, R=None):
351
+ """
352
+ Return the bilinear form over ``R`` associated to ``self``.
353
+
354
+ INPUT:
355
+
356
+ - ``R`` -- (default: universal cyclotomic field) a ring used to
357
+ compute the bilinear form
358
+
359
+ EXAMPLES::
360
+
361
+ sage: # needs sage.graphs sage.libs.gap
362
+ sage: CoxeterType(['A', 2, 1]).bilinear_form()
363
+ [ 1 -1/2 -1/2]
364
+ [-1/2 1 -1/2]
365
+ [-1/2 -1/2 1]
366
+ sage: CoxeterType(['H', 3]).bilinear_form()
367
+ [ 1 -1/2 0]
368
+ [ -1/2 1 1/2*E(5)^2 + 1/2*E(5)^3]
369
+ [ 0 1/2*E(5)^2 + 1/2*E(5)^3 1]
370
+ sage: C = CoxeterMatrix([[1,-1,-1],[-1,1,-1],[-1,-1,1]])
371
+ sage: C.bilinear_form()
372
+ [ 1 -1 -1]
373
+ [-1 1 -1]
374
+ [-1 -1 1]
375
+ """
376
+
377
+ n = self.rank()
378
+ mat = self.coxeter_matrix()._matrix
379
+
380
+ if R is None:
381
+ R = UniversalCyclotomicField()
382
+
383
+ # Compute the matrix with entries `- \cos( \pi / m_{ij} )`.
384
+ if isinstance(R, sage.rings.abc.UniversalCyclotomicField):
385
+ E = R.gen
386
+
387
+ def val(x):
388
+ if x > -1:
389
+ return (E(2*x) + ~E(2*x)) / R(-2)
390
+ else:
391
+ return R(x)
392
+ elif isinstance(R, sage.rings.abc.NumberField_quadratic):
393
+ E = UniversalCyclotomicField().gen
394
+
395
+ def val(x):
396
+ if x > -1:
397
+ return R((E(2*x) + ~E(2*x)).to_cyclotomic_field()) / R(-2)
398
+ else:
399
+ return R(x)
400
+ elif all(mat[i,j] in (1, 2, 3) or mat[i, j] <= -1 for i in range(n) for j in range(n)):
401
+ def val(x):
402
+ if x > -1:
403
+ if x == 1:
404
+ return R(1)
405
+ elif x == 2:
406
+ return R(0)
407
+ elif x == 3:
408
+ return R(1)/R(-2)
409
+ else:
410
+ return R(x)
411
+ else:
412
+ from sage.functions.trig import cos
413
+ from sage.symbolic.constants import pi
414
+ from sage.symbolic.ring import SR
415
+
416
+ def val(x):
417
+ if x > -1:
418
+ return -R(cos(pi / SR(x)))
419
+ else:
420
+ return R(x)
421
+
422
+ entries = [SparseEntry(i, j, val(mat[i, j]))
423
+ for i in range(n) for j in range(n)
424
+ if mat[i, j] != 2]
425
+ bilinear = Matrix(R, n, entries)
426
+ bilinear.set_immutable()
427
+ return bilinear
428
+
429
+
430
+ class CoxeterTypeFromCartanType(UniqueRepresentation, CoxeterType):
431
+ """
432
+ A Coxeter type associated to a Cartan type.
433
+ """
434
+ @staticmethod
435
+ def __classcall_private__(cls, cartan_type):
436
+ """
437
+ Normalize input to ensure a unique representation.
438
+
439
+ EXAMPLES::
440
+
441
+ sage: from sage.combinat.root_system.coxeter_type import CoxeterTypeFromCartanType
442
+ sage: C1 = CoxeterTypeFromCartanType(['A',3])
443
+ sage: C2 = CoxeterTypeFromCartanType(CartanType(['A',3]))
444
+ sage: C1 is C2
445
+ True
446
+ """
447
+ return super().__classcall__(cls, CartanType(cartan_type))
448
+
449
+ def __init__(self, cartan_type):
450
+ """
451
+ Initialize ``self``.
452
+
453
+ EXAMPLES::
454
+
455
+ sage: C = CoxeterType(['A',3])
456
+ sage: TestSuite(C).run()
457
+ sage: C = CoxeterType(['H',4])
458
+ sage: TestSuite(C).run()
459
+ sage: C = CoxeterType(['C',3,1])
460
+ sage: TestSuite(C).run()
461
+ """
462
+ self._cartan_type = cartan_type
463
+
464
+ def _repr_(self, compact=False):
465
+ """
466
+ Return a string representation of ``self``.
467
+
468
+ EXAMPLES::
469
+
470
+ sage: CoxeterType(['A',3])
471
+ Coxeter type of ['A', 3]
472
+ """
473
+ if compact:
474
+ return self._cartan_type._repr_(compact)
475
+ return "Coxeter type of {}".format(self._cartan_type)
476
+
477
+ def _latex_(self):
478
+ r"""
479
+ Return a latex representation of ``self``.
480
+
481
+ EXAMPLES::
482
+
483
+ sage: latex(CoxeterType(['A',3]))
484
+ A_{3}
485
+ """
486
+ return self._cartan_type._latex_()
487
+
488
+ def coxeter_matrix(self):
489
+ """
490
+ Return the Coxeter matrix associated to ``self``.
491
+
492
+ EXAMPLES::
493
+
494
+ sage: C = CoxeterType(['H',3])
495
+ sage: C.coxeter_matrix() # needs sage.graphs
496
+ [1 3 2]
497
+ [3 1 5]
498
+ [2 5 1]
499
+ """
500
+ return self._cartan_type.coxeter_matrix()
501
+
502
+ def coxeter_graph(self):
503
+ """
504
+ Return the Coxeter graph of ``self``.
505
+
506
+ EXAMPLES::
507
+
508
+ sage: C = CoxeterType(['H',3])
509
+ sage: C.coxeter_graph().edges(sort=True) # needs sage.graphs
510
+ [(1, 2, 3), (2, 3, 5)]
511
+ """
512
+ return self._cartan_type.coxeter_diagram()
513
+
514
+ def cartan_type(self):
515
+ """
516
+ Return the Cartan type used to construct ``self``.
517
+
518
+ EXAMPLES::
519
+
520
+ sage: C = CoxeterType(['C',3])
521
+ sage: C.cartan_type()
522
+ ['C', 3]
523
+ """
524
+ return self._cartan_type
525
+
526
+ def type(self):
527
+ """
528
+ Return the type of ``self``.
529
+
530
+ EXAMPLES::
531
+
532
+ sage: C = CoxeterType(['A', 4])
533
+ sage: C.type()
534
+ 'A'
535
+ """
536
+ return self._cartan_type.type()
537
+
538
+ def rank(self):
539
+ """
540
+ Return the rank of ``self``.
541
+
542
+ EXAMPLES::
543
+
544
+ sage: C = CoxeterType(['I', 16])
545
+ sage: C.rank()
546
+ 2
547
+ """
548
+ return self._cartan_type.rank()
549
+
550
+ def index_set(self):
551
+ """
552
+ Return the index set of ``self``.
553
+
554
+ EXAMPLES::
555
+
556
+ sage: C = CoxeterType(['A', 4])
557
+ sage: C.index_set()
558
+ (1, 2, 3, 4)
559
+ """
560
+ return self._cartan_type.index_set()
561
+
562
+ def is_finite(self):
563
+ """
564
+ Return if ``self`` is a finite type.
565
+
566
+ EXAMPLES::
567
+
568
+ sage: C = CoxeterType(['E', 6])
569
+ sage: C.is_finite()
570
+ True
571
+ """
572
+ return self._cartan_type.is_finite()
573
+
574
+ def is_affine(self):
575
+ """
576
+ Return if ``self`` is an affine type.
577
+
578
+ EXAMPLES::
579
+
580
+ sage: C = CoxeterType(['F', 4, 1])
581
+ sage: C.is_affine()
582
+ True
583
+ """
584
+ return self._cartan_type.is_affine()
585
+
586
+ def is_crystallographic(self):
587
+ """
588
+ Return if ``self`` is crystallographic.
589
+
590
+ EXAMPLES::
591
+
592
+ sage: C = CoxeterType(['C', 3])
593
+ sage: C.is_crystallographic()
594
+ True
595
+
596
+ sage: C = CoxeterType(['H', 3])
597
+ sage: C.is_crystallographic()
598
+ False
599
+ """
600
+ return self._cartan_type.is_crystallographic()
601
+
602
+ def is_simply_laced(self):
603
+ """
604
+ Return if ``self`` is simply-laced.
605
+
606
+ EXAMPLES::
607
+
608
+ sage: C = CoxeterType(['A', 5])
609
+ sage: C.is_simply_laced()
610
+ True
611
+
612
+ sage: C = CoxeterType(['B', 3])
613
+ sage: C.is_simply_laced()
614
+ False
615
+ """
616
+ return self._cartan_type.is_simply_laced()
617
+
618
+ def is_reducible(self):
619
+ """
620
+ Return if ``self`` is reducible.
621
+
622
+ EXAMPLES::
623
+
624
+ sage: C = CoxeterType(['A', 5])
625
+ sage: C.is_reducible()
626
+ False
627
+
628
+ sage: C = CoxeterType('A2xA2')
629
+ sage: C.is_reducible()
630
+ True
631
+ """
632
+ return self._cartan_type.is_reducible()
633
+
634
+ def is_irreducible(self):
635
+ """
636
+ Return if ``self`` is irreducible.
637
+
638
+ EXAMPLES::
639
+
640
+ sage: C = CoxeterType(['A', 5])
641
+ sage: C.is_irreducible()
642
+ True
643
+
644
+ sage: C = CoxeterType('B3xB3')
645
+ sage: C.is_irreducible()
646
+ False
647
+ """
648
+ return self._cartan_type.is_irreducible()
649
+
650
+ def component_types(self):
651
+ """
652
+ A list of Coxeter types making up the reducible type.
653
+
654
+ EXAMPLES::
655
+
656
+ sage: CoxeterType(['A',2],['B',2]).component_types()
657
+ [Coxeter type of ['A', 2], Coxeter type of ['B', 2]]
658
+
659
+ sage: CoxeterType('A4xB3').component_types()
660
+ [Coxeter type of ['A', 4], Coxeter type of ['B', 3]]
661
+
662
+ sage: CoxeterType(['A', 2]).component_types()
663
+ Traceback (most recent call last):
664
+ ...
665
+ ValueError: component types only defined for reducible types
666
+ """
667
+ if self.is_irreducible():
668
+ raise ValueError('component types only defined for reducible types')
669
+ return [CoxeterType(t) for t in self._cartan_type.component_types()]
670
+
671
+ def relabel(self, relabelling):
672
+ """
673
+ Return a relabelled copy of ``self``.
674
+
675
+ EXAMPLES::
676
+
677
+ sage: ct = CoxeterType(['A',2])
678
+ sage: ct.relabel({1:-1, 2:-2})
679
+ Coxeter type of ['A', 2] relabelled by {1: -1, 2: -2}
680
+ """
681
+ return CoxeterType(self._cartan_type.relabel(relabelling))