passagemath-modules 10.6.31__cp314-cp314-macosx_13_0_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 (807) hide show
  1. passagemath_modules-10.6.31.dist-info/METADATA +281 -0
  2. passagemath_modules-10.6.31.dist-info/RECORD +807 -0
  3. passagemath_modules-10.6.31.dist-info/WHEEL +6 -0
  4. passagemath_modules-10.6.31.dist-info/top_level.txt +2 -0
  5. passagemath_modules.dylibs/libgfortran.5.dylib +0 -0
  6. passagemath_modules.dylibs/libgmp.10.dylib +0 -0
  7. passagemath_modules.dylibs/libgsl.28.dylib +0 -0
  8. passagemath_modules.dylibs/libmpc.3.dylib +0 -0
  9. passagemath_modules.dylibs/libmpfr.6.dylib +0 -0
  10. passagemath_modules.dylibs/libopenblasp-r0.3.29.dylib +0 -0
  11. passagemath_modules.dylibs/libquadmath.0.dylib +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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.so +0 -0
  74. sage/calculus/integration.pyx +698 -0
  75. sage/calculus/interpolation.cpython-314-darwin.so +0 -0
  76. sage/calculus/interpolation.pxd +13 -0
  77. sage/calculus/interpolation.pyx +387 -0
  78. sage/calculus/interpolators.cpython-314-darwin.so +0 -0
  79. sage/calculus/interpolators.pyx +326 -0
  80. sage/calculus/ode.cpython-314-darwin.so +0 -0
  81. sage/calculus/ode.pxd +5 -0
  82. sage/calculus/ode.pyx +610 -0
  83. sage/calculus/riemann.cpython-314-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.so +0 -0
  401. sage/matrix/constructor.pyx +750 -0
  402. sage/matrix/docs.py +430 -0
  403. sage/matrix/echelon_matrix.cpython-314-darwin.so +0 -0
  404. sage/matrix/echelon_matrix.pyx +155 -0
  405. sage/matrix/matrix.pxd +2 -0
  406. sage/matrix/matrix0.cpython-314-darwin.so +0 -0
  407. sage/matrix/matrix0.pxd +68 -0
  408. sage/matrix/matrix0.pyx +6324 -0
  409. sage/matrix/matrix1.cpython-314-darwin.so +0 -0
  410. sage/matrix/matrix1.pxd +8 -0
  411. sage/matrix/matrix1.pyx +2851 -0
  412. sage/matrix/matrix2.cpython-314-darwin.so +0 -0
  413. sage/matrix/matrix2.pxd +25 -0
  414. sage/matrix/matrix2.pyx +20181 -0
  415. sage/matrix/matrix_cdv.cpython-314-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.so +0 -0
  492. sage/matroids/extension.pxd +34 -0
  493. sage/matroids/extension.pyx +519 -0
  494. sage/matroids/flats_matroid.cpython-314-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.so +0 -0
  701. sage/rings/function_field/hermite_form_polynomial.pyx +188 -0
  702. sage/rings/function_field/khuri_makdisi.cpython-314-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.so +0 -0
  771. sage/stats/hmm/chmm.pyx +1595 -0
  772. sage/stats/hmm/distributions.cpython-314-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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,147 @@
