passagemath-modules 10.5.32__cp310-cp310-macosx_14_0_arm64.whl → 10.6.20__cp310-cp310-macosx_14_0_arm64.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 (334) hide show
  1. {passagemath_modules-10.5.32.dist-info → passagemath_modules-10.6.20.dist-info}/METADATA +51 -46
  2. {passagemath_modules-10.5.32.dist-info → passagemath_modules-10.6.20.dist-info}/RECORD +333 -323
  3. {passagemath_modules-10.5.32.dist-info → passagemath_modules-10.6.20.dist-info}/WHEEL +1 -1
  4. passagemath_modules.dylibs/libgcc_s.1.1.dylib +0 -0
  5. passagemath_modules.dylibs/libgfortran.5.dylib +0 -0
  6. passagemath_modules.dylibs/libgsl.28.dylib +0 -0
  7. passagemath_modules.dylibs/libmpc.3.dylib +0 -0
  8. passagemath_modules.dylibs/libopenblasp-r0.3.29.dylib +0 -0
  9. passagemath_modules.dylibs/libquadmath.0.dylib +0 -0
  10. sage/algebras/clifford_algebra.py +2 -2
  11. sage/algebras/clifford_algebra_element.cpython-310-darwin.so +0 -0
  12. sage/algebras/clifford_algebra_element.pyx +4 -2
  13. sage/algebras/exterior_algebra_groebner.cpython-310-darwin.so +0 -0
  14. sage/algebras/exterior_algebra_groebner.pyx +2 -0
  15. sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra.py +83 -5
  16. sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra_element.cpython-310-darwin.so +0 -0
  17. sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra_element.pxd +2 -0
  18. sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra_element.pyx +28 -3
  19. sage/algebras/finite_gca.py +1 -1
  20. sage/algebras/lie_algebras/bgg_dual_module.py +18 -11
  21. sage/algebras/lie_algebras/classical_lie_algebra.py +3 -3
  22. sage/algebras/lie_algebras/examples.py +2 -2
  23. sage/algebras/lie_algebras/free_lie_algebra.py +1 -1
  24. sage/algebras/lie_algebras/heisenberg.py +4 -4
  25. sage/algebras/lie_algebras/lie_algebra.py +1 -1
  26. sage/algebras/lie_algebras/lie_algebra_element.cpython-310-darwin.so +0 -0
  27. sage/algebras/lie_algebras/lie_algebra_element.pyx +65 -28
  28. sage/algebras/lie_algebras/quotient.py +40 -29
  29. sage/algebras/lie_algebras/subalgebra.py +76 -53
  30. sage/algebras/lie_algebras/verma_module.py +1 -3
  31. sage/algebras/octonion_algebra.cpython-310-darwin.so +0 -0
  32. sage/algebras/octonion_algebra.pyx +1 -1
  33. sage/algebras/orlik_solomon.py +4 -4
  34. sage/algebras/orlik_terao.py +4 -4
  35. sage/algebras/steenrod/steenrod_algebra.py +37 -30
  36. sage/algebras/steenrod/steenrod_algebra_bases.py +2 -2
  37. sage/algebras/steenrod/steenrod_algebra_misc.py +4 -4
  38. sage/algebras/steenrod/steenrod_algebra_mult.py +2 -2
  39. sage/all__sagemath_modules.py +1 -0
  40. sage/calculus/integration.cpython-310-darwin.so +0 -0
  41. sage/calculus/integration.pyx +6 -5
  42. sage/calculus/interpolation.cpython-310-darwin.so +0 -0
  43. sage/calculus/interpolators.cpython-310-darwin.so +0 -0
  44. sage/calculus/ode.cpython-310-darwin.so +0 -0
  45. sage/calculus/ode.pxd +2 -2
  46. sage/calculus/ode.pyx +6 -4
  47. sage/calculus/riemann.cpython-310-darwin.so +0 -0
  48. sage/calculus/riemann.pyx +68 -48
  49. sage/calculus/transforms/dwt.cpython-310-darwin.so +0 -0
  50. sage/calculus/transforms/fft.cpython-310-darwin.so +0 -0
  51. sage/coding/ag_code_decoders.cpython-310-darwin.so +0 -0
  52. sage/coding/ag_code_decoders.pyx +31 -31
  53. sage/coding/binary_code.cpython-310-darwin.so +0 -0
  54. sage/coding/binary_code.pxd +6 -6
  55. sage/coding/binary_code.pyx +212 -173
  56. sage/coding/guruswami_sudan/utils.py +3 -5
  57. sage/coding/kasami_codes.cpython-310-darwin.so +0 -0
  58. sage/coding/kasami_codes.pyx +20 -24
  59. sage/coding/linear_code.py +2 -2
  60. sage/coding/linear_code_no_metric.py +5 -5
  61. sage/coding/linear_rank_metric.py +81 -19
  62. sage/combinat/cartesian_product.py +1 -1
  63. sage/combinat/free_module.py +22 -2
  64. sage/combinat/root_system/all.py +1 -1
  65. sage/combinat/root_system/ambient_space.py +1 -1
  66. sage/combinat/root_system/associahedron.py +4 -4
  67. sage/combinat/root_system/braid_move_calculator.py +2 -2
  68. sage/combinat/root_system/braid_orbit.cpython-310-darwin.so +0 -0
  69. sage/combinat/root_system/braid_orbit.pyx +1 -1
  70. sage/combinat/root_system/branching_rules.py +3 -3
  71. sage/combinat/root_system/cartan_type.py +14 -14
  72. sage/combinat/root_system/coxeter_group.py +3 -3
  73. sage/combinat/root_system/coxeter_matrix.py +1 -1
  74. sage/combinat/root_system/coxeter_type.py +12 -1
  75. sage/combinat/root_system/extended_affine_weyl_group.py +9 -9
  76. sage/combinat/root_system/fundamental_group.py +3 -5
  77. sage/combinat/root_system/hecke_algebra_representation.py +1 -1
  78. sage/combinat/root_system/integrable_representations.py +1 -1
  79. sage/combinat/root_system/pieri_factors.py +3 -3
  80. sage/combinat/root_system/root_lattice_realization_algebras.py +1 -1
  81. sage/combinat/root_system/root_lattice_realizations.py +1 -1
  82. sage/combinat/root_system/type_folded.py +3 -3
  83. sage/combinat/root_system/type_reducible.py +8 -7
  84. sage/combinat/root_system/type_super_A.py +2 -2
  85. sage/combinat/root_system/weight_lattice_realizations.py +9 -8
  86. sage/combinat/root_system/weyl_characters.py +2 -2
  87. sage/crypto/__init__.py +1 -0
  88. sage/crypto/block_cipher/des.py +1 -1
  89. sage/crypto/block_cipher/miniaes.py +3 -3
  90. sage/crypto/block_cipher/present.py +3 -3
  91. sage/crypto/block_cipher/sdes.py +3 -3
  92. sage/crypto/boolean_function.cpython-310-darwin.so +0 -0
  93. sage/crypto/boolean_function.pyx +22 -23
  94. sage/crypto/key_exchange/diffie_hellman.py +4 -9
  95. sage/crypto/mq/sr.py +1 -1
  96. sage/crypto/public_key/blum_goldwasser.py +3 -3
  97. sage/crypto/sbox.cpython-310-darwin.so +0 -0
  98. sage/crypto/sbox.pyx +1 -1
  99. sage/crypto/sboxes.py +22 -0
  100. sage/crypto/util.py +4 -6
  101. sage/ext/interpreters/__init__.py +1 -1
  102. sage/ext/interpreters/all__sagemath_modules.py +1 -1
  103. sage/ext/interpreters/wrapper_cc.cpython-310-darwin.so +0 -0
  104. sage/ext/interpreters/wrapper_cc.pxd +5 -5
  105. sage/ext/interpreters/wrapper_cc.pyx +1 -1
  106. sage/ext/interpreters/wrapper_cdf.cpython-310-darwin.so +0 -0
  107. sage/ext/interpreters/wrapper_cdf.pxd +5 -7
  108. sage/ext/interpreters/wrapper_cdf.pyx +4 -10
  109. sage/ext/interpreters/wrapper_rdf.cpython-310-darwin.so +0 -0
  110. sage/ext/interpreters/wrapper_rdf.pxd +1 -1
  111. sage/ext/interpreters/wrapper_rdf.pyx +1 -1
  112. sage/ext/interpreters/wrapper_rr.cpython-310-darwin.so +0 -0
  113. sage/ext/interpreters/wrapper_rr.pxd +5 -5
  114. sage/ext/interpreters/wrapper_rr.pyx +1 -2
  115. sage/geometry/toric_lattice.py +3 -3
  116. sage/geometry/toric_lattice_element.cpython-310-darwin.so +0 -0
  117. sage/groups/additive_abelian/additive_abelian_group.py +1 -1
  118. sage/groups/additive_abelian/qmodnz.py +4 -4
  119. sage/groups/matrix_gps/coxeter_group.py +17 -4
  120. sage/groups/matrix_gps/group_element.cpython-310-darwin.so +0 -0
  121. sage/groups/misc_gps/argument_groups.py +2 -2
  122. sage/groups/misc_gps/imaginary_groups.py +4 -4
  123. sage/groups/perm_gps/partn_ref/refinement_binary.cpython-310-darwin.so +0 -0
  124. sage/groups/perm_gps/partn_ref/refinement_matrices.cpython-310-darwin.so +0 -0
  125. sage/homology/chain_complex.py +0 -2
  126. sage/homology/hochschild_complex.py +3 -3
  127. sage/homology/homology_morphism.py +6 -6
  128. sage/homology/homology_vector_space_with_basis.py +1 -1
  129. sage/libs/gsl/array.cpython-310-darwin.so +0 -0
  130. sage/libs/mpmath/utils.cpython-310-darwin.so +0 -0
  131. sage/matrix/action.cpython-310-darwin.so +0 -0
  132. sage/matrix/args.cpython-310-darwin.so +0 -0
  133. sage/matrix/args.pyx +25 -10
  134. sage/matrix/benchmark.py +8 -4
  135. sage/matrix/compute_J_ideal.py +2 -2
  136. sage/matrix/constructor.cpython-310-darwin.so +0 -0
  137. sage/matrix/echelon_matrix.cpython-310-darwin.so +0 -0
  138. sage/matrix/echelon_matrix.pyx +1 -1
  139. sage/matrix/matrix0.cpython-310-darwin.so +0 -0
  140. sage/matrix/matrix0.pxd +3 -3
  141. sage/matrix/matrix0.pyx +7 -5
  142. sage/matrix/matrix1.cpython-310-darwin.so +0 -0
  143. sage/matrix/matrix1.pyx +87 -48
  144. sage/matrix/matrix2.cpython-310-darwin.so +0 -0
  145. sage/matrix/matrix2.pxd +3 -3
  146. sage/matrix/matrix2.pyx +1261 -63
  147. sage/matrix/matrix_cdv.cpython-310-darwin.so +0 -0
  148. sage/matrix/matrix_complex_double_dense.cpython-310-darwin.so +0 -0
  149. sage/matrix/matrix_complex_double_dense.pyx +1 -1
  150. sage/matrix/matrix_dense.cpython-310-darwin.so +0 -0
  151. sage/matrix/matrix_dense.pyx +2 -3
  152. sage/matrix/matrix_double_dense.cpython-310-darwin.so +0 -0
  153. sage/matrix/matrix_double_dense.pyx +11 -5
  154. sage/matrix/matrix_double_sparse.cpython-310-darwin.so +0 -0
  155. sage/matrix/matrix_generic_dense.cpython-310-darwin.so +0 -0
  156. sage/matrix/matrix_generic_sparse.cpython-310-darwin.so +0 -0
  157. sage/matrix/matrix_generic_sparse.pyx +1 -1
  158. sage/matrix/matrix_laurent_mpolynomial_dense.cpython-310-darwin.so +0 -0
  159. sage/matrix/matrix_numpy_dense.cpython-310-darwin.so +0 -0
  160. sage/matrix/matrix_numpy_integer_dense.cpython-310-darwin.so +0 -0
  161. sage/matrix/matrix_polynomial_dense.cpython-310-darwin.so +0 -0
  162. sage/matrix/matrix_polynomial_dense.pyx +952 -261
  163. sage/matrix/matrix_real_double_dense.cpython-310-darwin.so +0 -0
  164. sage/matrix/matrix_sparse.cpython-310-darwin.so +0 -0
  165. sage/matrix/matrix_sparse.pyx +6 -7
  166. sage/matrix/matrix_window.cpython-310-darwin.so +0 -0
  167. sage/matrix/matrix_window.pyx +2 -2
  168. sage/matrix/misc_mpfr.cpython-310-darwin.so +0 -0
  169. sage/matrix/operation_table.py +0 -2
  170. sage/matrix/special.py +5 -1
  171. sage/matrix/strassen.cpython-310-darwin.so +0 -0
  172. sage/matrix/strassen.pyx +1 -1
  173. sage/matroids/basis_exchange_matroid.cpython-310-darwin.so +0 -0
  174. sage/matroids/basis_matroid.cpython-310-darwin.so +0 -0
  175. sage/matroids/chow_ring.py +68 -65
  176. sage/matroids/chow_ring_ideal.py +41 -38
  177. sage/matroids/circuit_closures_matroid.cpython-310-darwin.so +0 -0
  178. sage/matroids/circuits_matroid.cpython-310-darwin.so +0 -0
  179. sage/matroids/database_matroids.py +16 -5
  180. sage/matroids/dual_matroid.py +2 -2
  181. sage/matroids/extension.cpython-310-darwin.so +0 -0
  182. sage/matroids/flats_matroid.cpython-310-darwin.so +0 -0
  183. sage/matroids/gammoid.py +1 -1
  184. sage/matroids/graphic_matroid.cpython-310-darwin.so +0 -0
  185. sage/matroids/graphic_matroid.pyx +3 -3
  186. sage/matroids/lean_matrix.cpython-310-darwin.so +0 -0
  187. sage/matroids/lean_matrix.pyx +22 -22
  188. sage/matroids/linear_matroid.cpython-310-darwin.so +0 -0
  189. sage/matroids/linear_matroid.pyx +13 -13
  190. sage/matroids/matroid.cpython-310-darwin.so +0 -0
  191. sage/matroids/matroid.pyx +15 -15
  192. sage/matroids/matroids_plot_helpers.py +48 -46
  193. sage/matroids/minor_matroid.py +2 -2
  194. sage/matroids/set_system.cpython-310-darwin.so +0 -0
  195. sage/matroids/transversal_matroid.cpython-310-darwin.so +0 -0
  196. sage/matroids/transversal_matroid.pyx +3 -3
  197. sage/matroids/union_matroid.cpython-310-darwin.so +0 -0
  198. sage/matroids/union_matroid.pyx +3 -0
  199. sage/matroids/unpickling.cpython-310-darwin.so +0 -0
  200. sage/matroids/utilities.py +2 -2
  201. sage/misc/c3.cpython-310-darwin.so +0 -0
  202. sage/misc/compat.py +1 -2
  203. sage/misc/pickle_old.cpython-310-darwin.so +0 -0
  204. sage/modules/diamond_cutting.py +117 -30
  205. sage/modules/fg_pid/fgp_module.py +3 -3
  206. sage/modules/filtered_vector_space.py +4 -4
  207. sage/modules/finite_submodule_iter.cpython-310-darwin.so +0 -0
  208. sage/modules/fp_graded/free_module.py +2 -2
  209. sage/modules/fp_graded/module.py +2 -2
  210. sage/modules/fp_graded/morphism.py +4 -4
  211. sage/modules/fp_graded/steenrod/morphism.py +1 -1
  212. sage/modules/free_module.py +162 -26
  213. sage/modules/free_module_element.cpython-310-darwin.so +0 -0
  214. sage/modules/free_module_element.pyx +4 -4
  215. sage/modules/free_module_integer.py +2 -2
  216. sage/modules/free_module_morphism.py +3 -3
  217. sage/modules/free_module_pseudohomspace.py +352 -0
  218. sage/modules/free_module_pseudomorphism.py +578 -0
  219. sage/modules/free_quadratic_module_integer_symmetric.py +24 -13
  220. sage/modules/matrix_morphism.py +9 -9
  221. sage/modules/multi_filtered_vector_space.py +4 -4
  222. sage/modules/ore_module.py +2208 -0
  223. sage/modules/ore_module_element.py +178 -0
  224. sage/modules/ore_module_homspace.py +147 -0
  225. sage/modules/ore_module_morphism.py +968 -0
  226. sage/modules/quotient_module.py +11 -1
  227. sage/modules/submodule.py +1 -1
  228. sage/modules/torsion_quadratic_module.py +1 -1
  229. sage/modules/vector_complex_double_dense.cpython-310-darwin.so +0 -0
  230. sage/modules/vector_double_dense.cpython-310-darwin.so +0 -0
  231. sage/modules/vector_integer_dense.cpython-310-darwin.so +0 -0
  232. sage/modules/vector_integer_sparse.cpython-310-darwin.so +0 -0
  233. sage/modules/vector_integer_sparse.pyx +4 -4
  234. sage/modules/vector_modn_dense.cpython-310-darwin.so +0 -0
  235. sage/modules/vector_modn_sparse.cpython-310-darwin.so +0 -0
  236. sage/modules/vector_numpy_dense.cpython-310-darwin.so +0 -0
  237. sage/modules/vector_numpy_integer_dense.cpython-310-darwin.so +0 -0
  238. sage/modules/vector_rational_dense.cpython-310-darwin.so +0 -0
  239. sage/modules/vector_rational_dense.pyx +1 -1
  240. sage/modules/vector_rational_sparse.cpython-310-darwin.so +0 -0
  241. sage/modules/vector_rational_sparse.pyx +5 -5
  242. sage/modules/vector_real_double_dense.cpython-310-darwin.so +0 -0
  243. sage/modules/vector_space_morphism.py +2 -2
  244. sage/modules/with_basis/cell_module.py +17 -0
  245. sage/modules/with_basis/indexed_element.cpython-310-darwin.so +0 -0
  246. sage/modules/with_basis/indexed_element.pyx +1 -1
  247. sage/modules/with_basis/invariant.py +1 -1
  248. sage/modules/with_basis/representation.py +0 -1
  249. sage/modules/with_basis/subquotient.py +2 -2
  250. sage/numerical/gauss_legendre.cpython-310-darwin.so +0 -0
  251. sage/probability/probability_distribution.cpython-310-darwin.so +0 -0
  252. sage/quadratic_forms/binary_qf.py +11 -11
  253. sage/quadratic_forms/bqf_class_group.py +26 -92
  254. sage/quadratic_forms/count_local_2.cpython-310-darwin.so +0 -0
  255. sage/quadratic_forms/extras.py +1 -1
  256. sage/quadratic_forms/quadratic_form.py +5 -4
  257. sage/quadratic_forms/quadratic_form__equivalence_testing.py +7 -4
  258. sage/quadratic_forms/quadratic_form__evaluate.cpython-310-darwin.so +0 -0
  259. sage/quadratic_forms/quadratic_form__local_field_invariants.py +10 -10
  260. sage/quadratic_forms/quadratic_form__ternary_Tornaria.py +2 -2
  261. sage/quadratic_forms/ternary.cpython-310-darwin.so +0 -0
  262. sage/quadratic_forms/ternary_qf.py +50 -83
  263. sage/rings/cfinite_sequence.py +16 -17
  264. sage/rings/complex_conversion.cpython-310-darwin.so +0 -0
  265. sage/rings/complex_double.cpython-310-darwin.so +0 -0
  266. sage/rings/complex_double.pxd +1 -0
  267. sage/rings/complex_double.pyx +37 -32
  268. sage/rings/complex_mpc.cpython-310-darwin.so +0 -0
  269. sage/rings/complex_mpc.pyx +27 -23
  270. sage/rings/complex_mpfr.cpython-310-darwin.so +0 -0
  271. sage/rings/complex_mpfr.pyx +11 -11
  272. sage/rings/function_field/drinfeld_modules/charzero_drinfeld_module.py +277 -21
  273. sage/rings/function_field/drinfeld_modules/drinfeld_module.py +10 -1
  274. sage/rings/function_field/drinfeld_modules/finite_drinfeld_module.py +1 -1
  275. sage/rings/function_field/drinfeld_modules/homset.py +1 -2
  276. sage/rings/function_field/drinfeld_modules/morphism.py +2 -2
  277. sage/rings/function_field/hermite_form_polynomial.cpython-310-darwin.so +0 -0
  278. sage/rings/function_field/khuri_makdisi.cpython-310-darwin.so +0 -0
  279. sage/rings/function_field/khuri_makdisi.pyx +27 -25
  280. sage/rings/invariants/invariant_theory.py +61 -60
  281. sage/rings/invariants/reconstruction.py +8 -8
  282. sage/rings/polynomial/laurent_polynomial_mpair.cpython-310-darwin.so +0 -0
  283. sage/rings/polynomial/ore_function_element.py +1 -1
  284. sage/rings/polynomial/ore_polynomial_element.cpython-310-darwin.so +0 -0
  285. sage/rings/polynomial/ore_polynomial_element.pyx +8 -8
  286. sage/rings/polynomial/ore_polynomial_ring.py +134 -17
  287. sage/rings/polynomial/polynomial_real_mpfr_dense.cpython-310-darwin.so +0 -0
  288. sage/rings/polynomial/skew_polynomial_element.cpython-310-darwin.so +0 -0
  289. sage/rings/polynomial/skew_polynomial_finite_field.cpython-310-darwin.so +0 -0
  290. sage/rings/polynomial/skew_polynomial_finite_field.pyx +3 -4
  291. sage/rings/polynomial/skew_polynomial_finite_order.cpython-310-darwin.so +0 -0
  292. sage/rings/polynomial/skew_polynomial_finite_order.pyx +2 -5
  293. sage/rings/real_double_element_gsl.cpython-310-darwin.so +0 -0
  294. sage/rings/real_mpfr.cpython-310-darwin.so +0 -0
  295. sage/rings/real_mpfr.pyx +25 -7
  296. sage/rings/ring_extension.cpython-310-darwin.so +0 -0
  297. sage/rings/ring_extension.pyx +4 -2
  298. sage/rings/ring_extension_conversion.cpython-310-darwin.so +0 -0
  299. sage/rings/ring_extension_element.cpython-310-darwin.so +0 -0
  300. sage/rings/ring_extension_element.pyx +42 -0
  301. sage/rings/ring_extension_morphism.cpython-310-darwin.so +0 -0
  302. sage/schemes/all__sagemath_modules.py +1 -0
  303. sage/schemes/projective/all__sagemath_modules.py +1 -0
  304. sage/schemes/projective/coherent_sheaf.py +300 -0
  305. sage/schemes/projective/cohomology.py +510 -0
  306. sage/stats/basic_stats.py +17 -15
  307. sage/stats/distributions/dgs_misc.h +11 -4
  308. sage/stats/distributions/discrete_gaussian_integer.cpython-310-darwin.so +0 -0
  309. sage/stats/distributions/discrete_gaussian_integer.pyx +9 -7
  310. sage/stats/hmm/chmm.cpython-310-darwin.so +0 -0
  311. sage/stats/hmm/chmm.pyx +13 -13
  312. sage/stats/hmm/distributions.cpython-310-darwin.so +0 -0
  313. sage/stats/hmm/distributions.pxd +3 -3
  314. sage/stats/hmm/distributions.pyx +3 -3
  315. sage/stats/hmm/hmm.cpython-310-darwin.so +0 -0
  316. sage/stats/hmm/hmm.pxd +3 -3
  317. sage/stats/hmm/hmm.pyx +6 -6
  318. sage/stats/hmm/util.cpython-310-darwin.so +0 -0
  319. sage/stats/hmm/util.pyx +6 -6
  320. sage/stats/intlist.cpython-310-darwin.so +0 -0
  321. sage/stats/intlist.pxd +3 -3
  322. sage/stats/time_series.cpython-310-darwin.so +0 -0
  323. sage/tensor/modules/alternating_contr_tensor.py +3 -3
  324. sage/tensor/modules/comp.py +3 -3
  325. sage/tensor/modules/ext_pow_free_module.py +3 -3
  326. sage/tensor/modules/format_utilities.py +3 -3
  327. sage/tensor/modules/free_module_linear_group.py +3 -3
  328. sage/tensor/modules/free_module_morphism.py +0 -1
  329. sage/tensor/modules/tensor_free_module.py +3 -3
  330. sage/tensor/modules/tensor_free_submodule.py +1 -1
  331. sage/tensor/modules/tensor_free_submodule_basis.py +1 -1
  332. sage/tensor/modules/tensor_with_indices.py +5 -5
  333. passagemath_modules.dylibs/libopenblas_armv8p-r0.3.28.dylib +0 -0
  334. {passagemath_modules-10.5.32.dist-info → passagemath_modules-10.6.20.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,300 @@
1
+ # sage_setup: distribution = sagemath-modules
2
+ # sage.doctest: needs sage.libs.singular
3
+ r"""
4
+ Coherent sheaves on projective schemes
5
+
6
+ EXAMPLES:
7
+
8
+ We define the Fermat cubic surface in `\PP^2` and examine its structure sheaf::
9
+
10
+ sage: P2.<x,y,z> = ProjectiveSpace(QQ, 2)
11
+ sage: X = P2.subscheme(x^4 + y^4 + z^4)
12
+ sage: sh = X.structure_sheaf()
13
+ sage: sh
14
+ Coherent sheaf on Closed subscheme of Projective Space of dimension 2
15
+ over Rational Field defined by: x^4 + y^4 + z^4
16
+ sage: sh.euler_characteristic()
17
+ -2
18
+
19
+ AUTHORS:
20
+
21
+ - Kwankyu Lee (2024-01-22): initial version
22
+
23
+ """
24
+
25
+ from functools import cached_property
26
+ from sage.structure.sage_object import SageObject
27
+ from sage.modules.free_module import FreeModule
28
+
29
+
30
+ class CoherentSheaf(SageObject):
31
+ r"""
32
+ Coherent sheaf on a projective scheme.
33
+
34
+ INPUT:
35
+
36
+ - ``scheme`` -- the base scheme on which the sheaf is defined
37
+
38
+ - ``module`` -- a free module or its quotient by a submodule
39
+
40
+ - ``twist`` -- (default: 0) an integer
41
+
42
+ This class constructs the coherent sheaf `\tilde M(n)` if `M` is the
43
+ ``module`` and `n` is the ``twist``.
44
+ """
45
+ def __init__(self, scheme, module, twist=0):
46
+ """
47
+ Initialize ``self``.
48
+
49
+ TESTS::
50
+
51
+ sage: P2.<x,y,z> = ProjectiveSpace(QQ, 2)
52
+ sage: X = P2.subscheme(x^4 + y^4 + z^4)
53
+ sage: sheaf = X.structure_sheaf()
54
+ sage: TestSuite(sheaf).run(skip=['_test_pickling'])
55
+ """
56
+ try:
57
+ if module.is_ambient():
58
+ module = module.quotient(module.zero_submodule())
59
+ except AttributeError:
60
+ pass
61
+
62
+ assert module.cover() == module.free_cover()
63
+
64
+ self._base_scheme = scheme
65
+ self._module = module
66
+ self._twist = twist
67
+
68
+ def _cohomology(self):
69
+ """
70
+ Return an object that computes the cohomology.
71
+
72
+ EXAMPLES::
73
+
74
+ sage: P2.<x,y,z> = ProjectiveSpace(QQ, 2)
75
+ sage: X = P2.subscheme(x^4 + y^4 + z^4)
76
+ sage: sheaf = X.structure_sheaf()
77
+ sage: c = sheaf._cohomology
78
+ sage: c.H(1).dimension()
79
+ 3
80
+ sage: c.h(1)
81
+ 3
82
+ """
83
+ raise NotImplementedError('_cohomology is not implemented')
84
+
85
+ def _repr_(self):
86
+ """
87
+ Return the string representation of this sheaf.
88
+
89
+ EXAMPLES::
90
+
91
+ sage: P2.<x,y,z> = ProjectiveSpace(QQ, 2)
92
+ sage: X = P2.subscheme(x^4 + y^4 + z^4)
93
+ sage: s = X.structure_sheaf()
94
+ sage: s
95
+ Coherent sheaf on Closed subscheme of Projective Space of dimension 2
96
+ over Rational Field defined by: x^4 + y^4 + z^4
97
+ sage: s.twist(2)
98
+ Twisted coherent sheaf on Closed subscheme of Projective Space of dimension 2
99
+ over Rational Field defined by: x^4 + y^4 + z^4
100
+ """
101
+ sheaf = 'Twisted coherent sheaf' if self._twist else 'Coherent sheaf'
102
+ return f'{sheaf} on {self._base_scheme}'
103
+
104
+ def base_scheme(self):
105
+ """
106
+ Return the base scheme on which this sheaf is defined.
107
+
108
+ EXAMPLES::
109
+
110
+ sage: P2.<x,y,z> = ProjectiveSpace(QQ, 2)
111
+ sage: X = P2.subscheme(x^4 + y^4 + z^4)
112
+ sage: s = X.structure_sheaf()
113
+ sage: s.base_scheme()
114
+ Closed subscheme of Projective Space of dimension 2 over Rational Field defined by:
115
+ x^4 + y^4 + z^4
116
+ """
117
+ return self._base_scheme
118
+
119
+ def defining_twist(self):
120
+ """
121
+ Return the integer by which the module defining this coherent sheaf is
122
+ twisted.
123
+
124
+ EXAMPLES::
125
+
126
+ sage: P2.<x,y,z> = ProjectiveSpace(QQ, 2)
127
+ sage: X = P2.subscheme(x^4 + y^4 + z^4)
128
+ sage: s = X.structure_sheaf(3)
129
+ sage: s.defining_twist()
130
+ 3
131
+ """
132
+ return self._twist
133
+
134
+ def defining_module(self):
135
+ """
136
+ Return the module defining this coherent sheaf.
137
+
138
+ EXAMPLES::
139
+
140
+ sage: P2.<x,y,z> = ProjectiveSpace(QQ, 2)
141
+ sage: X = P2.subscheme(x^4 + y^4 + z^4)
142
+ sage: s = X.structure_sheaf()
143
+ sage: s.defining_module()
144
+ Quotient module by Submodule of Ambient free module of rank 1 over the integral domain Quotient
145
+ of Multivariate Polynomial Ring in x, y, z over Rational Field by the ideal (x^4 + y^4 + z^4)
146
+ Generated by the rows of the matrix:
147
+ []
148
+ """
149
+ return self._module
150
+
151
+ def cohomology(self, r=0):
152
+ """
153
+ Return the dimension of the `r`-th cohomology as a vector space.
154
+
155
+ INPUT:
156
+
157
+ - ``r`` -- (default: 0) a non-negative integer
158
+
159
+ EXAMPLES::
160
+
161
+ sage: P2.<x,y,z> = ProjectiveSpace(QQ, 2)
162
+ sage: X = P2.subscheme(x^4 + y^4 + z^4)
163
+ sage: sheaf = X.structure_sheaf()
164
+ sage: sheaf.cohomology(0)
165
+ 1
166
+ sage: sheaf.cohomology(1)
167
+ 3
168
+ sage: sheaf.cohomology(2)
169
+ 0
170
+ """
171
+ return self._cohomology.h(r)
172
+
173
+ def twist(self, t=0):
174
+ r"""
175
+ Return the twisted sheaf `F(n)` of this sheaf `F`.
176
+
177
+ EXAMPLES::
178
+
179
+ sage: P2.<x,y,z> = ProjectiveSpace(QQ, 2)
180
+ sage: X = P2.subscheme(x^4 + y^4 + z^4)
181
+ sage: sh = X.structure_sheaf()
182
+ sage: sh.twist(1).euler_characteristic()
183
+ 2
184
+ sage: sh.twist(2).euler_characteristic()
185
+ 6
186
+
187
+ TESTS::
188
+
189
+ sage: sh.defining_twist()
190
+ 0
191
+ sage: twisted = sh.twist(1)
192
+ sage: twisted_twisted = twisted.twist(2)
193
+ sage: twisted_twisted.defining_twist()
194
+ 3
195
+ """
196
+ return type(self)(self._base_scheme, self._module, self._twist + t)
197
+
198
+ def euler_characteristic(self):
199
+ """
200
+ Return the Euler characteristic of this coherent sheaf.
201
+
202
+ EXAMPLES::
203
+
204
+ sage: P2.<x,y,z> = ProjectiveSpace(QQ, 2)
205
+ sage: X = P2.subscheme(x^4 + y^4 + z^4)
206
+ sage: sh = X.structure_sheaf()
207
+ sage: sh.euler_characteristic()
208
+ -2
209
+ """
210
+ d = self._base_scheme.dimension()
211
+ chi = 0
212
+ for r in range(d + 1): # for Grothendieck's vanishing theorem
213
+ d = self.cohomology(r)
214
+ if r % 2:
215
+ chi = chi - d
216
+ else:
217
+ chi = chi + d
218
+ return chi
219
+
220
+
221
+ class CoherentSheaf_on_projective_space(CoherentSheaf):
222
+ r"""
223
+ Coherent sheaf on a projective space.
224
+
225
+ EXAMPLES::
226
+
227
+ sage: P2.<x,y,z> = ProjectiveSpace(QQ, 2)
228
+ sage: P2.structure_sheaf()
229
+ Coherent sheaf on Projective Space of dimension 2 over Rational Field
230
+ """
231
+ @cached_property
232
+ def _cohomology(self):
233
+ """
234
+ This property keeps the cohomology object for this sheaf.
235
+
236
+ EXAMPLES::
237
+
238
+ sage: P2.<x,y,z> = ProjectiveSpace(QQ, 2)
239
+ sage: P2.structure_sheaf()._cohomology
240
+ Maruyama Method using S(0) <-- 0
241
+ """
242
+ from sage.schemes.projective.cohomology import MaruyamaMethod
243
+ return MaruyamaMethod(self._module, twist=self._twist)
244
+
245
+
246
+ class CoherentSheaf_on_projective_subscheme(CoherentSheaf):
247
+ r"""
248
+ Coherent sheaf on a projective subscheme.
249
+
250
+ EXAMPLES::
251
+
252
+ sage: P2.<x,y,z> = ProjectiveSpace(QQ, 2)
253
+ sage: X = P2.subscheme(x^4 + y^4 + z^4)
254
+ sage: X.structure_sheaf()
255
+ Coherent sheaf on Closed subscheme of Projective Space of dimension 2
256
+ over Rational Field defined by: x^4 + y^4 + z^4
257
+ """
258
+ @cached_property
259
+ def _cohomology(self):
260
+ """
261
+ This property keeps the cohomology object for this sheaf.
262
+
263
+ EXAMPLES::
264
+
265
+ sage: P2.<x,y,z> = ProjectiveSpace(QQ, 2)
266
+ sage: X = P2.subscheme(x^4 + y^4 + z^4)
267
+ sage: X.structure_sheaf()._cohomology
268
+ Maruyama Method using S(0) <-- S(-4) <-- 0
269
+ """
270
+ return self.image_to_ambient_space()._cohomology
271
+
272
+ def image_to_ambient_space(self):
273
+ """
274
+ Return the direct image of this sheaf to the ambient space.
275
+
276
+ The image is with respect to the inclusion morphism from the base
277
+ scheme into the projective space.
278
+
279
+ INPUT:
280
+
281
+ - ``twist`` -- (default: `0`) an integer
282
+
283
+ EXAMPLES::
284
+
285
+ sage: P2.<x,y,z> = ProjectiveSpace(QQ, 2)
286
+ sage: X = P2.subscheme(x^4 + y^4 + z^4)
287
+ sage: X.structure_sheaf().image_to_ambient_space()
288
+ Coherent sheaf on Projective Space of dimension 2 over Rational Field
289
+ """
290
+ X = self._base_scheme
291
+ A = X.ambient_space()
292
+ S = A.coordinate_ring()
293
+
294
+ d = self._module.degree()
295
+ M = FreeModule(S, d)
296
+ I = X.defining_polynomials()
297
+ J = self._module.relations().gens()
298
+ G = [f * M.gen(i) for i in range(d) for f in I] + [v.change_ring(S) for v in J]
299
+ N = M.submodule(G)
300
+ return A.coherent_sheaf(M.quotient(N), twist=self._twist)