passagemath-modules 10.6.31rc3__cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_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.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 +6 -0
  4. passagemath_modules-10.6.31rc3.dist-info/top_level.txt +2 -0
  5. passagemath_modules.libs/libgfortran-83c28eba.so.5.0.0 +0 -0
  6. passagemath_modules.libs/libgmp-6e109695.so.10.5.0 +0 -0
  7. passagemath_modules.libs/libgsl-cda90e79.so.28.0.0 +0 -0
  8. passagemath_modules.libs/libmpc-7f678fcf.so.3.3.1 +0 -0
  9. passagemath_modules.libs/libmpfr-82690d50.so.6.2.1 +0 -0
  10. passagemath_modules.libs/libopenblasp-r0-6dcb67f9.3.29.so +0 -0
  11. passagemath_modules.libs/libquadmath-2284e583.so.0.0.0 +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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.so +0 -0
  74. sage/calculus/integration.pyx +698 -0
  75. sage/calculus/interpolation.cpython-314-x86_64-linux-gnu.so +0 -0
  76. sage/calculus/interpolation.pxd +13 -0
  77. sage/calculus/interpolation.pyx +387 -0
  78. sage/calculus/interpolators.cpython-314-x86_64-linux-gnu.so +0 -0
  79. sage/calculus/interpolators.pyx +326 -0
  80. sage/calculus/ode.cpython-314-x86_64-linux-gnu.so +0 -0
  81. sage/calculus/ode.pxd +5 -0
  82. sage/calculus/ode.pyx +610 -0
  83. sage/calculus/riemann.cpython-314-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.so +0 -0
  401. sage/matrix/constructor.pyx +750 -0
  402. sage/matrix/docs.py +430 -0
  403. sage/matrix/echelon_matrix.cpython-314-x86_64-linux-gnu.so +0 -0
  404. sage/matrix/echelon_matrix.pyx +155 -0
  405. sage/matrix/matrix.pxd +2 -0
  406. sage/matrix/matrix0.cpython-314-x86_64-linux-gnu.so +0 -0
  407. sage/matrix/matrix0.pxd +68 -0
  408. sage/matrix/matrix0.pyx +6324 -0
  409. sage/matrix/matrix1.cpython-314-x86_64-linux-gnu.so +0 -0
  410. sage/matrix/matrix1.pxd +8 -0
  411. sage/matrix/matrix1.pyx +2851 -0
  412. sage/matrix/matrix2.cpython-314-x86_64-linux-gnu.so +0 -0
  413. sage/matrix/matrix2.pxd +25 -0
  414. sage/matrix/matrix2.pyx +20181 -0
  415. sage/matrix/matrix_cdv.cpython-314-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.so +0 -0
  492. sage/matroids/extension.pxd +34 -0
  493. sage/matroids/extension.pyx +519 -0
  494. sage/matroids/flats_matroid.cpython-314-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.so +0 -0
  701. sage/rings/function_field/hermite_form_polynomial.pyx +188 -0
  702. sage/rings/function_field/khuri_makdisi.cpython-314-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.so +0 -0
  771. sage/stats/hmm/chmm.pyx +1595 -0
  772. sage/stats/hmm/distributions.cpython-314-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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-x86_64-linux-gnu.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,853 @@