1
+ # sage_setup: distribution = sagemath-modules
2
+ """
3
+ Root systems
4
+
5
+ Quickref
6
+ --------
7
+
8
+ - ``T = CartanType(["A", 3]), T.is_finite()`` -- Cartan types
9
+ - ``T.dynkin_diagram(), DynkinDiagram(["G",2])`` -- Dynkin diagrams
10
+ - ``T.cartan_matrix(), CartanMatrix(["F",4])`` -- Cartan matrices
11
+ - ``RootSystem(T).weight_lattice()`` -- Root systems
12
+ - ``WeylGroup(["B", 6, 1]).simple_reflections()`` -- Affine Weyl groups
13
+ - ``WeylCharacterRing(["D", 4])`` -- Weyl character rings
14
+
15
+ Introductory material
16
+ ---------------------
17
+
18
+ - :ref:`sage.combinat.root_system.all` -- This overview
19
+ - :class:`CartanType` -- An introduction to Cartan types
20
+ - :class:`RootSystem` -- An introduction to root systems
21
+ - :ref:`sage.combinat.root_system.plot` -- A root system visualization tutorial
22
+
23
+ - The `Lie Methods and Related Combinatorics <../../../../../thematic_tutorials/lie.html>`_ thematic tutorial
24
+
25
+
26
+ Related material
27
+ ----------------
28
+
29
+ - :ref:`sage.combinat.crystals.all` -- Crystals
30
+
31
+ Cartan datum
32
+ ------------
33
+
34
+ - :ref:`sage.combinat.root_system.cartan_type`
35
+ - :ref:`sage.combinat.root_system.dynkin_diagram`
36
+ - :ref:`sage.combinat.root_system.cartan_matrix`
37
+ - :ref:`sage.combinat.root_system.coxeter_matrix`
38
+ - :ref:`sage.combinat.root_system.coxeter_type`
39
+
40
+ Root systems
41
+ ------------
42
+
43
+ - :ref:`sage.combinat.root_system.all`
44
+ - :ref:`sage.combinat.root_system.plot`
45
+ - :ref:`sage.combinat.root_system.root_lattice_realizations`
46
+ - :ref:`sage.combinat.root_system.root_lattice_realization_algebras`
47
+ - :ref:`sage.combinat.root_system.weight_lattice_realizations`
48
+ - :ref:`sage.combinat.root_system.root_space`
49
+ - :ref:`sage.combinat.root_system.weight_space`
50
+ - :ref:`sage.combinat.root_system.ambient_space`
51
+
52
+ Coxeter groups
53
+ --------------
54
+
55
+ - :ref:`sage.combinat.root_system.coxeter_group`
56
+ - :ref:`sage.combinat.root_system.weyl_group`
57
+ - :ref:`sage.combinat.root_system.extended_affine_weyl_group`
58
+ - :ref:`sage.combinat.root_system.fundamental_group`
59
+ - :ref:`sage.combinat.root_system.braid_move_calculator`
60
+ - :ref:`sage.combinat.root_system.braid_orbit`
61
+
62
+ .. SEEALSO::
63
+
64
+ The categories :class:`CoxeterGroups` and :class:`WeylGroups`
65
+
66
+ Finite reflection groups
67
+ ------------------------
68
+
69
+ - :ref:`sage.combinat.root_system.reflection_group_complex`
70
+ - :ref:`sage.combinat.root_system.reflection_group_real`
71
+
72
+ .. SEEALSO::
73
+
74
+ The category :class:`~sage.categories.complex_reflection_groups.ComplexReflectionGroups`
75
+
76
+ Representation theory
77
+ ---------------------
78
+
79
+ - :ref:`sage.combinat.root_system.weyl_characters`
80
+ - :ref:`sage.algebras.fusion_rings.fusion_ring`
81
+ - :ref:`sage.combinat.root_system.integrable_representations`
82
+ - :ref:`sage.combinat.root_system.branching_rules`
83
+ - :ref:`sage.combinat.root_system.hecke_algebra_representation`
84
+ - :ref:`sage.combinat.root_system.non_symmetric_macdonald_polynomials`
85
+
86
+ Root system data and code for specific families of Cartan types
87
+ ---------------------------------------------------------------
88
+
89
+ - :ref:`sage.combinat.root_system.type_affine`
90
+ - :ref:`sage.combinat.root_system.type_dual`
91
+ - :ref:`sage.combinat.root_system.type_folded`
92
+ - :ref:`sage.combinat.root_system.type_reducible`
93
+ - :ref:`sage.combinat.root_system.type_relabel`
94
+ - :ref:`sage.combinat.root_system.type_marked`
95
+
96
+ Root system data and code for specific Cartan types
97
+ ---------------------------------------------------
98
+
99
+ - :ref:`sage.combinat.root_system.type_A`
100
+ - :ref:`sage.combinat.root_system.type_B`
101
+ - :ref:`sage.combinat.root_system.type_C`
102
+ - :ref:`sage.combinat.root_system.type_D`
103
+ - :ref:`sage.combinat.root_system.type_E`
104
+ - :ref:`sage.combinat.root_system.type_F`
105
+ - :ref:`sage.combinat.root_system.type_G`
106
+ - :ref:`sage.combinat.root_system.type_H`
107
+ - :ref:`sage.combinat.root_system.type_I`
108
+ - :ref:`sage.combinat.root_system.type_A_affine`
109
+ - :ref:`sage.combinat.root_system.type_B_affine`
110
+ - :ref:`sage.combinat.root_system.type_C_affine`
111
+ - :ref:`sage.combinat.root_system.type_D_affine`
112
+ - :ref:`sage.combinat.root_system.type_E_affine`
113
+ - :ref:`sage.combinat.root_system.type_F_affine`
114
+ - :ref:`sage.combinat.root_system.type_G_affine`
115
+ - :ref:`sage.combinat.root_system.type_BC_affine`
116
+ - :ref:`sage.combinat.root_system.type_super_A`
117
+ - :ref:`sage.combinat.root_system.type_A_infinity`
118
+ """
119
+ # install the docstring of this module to the containing package
120
+ from sage.misc.namespace_package import install_doc
121
+ install_doc(__package__, __doc__)
122
+
123
+ from sage.misc.lazy_import import lazy_import
124
+
125
+ from sage.combinat.root_system.cartan_type import CartanType
126
+ lazy_import('sage.combinat.root_system.dynkin_diagram', 'DynkinDiagram')
127
+ lazy_import('sage.combinat.root_system.cartan_matrix', 'CartanMatrix')
128
+ lazy_import('sage.combinat.root_system.coxeter_matrix', 'CoxeterMatrix')
129
+ from sage.combinat.root_system.coxeter_type import CoxeterType
130
+ from sage.combinat.root_system.root_system import RootSystem, WeylDim
131
+ lazy_import('sage.combinat.root_system.weyl_group', ['WeylGroup',
132
+ 'WeylGroupElement'])
133
+ lazy_import('sage.combinat.root_system.reflection_group_real',
134
+ 'ReflectionGroup')
135
+ lazy_import('sage.combinat.root_system.extended_affine_weyl_group',
136
+ 'ExtendedAffineWeylGroup')
137
+ lazy_import('sage.combinat.root_system.coxeter_group', 'CoxeterGroup')
138
+ lazy_import('sage.combinat.root_system.weyl_characters', ['WeylCharacterRing',
139
+ 'WeightRing'])
140
+ from sage.combinat.root_system.branching_rules import BranchingRule, branching_rule_from_plethysm, branching_rule
141
+
142
+ lazy_import('sage.combinat.root_system.non_symmetric_macdonald_polynomials',
143
+ 'NonSymmetricMacdonaldPolynomials')
144
+ lazy_import('sage.combinat.root_system.integrable_representations',
145
+ 'IntegrableRepresentation')
146
+ del lazy_import
147
+ del install_doc
@@ -0,0 +1,527 @@
1
+ # sage_setup: distribution = sagemath-modules
2
+ r"""
3
+ Ambient lattices and ambient spaces
4
+ """
5
+ # ***************************************************************************
6
+ # Copyright (C) 2008-2009 Daniel Bump
7
+ # Copyright (C) 2008-2013 Nicolas M. Thiery <nthiery at users.sf.net>
8
+ #
9
+ # Distributed under the terms of the GNU General Public License (GPL)
10
+ # https://www.gnu.org/licenses/
11
+ # ***************************************************************************
12
+ from sage.misc.cachefunc import cached_method
13
+ from sage.combinat.free_module import CombinatorialFreeModule
14
+ from .weight_lattice_realizations import WeightLatticeRealizations
15
+ from sage.rings.integer_ring import ZZ
16
+ from sage.rings.rational_field import QQ
17
+ from sage.categories.homset import End
18
+
19
+
20
+ class AmbientSpace(CombinatorialFreeModule):
21
+ r"""
22
+ Abstract class for ambient spaces.
23
+
24
+ All subclasses should implement a class method
25
+ ``smallest_base_ring`` taking a Cartan type as input, and a method
26
+ ``dimension`` working on a partially initialized instance with
27
+ just ``root_system`` as attribute. There is no safe default
28
+ implementation for the later, so none is provided.
29
+
30
+ EXAMPLES::
31
+
32
+ sage: AL = RootSystem(['A',2]).ambient_lattice()
33
+
34
+ .. NOTE:: This is only used so far for finite root systems.
35
+
36
+ Caveat: Most of the ambient spaces currently have a basis indexed
37
+ by `0,\dots, n`, unlike the usual mathematical convention::
38
+
39
+ sage: e = AL.basis()
40
+ sage: e[0], e[1], e[2]
41
+ ((1, 0, 0), (0, 1, 0), (0, 0, 1))
42
+
43
+ This will be cleaned up!
44
+
45
+ .. SEEALSO::
46
+
47
+ - :class:`sage.combinat.root_system.type_A.AmbientSpace`
48
+ - :class:`sage.combinat.root_system.type_B.AmbientSpace`
49
+ - :class:`sage.combinat.root_system.type_C.AmbientSpace`
50
+ - :class:`sage.combinat.root_system.type_D.AmbientSpace`
51
+ - :class:`sage.combinat.root_system.type_E.AmbientSpace`
52
+ - :class:`sage.combinat.root_system.type_F.AmbientSpace`
53
+ - :class:`sage.combinat.root_system.type_G.AmbientSpace`
54
+ - :class:`sage.combinat.root_system.type_dual.AmbientSpace`
55
+ - :class:`sage.combinat.root_system.type_affine.AmbientSpace`
56
+
57
+ TESTS::
58
+
59
+ sage: # needs sage.libs.gap
60
+ sage: types = CartanType.samples(crystallographic=True) + [CartanType(["A",2],["C",5])]
61
+ sage: for e in [ct.root_system().ambient_space() for ct in types]:
62
+ ....: TestSuite(e).run()
63
+
64
+ sage: e1 = RootSystem(['A',3]).ambient_lattice()
65
+ sage: e2 = RootSystem(['B',3]).ambient_lattice()
66
+ sage: e1 == e1
67
+ True
68
+ sage: e1 == e2
69
+ False
70
+
71
+ sage: e1 = RootSystem(['A',3]).ambient_space(QQ)
72
+ sage: e2 = RootSystem(['A',3]).ambient_space(RR)
73
+ sage: e1 == e2
74
+ False
75
+ """
76
+
77
+ def __init__(self, root_system, base_ring, index_set=None):
78
+ """
79
+ EXAMPLES::
80
+
81
+ sage: e = RootSystem(['A',3]).ambient_lattice()
82
+ sage: s = e.simple_reflections()
83
+
84
+ sage: L = RootSystem(['A',3]).coroot_lattice()
85
+ sage: e.has_coerce_map_from(L)
86
+ True
87
+ sage: e(L.simple_root(1))
88
+ (1, -1, 0, 0)
89
+ """
90
+ self.root_system = root_system
91
+ if index_set is None:
92
+ index_set = tuple(range(self.dimension()))
93
+ CombinatorialFreeModule.__init__(self, base_ring,
94
+ index_set,
95
+ prefix='e',
96
+ category=WeightLatticeRealizations(base_ring))
97
+ coroot_lattice = self.root_system.coroot_lattice()
98
+ coroot_lattice.module_morphism(self.simple_coroot, codomain=self).register_as_coercion()
99
+
100
+ # FIXME: here for backward compatibility;
101
+ # Should we use dimension everywhere?
102
+ self.n = self.dimension()
103
+ ct = root_system.cartan_type()
104
+ if ct.is_irreducible() and ct.type() == 'E':
105
+ self._v0 = self([0,0,0,0,0, 0,1, 1])
106
+ self._v1 = self([0,0,0,0,0,-2,1,-1])
107
+
108
+ def _test_norm_of_simple_roots(self, **options):
109
+ """
110
+ Test that the norm of the roots is, up to an overall constant factor,
111
+ given by the symmetrizer of the Cartan matrix.
112
+
113
+ .. SEEALSO:: :class:`TestSuite`
114
+
115
+ EXAMPLES::
116
+
117
+ sage: e = RootSystem(['F',4]).ambient_space()
118
+ sage: e._test_norm_of_simple_roots()
119
+ """
120
+ tester = self._tester(**options)
121
+ T = self.cartan_type()
122
+ try:
123
+ D = T.symmetrizer()
124
+ alpha = self.simple_roots()
125
+ DD = T.dynkin_diagram()
126
+ except ImportError: # Dynkin diagrams need sage.graphs
127
+ return
128
+ for C in DD.connected_components(sort=False):
129
+ tester.assertEqual(len( set( alpha[i].scalar(alpha[i]) / D[i] for i in C ) ), 1)
130
+
131
+ # FIXME: attribute or method?
132
+ def dimension(self):
133
+ """
134
+ Return the dimension of this ambient space.
135
+
136
+ EXAMPLES::
137
+
138
+ sage: from sage.combinat.root_system.ambient_space import AmbientSpace
139
+ sage: e = RootSystem(['F',4]).ambient_space()
140
+ sage: AmbientSpace.dimension(e)
141
+ Traceback (most recent call last):
142
+ ...
143
+ NotImplementedError
144
+ """
145
+ raise NotImplementedError
146
+
147
+ @classmethod
148
+ def smallest_base_ring(cls, cartan_type=None):
149
+ r"""
150
+ Return the smallest ground ring over which the ambient space can be realized.
151
+
152
+ This class method will get called with the Cartan type as
153
+ input. This default implementation returns `\QQ`; subclasses
154
+ should override it as appropriate.
155
+
156
+ EXAMPLES::
157
+
158
+ sage: e = RootSystem(['F',4]).ambient_space()
159
+ sage: e.smallest_base_ring()
160
+ Rational Field
161
+ """
162
+ return QQ
163
+
164
+ def _repr_(self):
165
+ """
166
+ EXAMPLES::
167
+
168
+ sage: RootSystem(['A',4]).ambient_lattice() # indirect doctest
169
+ Ambient lattice of the Root system of type ['A', 4]
170
+ sage: RootSystem(['B',4]).ambient_space()
171
+ Ambient space of the Root system of type ['B', 4]
172
+ """
173
+ return self._name_string()
174
+
175
+ def _name_string(self, capitalize=True, base_ring=False, type=True):
176
+ """
177
+ EXAMPLES::
178
+
179
+ sage: RootSystem(['A',4]).ambient_lattice()._name_string()
180
+ "Ambient lattice of the Root system of type ['A', 4]"
181
+ """
182
+ return self._name_string_helper("ambient", capitalize=capitalize, base_ring=base_ring, type=type)
183
+
184
+ def __call__(self, v):
185
+ """
186
+ TESTS::
187
+
188
+ sage: R = RootSystem(['A',4]).ambient_lattice()
189
+ sage: R([1,2,3,4,5])
190
+ (1, 2, 3, 4, 5)
191
+ sage: len(R([1,0,0,0,0]).monomial_coefficients())
192
+ 1
193
+ """
194
+ # This adds coercion from a list
195
+ if isinstance(v, (list, tuple)):
196
+ K = self.base_ring()
197
+ return self._from_dict({i: K(c) for i, c in enumerate(v) if c})
198
+ else:
199
+ return CombinatorialFreeModule.__call__(self, v)
200
+
201
+ def __getitem__(self, i):
202
+ """
203
+ Note that indexing starts at 1.
204
+
205
+ EXAMPLES::
206
+
207
+ sage: e = RootSystem(['A',2]).ambient_lattice()
208
+ sage: e[1]
209
+ (1, 0, 0)
210
+ sage: e[0]
211
+ Traceback (most recent call last):
212
+ ...
213
+ IndexError: value out of range
214
+ """
215
+ if not (i > 0 and i <= self.dimension()):
216
+ raise IndexError("value out of range")
217
+ return self.monomial(i-1)
218
+
219
+ def coroot_lattice(self):
220
+ """
221
+ EXAMPLES::
222
+
223
+ sage: e = RootSystem(["A", 3]).ambient_lattice()
224
+ sage: e.coroot_lattice()
225
+ Ambient lattice of the Root system of type ['A', 3]
226
+ """
227
+ return self
228
+
229
+ def simple_coroot(self, i):
230
+ r"""
231
+ Return the `i`-th simple coroot, as an element of this space.
232
+
233
+ EXAMPLES::
234
+
235
+ sage: R = RootSystem(["A",3])
236
+ sage: L = R.ambient_lattice()
237
+ sage: L.simple_coroot(1)
238
+ (1, -1, 0, 0)
239
+ sage: L.simple_coroot(2)
240
+ (0, 1, -1, 0)
241
+ sage: L.simple_coroot(3)
242
+ (0, 0, 1, -1)
243
+ """
244
+ return self.simple_root(i).associated_coroot()
245
+
246
+ def reflection(self, root, coroot=None):
247
+ """
248
+ EXAMPLES::
249
+
250
+ sage: e = RootSystem(["A", 3]).ambient_lattice()
251
+ sage: a = e.simple_root(0); a
252
+ (-1, 0, 0, 0)
253
+ sage: b = e.simple_root(1); b
254
+ (1, -1, 0, 0)
255
+ sage: s_a = e.reflection(a)
256
+ sage: s_a(b)
257
+ (0, -1, 0, 0)
258
+ """
259
+ # TODO: get rid of this as one can use the generic implementation
260
+ # (i.e. scalar and associated coroot are implemented)
261
+ return lambda v: v - root.base_ring()(2*root.inner_product(v)/root.inner_product(root))*root
262
+
263
+ @cached_method
264
+ def fundamental_weight(self, i):
265
+ r"""
266
+ Return the fundamental weight `\Lambda_i` in ``self``.
267
+
268
+ In several of the ambient spaces, it is more convenient to
269
+ construct all fundamental weights at once. To support this, we
270
+ provide this default implementation of ``fundamental_weight``
271
+ using the method ``fundamental_weights``. Beware that this
272
+ will cause a loop if neither ``fundamental_weight`` nor
273
+ ``fundamental_weights`` is implemented.
274
+
275
+ EXAMPLES::
276
+
277
+ sage: e = RootSystem(['F',4]).ambient_space()
278
+ sage: e.fundamental_weight(3)
279
+ (3/2, 1/2, 1/2, 1/2)
280
+
281
+ sage: e = RootSystem(['G',2]).ambient_space()
282
+ sage: e.fundamental_weight(1)
283
+ (1, 0, -1)
284
+
285
+ sage: e = RootSystem(['E',6]).ambient_space()
286
+ sage: e.fundamental_weight(3)
287
+ (-1/2, 1/2, 1/2, 1/2, 1/2, -5/6, -5/6, 5/6)
288
+ """
289
+ return self.fundamental_weights()[i]
290
+
291
+ def from_vector_notation(self, weight, style='lattice'):
292
+ """
293
+ INPUT:
294
+
295
+ - ``weight`` -- a vector or tuple representing a weight
296
+
297
+ Returns an element of ``self``. If the weight lattice is not
298
+ of full rank, it coerces it into the weight lattice, or
299
+ its ambient space by orthogonal projection. This arises
300
+ in two cases: for SL(r+1), the weight lattice is
301
+ contained in a hyperplane of codimension one in the ambient,
302
+ space, and for types E6 and E7, the weight lattice is
303
+ contained in a subspace of codimensions 2 or 3, respectively.
304
+
305
+ If style="coroots" and the data is a tuple of integers, it
306
+ is assumed that the data represent a linear combination of
307
+ fundamental weights. If style='coroots', and the root lattice
308
+ is not of full rank in the ambient space, it is projected
309
+ into the subspace corresponding to the semisimple derived group.
310
+ This arises with Cartan type A, E6 and E7.
311
+
312
+ EXAMPLES::
313
+
314
+ sage: RootSystem("A2").ambient_space().from_vector_notation((1,0,0))
315
+ (1, 0, 0)
316
+ sage: RootSystem("A2").ambient_space().from_vector_notation([1,0,0])
317
+ (1, 0, 0)
318
+ sage: RootSystem("A2").ambient_space().from_vector_notation((1,0),style='coroots')
319
+ (2/3, -1/3, -1/3)
320
+ """
321
+ if style == "coroots" and isinstance(weight, tuple) and all(xv in ZZ for xv in weight):
322
+ weight = self.linear_combination(zip(self.fundamental_weights(), weight))
323
+
324
+ x = self(weight)
325
+
326
+ if style == "coroots":
327
+ cartan_type = self.cartan_type()
328
+ if cartan_type.is_irreducible() and cartan_type.type() == 'E':
329
+ if cartan_type.rank() == 6:
330
+ x = x.coerce_to_e6()
331
+ if cartan_type.rank() == 7:
332
+ x = x.coerce_to_e7()
333
+ else:
334
+ x = x.coerce_to_sl()
335
+ return x
336
+
337
+ def to_ambient_space_morphism(self):
338
+ r"""
339
+ Return the identity map on ``self``.
340
+
341
+ This is present for uniformity of use; the corresponding method
342
+ for abstract root and weight lattices/spaces, is not trivial.
343
+
344
+ EXAMPLES::
345
+
346
+ sage: P = RootSystem(['A',2]).ambient_space()
347
+ sage: f = P.to_ambient_space_morphism()
348
+ sage: p = P.an_element()
349
+ sage: p
350
+ (2, 2, 3)
351
+ sage: f(p)
352
+ (2, 2, 3)
353
+ sage: f(p)==p
354
+ True
355
+ """
356
+ return End(self).identity()
357
+
358
+
359
+ class AmbientSpaceElement(CombinatorialFreeModule.Element):
360
+ # For backward compatibility
361
+ def _repr_(self):
362
+ """
363
+ EXAMPLES::
364
+
365
+ sage: e = RootSystem(['A',2]).ambient_space()
366
+ sage: e.simple_root(0) # indirect doctest
367
+ (-1, 0, 0)
368
+ """
369
+ return str(self.to_vector())
370
+
371
+ def inner_product(self, lambdacheck):
372
+ """
373
+ The scalar product with elements of the ambient space.
374
+
375
+ EXAMPLES::
376
+
377
+ sage: e = RootSystem(['A',2]).ambient_space()
378
+ sage: a = e.simple_root(0); a
379
+ (-1, 0, 0)
380
+ sage: a.inner_product(a)
381
+ 2
382
+
383
+ TESTS:
384
+
385
+ Verify that :issue:`15325` (A) is fixed::
386
+
387
+ sage: rt = RootSystem(['E', 8])
388
+ sage: lat = rt.root_lattice()
389
+ sage: spc = rt.ambient_space()
390
+ sage: spc.simple_root(1).scalar(lat.simple_coroot(2))
391
+ 0
392
+ """
393
+ if self.parent() is not lambdacheck.parent():
394
+ try:
395
+ # see if lambdacheck can be converted to the ambient space
396
+ lambdacheck = self.parent()(lambdacheck)
397
+ except (TypeError, ValueError):
398
+ raise TypeError(f"unable to coerce {lambdacheck} into {self.parent()}")
399
+
400
+ # self and lambdacheck both belong to the same ambient space, so use the inner product there
401
+ self_mc = self._monomial_coefficients
402
+ lambdacheck_mc = lambdacheck._monomial_coefficients
403
+
404
+ result = self.parent().base_ring().zero()
405
+ for t,c in lambdacheck_mc.items():
406
+ if t in self_mc:
407
+ result += c*self_mc[t]
408
+ return result
409
+
410
+ scalar = inner_product
411
+ dot_product = inner_product
412
+
413
+ def associated_coroot(self):
414
+ """
415
+ EXAMPLES::
416
+
417
+ sage: e = RootSystem(['F',4]).ambient_space()
418
+ sage: a = e.simple_root(0); a
419
+ (1/2, -1/2, -1/2, -1/2)
420
+ sage: a.associated_coroot()
421
+ (1, -1, -1, -1)
422
+ """
423
+ # FIXME: make it work over ZZ!
424
+ return self * self.base_ring()(2/self.inner_product(self))
425
+
426
+ def is_positive_root(self):
427
+ """
428
+ EXAMPLES::
429
+
430
+ sage: R = RootSystem(['A',3]).ambient_space()
431
+ sage: r=R.simple_root(1)+R.simple_root(2)
432
+ sage: r.is_positive_root()
433
+ True
434
+ sage: r=R.simple_root(1)-R.simple_root(2)
435
+ sage: r.is_positive_root()
436
+ False
437
+ """
438
+ return self.parent().rho().scalar(self) > 0
439
+
440
+ def coerce_to_sl(self):
441
+ """
442
+ For type ['A',r], this coerces the element of the ambient space into the
443
+ root space by orthogonal projection. The root space has codimension one
444
+ and corresponds to the Lie algebra of SL(r+1,CC), whereas the full weight
445
+ space corresponds to the Lie algebra of GL(r+1,CC). So this operation
446
+ corresponds to multiplication by a (possibly fractional) power of the
447
+ determinant to give a weight determinant one.
448
+
449
+ EXAMPLES::
450
+
451
+ sage: [fw.coerce_to_sl() for fw in RootSystem("A2").ambient_space().fundamental_weights()]
452
+ [(2/3, -1/3, -1/3), (1/3, 1/3, -2/3)]
453
+ sage: L = RootSystem("A2xA3").ambient_space()
454
+ sage: L([1,2,3,4,5,0,0]).coerce_to_sl()
455
+ (-1, 0, 1, 7/4, 11/4, -9/4, -9/4)
456
+ """
457
+ cartan_type = self.parent().cartan_type()
458
+ x = self
459
+ if cartan_type.is_atomic():
460
+ if cartan_type.type() == 'A':
461
+ x = x - self.parent().det(sum(x.to_vector())/(self.parent().dimension()))
462
+ else:
463
+ xv = x.to_vector()
464
+ shifts = cartan_type._shifts
465
+ types = cartan_type.component_types()
466
+ for i in range(len(types)):
467
+ if cartan_type.component_types()[i][0] == 'A':
468
+ s = self.parent().ambient_spaces()[i].det(sum(xv[shifts[i]:shifts[i+1]])/(types[i][1]+1))
469
+ x = x - self.parent().inject_weights(i, s)
470
+ return x
471
+
472
+ def coerce_to_e7(self):
473
+ """
474
+ For type E8, this orthogonally projects the given element of
475
+ the E8 root lattice into the E7 root lattice. This operation on
476
+ weights corresponds to intersection with the semisimple subgroup E7.
477
+
478
+ EXAMPLES::
479
+
480
+ sage: [b.coerce_to_e7() for b in RootSystem("E8").ambient_space().basis()]
481
+ [(1, 0, 0, 0, 0, 0, 0, 0), (0, 1, 0, 0, 0, 0, 0, 0),
482
+ (0, 0, 1, 0, 0, 0, 0, 0), (0, 0, 0, 1, 0, 0, 0, 0),
483
+ (0, 0, 0, 0, 1, 0, 0, 0), (0, 0, 0, 0, 0, 1, 0, 0),
484
+ (0, 0, 0, 0, 0, 0, 1/2, -1/2), (0, 0, 0, 0, 0, 0, -1/2, 1/2)]
485
+ """
486
+ x = self
487
+ v0 = self.parent()._v0
488
+ ret = x - (x.inner_product(v0)/2)*v0
489
+ return ret
490
+
491
+ def coerce_to_e6(self):
492
+ """
493
+ For type E7 or E8, orthogonally projects an element of the root lattice
494
+ into the E6 root lattice. This operation on weights corresponds to
495
+ intersection with the semisimple subgroup E6.
496
+
497
+ EXAMPLES::
498
+
499
+ sage: [b.coerce_to_e6() for b in RootSystem("E8").ambient_space().basis()]
500
+ [(1, 0, 0, 0, 0, 0, 0, 0), (0, 1, 0, 0, 0, 0, 0, 0), (0, 0, 1, 0, 0, 0, 0, 0),
501
+ (0, 0, 0, 1, 0, 0, 0, 0), (0, 0, 0, 0, 1, 0, 0, 0), (0, 0, 0, 0, 0, 1/3, 1/3, -1/3),
502
+ (0, 0, 0, 0, 0, 1/3, 1/3, -1/3), (0, 0, 0, 0, 0, -1/3, -1/3, 1/3)]
503
+ """
504
+ x = self
505
+ v0 = self.parent()._v0
506
+ v1 = self.parent()._v1
507
+ x = x - (x.inner_product(v0)/2)*v0
508
+ return x - (x.inner_product(v1)/6)*v1
509
+
510
+ def to_ambient(self):
511
+ r"""
512
+ Map ``self`` to the ambient space.
513
+
514
+ This exists for uniformity. Its analogue for root and weight lattice realizations,
515
+ is not trivial.
516
+
517
+ EXAMPLES::
518
+
519
+ sage: v = CartanType(['C',3]).root_system().ambient_space().an_element(); v
520
+ (2, 2, 3)
521
+ sage: v.to_ambient()
522
+ (2, 2, 3)
523
+ """
524
+ return self
525
+
526
+
527
+ AmbientSpace.Element = AmbientSpaceElement