1
+ # sage_setup: distribution = sagemath-modules
2
+ # sage.doctest: needs sage.modules
3
+ """
4
+ Differentials of function fields
5
+
6
+ Sage provides arithmetic with differentials of function fields.
7
+
8
+ EXAMPLES:
9
+
10
+ The module of differentials on a function field forms an one-dimensional vector space over
11
+ the function field::
12
+
13
+ sage: # needs sage.rings.finite_rings sage.rings.function_field
14
+ sage: K.<x> = FunctionField(GF(4)); _.<Y> = K[]
15
+ sage: L.<y> = K.extension(Y^3 + x + x^3*Y)
16
+ sage: f = x + y
17
+ sage: g = 1 / y
18
+ sage: df = f.differential()
19
+ sage: dg = g.differential()
20
+ sage: dfdg = f.derivative() / g.derivative()
21
+ sage: df == dfdg * dg
22
+ True
23
+ sage: df
24
+ (x*y^2 + 1/x*y + 1) d(x)
25
+ sage: df.parent()
26
+ Space of differentials of Function field in y defined by y^3 + x^3*y + x
27
+
28
+ We can compute a canonical divisor::
29
+
30
+ sage: # needs sage.rings.finite_rings sage.rings.function_field
31
+ sage: k = df.divisor()
32
+ sage: k.degree()
33
+ 4
34
+ sage: k.degree() == 2 * L.genus() - 2
35
+ True
36
+
37
+ Exact differentials vanish and logarithmic differentials are stable under the
38
+ Cartier operation::
39
+
40
+ sage: # needs sage.rings.finite_rings sage.rings.function_field
41
+ sage: df.cartier()
42
+ 0
43
+ sage: w = 1/f * df
44
+ sage: w.cartier() == w
45
+ True
46
+
47
+ AUTHORS:
48
+
49
+ - Kwankyu Lee (2017-04-30): initial version
50
+ """
51
+
52
+ # ****************************************************************************
53
+ # Copyright (C) 2016-2019 Kwankyu Lee <ekwankyu@gmail.com>
54
+ # 2019 Brent Baccala
55
+ # 2019 Travis Scrimshaw
56
+ #
57
+ # Distributed under the terms of the GNU General Public License (GPL)
58
+ # as published by the Free Software Foundation; either version 2 of
59
+ # the License, or (at your option) any later version.
60
+ # http://www.gnu.org/licenses/
61
+ # ****************************************************************************
62
+
63
+ from sage.misc.latex import latex
64
+
65
+ from sage.structure.unique_representation import UniqueRepresentation
66
+ from sage.structure.parent import Parent
67
+ from sage.structure.element import ModuleElement
68
+ from sage.structure.richcmp import richcmp
69
+ from sage.sets.family import Family
70
+
71
+ from sage.categories.modules import Modules
72
+ from sage.categories.morphism import Morphism
73
+
74
+
75
+ class FunctionFieldDifferential(ModuleElement):
76
+ """
77
+ Base class for differentials on function fields.
78
+
79
+ INPUT:
80
+
81
+ - ``f`` -- element of the function field
82
+
83
+ - ``t`` -- element of the function field; if `t` is not specified, the generator
84
+ of the base differential is assumed
85
+
86
+ EXAMPLES::
87
+
88
+ sage: F.<x> = FunctionField(QQ)
89
+ sage: f = x/(x^2 + x + 1)
90
+ sage: f.differential()
91
+ ((-x^2 + 1)/(x^4 + 2*x^3 + 3*x^2 + 2*x + 1)) d(x)
92
+
93
+ ::
94
+
95
+ sage: K.<x> = FunctionField(QQ); _.<Y> = K[]
96
+ sage: L.<y> = K.extension(Y^3 + x + x^3*Y) # needs sage.rings.function_field
97
+ sage: L(x).differential() # needs sage.rings.function_field
98
+ d(x)
99
+ sage: y.differential() # needs sage.rings.function_field
100
+ ((21/4*x/(x^7 + 27/4))*y^2 + ((3/2*x^7 + 9/4)/(x^8 + 27/4*x))*y + 7/2*x^4/(x^7 + 27/4)) d(x)
101
+ """
102
+ def __init__(self, parent, f, t=None):
103
+ """
104
+ Initialize the differential `fdt`.
105
+
106
+ TESTS::
107
+
108
+ sage: F.<x> = FunctionField(GF(7))
109
+ sage: f = x/(x^2 + x + 1)
110
+ sage: w = f.differential()
111
+ sage: TestSuite(w).run()
112
+ """
113
+ ModuleElement.__init__(self, parent)
114
+
115
+ if t is not None:
116
+ f *= parent._derivation(t) * parent._gen_derivative_inv
117
+
118
+ self._f = f
119
+
120
+ def _repr_(self):
121
+ """
122
+ Return the string representation of the differential.
123
+
124
+ EXAMPLES::
125
+
126
+ sage: K.<x> = FunctionField(GF(4)); _.<Y> = K[] # needs sage.rings.finite_rings
127
+ sage: L.<y> = K.extension(Y^3+x+x^3*Y) # needs sage.rings.finite_rings sage.rings.function_field
128
+ sage: y.differential() # needs sage.rings.finite_rings sage.rings.function_field
129
+ (x*y^2 + 1/x*y) d(x)
130
+
131
+ sage: F.<x> = FunctionField(QQ)
132
+ sage: f = 1/x
133
+ sage: f.differential()
134
+ (-1/x^2) d(x)
135
+ """
136
+ if self._f.is_zero(): # zero differential
137
+ return '0'
138
+
139
+ r = 'd({})'.format(self.parent()._gen_base_differential)
140
+
141
+ if self._f.is_one():
142
+ return r
143
+
144
+ return '({})'.format(self._f) + ' ' + r
145
+
146
+ def _latex_(self):
147
+ r"""
148
+ Return a latex representation of the differential.
149
+
150
+ EXAMPLES::
151
+
152
+ sage: # needs sage.rings.finite_rings
153
+ sage: K.<x> = FunctionField(GF(4)); _.<Y> = K[]
154
+ sage: L.<y> = K.extension(Y^3 + x + x^3*Y) # needs sage.rings.function_field
155
+ sage: w = y.differential() # needs sage.rings.function_field
156
+ sage: latex(w) # needs sage.rings.function_field
157
+ \left( x y^{2} + \frac{1}{x} y \right)\, dx
158
+ """
159
+ if self._f.is_zero(): # zero differential
160
+ return '0'
161
+
162
+ r = 'd{}'.format(self.parent()._gen_base_differential)
163
+
164
+ if self._f.is_one():
165
+ return r
166
+
167
+ return '\\left(' + latex(self._f) + '\\right)\\,' + r
168
+
169
+ def __hash__(self):
170
+ """
171
+ Return the hash of ``self``.
172
+
173
+ EXAMPLES::
174
+
175
+ sage: K.<x> = FunctionField(GF(2)); _.<Y> = K[]
176
+ sage: L.<y> = K.extension(Y^3 + x + x^3*Y) # needs sage.rings.function_field
177
+ sage: {x.differential(): 1}
178
+ {d(x): 1}
179
+ sage: {y.differential(): 1} # needs sage.rings.function_field
180
+ {(x*y^2 + 1/x*y) d(x): 1}
181
+ """
182
+ return hash((self.parent(), self._f))
183
+
184
+ def _richcmp_(self, other, op):
185
+ """
186
+ Compare the differential and the other differential with respect to the
187
+ comparison operator.
188
+
189
+ INPUT:
190
+
191
+ - ``other`` -- differential
192
+
193
+ - ``op`` -- comparison operator
194
+
195
+ EXAMPLES::
196
+
197
+ sage: # needs sage.rings.finite_rings sage.rings.function_field
198
+ sage: K.<x> = FunctionField(GF(4)); _.<Y> = K[]
199
+ sage: L.<y> = K.extension(Y^3 + x + x^3*Y)
200
+ sage: w1 = y.differential()
201
+ sage: w2 = L(x).differential()
202
+ sage: w3 = (x*y).differential()
203
+ sage: w1 < w2
204
+ False
205
+ sage: w2 < w1
206
+ True
207
+ sage: w3 == x * w1 + y * w2
208
+ True
209
+
210
+ sage: F.<x> = FunctionField(QQ)
211
+ sage: w1 = ((x^2+x+1)^10).differential()
212
+ sage: w2 = (x^2+x+1).differential()
213
+ sage: w1 < w2
214
+ False
215
+ sage: w1 > w2
216
+ True
217
+ sage: w1 == 10*(x^2+x+1)^9 * w2
218
+ True
219
+ """
220
+ return richcmp(self._f, other._f, op)
221
+
222
+ def _add_(self, other):
223
+ """
224
+ Return the sum of the differential and the other differential.
225
+
226
+ INPUT:
227
+
228
+ - ``other`` -- differential
229
+
230
+ EXAMPLES::
231
+
232
+ sage: # needs sage.rings.finite_rings sage.rings.function_field
233
+ sage: K.<x> = FunctionField(GF(4)); _.<Y> = K[]
234
+ sage: L.<y> = K.extension(Y^3 + x + x^3*Y)
235
+ sage: w1 = y.differential()
236
+ sage: w2 = (1/y).differential()
237
+ sage: w1 + w2
238
+ (((x^3 + 1)/x^2)*y^2 + 1/x*y) d(x)
239
+
240
+ sage: F.<x> = FunctionField(QQ)
241
+ sage: w1 = (1/x).differential()
242
+ sage: w2 = (x^2+1).differential()
243
+ sage: w1 + w2
244
+ ((2*x^3 - 1)/x^2) d(x)
245
+ """
246
+ W = self.parent()
247
+ return W.element_class(W, self._f + other._f)
248
+
249
+ def _div_(self, other):
250
+ """
251
+ Return the quotient of ``self`` and ``other``.
252
+
253
+ INPUT:
254
+
255
+ - ``other`` -- differential
256
+
257
+ OUTPUT: an element of the function field
258
+
259
+ EXAMPLES::
260
+
261
+ sage: # needs sage.rings.finite_rings sage.rings.function_field
262
+ sage: K.<x> = FunctionField(GF(4)); _.<Y> = K[]
263
+ sage: L.<y> = K.extension(Y^3 + x + x^3*Y)
264
+ sage: w1 = y.differential()
265
+ sage: w2 = (1/y).differential()
266
+ sage: w1 / w2
267
+ y^2
268
+
269
+ sage: F.<x> = FunctionField(QQ)
270
+ sage: w1 = (1/x).differential()
271
+ sage: w2 = (x^2+1).differential()
272
+ sage: w1 / w2
273
+ -1/2/x^3
274
+ """
275
+ if other._f.is_zero():
276
+ raise ZeroDivisionError("division by zero differential")
277
+
278
+ return self._f / other._f
279
+
280
+ def _neg_(self):
281
+ """
282
+ Return the negation of the differential.
283
+
284
+ EXAMPLES::
285
+
286
+ sage: # needs sage.rings.function_field
287
+ sage: K.<x> = FunctionField(GF(5)); _.<Y> = K[]
288
+ sage: L.<y> = K.extension(Y^3 + x + x^3*Y)
289
+ sage: w1 = y.differential()
290
+ sage: w2 = (-y).differential()
291
+ sage: -w1 == w2
292
+ True
293
+
294
+ sage: F.<x> = FunctionField(QQ)
295
+ sage: w1 = (1/x).differential()
296
+ sage: w2 = (-1/x).differential()
297
+ sage: -w1 == w2
298
+ True
299
+ """
300
+ W = self.parent()
301
+ return W.element_class(W, -self._f)
302
+
303
+ def _rmul_(self, f):
304
+ """
305
+ Return the differential multiplied by the element of the function
306
+ field.
307
+
308
+ INPUT:
309
+
310
+ - ``f`` -- element of the function field
311
+
312
+ EXAMPLES::
313
+
314
+ sage: # needs sage.rings.function_field
315
+ sage: K.<x> = FunctionField(GF(5)); _.<Y> = K[]
316
+ sage: L.<y> = K.extension(Y^3 + x + x^3*Y)
317
+ sage: w1 = (1/y).differential()
318
+ sage: w2 = (-1/y^2) * y.differential()
319
+ sage: w1 == w2
320
+ True
321
+
322
+ sage: F.<x> = FunctionField(QQ)
323
+ sage: w1 = (x^2*(x^2+x+1)).differential()
324
+ sage: w2 = (x^2).differential()
325
+ sage: w3 = (x^2+x+1).differential()
326
+ sage: w1 == (x^2) * w3 + (x^2+x+1) * w2
327
+ True
328
+ """
329
+ W = self.parent()
330
+ return W.element_class(W, f * self._f)
331
+
332
+ def _acted_upon_(self, f, self_on_left):
333
+ """
334
+ Define multiplication of ``self`` with an element ``f`` of a function
335
+ field, by coercing ``self`` to the space of differentials of the
336
+ function field.
337
+
338
+ INPUT:
339
+
340
+ - ``f`` -- an element of a function field
341
+
342
+ EXAMPLES::
343
+
344
+ sage: # needs sage.rings.function_field
345
+ sage: K.<x> = FunctionField(GF(31)); _.<Y> = K[]
346
+ sage: L.<y> = K.extension(Y^2 - x); _.<Z> = L[]
347
+ sage: M.<z> = L.extension(Z^2 - y)
348
+ sage: z.differential()
349
+ (8/x*z) d(x)
350
+ sage: 1/(2*z) * y.differential()
351
+ (8/x*z) d(x)
352
+
353
+ sage: # needs sage.rings.function_field
354
+ sage: z * x.differential()
355
+ (z) d(x)
356
+ sage: z * (y^2).differential()
357
+ (z) d(x)
358
+ sage: z * (z^4).differential()
359
+ (z) d(x)
360
+
361
+ ::
362
+
363
+ sage: K.<x> = FunctionField(GF(4)); _.<Y> = K[] # needs sage.rings.finite_rings
364
+ sage: L.<y> = K.extension(Y^3 + x + x^3*Y) # needs sage.rings.finite_rings sage.rings.function_field
365
+ sage: y * x.differential() # needs sage.rings.finite_rings sage.rings.function_field
366
+ (y) d(x)
367
+ """
368
+ F = f.parent()
369
+ if self.parent().function_field() is not F:
370
+ phi = F.space_of_differentials().coerce_map_from(self.parent())
371
+ if phi is not None:
372
+ return phi(self)._rmul_(f)
373
+ raise TypeError
374
+
375
+ def divisor(self):
376
+ """
377
+ Return the divisor of the differential.
378
+
379
+ EXAMPLES::
380
+
381
+ sage: K.<x> = FunctionField(GF(5)); _.<Y> = K[]
382
+ sage: L.<y> = K.extension(Y^3 + x + x^3*Y) # needs sage.rings.function_field
383
+ sage: w = (1/y) * y.differential() # needs sage.rings.function_field
384
+ sage: w.divisor() # needs sage.rings.function_field
385
+ - Place (1/x, 1/x^3*y^2 + 1/x)
386
+ - Place (1/x, 1/x^3*y^2 + 1/x^2*y + 1)
387
+ - Place (x, y)
388
+ + Place (x + 2, y + 3)
389
+ + Place (x^6 + 3*x^5 + 4*x^4 + 2*x^3 + x^2 + 3*x + 4, y + x^5)
390
+
391
+ ::
392
+
393
+ sage: F.<x> = FunctionField(QQ)
394
+ sage: w = (1/x).differential()
395
+ sage: w.divisor() # needs sage.libs.pari
396
+ -2*Place (x)
397
+ """
398
+ F = self.parent().function_field()
399
+ x = F.base_field().gen()
400
+ return self._f.divisor() + (-2)*F(x).divisor_of_poles() + F.different()
401
+
402
+ def valuation(self, place):
403
+ """
404
+ Return the valuation of the differential at the place.
405
+
406
+ INPUT:
407
+
408
+ - ``place`` -- a place of the function field
409
+
410
+ EXAMPLES::
411
+
412
+ sage: K.<x> = FunctionField(GF(5)); _.<Y> = K[]
413
+ sage: L.<y> = K.extension(Y^3 + x + x^3*Y) # needs sage.rings.function_field
414
+ sage: w = (1/y) * y.differential() # needs sage.rings.function_field
415
+ sage: [w.valuation(p) for p in L.places()] # needs sage.rings.function_field
416
+ [-1, -1, -1, 0, 1, 0]
417
+ """
418
+ F = self.parent().function_field()
419
+ x = F.base_field().gen()
420
+ return (self._f.valuation(place) + 2*min(F(x).valuation(place), 0)
421
+ + F.different().valuation(place))
422
+
423
+ def residue(self, place):
424
+ """
425
+ Return the residue of the differential at the place.
426
+
427
+ INPUT:
428
+
429
+ - ``place`` -- a place of the function field
430
+
431
+ OUTPUT: an element of the residue field of the place
432
+
433
+ EXAMPLES:
434
+
435
+ We verify the residue theorem in a rational function field::
436
+
437
+ sage: # needs sage.rings.finite_rings
438
+ sage: F.<x> = FunctionField(GF(4))
439
+ sage: f = 0
440
+ sage: while f == 0:
441
+ ....: f = F.random_element()
442
+ sage: w = 1/f * f.differential()
443
+ sage: d = f.divisor()
444
+ sage: s = d.support()
445
+ sage: sum([w.residue(p).trace() for p in s]) # needs sage.rings.function_field
446
+ 0
447
+
448
+ and in an extension field::
449
+
450
+ sage: # needs sage.rings.function_field
451
+ sage: K.<x> = FunctionField(GF(7)); _.<Y> = K[]
452
+ sage: L.<y> = K.extension(Y^3 + x + x^3*Y)
453
+ sage: f = 0
454
+ sage: while f == 0:
455
+ ....: f = L.random_element()
456
+ sage: w = 1/f * f.differential()
457
+ sage: d = f.divisor()
458
+ sage: s = d.support()
459
+ sage: sum([w.residue(p).trace() for p in s])
460
+ 0
461
+
462
+ and also in a function field of characteristic zero::
463
+
464
+ sage: # needs sage.rings.function_field
465
+ sage: R.<x> = FunctionField(QQ)
466
+ sage: L.<Y> = R[]
467
+ sage: F.<y> = R.extension(Y^2 - x^4 - 4*x^3 - 2*x^2 - 1)
468
+ sage: a = 6*x^2 + 5*x + 7
469
+ sage: b = 2*x^6 + 8*x^5 + 3*x^4 - 4*x^3 - 1
470
+ sage: w = y*a/b*x.differential()
471
+ sage: d = w.divisor()
472
+ sage: sum([QQ(w.residue(p)) for p in d.support()])
473
+ 0
474
+ """
475
+ R,fr_R,to_R = place._residue_field()
476
+
477
+ # Step 1: compute f such that fds equals this differential.
478
+ s = place.local_uniformizer()
479
+ dxds = ~(s.derivative())
480
+ g = self._f * dxds
481
+
482
+ # Step 2: compute c that is the coefficient of s^-1 in
483
+ # the power series expansion of f
484
+ r = g.valuation(place)
485
+ if r >= 0:
486
+ return R.zero()
487
+ else:
488
+ g_shifted = g * s**(-r)
489
+ c = g_shifted.higher_derivative(-r-1, s)
490
+ return to_R(c)
491
+
492
+ def monomial_coefficients(self, copy=True):
493
+ """
494
+ Return a dictionary whose keys are indices of basis elements in the
495
+ support of ``self`` and whose values are the corresponding coefficients.
496
+
497
+ EXAMPLES::
498
+
499
+ sage: K.<x> = FunctionField(GF(5)); _.<Y> = K[]
500
+ sage: L.<y> = K.extension(Y^3 + x + x^3*Y) # needs sage.rings.function_field
501
+ sage: d = y.differential() # needs sage.rings.function_field
502
+ sage: d # needs sage.rings.function_field
503
+ ((4*x/(x^7 + 3))*y^2 + ((4*x^7 + 1)/(x^8 + 3*x))*y + x^4/(x^7 + 3)) d(x)
504
+ sage: d.monomial_coefficients() # needs sage.rings.function_field
505
+ {0: (4*x/(x^7 + 3))*y^2 + ((4*x^7 + 1)/(x^8 + 3*x))*y + x^4/(x^7 + 3)}
506
+ """
507
+ return {0: self._f}
508
+
509
+
510
+ class FunctionFieldDifferential_global(FunctionFieldDifferential):
511
+ """
512
+ Differentials on global function fields.
513
+
514
+ EXAMPLES::
515
+
516
+ sage: F.<x> = FunctionField(GF(7))
517
+ sage: f = x/(x^2 + x + 1)
518
+ sage: f.differential()
519
+ ((6*x^2 + 1)/(x^4 + 2*x^3 + 3*x^2 + 2*x + 1)) d(x)
520
+
521
+ ::
522
+
523
+ sage: K.<x> = FunctionField(GF(4)); _.<Y> = K[] # needs sage.rings.finite_rings
524
+ sage: L.<y> = K.extension(Y^3 + x + x^3*Y) # needs sage.rings.finite_rings sage.rings.function_field
525
+ sage: y.differential() # needs sage.rings.finite_rings sage.rings.function_field
526
+ (x*y^2 + 1/x*y) d(x)
527
+ """
528
+ def cartier(self):
529
+ r"""
530
+ Return the image of the differential by the Cartier operator.
531
+
532
+ The Cartier operator operates on differentials. Let `x` be a separating
533
+ element of the function field. If a differential `\omega` is written
534
+ in prime-power representation
535
+ `\omega=(f_0^p+f_1^px+\dots+f_{p-1}^px^{p-1})dx`, then the Cartier
536
+ operator maps `\omega` to `f_{p-1}dx`. It is known that this definition
537
+ does not depend on the choice of `x`.
538
+
539
+ The Cartier operator has interesting properties. Notably, the set of
540
+ exact differentials is precisely the kernel of the Cartier operator and
541
+ logarithmic differentials are stable under the Cartier operation.
542
+
543
+ EXAMPLES::
544
+
545
+ sage: # needs sage.rings.finite_rings sage.rings.function_field
546
+ sage: K.<x> = FunctionField(GF(4)); _.<Y> = K[]
547
+ sage: L.<y> = K.extension(Y^3 + x + x^3*Y)
548
+ sage: f = x/y
549
+ sage: w = 1/f*f.differential()
550
+ sage: w.cartier() == w
551
+ True
552
+
553
+ ::
554
+
555
+ sage: # needs sage.rings.finite_rings
556
+ sage: F.<x> = FunctionField(GF(4))
557
+ sage: f = x/(x^2 + x + 1)
558
+ sage: w = 1/f*f.differential()
559
+ sage: w.cartier() == w # needs sage.rings.function_field
560
+ True
561
+ """
562
+ W = self.parent()
563
+ F = W.function_field()
564
+ der = F.higher_derivation()
565
+ power_repr = der._prime_power_representation(self._f)
566
+ return W.element_class(W, power_repr[-1])
567
+
568
+
569
+ class DifferentialsSpace(UniqueRepresentation, Parent):
570
+ """
571
+ Space of differentials of a function field.
572
+
573
+ INPUT:
574
+
575
+ - ``field`` -- function field
576
+
577
+ EXAMPLES::
578
+
579
+ sage: K.<x> = FunctionField(GF(4)); _.<Y> = K[] # needs sage.rings.finite_rings
580
+ sage: L.<y> = K.extension(Y^3 + x^3*Y + x) # needs sage.rings.finite_rings sage.rings.function_field
581
+ sage: L.space_of_differentials() # needs sage.rings.finite_rings sage.rings.function_field
582
+ Space of differentials of Function field in y defined by y^3 + x^3*y + x
583
+
584
+ The space of differentials is a one-dimensional module over the function
585
+ field. So a base differential is chosen to represent differentials.
586
+ Usually the generator of the base rational function field is a separating
587
+ element and used to generate the base differential. Otherwise a separating
588
+ element is automatically found and used to generate the base differential
589
+ relative to which other differentials are denoted::
590
+
591
+ sage: # needs sage.rings.function_field
592
+ sage: K.<x> = FunctionField(GF(5))
593
+ sage: R.<y> = K[]
594
+ sage: L.<y> = K.extension(y^5 - 1/x)
595
+ sage: L(x).differential()
596
+ 0
597
+ sage: y.differential()
598
+ d(y)
599
+ sage: (y^2).differential()
600
+ (2*y) d(y)
601
+ """
602
+ Element = FunctionFieldDifferential
603
+
604
+ def __init__(self, field, category=None):
605
+ """
606
+ Initialize the space of differentials of the function field.
607
+
608
+ TESTS::
609
+
610
+ sage: # needs sage.rings.finite_rings sage.rings.function_field
611
+ sage: K.<x> = FunctionField(GF(4)); _.<Y>=K[]
612
+ sage: L.<y> = K.extension(Y^3 + x + x^3*Y)
613
+ sage: W = L.space_of_differentials()
614
+ sage: TestSuite(W).run()
615
+ """
616
+ Parent.__init__(self, base=field, category=Modules(field).FiniteDimensional().WithBasis().or_subcategory(category))
617
+
618
+ # Starting from the base rational function field, find the first
619
+ # generator x of an intermediate function field that doesn't map to zero
620
+ # by the derivation map and use dx as our base differential.
621
+
622
+ der = field.derivation()
623
+ for F in reversed(field._intermediate_fields(field.rational_function_field())):
624
+ if der(F.gen()) != 0:
625
+ break
626
+
627
+ self._derivation = der
628
+ self._gen_base_differential = F.gen()
629
+ self._gen_derivative_inv = ~der(F.gen()) # used for fast computation
630
+
631
+ def _repr_(self):
632
+ """
633
+ Return the string representation of the space of differentials.
634
+
635
+ EXAMPLES::
636
+
637
+ sage: # needs sage.rings.finite_rings sage.rings.function_field
638
+ sage: K.<x> = FunctionField(GF(4)); _.<Y> = K[]
639
+ sage: L.<y> = K.extension(Y^3 + x + x^3*Y)
640
+ sage: w = y.differential()
641
+ sage: w.parent()
642
+ Space of differentials of Function field in y defined by y^3 + x^3*y + x
643
+ """
644
+ return "Space of differentials of {}".format(self.base())
645
+
646
+ def _element_constructor_(self, f):
647
+ """
648
+ Construct differential `df` in the space from `f`.
649
+
650
+ INPUT:
651
+
652
+ - ``f`` -- element of the function field
653
+
654
+ EXAMPLES::
655
+
656
+ sage: # needs sage.rings.finite_rings sage.rings.function_field
657
+ sage: K.<x> = FunctionField(GF(4)); _.<Y> = K[]
658
+ sage: L.<y> = K.extension(Y^3 + x + x^3*Y)
659
+ sage: S = L.space_of_differentials()
660
+ sage: S(y)
661
+ (x*y^2 + 1/x*y) d(x)
662
+ sage: S(y) in S
663
+ True
664
+ sage: S(1)
665
+ 0
666
+ """
667
+ if f in self.base():
668
+ return self.element_class(self, self.base().one(), f)
669
+
670
+ raise ValueError
671
+
672
+ def _coerce_map_from_(self, S):
673
+ """
674
+ Define coercions.
675
+
676
+ We can coerce from any DifferentialsSpace whose underlying field
677
+ can be coerced into our underlying field.
678
+
679
+ EXAMPLES::
680
+
681
+ sage: K.<x> = FunctionField(QQ); R.<y> = K[]
682
+ sage: L.<y> = K.extension(y^2 - x*y + 4*x^3) # needs sage.rings.function_field
683
+ sage: L.space_of_differentials().coerce_map_from(K.space_of_differentials()) # needs sage.rings.function_field
684
+ Inclusion morphism:
685
+ From: Space of differentials of Rational function field in x over Rational Field
686
+ To: Space of differentials of Function field in y defined by y^2 - x*y + 4*x^3
687
+ """
688
+ if isinstance(S, DifferentialsSpace):
689
+ if self.function_field().has_coerce_map_from(S.function_field()):
690
+ return DifferentialsSpaceInclusion(S, self)
691
+
692
+ def function_field(self):
693
+ """
694
+ Return the function field to which the space of differentials
695
+ is attached.
696
+
697
+ EXAMPLES::
698
+
699
+ sage: # needs sage.rings.finite_rings sage.rings.function_field
700
+ sage: K.<x> = FunctionField(GF(4)); _.<Y> = K[]
701
+ sage: L.<y> = K.extension(Y^3 + x^3*Y + x)
702
+ sage: S = L.space_of_differentials()
703
+ sage: S.function_field()
704
+ Function field in y defined by y^3 + x^3*y + x
705
+ """
706
+ return self.base()
707
+
708
+ def _an_element_(self):
709
+ """
710
+ Return a differential.
711
+
712
+ EXAMPLES::
713
+
714
+ sage: # needs sage.rings.finite_rings sage.rings.function_field
715
+ sage: K.<x> = FunctionField(GF(4)); _.<Y> = K[]
716
+ sage: L.<y> = K.extension(Y^3 + x + x^3*Y)
717
+ sage: S = L.space_of_differentials()
718
+ sage: S.an_element() # random
719
+ (x*y^2 + 1/x*y) d(x)
720
+ """
721
+ F = self.base()
722
+ return self.element_class(self, F.one(), F.an_element())
723
+
724
+ def basis(self):
725
+ """
726
+ Return a basis.
727
+
728
+ EXAMPLES::
729
+
730
+ sage: # needs sage.rings.finite_rings sage.rings.function_field
731
+ sage: K.<x> = FunctionField(GF(4)); _.<Y> = K[]
732
+ sage: L.<y> = K.extension(Y^3 + x^3*Y + x)
733
+ sage: S = L.space_of_differentials()
734
+ sage: S.basis()
735
+ Family (d(x),)
736
+ """
737
+ return Family([self.element_class(self, self.base().one())])
738
+
739
+
740
+ class DifferentialsSpace_global(DifferentialsSpace):
741
+ """
742
+ Space of differentials of a global function field.
743
+
744
+ INPUT:
745
+
746
+ - ``field`` -- function field
747
+
748
+ EXAMPLES::
749
+
750
+ sage: K.<x> = FunctionField(GF(4)); _.<Y> = K[] # needs sage.rings.finite_rings
751
+ sage: L.<y> = K.extension(Y^3 + x^3*Y + x) # needs sage.rings.finite_rings sage.rings.function_field
752
+ sage: L.space_of_differentials() # needs sage.rings.finite_rings sage.rings.function_field
753
+ Space of differentials of Function field in y defined by y^3 + x^3*y + x
754
+ """
755
+ Element = FunctionFieldDifferential_global
756
+
757
+
758
+ class DifferentialsSpaceInclusion(Morphism):
759
+ """
760
+ Inclusion morphisms for extensions of function fields.
761
+
762
+ EXAMPLES::
763
+
764
+ sage: K.<x> = FunctionField(QQ); R.<y> = K[]
765
+ sage: L.<y> = K.extension(y^2 - x*y + 4*x^3) # needs sage.rings.function_field
766
+ sage: OK = K.space_of_differentials()
767
+ sage: OL = L.space_of_differentials() # needs sage.rings.function_field
768
+ sage: OL.coerce_map_from(OK) # needs sage.rings.function_field
769
+ Inclusion morphism:
770
+ From: Space of differentials of Rational function field in x over Rational Field
771
+ To: Space of differentials of Function field in y defined by y^2 - x*y + 4*x^3
772
+ """
773
+
774
+ def _repr_(self):
775
+ """
776
+ Return the string representation of this morphism.
777
+
778
+ EXAMPLES::
779
+
780
+ sage: K.<x> = FunctionField(QQ); R.<y> = K[]
781
+ sage: L.<y> = K.extension(y^2 - x*y + 4*x^3) # needs sage.rings.function_field
782
+ sage: OK = K.space_of_differentials()
783
+ sage: OL = L.space_of_differentials() # needs sage.rings.function_field
784
+ sage: OL.coerce_map_from(OK) # needs sage.rings.function_field
785
+ Inclusion morphism:
786
+ From: Space of differentials of Rational function field in x over Rational Field
787
+ To: Space of differentials of Function field in y defined by y^2 - x*y + 4*x^3
788
+ """
789
+ s = "Inclusion morphism:"
790
+ s += "\n From: {}".format(self.domain())
791
+ s += "\n To: {}".format(self.codomain())
792
+ return s
793
+
794
+ def is_injective(self):
795
+ """
796
+ Return ``True``, since the inclusion morphism is injective.
797
+
798
+ EXAMPLES::
799
+
800
+ sage: K.<x> = FunctionField(QQ); R.<y> = K[]
801
+ sage: L.<y> = K.extension(y^2 - x*y + 4*x^3) # needs sage.rings.function_field
802
+ sage: OK = K.space_of_differentials()
803
+ sage: OL = L.space_of_differentials() # needs sage.rings.function_field
804
+ sage: OL.coerce_map_from(OK).is_injective() # needs sage.rings.function_field
805
+ True
806
+ """
807
+ return True
808
+
809
+ def is_surjective(self):
810
+ """
811
+ Return ``True`` if the inclusion morphism is surjective.
812
+
813
+ EXAMPLES::
814
+
815
+ sage: # needs sage.rings.function_field
816
+ sage: K.<x> = FunctionField(QQ); R.<y> = K[]
817
+ sage: L.<y> = K.extension(y^2 - x*y + 4*x^3)
818
+ sage: OK = K.space_of_differentials()
819
+ sage: OL = L.space_of_differentials()
820
+ sage: OL.coerce_map_from(OK).is_surjective()
821
+ False
822
+ sage: S.<z> = L[]
823
+ sage: M.<z> = L.extension(z - 1)
824
+ sage: OM = M.space_of_differentials()
825
+ sage: OM.coerce_map_from(OL).is_surjective()
826
+ True
827
+ """
828
+ K = self.domain().function_field()
829
+ L = self.codomain().function_field()
830
+ return L.degree(K) == 1
831
+
832
+ def _call_(self, v):
833
+ """
834
+ Map ``v`` to a differential in the codomain.
835
+
836
+ INPUT:
837
+
838
+ - ``v`` -- a differential in the domain
839
+
840
+ EXAMPLES::
841
+
842
+ sage: # needs sage.rings.function_field sage.rings.number_field
843
+ sage: K.<x> = FunctionField(QQbar); _.<Y> = K[]
844
+ sage: L.<y> = K.extension(Y^2 - x*Y + 4*x^3)
845
+ sage: OK = K.space_of_differentials()
846
+ sage: OL = L.space_of_differentials()
847
+ sage: mor = OL.coerce_map_from(OK)
848
+ sage: mor(x.differential()).parent()
849
+ Space of differentials of Function field in y defined by y^2 - x*y + 4*x^3
850
+ """
851
+ domain = self.domain()
852
+ F = self.codomain().function_field()
853
+ return F(v._f)*F(domain._gen_base_differential).differential()