passagemath-modules 10.6.31rc3__cp314-cp314-musllinux_1_2_x86_64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of passagemath-modules might be problematic. Click here for more details.

Files changed (808) hide show
  1. passagemath_modules-10.6.31rc3.dist-info/METADATA +281 -0
  2. passagemath_modules-10.6.31rc3.dist-info/RECORD +808 -0
  3. passagemath_modules-10.6.31rc3.dist-info/WHEEL +5 -0
  4. passagemath_modules-10.6.31rc3.dist-info/top_level.txt +2 -0
  5. passagemath_modules.libs/libgcc_s-0cd532bd.so.1 +0 -0
  6. passagemath_modules.libs/libgfortran-2c33b284.so.5.0.0 +0 -0
  7. passagemath_modules.libs/libgmp-0e7fc84e.so.10.5.0 +0 -0
  8. passagemath_modules.libs/libgsl-42cda06f.so.28.0.0 +0 -0
  9. passagemath_modules.libs/libmpc-d8ebe4b5.so.3.3.1 +0 -0
  10. passagemath_modules.libs/libmpfr-aaecbfc0.so.6.2.1 +0 -0
  11. passagemath_modules.libs/libopenblasp-r0-905cb27d.3.29.so +0 -0
  12. passagemath_modules.libs/libquadmath-bb76a5fc.so.0.0.0 +0 -0
  13. sage/algebras/all__sagemath_modules.py +20 -0
  14. sage/algebras/catalog.py +148 -0
  15. sage/algebras/clifford_algebra.py +3107 -0
  16. sage/algebras/clifford_algebra_element.cpython-314-x86_64-linux-musl.so +0 -0
  17. sage/algebras/clifford_algebra_element.pxd +16 -0
  18. sage/algebras/clifford_algebra_element.pyx +997 -0
  19. sage/algebras/commutative_dga.py +4252 -0
  20. sage/algebras/exterior_algebra_groebner.cpython-314-x86_64-linux-musl.so +0 -0
  21. sage/algebras/exterior_algebra_groebner.pxd +55 -0
  22. sage/algebras/exterior_algebra_groebner.pyx +727 -0
  23. sage/algebras/finite_dimensional_algebras/all.py +2 -0
  24. sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra.py +1029 -0
  25. sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra_element.cpython-314-x86_64-linux-musl.so +0 -0
  26. sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra_element.pxd +12 -0
  27. sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra_element.pyx +706 -0
  28. sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra_ideal.py +196 -0
  29. sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra_morphism.py +255 -0
  30. sage/algebras/finite_gca.py +528 -0
  31. sage/algebras/group_algebra.py +232 -0
  32. sage/algebras/lie_algebras/abelian.py +197 -0
  33. sage/algebras/lie_algebras/affine_lie_algebra.py +1213 -0
  34. sage/algebras/lie_algebras/all.py +25 -0
  35. sage/algebras/lie_algebras/all__sagemath_modules.py +1 -0
  36. sage/algebras/lie_algebras/bch.py +177 -0
  37. sage/algebras/lie_algebras/bgg_dual_module.py +1184 -0
  38. sage/algebras/lie_algebras/bgg_resolution.py +232 -0
  39. sage/algebras/lie_algebras/center_uea.py +767 -0
  40. sage/algebras/lie_algebras/classical_lie_algebra.py +2516 -0
  41. sage/algebras/lie_algebras/examples.py +683 -0
  42. sage/algebras/lie_algebras/free_lie_algebra.py +973 -0
  43. sage/algebras/lie_algebras/heisenberg.py +820 -0
  44. sage/algebras/lie_algebras/lie_algebra.py +1562 -0
  45. sage/algebras/lie_algebras/lie_algebra_element.cpython-314-x86_64-linux-musl.so +0 -0
  46. sage/algebras/lie_algebras/lie_algebra_element.pxd +68 -0
  47. sage/algebras/lie_algebras/lie_algebra_element.pyx +2122 -0
  48. sage/algebras/lie_algebras/morphism.py +661 -0
  49. sage/algebras/lie_algebras/nilpotent_lie_algebra.py +457 -0
  50. sage/algebras/lie_algebras/onsager.py +1324 -0
  51. sage/algebras/lie_algebras/poincare_birkhoff_witt.py +816 -0
  52. sage/algebras/lie_algebras/quotient.py +462 -0
  53. sage/algebras/lie_algebras/rank_two_heisenberg_virasoro.py +355 -0
  54. sage/algebras/lie_algebras/representation.py +1040 -0
  55. sage/algebras/lie_algebras/structure_coefficients.py +459 -0
  56. sage/algebras/lie_algebras/subalgebra.py +967 -0
  57. sage/algebras/lie_algebras/symplectic_derivation.py +289 -0
  58. sage/algebras/lie_algebras/verma_module.py +1630 -0
  59. sage/algebras/lie_algebras/virasoro.py +1186 -0
  60. sage/algebras/octonion_algebra.cpython-314-x86_64-linux-musl.so +0 -0
  61. sage/algebras/octonion_algebra.pxd +20 -0
  62. sage/algebras/octonion_algebra.pyx +987 -0
  63. sage/algebras/orlik_solomon.py +907 -0
  64. sage/algebras/orlik_terao.py +779 -0
  65. sage/algebras/steenrod/all.py +7 -0
  66. sage/algebras/steenrod/steenrod_algebra.py +4258 -0
  67. sage/algebras/steenrod/steenrod_algebra_bases.py +1179 -0
  68. sage/algebras/steenrod/steenrod_algebra_misc.py +1167 -0
  69. sage/algebras/steenrod/steenrod_algebra_mult.py +954 -0
  70. sage/algebras/weyl_algebra.py +1126 -0
  71. sage/all__sagemath_modules.py +62 -0
  72. sage/calculus/all__sagemath_modules.py +19 -0
  73. sage/calculus/expr.py +205 -0
  74. sage/calculus/integration.cpython-314-x86_64-linux-musl.so +0 -0
  75. sage/calculus/integration.pyx +698 -0
  76. sage/calculus/interpolation.cpython-314-x86_64-linux-musl.so +0 -0
  77. sage/calculus/interpolation.pxd +13 -0
  78. sage/calculus/interpolation.pyx +387 -0
  79. sage/calculus/interpolators.cpython-314-x86_64-linux-musl.so +0 -0
  80. sage/calculus/interpolators.pyx +326 -0
  81. sage/calculus/ode.cpython-314-x86_64-linux-musl.so +0 -0
  82. sage/calculus/ode.pxd +5 -0
  83. sage/calculus/ode.pyx +610 -0
  84. sage/calculus/riemann.cpython-314-x86_64-linux-musl.so +0 -0
  85. sage/calculus/riemann.pyx +1521 -0
  86. sage/calculus/test_sympy.py +201 -0
  87. sage/calculus/transforms/all.py +7 -0
  88. sage/calculus/transforms/dft.py +844 -0
  89. sage/calculus/transforms/dwt.cpython-314-x86_64-linux-musl.so +0 -0
  90. sage/calculus/transforms/dwt.pxd +7 -0
  91. sage/calculus/transforms/dwt.pyx +160 -0
  92. sage/calculus/transforms/fft.cpython-314-x86_64-linux-musl.so +0 -0
  93. sage/calculus/transforms/fft.pxd +12 -0
  94. sage/calculus/transforms/fft.pyx +487 -0
  95. sage/calculus/wester.py +662 -0
  96. sage/coding/abstract_code.py +1108 -0
  97. sage/coding/ag_code.py +868 -0
  98. sage/coding/ag_code_decoders.cpython-314-x86_64-linux-musl.so +0 -0
  99. sage/coding/ag_code_decoders.pyx +2639 -0
  100. sage/coding/all.py +15 -0
  101. sage/coding/bch_code.py +494 -0
  102. sage/coding/binary_code.cpython-314-x86_64-linux-musl.so +0 -0
  103. sage/coding/binary_code.pxd +124 -0
  104. sage/coding/binary_code.pyx +4139 -0
  105. sage/coding/bounds_catalog.py +43 -0
  106. sage/coding/channel.py +819 -0
  107. sage/coding/channels_catalog.py +29 -0
  108. sage/coding/code_bounds.py +755 -0
  109. sage/coding/code_constructions.py +804 -0
  110. sage/coding/codes_catalog.py +111 -0
  111. sage/coding/cyclic_code.py +1329 -0
  112. sage/coding/databases.py +316 -0
  113. sage/coding/decoder.py +373 -0
  114. sage/coding/decoders_catalog.py +88 -0
  115. sage/coding/delsarte_bounds.py +709 -0
  116. sage/coding/encoder.py +390 -0
  117. sage/coding/encoders_catalog.py +64 -0
  118. sage/coding/extended_code.py +468 -0
  119. sage/coding/gabidulin_code.py +1058 -0
  120. sage/coding/golay_code.py +404 -0
  121. sage/coding/goppa_code.py +441 -0
  122. sage/coding/grs_code.py +2371 -0
  123. sage/coding/guava.py +107 -0
  124. sage/coding/guruswami_sudan/all.py +1 -0
  125. sage/coding/guruswami_sudan/gs_decoder.py +897 -0
  126. sage/coding/guruswami_sudan/interpolation.py +409 -0
  127. sage/coding/guruswami_sudan/utils.py +176 -0
  128. sage/coding/hamming_code.py +176 -0
  129. sage/coding/information_set_decoder.py +1032 -0
  130. sage/coding/kasami_codes.cpython-314-x86_64-linux-musl.so +0 -0
  131. sage/coding/kasami_codes.pyx +351 -0
  132. sage/coding/linear_code.py +3067 -0
  133. sage/coding/linear_code_no_metric.py +1354 -0
  134. sage/coding/linear_rank_metric.py +961 -0
  135. sage/coding/parity_check_code.py +353 -0
  136. sage/coding/punctured_code.py +719 -0
  137. sage/coding/reed_muller_code.py +999 -0
  138. sage/coding/self_dual_codes.py +942 -0
  139. sage/coding/source_coding/all.py +2 -0
  140. sage/coding/source_coding/huffman.py +553 -0
  141. sage/coding/subfield_subcode.py +423 -0
  142. sage/coding/two_weight_db.py +399 -0
  143. sage/combinat/all__sagemath_modules.py +7 -0
  144. sage/combinat/cartesian_product.py +347 -0
  145. sage/combinat/family.py +11 -0
  146. sage/combinat/free_module.py +1977 -0
  147. sage/combinat/root_system/all.py +147 -0
  148. sage/combinat/root_system/ambient_space.py +527 -0
  149. sage/combinat/root_system/associahedron.py +471 -0
  150. sage/combinat/root_system/braid_move_calculator.py +143 -0
  151. sage/combinat/root_system/braid_orbit.cpython-314-x86_64-linux-musl.so +0 -0
  152. sage/combinat/root_system/braid_orbit.pyx +144 -0
  153. sage/combinat/root_system/branching_rules.py +2301 -0
  154. sage/combinat/root_system/cartan_matrix.py +1245 -0
  155. sage/combinat/root_system/cartan_type.py +3069 -0
  156. sage/combinat/root_system/coxeter_group.py +162 -0
  157. sage/combinat/root_system/coxeter_matrix.py +1261 -0
  158. sage/combinat/root_system/coxeter_type.py +681 -0
  159. sage/combinat/root_system/dynkin_diagram.py +900 -0
  160. sage/combinat/root_system/extended_affine_weyl_group.py +2993 -0
  161. sage/combinat/root_system/fundamental_group.py +795 -0
  162. sage/combinat/root_system/hecke_algebra_representation.py +1203 -0
  163. sage/combinat/root_system/integrable_representations.py +1227 -0
  164. sage/combinat/root_system/non_symmetric_macdonald_polynomials.py +1965 -0
  165. sage/combinat/root_system/pieri_factors.py +1147 -0
  166. sage/combinat/root_system/plot.py +1615 -0
  167. sage/combinat/root_system/root_lattice_realization_algebras.py +1214 -0
  168. sage/combinat/root_system/root_lattice_realizations.py +4628 -0
  169. sage/combinat/root_system/root_space.py +487 -0
  170. sage/combinat/root_system/root_system.py +882 -0
  171. sage/combinat/root_system/type_A.py +348 -0
  172. sage/combinat/root_system/type_A_affine.py +227 -0
  173. sage/combinat/root_system/type_A_infinity.py +241 -0
  174. sage/combinat/root_system/type_B.py +347 -0
  175. sage/combinat/root_system/type_BC_affine.py +287 -0
  176. sage/combinat/root_system/type_B_affine.py +216 -0
  177. sage/combinat/root_system/type_C.py +317 -0
  178. sage/combinat/root_system/type_C_affine.py +188 -0
  179. sage/combinat/root_system/type_D.py +357 -0
  180. sage/combinat/root_system/type_D_affine.py +208 -0
  181. sage/combinat/root_system/type_E.py +641 -0
  182. sage/combinat/root_system/type_E_affine.py +231 -0
  183. sage/combinat/root_system/type_F.py +387 -0
  184. sage/combinat/root_system/type_F_affine.py +137 -0
  185. sage/combinat/root_system/type_G.py +293 -0
  186. sage/combinat/root_system/type_G_affine.py +132 -0
  187. sage/combinat/root_system/type_H.py +105 -0
  188. sage/combinat/root_system/type_I.py +110 -0
  189. sage/combinat/root_system/type_Q.py +150 -0
  190. sage/combinat/root_system/type_affine.py +509 -0
  191. sage/combinat/root_system/type_dual.py +704 -0
  192. sage/combinat/root_system/type_folded.py +301 -0
  193. sage/combinat/root_system/type_marked.py +748 -0
  194. sage/combinat/root_system/type_reducible.py +601 -0
  195. sage/combinat/root_system/type_relabel.py +730 -0
  196. sage/combinat/root_system/type_super_A.py +837 -0
  197. sage/combinat/root_system/weight_lattice_realizations.py +1188 -0
  198. sage/combinat/root_system/weight_space.py +639 -0
  199. sage/combinat/root_system/weyl_characters.py +2238 -0
  200. sage/crypto/__init__.py +4 -0
  201. sage/crypto/all.py +28 -0
  202. sage/crypto/block_cipher/all.py +7 -0
  203. sage/crypto/block_cipher/des.py +1065 -0
  204. sage/crypto/block_cipher/miniaes.py +2171 -0
  205. sage/crypto/block_cipher/present.py +909 -0
  206. sage/crypto/block_cipher/sdes.py +1527 -0
  207. sage/crypto/boolean_function.cpython-314-x86_64-linux-musl.so +0 -0
  208. sage/crypto/boolean_function.pxd +10 -0
  209. sage/crypto/boolean_function.pyx +1487 -0
  210. sage/crypto/cipher.py +78 -0
  211. sage/crypto/classical.py +3668 -0
  212. sage/crypto/classical_cipher.py +569 -0
  213. sage/crypto/cryptosystem.py +387 -0
  214. sage/crypto/key_exchange/all.py +7 -0
  215. sage/crypto/key_exchange/catalog.py +24 -0
  216. sage/crypto/key_exchange/diffie_hellman.py +323 -0
  217. sage/crypto/key_exchange/key_exchange_scheme.py +107 -0
  218. sage/crypto/lattice.py +312 -0
  219. sage/crypto/lfsr.py +295 -0
  220. sage/crypto/lwe.py +840 -0
  221. sage/crypto/mq/__init__.py +4 -0
  222. sage/crypto/mq/mpolynomialsystemgenerator.py +204 -0
  223. sage/crypto/mq/rijndael_gf.py +2345 -0
  224. sage/crypto/mq/sbox.py +7 -0
  225. sage/crypto/mq/sr.py +3344 -0
  226. sage/crypto/public_key/all.py +5 -0
  227. sage/crypto/public_key/blum_goldwasser.py +776 -0
  228. sage/crypto/sbox.cpython-314-x86_64-linux-musl.so +0 -0
  229. sage/crypto/sbox.pyx +2090 -0
  230. sage/crypto/sboxes.py +2090 -0
  231. sage/crypto/stream.py +390 -0
  232. sage/crypto/stream_cipher.py +297 -0
  233. sage/crypto/util.py +519 -0
  234. sage/ext/all__sagemath_modules.py +1 -0
  235. sage/ext/interpreters/__init__.py +1 -0
  236. sage/ext/interpreters/all__sagemath_modules.py +2 -0
  237. sage/ext/interpreters/wrapper_cc.cpython-314-x86_64-linux-musl.so +0 -0
  238. sage/ext/interpreters/wrapper_cc.pxd +30 -0
  239. sage/ext/interpreters/wrapper_cc.pyx +252 -0
  240. sage/ext/interpreters/wrapper_cdf.cpython-314-x86_64-linux-musl.so +0 -0
  241. sage/ext/interpreters/wrapper_cdf.pxd +26 -0
  242. sage/ext/interpreters/wrapper_cdf.pyx +245 -0
  243. sage/ext/interpreters/wrapper_rdf.cpython-314-x86_64-linux-musl.so +0 -0
  244. sage/ext/interpreters/wrapper_rdf.pxd +23 -0
  245. sage/ext/interpreters/wrapper_rdf.pyx +221 -0
  246. sage/ext/interpreters/wrapper_rr.cpython-314-x86_64-linux-musl.so +0 -0
  247. sage/ext/interpreters/wrapper_rr.pxd +28 -0
  248. sage/ext/interpreters/wrapper_rr.pyx +335 -0
  249. sage/geometry/all__sagemath_modules.py +5 -0
  250. sage/geometry/toric_lattice.py +1745 -0
  251. sage/geometry/toric_lattice_element.cpython-314-x86_64-linux-musl.so +0 -0
  252. sage/geometry/toric_lattice_element.pyx +432 -0
  253. sage/groups/abelian_gps/abelian_group.py +1925 -0
  254. sage/groups/abelian_gps/abelian_group_element.py +164 -0
  255. sage/groups/abelian_gps/all__sagemath_modules.py +5 -0
  256. sage/groups/abelian_gps/dual_abelian_group.py +421 -0
  257. sage/groups/abelian_gps/dual_abelian_group_element.py +179 -0
  258. sage/groups/abelian_gps/element_base.py +341 -0
  259. sage/groups/abelian_gps/values.py +488 -0
  260. sage/groups/additive_abelian/additive_abelian_group.py +476 -0
  261. sage/groups/additive_abelian/additive_abelian_wrapper.py +857 -0
  262. sage/groups/additive_abelian/all.py +4 -0
  263. sage/groups/additive_abelian/qmodnz.py +231 -0
  264. sage/groups/additive_abelian/qmodnz_element.py +349 -0
  265. sage/groups/affine_gps/affine_group.py +535 -0
  266. sage/groups/affine_gps/all.py +1 -0
  267. sage/groups/affine_gps/catalog.py +17 -0
  268. sage/groups/affine_gps/euclidean_group.py +246 -0
  269. sage/groups/affine_gps/group_element.py +562 -0
  270. sage/groups/all__sagemath_modules.py +12 -0
  271. sage/groups/galois_group.py +479 -0
  272. sage/groups/matrix_gps/all.py +4 -0
  273. sage/groups/matrix_gps/all__sagemath_modules.py +13 -0
  274. sage/groups/matrix_gps/catalog.py +26 -0
  275. sage/groups/matrix_gps/coxeter_group.py +927 -0
  276. sage/groups/matrix_gps/finitely_generated.py +487 -0
  277. sage/groups/matrix_gps/group_element.cpython-314-x86_64-linux-musl.so +0 -0
  278. sage/groups/matrix_gps/group_element.pxd +11 -0
  279. sage/groups/matrix_gps/group_element.pyx +431 -0
  280. sage/groups/matrix_gps/linear.py +440 -0
  281. sage/groups/matrix_gps/matrix_group.py +617 -0
  282. sage/groups/matrix_gps/named_group.py +296 -0
  283. sage/groups/matrix_gps/orthogonal.py +544 -0
  284. sage/groups/matrix_gps/symplectic.py +251 -0
  285. sage/groups/matrix_gps/unitary.py +436 -0
  286. sage/groups/misc_gps/all__sagemath_modules.py +1 -0
  287. sage/groups/misc_gps/argument_groups.py +1905 -0
  288. sage/groups/misc_gps/imaginary_groups.py +479 -0
  289. sage/groups/perm_gps/all__sagemath_modules.py +1 -0
  290. sage/groups/perm_gps/partn_ref/all__sagemath_modules.py +1 -0
  291. sage/groups/perm_gps/partn_ref/refinement_binary.cpython-314-x86_64-linux-musl.so +0 -0
  292. sage/groups/perm_gps/partn_ref/refinement_binary.pxd +41 -0
  293. sage/groups/perm_gps/partn_ref/refinement_binary.pyx +1167 -0
  294. sage/groups/perm_gps/partn_ref/refinement_matrices.cpython-314-x86_64-linux-musl.so +0 -0
  295. sage/groups/perm_gps/partn_ref/refinement_matrices.pxd +31 -0
  296. sage/groups/perm_gps/partn_ref/refinement_matrices.pyx +385 -0
  297. sage/homology/algebraic_topological_model.py +595 -0
  298. sage/homology/all.py +2 -0
  299. sage/homology/all__sagemath_modules.py +8 -0
  300. sage/homology/chain_complex.py +2148 -0
  301. sage/homology/chain_complex_homspace.py +165 -0
  302. sage/homology/chain_complex_morphism.py +629 -0
  303. sage/homology/chain_homotopy.py +604 -0
  304. sage/homology/chains.py +653 -0
  305. sage/homology/free_resolution.py +923 -0
  306. sage/homology/graded_resolution.py +567 -0
  307. sage/homology/hochschild_complex.py +756 -0
  308. sage/homology/homology_group.py +188 -0
  309. sage/homology/homology_morphism.py +422 -0
  310. sage/homology/homology_vector_space_with_basis.py +1454 -0
  311. sage/homology/koszul_complex.py +169 -0
  312. sage/homology/matrix_utils.py +205 -0
  313. sage/libs/all__sagemath_modules.py +1 -0
  314. sage/libs/gsl/__init__.py +1 -0
  315. sage/libs/gsl/airy.pxd +56 -0
  316. sage/libs/gsl/all.pxd +66 -0
  317. sage/libs/gsl/array.cpython-314-x86_64-linux-musl.so +0 -0
  318. sage/libs/gsl/array.pxd +5 -0
  319. sage/libs/gsl/array.pyx +102 -0
  320. sage/libs/gsl/bessel.pxd +208 -0
  321. sage/libs/gsl/blas.pxd +116 -0
  322. sage/libs/gsl/blas_types.pxd +34 -0
  323. sage/libs/gsl/block.pxd +52 -0
  324. sage/libs/gsl/chebyshev.pxd +37 -0
  325. sage/libs/gsl/clausen.pxd +12 -0
  326. sage/libs/gsl/combination.pxd +47 -0
  327. sage/libs/gsl/complex.pxd +151 -0
  328. sage/libs/gsl/coulomb.pxd +30 -0
  329. sage/libs/gsl/coupling.pxd +21 -0
  330. sage/libs/gsl/dawson.pxd +12 -0
  331. sage/libs/gsl/debye.pxd +24 -0
  332. sage/libs/gsl/dilog.pxd +14 -0
  333. sage/libs/gsl/eigen.pxd +46 -0
  334. sage/libs/gsl/elementary.pxd +12 -0
  335. sage/libs/gsl/ellint.pxd +48 -0
  336. sage/libs/gsl/elljac.pxd +8 -0
  337. sage/libs/gsl/erf.pxd +32 -0
  338. sage/libs/gsl/errno.pxd +26 -0
  339. sage/libs/gsl/exp.pxd +44 -0
  340. sage/libs/gsl/expint.pxd +44 -0
  341. sage/libs/gsl/fermi_dirac.pxd +44 -0
  342. sage/libs/gsl/fft.pxd +121 -0
  343. sage/libs/gsl/fit.pxd +50 -0
  344. sage/libs/gsl/gamma.pxd +94 -0
  345. sage/libs/gsl/gegenbauer.pxd +26 -0
  346. sage/libs/gsl/histogram.pxd +176 -0
  347. sage/libs/gsl/hyperg.pxd +52 -0
  348. sage/libs/gsl/integration.pxd +69 -0
  349. sage/libs/gsl/interp.pxd +109 -0
  350. sage/libs/gsl/laguerre.pxd +24 -0
  351. sage/libs/gsl/lambert.pxd +16 -0
  352. sage/libs/gsl/legendre.pxd +90 -0
  353. sage/libs/gsl/linalg.pxd +185 -0
  354. sage/libs/gsl/log.pxd +26 -0
  355. sage/libs/gsl/math.pxd +43 -0
  356. sage/libs/gsl/matrix.pxd +143 -0
  357. sage/libs/gsl/matrix_complex.pxd +130 -0
  358. sage/libs/gsl/min.pxd +67 -0
  359. sage/libs/gsl/monte.pxd +56 -0
  360. sage/libs/gsl/ntuple.pxd +32 -0
  361. sage/libs/gsl/odeiv.pxd +70 -0
  362. sage/libs/gsl/permutation.pxd +78 -0
  363. sage/libs/gsl/poly.pxd +40 -0
  364. sage/libs/gsl/pow_int.pxd +12 -0
  365. sage/libs/gsl/psi.pxd +28 -0
  366. sage/libs/gsl/qrng.pxd +29 -0
  367. sage/libs/gsl/random.pxd +257 -0
  368. sage/libs/gsl/rng.pxd +100 -0
  369. sage/libs/gsl/roots.pxd +72 -0
  370. sage/libs/gsl/sort.pxd +36 -0
  371. sage/libs/gsl/statistics.pxd +59 -0
  372. sage/libs/gsl/sum.pxd +55 -0
  373. sage/libs/gsl/synchrotron.pxd +16 -0
  374. sage/libs/gsl/transport.pxd +24 -0
  375. sage/libs/gsl/trig.pxd +58 -0
  376. sage/libs/gsl/types.pxd +137 -0
  377. sage/libs/gsl/vector.pxd +101 -0
  378. sage/libs/gsl/vector_complex.pxd +83 -0
  379. sage/libs/gsl/wavelet.pxd +49 -0
  380. sage/libs/gsl/zeta.pxd +28 -0
  381. sage/libs/mpc/__init__.pxd +114 -0
  382. sage/libs/mpc/types.pxd +28 -0
  383. sage/libs/mpfr/__init__.pxd +299 -0
  384. sage/libs/mpfr/types.pxd +26 -0
  385. sage/libs/mpmath/__init__.py +1 -0
  386. sage/libs/mpmath/all.py +27 -0
  387. sage/libs/mpmath/all__sagemath_modules.py +1 -0
  388. sage/libs/mpmath/utils.cpython-314-x86_64-linux-musl.so +0 -0
  389. sage/libs/mpmath/utils.pxd +4 -0
  390. sage/libs/mpmath/utils.pyx +319 -0
  391. sage/matrix/action.cpython-314-x86_64-linux-musl.so +0 -0
  392. sage/matrix/action.pxd +26 -0
  393. sage/matrix/action.pyx +596 -0
  394. sage/matrix/all.py +9 -0
  395. sage/matrix/args.cpython-314-x86_64-linux-musl.so +0 -0
  396. sage/matrix/args.pxd +144 -0
  397. sage/matrix/args.pyx +1668 -0
  398. sage/matrix/benchmark.py +1258 -0
  399. sage/matrix/berlekamp_massey.py +95 -0
  400. sage/matrix/compute_J_ideal.py +926 -0
  401. sage/matrix/constructor.cpython-314-x86_64-linux-musl.so +0 -0
  402. sage/matrix/constructor.pyx +750 -0
  403. sage/matrix/docs.py +430 -0
  404. sage/matrix/echelon_matrix.cpython-314-x86_64-linux-musl.so +0 -0
  405. sage/matrix/echelon_matrix.pyx +155 -0
  406. sage/matrix/matrix.pxd +2 -0
  407. sage/matrix/matrix0.cpython-314-x86_64-linux-musl.so +0 -0
  408. sage/matrix/matrix0.pxd +68 -0
  409. sage/matrix/matrix0.pyx +6324 -0
  410. sage/matrix/matrix1.cpython-314-x86_64-linux-musl.so +0 -0
  411. sage/matrix/matrix1.pxd +8 -0
  412. sage/matrix/matrix1.pyx +2851 -0
  413. sage/matrix/matrix2.cpython-314-x86_64-linux-musl.so +0 -0
  414. sage/matrix/matrix2.pxd +25 -0
  415. sage/matrix/matrix2.pyx +20181 -0
  416. sage/matrix/matrix_cdv.cpython-314-x86_64-linux-musl.so +0 -0
  417. sage/matrix/matrix_cdv.pxd +4 -0
  418. sage/matrix/matrix_cdv.pyx +93 -0
  419. sage/matrix/matrix_complex_double_dense.cpython-314-x86_64-linux-musl.so +0 -0
  420. sage/matrix/matrix_complex_double_dense.pxd +5 -0
  421. sage/matrix/matrix_complex_double_dense.pyx +98 -0
  422. sage/matrix/matrix_dense.cpython-314-x86_64-linux-musl.so +0 -0
  423. sage/matrix/matrix_dense.pxd +5 -0
  424. sage/matrix/matrix_dense.pyx +343 -0
  425. sage/matrix/matrix_domain_dense.pxd +5 -0
  426. sage/matrix/matrix_domain_sparse.pxd +5 -0
  427. sage/matrix/matrix_double_dense.cpython-314-x86_64-linux-musl.so +0 -0
  428. sage/matrix/matrix_double_dense.pxd +7 -0
  429. sage/matrix/matrix_double_dense.pyx +3906 -0
  430. sage/matrix/matrix_double_sparse.cpython-314-x86_64-linux-musl.so +0 -0
  431. sage/matrix/matrix_double_sparse.pxd +6 -0
  432. sage/matrix/matrix_double_sparse.pyx +248 -0
  433. sage/matrix/matrix_generic_dense.cpython-314-x86_64-linux-musl.so +0 -0
  434. sage/matrix/matrix_generic_dense.pxd +7 -0
  435. sage/matrix/matrix_generic_dense.pyx +354 -0
  436. sage/matrix/matrix_generic_sparse.cpython-314-x86_64-linux-musl.so +0 -0
  437. sage/matrix/matrix_generic_sparse.pxd +7 -0
  438. sage/matrix/matrix_generic_sparse.pyx +461 -0
  439. sage/matrix/matrix_laurent_mpolynomial_dense.cpython-314-x86_64-linux-musl.so +0 -0
  440. sage/matrix/matrix_laurent_mpolynomial_dense.pxd +5 -0
  441. sage/matrix/matrix_laurent_mpolynomial_dense.pyx +115 -0
  442. sage/matrix/matrix_misc.py +313 -0
  443. sage/matrix/matrix_numpy_dense.cpython-314-x86_64-linux-musl.so +0 -0
  444. sage/matrix/matrix_numpy_dense.pxd +14 -0
  445. sage/matrix/matrix_numpy_dense.pyx +450 -0
  446. sage/matrix/matrix_numpy_integer_dense.cpython-314-x86_64-linux-musl.so +0 -0
  447. sage/matrix/matrix_numpy_integer_dense.pxd +7 -0
  448. sage/matrix/matrix_numpy_integer_dense.pyx +59 -0
  449. sage/matrix/matrix_polynomial_dense.cpython-314-x86_64-linux-musl.so +0 -0
  450. sage/matrix/matrix_polynomial_dense.pxd +5 -0
  451. sage/matrix/matrix_polynomial_dense.pyx +5341 -0
  452. sage/matrix/matrix_real_double_dense.cpython-314-x86_64-linux-musl.so +0 -0
  453. sage/matrix/matrix_real_double_dense.pxd +7 -0
  454. sage/matrix/matrix_real_double_dense.pyx +122 -0
  455. sage/matrix/matrix_space.py +2848 -0
  456. sage/matrix/matrix_sparse.cpython-314-x86_64-linux-musl.so +0 -0
  457. sage/matrix/matrix_sparse.pxd +5 -0
  458. sage/matrix/matrix_sparse.pyx +1222 -0
  459. sage/matrix/matrix_window.cpython-314-x86_64-linux-musl.so +0 -0
  460. sage/matrix/matrix_window.pxd +37 -0
  461. sage/matrix/matrix_window.pyx +242 -0
  462. sage/matrix/misc_mpfr.cpython-314-x86_64-linux-musl.so +0 -0
  463. sage/matrix/misc_mpfr.pyx +80 -0
  464. sage/matrix/operation_table.py +1182 -0
  465. sage/matrix/special.py +3666 -0
  466. sage/matrix/strassen.cpython-314-x86_64-linux-musl.so +0 -0
  467. sage/matrix/strassen.pyx +851 -0
  468. sage/matrix/symplectic_basis.py +541 -0
  469. sage/matrix/template.pxd +6 -0
  470. sage/matrix/tests.py +71 -0
  471. sage/matroids/advanced.py +77 -0
  472. sage/matroids/all.py +13 -0
  473. sage/matroids/basis_exchange_matroid.cpython-314-x86_64-linux-musl.so +0 -0
  474. sage/matroids/basis_exchange_matroid.pxd +96 -0
  475. sage/matroids/basis_exchange_matroid.pyx +2344 -0
  476. sage/matroids/basis_matroid.cpython-314-x86_64-linux-musl.so +0 -0
  477. sage/matroids/basis_matroid.pxd +45 -0
  478. sage/matroids/basis_matroid.pyx +1217 -0
  479. sage/matroids/catalog.py +44 -0
  480. sage/matroids/chow_ring.py +473 -0
  481. sage/matroids/chow_ring_ideal.py +849 -0
  482. sage/matroids/circuit_closures_matroid.cpython-314-x86_64-linux-musl.so +0 -0
  483. sage/matroids/circuit_closures_matroid.pxd +16 -0
  484. sage/matroids/circuit_closures_matroid.pyx +559 -0
  485. sage/matroids/circuits_matroid.cpython-314-x86_64-linux-musl.so +0 -0
  486. sage/matroids/circuits_matroid.pxd +38 -0
  487. sage/matroids/circuits_matroid.pyx +947 -0
  488. sage/matroids/constructor.py +1086 -0
  489. sage/matroids/database_collections.py +365 -0
  490. sage/matroids/database_matroids.py +5338 -0
  491. sage/matroids/dual_matroid.py +583 -0
  492. sage/matroids/extension.cpython-314-x86_64-linux-musl.so +0 -0
  493. sage/matroids/extension.pxd +34 -0
  494. sage/matroids/extension.pyx +519 -0
  495. sage/matroids/flats_matroid.cpython-314-x86_64-linux-musl.so +0 -0
  496. sage/matroids/flats_matroid.pxd +28 -0
  497. sage/matroids/flats_matroid.pyx +715 -0
  498. sage/matroids/gammoid.py +600 -0
  499. sage/matroids/graphic_matroid.cpython-314-x86_64-linux-musl.so +0 -0
  500. sage/matroids/graphic_matroid.pxd +39 -0
  501. sage/matroids/graphic_matroid.pyx +2024 -0
  502. sage/matroids/lean_matrix.cpython-314-x86_64-linux-musl.so +0 -0
  503. sage/matroids/lean_matrix.pxd +126 -0
  504. sage/matroids/lean_matrix.pyx +3667 -0
  505. sage/matroids/linear_matroid.cpython-314-x86_64-linux-musl.so +0 -0
  506. sage/matroids/linear_matroid.pxd +180 -0
  507. sage/matroids/linear_matroid.pyx +6649 -0
  508. sage/matroids/matroid.cpython-314-x86_64-linux-musl.so +0 -0
  509. sage/matroids/matroid.pxd +243 -0
  510. sage/matroids/matroid.pyx +8759 -0
  511. sage/matroids/matroids_catalog.py +190 -0
  512. sage/matroids/matroids_plot_helpers.py +890 -0
  513. sage/matroids/minor_matroid.py +480 -0
  514. sage/matroids/minorfix.h +9 -0
  515. sage/matroids/named_matroids.py +5 -0
  516. sage/matroids/rank_matroid.py +268 -0
  517. sage/matroids/set_system.cpython-314-x86_64-linux-musl.so +0 -0
  518. sage/matroids/set_system.pxd +38 -0
  519. sage/matroids/set_system.pyx +800 -0
  520. sage/matroids/transversal_matroid.cpython-314-x86_64-linux-musl.so +0 -0
  521. sage/matroids/transversal_matroid.pxd +14 -0
  522. sage/matroids/transversal_matroid.pyx +893 -0
  523. sage/matroids/union_matroid.cpython-314-x86_64-linux-musl.so +0 -0
  524. sage/matroids/union_matroid.pxd +20 -0
  525. sage/matroids/union_matroid.pyx +331 -0
  526. sage/matroids/unpickling.cpython-314-x86_64-linux-musl.so +0 -0
  527. sage/matroids/unpickling.pyx +843 -0
  528. sage/matroids/utilities.py +809 -0
  529. sage/misc/all__sagemath_modules.py +20 -0
  530. sage/misc/c3.cpython-314-x86_64-linux-musl.so +0 -0
  531. sage/misc/c3.pyx +238 -0
  532. sage/misc/compat.py +87 -0
  533. sage/misc/element_with_label.py +173 -0
  534. sage/misc/func_persist.py +79 -0
  535. sage/misc/pickle_old.cpython-314-x86_64-linux-musl.so +0 -0
  536. sage/misc/pickle_old.pyx +19 -0
  537. sage/misc/proof.py +7 -0
  538. sage/misc/replace_dot_all.py +472 -0
  539. sage/misc/sagedoc_conf.py +168 -0
  540. sage/misc/sphinxify.py +167 -0
  541. sage/misc/test_class_pickling.py +85 -0
  542. sage/modules/all.py +42 -0
  543. sage/modules/complex_double_vector.py +25 -0
  544. sage/modules/diamond_cutting.py +380 -0
  545. sage/modules/fg_pid/all.py +1 -0
  546. sage/modules/fg_pid/fgp_element.py +456 -0
  547. sage/modules/fg_pid/fgp_module.py +2091 -0
  548. sage/modules/fg_pid/fgp_morphism.py +550 -0
  549. sage/modules/filtered_vector_space.py +1271 -0
  550. sage/modules/finite_submodule_iter.cpython-314-x86_64-linux-musl.so +0 -0
  551. sage/modules/finite_submodule_iter.pxd +27 -0
  552. sage/modules/finite_submodule_iter.pyx +452 -0
  553. sage/modules/fp_graded/all.py +1 -0
  554. sage/modules/fp_graded/element.py +346 -0
  555. sage/modules/fp_graded/free_element.py +298 -0
  556. sage/modules/fp_graded/free_homspace.py +53 -0
  557. sage/modules/fp_graded/free_module.py +1060 -0
  558. sage/modules/fp_graded/free_morphism.py +217 -0
  559. sage/modules/fp_graded/homspace.py +563 -0
  560. sage/modules/fp_graded/module.py +1340 -0
  561. sage/modules/fp_graded/morphism.py +1990 -0
  562. sage/modules/fp_graded/steenrod/all.py +1 -0
  563. sage/modules/fp_graded/steenrod/homspace.py +65 -0
  564. sage/modules/fp_graded/steenrod/module.py +477 -0
  565. sage/modules/fp_graded/steenrod/morphism.py +404 -0
  566. sage/modules/fp_graded/steenrod/profile.py +241 -0
  567. sage/modules/free_module.py +8447 -0
  568. sage/modules/free_module_element.cpython-314-x86_64-linux-musl.so +0 -0
  569. sage/modules/free_module_element.pxd +22 -0
  570. sage/modules/free_module_element.pyx +5445 -0
  571. sage/modules/free_module_homspace.py +369 -0
  572. sage/modules/free_module_integer.py +896 -0
  573. sage/modules/free_module_morphism.py +823 -0
  574. sage/modules/free_module_pseudohomspace.py +352 -0
  575. sage/modules/free_module_pseudomorphism.py +578 -0
  576. sage/modules/free_quadratic_module.py +1706 -0
  577. sage/modules/free_quadratic_module_integer_symmetric.py +1790 -0
  578. sage/modules/matrix_morphism.py +1745 -0
  579. sage/modules/misc.py +103 -0
  580. sage/modules/module_functors.py +192 -0
  581. sage/modules/multi_filtered_vector_space.py +719 -0
  582. sage/modules/ore_module.py +2208 -0
  583. sage/modules/ore_module_element.py +178 -0
  584. sage/modules/ore_module_homspace.py +147 -0
  585. sage/modules/ore_module_morphism.py +968 -0
  586. sage/modules/quotient_module.py +699 -0
  587. sage/modules/real_double_vector.py +22 -0
  588. sage/modules/submodule.py +255 -0
  589. sage/modules/tensor_operations.py +567 -0
  590. sage/modules/torsion_quadratic_module.py +1352 -0
  591. sage/modules/tutorial_free_modules.py +248 -0
  592. sage/modules/vector_complex_double_dense.cpython-314-x86_64-linux-musl.so +0 -0
  593. sage/modules/vector_complex_double_dense.pxd +6 -0
  594. sage/modules/vector_complex_double_dense.pyx +117 -0
  595. sage/modules/vector_double_dense.cpython-314-x86_64-linux-musl.so +0 -0
  596. sage/modules/vector_double_dense.pxd +6 -0
  597. sage/modules/vector_double_dense.pyx +604 -0
  598. sage/modules/vector_integer_dense.cpython-314-x86_64-linux-musl.so +0 -0
  599. sage/modules/vector_integer_dense.pxd +15 -0
  600. sage/modules/vector_integer_dense.pyx +361 -0
  601. sage/modules/vector_integer_sparse.cpython-314-x86_64-linux-musl.so +0 -0
  602. sage/modules/vector_integer_sparse.pxd +29 -0
  603. sage/modules/vector_integer_sparse.pyx +406 -0
  604. sage/modules/vector_modn_dense.cpython-314-x86_64-linux-musl.so +0 -0
  605. sage/modules/vector_modn_dense.pxd +12 -0
  606. sage/modules/vector_modn_dense.pyx +394 -0
  607. sage/modules/vector_modn_sparse.cpython-314-x86_64-linux-musl.so +0 -0
  608. sage/modules/vector_modn_sparse.pxd +21 -0
  609. sage/modules/vector_modn_sparse.pyx +298 -0
  610. sage/modules/vector_numpy_dense.cpython-314-x86_64-linux-musl.so +0 -0
  611. sage/modules/vector_numpy_dense.pxd +15 -0
  612. sage/modules/vector_numpy_dense.pyx +304 -0
  613. sage/modules/vector_numpy_integer_dense.cpython-314-x86_64-linux-musl.so +0 -0
  614. sage/modules/vector_numpy_integer_dense.pxd +7 -0
  615. sage/modules/vector_numpy_integer_dense.pyx +54 -0
  616. sage/modules/vector_rational_dense.cpython-314-x86_64-linux-musl.so +0 -0
  617. sage/modules/vector_rational_dense.pxd +15 -0
  618. sage/modules/vector_rational_dense.pyx +387 -0
  619. sage/modules/vector_rational_sparse.cpython-314-x86_64-linux-musl.so +0 -0
  620. sage/modules/vector_rational_sparse.pxd +30 -0
  621. sage/modules/vector_rational_sparse.pyx +413 -0
  622. sage/modules/vector_real_double_dense.cpython-314-x86_64-linux-musl.so +0 -0
  623. sage/modules/vector_real_double_dense.pxd +6 -0
  624. sage/modules/vector_real_double_dense.pyx +126 -0
  625. sage/modules/vector_space_homspace.py +430 -0
  626. sage/modules/vector_space_morphism.py +989 -0
  627. sage/modules/with_basis/all.py +15 -0
  628. sage/modules/with_basis/cell_module.py +494 -0
  629. sage/modules/with_basis/indexed_element.cpython-314-x86_64-linux-musl.so +0 -0
  630. sage/modules/with_basis/indexed_element.pxd +13 -0
  631. sage/modules/with_basis/indexed_element.pyx +1058 -0
  632. sage/modules/with_basis/invariant.py +1075 -0
  633. sage/modules/with_basis/morphism.py +1636 -0
  634. sage/modules/with_basis/representation.py +2939 -0
  635. sage/modules/with_basis/subquotient.py +685 -0
  636. sage/numerical/all__sagemath_modules.py +6 -0
  637. sage/numerical/gauss_legendre.cpython-314-x86_64-linux-musl.so +0 -0
  638. sage/numerical/gauss_legendre.pyx +381 -0
  639. sage/numerical/optimize.py +910 -0
  640. sage/probability/all.py +10 -0
  641. sage/probability/probability_distribution.cpython-314-x86_64-linux-musl.so +0 -0
  642. sage/probability/probability_distribution.pyx +1242 -0
  643. sage/probability/random_variable.py +411 -0
  644. sage/quadratic_forms/all.py +4 -0
  645. sage/quadratic_forms/all__sagemath_modules.py +15 -0
  646. sage/quadratic_forms/binary_qf.py +2042 -0
  647. sage/quadratic_forms/bqf_class_group.py +748 -0
  648. sage/quadratic_forms/constructions.py +93 -0
  649. sage/quadratic_forms/count_local_2.cpython-314-x86_64-linux-musl.so +0 -0
  650. sage/quadratic_forms/count_local_2.pyx +365 -0
  651. sage/quadratic_forms/extras.py +195 -0
  652. sage/quadratic_forms/quadratic_form.py +1753 -0
  653. sage/quadratic_forms/quadratic_form__count_local_2.py +221 -0
  654. sage/quadratic_forms/quadratic_form__equivalence_testing.py +708 -0
  655. sage/quadratic_forms/quadratic_form__evaluate.cpython-314-x86_64-linux-musl.so +0 -0
  656. sage/quadratic_forms/quadratic_form__evaluate.pyx +139 -0
  657. sage/quadratic_forms/quadratic_form__local_density_congruence.py +977 -0
  658. sage/quadratic_forms/quadratic_form__local_field_invariants.py +1072 -0
  659. sage/quadratic_forms/quadratic_form__neighbors.py +424 -0
  660. sage/quadratic_forms/quadratic_form__reduction_theory.py +488 -0
  661. sage/quadratic_forms/quadratic_form__split_local_covering.py +416 -0
  662. sage/quadratic_forms/quadratic_form__ternary_Tornaria.py +657 -0
  663. sage/quadratic_forms/quadratic_form__theta.py +352 -0
  664. sage/quadratic_forms/quadratic_form__variable_substitutions.py +370 -0
  665. sage/quadratic_forms/random_quadraticform.py +209 -0
  666. sage/quadratic_forms/ternary.cpython-314-x86_64-linux-musl.so +0 -0
  667. sage/quadratic_forms/ternary.pyx +1154 -0
  668. sage/quadratic_forms/ternary_qf.py +2027 -0
  669. sage/rings/all__sagemath_modules.py +28 -0
  670. sage/rings/asymptotic/all__sagemath_modules.py +1 -0
  671. sage/rings/asymptotic/misc.py +1252 -0
  672. sage/rings/cc.py +4 -0
  673. sage/rings/cfinite_sequence.py +1306 -0
  674. sage/rings/complex_conversion.cpython-314-x86_64-linux-musl.so +0 -0
  675. sage/rings/complex_conversion.pxd +8 -0
  676. sage/rings/complex_conversion.pyx +23 -0
  677. sage/rings/complex_double.cpython-314-x86_64-linux-musl.so +0 -0
  678. sage/rings/complex_double.pxd +21 -0
  679. sage/rings/complex_double.pyx +2654 -0
  680. sage/rings/complex_mpc.cpython-314-x86_64-linux-musl.so +0 -0
  681. sage/rings/complex_mpc.pxd +21 -0
  682. sage/rings/complex_mpc.pyx +2576 -0
  683. sage/rings/complex_mpfr.cpython-314-x86_64-linux-musl.so +0 -0
  684. sage/rings/complex_mpfr.pxd +18 -0
  685. sage/rings/complex_mpfr.pyx +3602 -0
  686. sage/rings/derivation.py +2334 -0
  687. sage/rings/finite_rings/all__sagemath_modules.py +1 -0
  688. sage/rings/finite_rings/maps_finite_field.py +191 -0
  689. sage/rings/function_field/all__sagemath_modules.py +8 -0
  690. sage/rings/function_field/derivations.py +102 -0
  691. sage/rings/function_field/derivations_rational.py +132 -0
  692. sage/rings/function_field/differential.py +853 -0
  693. sage/rings/function_field/divisor.py +1107 -0
  694. sage/rings/function_field/drinfeld_modules/action.py +199 -0
  695. sage/rings/function_field/drinfeld_modules/all.py +1 -0
  696. sage/rings/function_field/drinfeld_modules/charzero_drinfeld_module.py +673 -0
  697. sage/rings/function_field/drinfeld_modules/drinfeld_module.py +2087 -0
  698. sage/rings/function_field/drinfeld_modules/finite_drinfeld_module.py +1131 -0
  699. sage/rings/function_field/drinfeld_modules/homset.py +420 -0
  700. sage/rings/function_field/drinfeld_modules/morphism.py +820 -0
  701. sage/rings/function_field/hermite_form_polynomial.cpython-314-x86_64-linux-musl.so +0 -0
  702. sage/rings/function_field/hermite_form_polynomial.pyx +188 -0
  703. sage/rings/function_field/khuri_makdisi.cpython-314-x86_64-linux-musl.so +0 -0
  704. sage/rings/function_field/khuri_makdisi.pyx +935 -0
  705. sage/rings/invariants/all.py +4 -0
  706. sage/rings/invariants/invariant_theory.py +4597 -0
  707. sage/rings/invariants/reconstruction.py +395 -0
  708. sage/rings/polynomial/all__sagemath_modules.py +17 -0
  709. sage/rings/polynomial/integer_valued_polynomials.py +1230 -0
  710. sage/rings/polynomial/laurent_polynomial_mpair.cpython-314-x86_64-linux-musl.so +0 -0
  711. sage/rings/polynomial/laurent_polynomial_mpair.pxd +15 -0
  712. sage/rings/polynomial/laurent_polynomial_mpair.pyx +2023 -0
  713. sage/rings/polynomial/ore_function_element.py +952 -0
  714. sage/rings/polynomial/ore_function_field.py +1028 -0
  715. sage/rings/polynomial/ore_polynomial_element.cpython-314-x86_64-linux-musl.so +0 -0
  716. sage/rings/polynomial/ore_polynomial_element.pxd +48 -0
  717. sage/rings/polynomial/ore_polynomial_element.pyx +3145 -0
  718. sage/rings/polynomial/ore_polynomial_ring.py +1334 -0
  719. sage/rings/polynomial/polynomial_real_mpfr_dense.cpython-314-x86_64-linux-musl.so +0 -0
  720. sage/rings/polynomial/polynomial_real_mpfr_dense.pyx +788 -0
  721. sage/rings/polynomial/q_integer_valued_polynomials.py +1264 -0
  722. sage/rings/polynomial/skew_polynomial_element.cpython-314-x86_64-linux-musl.so +0 -0
  723. sage/rings/polynomial/skew_polynomial_element.pxd +9 -0
  724. sage/rings/polynomial/skew_polynomial_element.pyx +684 -0
  725. sage/rings/polynomial/skew_polynomial_finite_field.cpython-314-x86_64-linux-musl.so +0 -0
  726. sage/rings/polynomial/skew_polynomial_finite_field.pxd +19 -0
  727. sage/rings/polynomial/skew_polynomial_finite_field.pyx +1093 -0
  728. sage/rings/polynomial/skew_polynomial_finite_order.cpython-314-x86_64-linux-musl.so +0 -0
  729. sage/rings/polynomial/skew_polynomial_finite_order.pxd +10 -0
  730. sage/rings/polynomial/skew_polynomial_finite_order.pyx +567 -0
  731. sage/rings/polynomial/skew_polynomial_ring.py +908 -0
  732. sage/rings/real_double_element_gsl.cpython-314-x86_64-linux-musl.so +0 -0
  733. sage/rings/real_double_element_gsl.pxd +8 -0
  734. sage/rings/real_double_element_gsl.pyx +794 -0
  735. sage/rings/real_field.py +58 -0
  736. sage/rings/real_mpfr.cpython-314-x86_64-linux-musl.so +0 -0
  737. sage/rings/real_mpfr.pxd +29 -0
  738. sage/rings/real_mpfr.pyx +6122 -0
  739. sage/rings/ring_extension.cpython-314-x86_64-linux-musl.so +0 -0
  740. sage/rings/ring_extension.pxd +42 -0
  741. sage/rings/ring_extension.pyx +2779 -0
  742. sage/rings/ring_extension_conversion.cpython-314-x86_64-linux-musl.so +0 -0
  743. sage/rings/ring_extension_conversion.pxd +16 -0
  744. sage/rings/ring_extension_conversion.pyx +462 -0
  745. sage/rings/ring_extension_element.cpython-314-x86_64-linux-musl.so +0 -0
  746. sage/rings/ring_extension_element.pxd +21 -0
  747. sage/rings/ring_extension_element.pyx +1635 -0
  748. sage/rings/ring_extension_homset.py +64 -0
  749. sage/rings/ring_extension_morphism.cpython-314-x86_64-linux-musl.so +0 -0
  750. sage/rings/ring_extension_morphism.pxd +35 -0
  751. sage/rings/ring_extension_morphism.pyx +920 -0
  752. sage/schemes/all__sagemath_modules.py +1 -0
  753. sage/schemes/projective/all__sagemath_modules.py +1 -0
  754. sage/schemes/projective/coherent_sheaf.py +300 -0
  755. sage/schemes/projective/cohomology.py +510 -0
  756. sage/stats/all.py +15 -0
  757. sage/stats/basic_stats.py +489 -0
  758. sage/stats/distributions/all.py +7 -0
  759. sage/stats/distributions/catalog.py +34 -0
  760. sage/stats/distributions/dgs.h +50 -0
  761. sage/stats/distributions/dgs.pxd +111 -0
  762. sage/stats/distributions/dgs_bern.h +400 -0
  763. sage/stats/distributions/dgs_gauss.h +614 -0
  764. sage/stats/distributions/dgs_misc.h +104 -0
  765. sage/stats/distributions/discrete_gaussian_integer.cpython-314-x86_64-linux-musl.so +0 -0
  766. sage/stats/distributions/discrete_gaussian_integer.pxd +14 -0
  767. sage/stats/distributions/discrete_gaussian_integer.pyx +498 -0
  768. sage/stats/distributions/discrete_gaussian_lattice.py +908 -0
  769. sage/stats/distributions/discrete_gaussian_polynomial.py +141 -0
  770. sage/stats/hmm/all.py +15 -0
  771. sage/stats/hmm/chmm.cpython-314-x86_64-linux-musl.so +0 -0
  772. sage/stats/hmm/chmm.pyx +1595 -0
  773. sage/stats/hmm/distributions.cpython-314-x86_64-linux-musl.so +0 -0
  774. sage/stats/hmm/distributions.pxd +29 -0
  775. sage/stats/hmm/distributions.pyx +531 -0
  776. sage/stats/hmm/hmm.cpython-314-x86_64-linux-musl.so +0 -0
  777. sage/stats/hmm/hmm.pxd +17 -0
  778. sage/stats/hmm/hmm.pyx +1388 -0
  779. sage/stats/hmm/util.cpython-314-x86_64-linux-musl.so +0 -0
  780. sage/stats/hmm/util.pxd +7 -0
  781. sage/stats/hmm/util.pyx +165 -0
  782. sage/stats/intlist.cpython-314-x86_64-linux-musl.so +0 -0
  783. sage/stats/intlist.pxd +14 -0
  784. sage/stats/intlist.pyx +588 -0
  785. sage/stats/r.py +49 -0
  786. sage/stats/time_series.cpython-314-x86_64-linux-musl.so +0 -0
  787. sage/stats/time_series.pxd +6 -0
  788. sage/stats/time_series.pyx +2546 -0
  789. sage/tensor/all.py +2 -0
  790. sage/tensor/modules/all.py +8 -0
  791. sage/tensor/modules/alternating_contr_tensor.py +761 -0
  792. sage/tensor/modules/comp.py +5598 -0
  793. sage/tensor/modules/ext_pow_free_module.py +824 -0
  794. sage/tensor/modules/finite_rank_free_module.py +3589 -0
  795. sage/tensor/modules/format_utilities.py +333 -0
  796. sage/tensor/modules/free_module_alt_form.py +858 -0
  797. sage/tensor/modules/free_module_automorphism.py +1207 -0
  798. sage/tensor/modules/free_module_basis.py +1074 -0
  799. sage/tensor/modules/free_module_element.py +284 -0
  800. sage/tensor/modules/free_module_homset.py +652 -0
  801. sage/tensor/modules/free_module_linear_group.py +564 -0
  802. sage/tensor/modules/free_module_morphism.py +1581 -0
  803. sage/tensor/modules/free_module_tensor.py +3289 -0
  804. sage/tensor/modules/reflexive_module.py +386 -0
  805. sage/tensor/modules/tensor_free_module.py +780 -0
  806. sage/tensor/modules/tensor_free_submodule.py +538 -0
  807. sage/tensor/modules/tensor_free_submodule_basis.py +140 -0
  808. sage/tensor/modules/tensor_with_indices.py +1043 -0
@@ -0,0 +1,750 @@
1
+ # sage_setup: distribution = sagemath-modules
2
+ # cython: binding=True
3
+ """
4
+ General matrix Constructor and display options
5
+ """
6
+
7
+ #*****************************************************************************
8
+ # Copyright (C) 2005 William Stein <wstein@gmail.com>
9
+ # Copyright (C) 2016 Jeroen Demeyer <J.Demeyer@UGent.be>
10
+ #
11
+ # This program is free software: you can redistribute it and/or modify
12
+ # it under the terms of the GNU General Public License as published by
13
+ # the Free Software Foundation, either version 2 of the License, or
14
+ # (at your option) any later version.
15
+ # http://www.gnu.org/licenses/
16
+ #*****************************************************************************
17
+
18
+ from sage.matrix.args cimport MatrixArgs
19
+ from sage.structure.global_options import GlobalOptions
20
+
21
+
22
+ def matrix(*args, **kwds):
23
+ """
24
+ Create a matrix.
25
+
26
+ This implements the ``matrix`` constructor::
27
+
28
+ sage: matrix([[1,2],[3,4]])
29
+ [1 2]
30
+ [3 4]
31
+
32
+ It also contains methods to create special types of matrices, see
33
+ ``matrix.[tab]`` for more options. For example::
34
+
35
+ sage: matrix.identity(2)
36
+ [1 0]
37
+ [0 1]
38
+
39
+ INPUT:
40
+
41
+ The :func:`matrix` command takes the entries of a matrix, optionally
42
+ preceded by a ring and the dimensions of the matrix, and returns a
43
+ matrix.
44
+
45
+ The entries of a matrix can be specified as a flat list of
46
+ elements, a list of lists (i.e., a list of rows), a list of Sage
47
+ vectors, a callable object, or a dictionary having positions as
48
+ keys and matrix entries as values (see the examples). If you pass
49
+ in a callable object, then you must specify the number of rows and
50
+ columns. You can create a matrix of zeros by passing an empty list
51
+ or the integer zero for the entries. To construct a multiple of
52
+ the identity (`cI`), you can specify square dimensions and pass in
53
+ `c`. Calling :func:`matrix` with a Sage object may return something that
54
+ makes sense. Calling :func:`matrix` with a NumPy array will convert the
55
+ array to a matrix.
56
+
57
+ All arguments (even the positional ones) are optional.
58
+
59
+ Positional and keyword arguments:
60
+
61
+ - ``base_ring`` -- parent of the entries of the matrix (despite the
62
+ name, this is not a priori required to be a ring). By default,
63
+ determine this from the given entries, falling back to ``ZZ`` if
64
+ no entries are given.
65
+
66
+ - ``nrows`` -- the number of rows in the matrix, or a finite or
67
+ enumerated family of arbitrary objects that index the rows of the matrix
68
+
69
+ - ``ncols`` -- the number of columns in the matrix, or a finite or
70
+ enumerated family of arbitrary objects that index the columns of the matrix
71
+
72
+ - ``entries`` -- see examples below
73
+
74
+ If any of ``nrows``, ``ncols``, ``row_keys``, ``column_keys`` is
75
+ given as keyword argument, then none of these may be given as
76
+ positional arguments.
77
+
78
+ Keyword-only arguments:
79
+
80
+ - ``sparse`` -- boolean; create a sparse matrix. This defaults to
81
+ ``True`` when the entries are given as a dictionary, otherwise
82
+ defaults to ``False``.
83
+
84
+ - ``row_keys`` -- a finite or enumerated family of arbitrary objects
85
+ that index the rows of the matrix
86
+
87
+ - ``column_keys`` -- a finite or enumerated family of arbitrary objects
88
+ that index the columns of the matrix
89
+
90
+ - ``space`` -- matrix space which will be the parent of the output
91
+ matrix. This determines ``base_ring``, ``nrows``, ``row_keys``,
92
+ ``ncols``, ``column_keys``, and ``sparse``.
93
+
94
+ - ``immutable`` -- boolean; make the matrix immutable. By default,
95
+ the output matrix is mutable.
96
+
97
+ OUTPUT: a matrix or, more generally, a homomorphism between free
98
+ modules
99
+
100
+ EXAMPLES::
101
+
102
+ sage: m = matrix(2); m; m.parent()
103
+ [0 0]
104
+ [0 0]
105
+ Full MatrixSpace of 2 by 2 dense matrices over Integer Ring
106
+
107
+ ::
108
+
109
+ sage: m = matrix(2, 3); m; m.parent()
110
+ [0 0 0]
111
+ [0 0 0]
112
+ Full MatrixSpace of 2 by 3 dense matrices over Integer Ring
113
+
114
+ ::
115
+
116
+ sage: m = matrix(QQ, [[1,2,3], [4,5,6]]); m; m.parent()
117
+ [1 2 3]
118
+ [4 5 6]
119
+ Full MatrixSpace of 2 by 3 dense matrices over Rational Field
120
+
121
+ ::
122
+
123
+ sage: m = matrix(QQ, 3, 3, lambda i, j: i + j); m
124
+ [0 1 2]
125
+ [1 2 3]
126
+ [2 3 4]
127
+ sage: m = matrix(3, lambda i, j: i - j); m
128
+ [ 0 -1 -2]
129
+ [ 1 0 -1]
130
+ [ 2 1 0]
131
+
132
+ ::
133
+
134
+ sage: matrix(QQ, 2, 3, lambda x, y: x + y)
135
+ [0 1 2]
136
+ [1 2 3]
137
+ sage: matrix(QQ, 5, 5, lambda x, y: (x+1) / (y+1))
138
+ [ 1 1/2 1/3 1/4 1/5]
139
+ [ 2 1 2/3 1/2 2/5]
140
+ [ 3 3/2 1 3/4 3/5]
141
+ [ 4 2 4/3 1 4/5]
142
+ [ 5 5/2 5/3 5/4 1]
143
+
144
+ ::
145
+
146
+ sage: v1 = vector((1,2,3))
147
+ sage: v2 = vector((4,5,6))
148
+ sage: m = matrix([v1,v2]); m; m.parent()
149
+ [1 2 3]
150
+ [4 5 6]
151
+ Full MatrixSpace of 2 by 3 dense matrices over Integer Ring
152
+
153
+ ::
154
+
155
+ sage: m = matrix(QQ, 2, [1,2,3,4,5,6]); m; m.parent()
156
+ [1 2 3]
157
+ [4 5 6]
158
+ Full MatrixSpace of 2 by 3 dense matrices over Rational Field
159
+
160
+ ::
161
+
162
+ sage: m = matrix(QQ, 2, 3, [1,2,3,4,5,6]); m; m.parent()
163
+ [1 2 3]
164
+ [4 5 6]
165
+ Full MatrixSpace of 2 by 3 dense matrices over Rational Field
166
+
167
+ ::
168
+
169
+ sage: m = matrix({(0,1): 2, (1,1): 2/5}); m; m.parent()
170
+ [ 0 2]
171
+ [ 0 2/5]
172
+ Full MatrixSpace of 2 by 2 sparse matrices over Rational Field
173
+
174
+ ::
175
+
176
+ sage: m = matrix(QQ, 2, 3, {(1,1): 2}); m; m.parent()
177
+ [0 0 0]
178
+ [0 2 0]
179
+ Full MatrixSpace of 2 by 3 sparse matrices over Rational Field
180
+
181
+ ::
182
+
183
+ sage: import numpy # needs numpy
184
+ sage: n = numpy.array([[1,2], [3,4]], float) # needs numpy
185
+ sage: m = matrix(n); m; m.parent() # needs numpy
186
+ [1.0 2.0]
187
+ [3.0 4.0]
188
+ Full MatrixSpace of 2 by 2 dense matrices over Real Double Field
189
+
190
+ ::
191
+
192
+ sage: v = vector(ZZ, [1, 10, 100])
193
+ sage: m = matrix(v); m; m.parent()
194
+ [ 1 10 100]
195
+ Full MatrixSpace of 1 by 3 dense matrices over Integer Ring
196
+ sage: m = matrix(GF(7), v); m; m.parent()
197
+ [1 3 2]
198
+ Full MatrixSpace of 1 by 3 dense matrices over Finite Field of size 7
199
+ sage: m = matrix(GF(7), 3, 1, v); m; m.parent()
200
+ [1]
201
+ [3]
202
+ [2]
203
+ Full MatrixSpace of 3 by 1 dense matrices over Finite Field of size 7
204
+
205
+ ::
206
+
207
+ sage: matrix(pari.mathilbert(3)) # needs sage.libs.pari
208
+ [ 1 1/2 1/3]
209
+ [1/2 1/3 1/4]
210
+ [1/3 1/4 1/5]
211
+
212
+ ::
213
+
214
+ sage: g = graphs.PetersenGraph() # needs sage.graphs
215
+ sage: m = matrix(g); m; m.parent() # needs sage.graphs
216
+ [0 1 0 0 1 1 0 0 0 0]
217
+ [1 0 1 0 0 0 1 0 0 0]
218
+ [0 1 0 1 0 0 0 1 0 0]
219
+ [0 0 1 0 1 0 0 0 1 0]
220
+ [1 0 0 1 0 0 0 0 0 1]
221
+ [1 0 0 0 0 0 0 1 1 0]
222
+ [0 1 0 0 0 0 0 0 1 1]
223
+ [0 0 1 0 0 1 0 0 0 1]
224
+ [0 0 0 1 0 1 1 0 0 0]
225
+ [0 0 0 0 1 0 1 1 0 0]
226
+ Full MatrixSpace of 10 by 10 dense matrices over Integer Ring
227
+
228
+ ::
229
+
230
+ sage: matrix(ZZ, 10, 10, range(100), sparse=True).parent()
231
+ Full MatrixSpace of 10 by 10 sparse matrices over Integer Ring
232
+
233
+ ::
234
+
235
+ sage: R = PolynomialRing(QQ, 9, 'x')
236
+ sage: A = matrix(R, 3, 3, R.gens()); A
237
+ [x0 x1 x2]
238
+ [x3 x4 x5]
239
+ [x6 x7 x8]
240
+ sage: det(A)
241
+ -x2*x4*x6 + x1*x5*x6 + x2*x3*x7 - x0*x5*x7 - x1*x3*x8 + x0*x4*x8
242
+
243
+ ::
244
+
245
+ sage: M = Matrix([[1,2,3], [4,5,6], [7,8,9]], immutable=True)
246
+ sage: M[0] = [9,9,9]
247
+ Traceback (most recent call last):
248
+ ...
249
+ ValueError: matrix is immutable; please change a copy instead
250
+ (i.e., use copy(M) to change a copy of M).
251
+
252
+ Using ``row_keys`` and ``column_keys``::
253
+
254
+ sage: M = matrix([[1,2,3], [4,5,6]],
255
+ ....: column_keys=['a','b','c'], row_keys=['u','v']); M
256
+ Generic morphism:
257
+ From: Free module generated by {'a', 'b', 'c'} over Integer Ring
258
+ To: Free module generated by {'u', 'v'} over Integer Ring
259
+ sage: print(M._unicode_art_matrix())
260
+ a b c
261
+ u⎛1 2 3⎞
262
+ v⎝4 5 6⎠
263
+
264
+ It is allowed to specify dimensions redundantly::
265
+
266
+ sage: M = matrix(2, 3, [[1,2,3], [4,5,6]],
267
+ ....: column_keys=['a','b','c'], row_keys=['u','v']); M
268
+ Generic morphism:
269
+ From: Free module generated by {'a', 'b', 'c'} over Integer Ring
270
+ To: Free module generated by {'u', 'v'} over Integer Ring
271
+
272
+ TESTS:
273
+
274
+ There are many ways to create an empty matrix::
275
+
276
+ sage: m = matrix(); m; m.parent()
277
+ []
278
+ Full MatrixSpace of 0 by 0 dense matrices over Integer Ring
279
+ sage: m = matrix(sparse=True); m; m.parent()
280
+ []
281
+ Full MatrixSpace of 0 by 0 sparse matrices over Integer Ring
282
+ sage: m = matrix(QQ); m; m.parent()
283
+ []
284
+ Full MatrixSpace of 0 by 0 dense matrices over Rational Field
285
+ sage: m = matrix(base_ring=QQ); m; m.parent()
286
+ []
287
+ Full MatrixSpace of 0 by 0 dense matrices over Rational Field
288
+ sage: m = matrix(0); m; m.parent()
289
+ []
290
+ Full MatrixSpace of 0 by 0 dense matrices over Integer Ring
291
+ sage: m = matrix(0, 0, base_ring=QQ); m; m.parent()
292
+ []
293
+ Full MatrixSpace of 0 by 0 dense matrices over Rational Field
294
+ sage: m = matrix([]); m; m.parent()
295
+ []
296
+ Full MatrixSpace of 0 by 0 dense matrices over Integer Ring
297
+ sage: m = matrix(QQ, []); m; m.parent()
298
+ []
299
+ Full MatrixSpace of 0 by 0 dense matrices over Rational Field
300
+ sage: m = matrix(QQ, {}); m; m.parent()
301
+ []
302
+ Full MatrixSpace of 0 by 0 sparse matrices over Rational Field
303
+
304
+ Only a ring and dimensions::
305
+
306
+ sage: m = matrix(2); m; m.parent()
307
+ [0 0]
308
+ [0 0]
309
+ Full MatrixSpace of 2 by 2 dense matrices over Integer Ring
310
+ sage: m = matrix(QQ, 2); m; m.parent()
311
+ [0 0]
312
+ [0 0]
313
+ Full MatrixSpace of 2 by 2 dense matrices over Rational Field
314
+ sage: m = matrix(QQ, 2, 3); m; m.parent()
315
+ [0 0 0]
316
+ [0 0 0]
317
+ Full MatrixSpace of 2 by 3 dense matrices over Rational Field
318
+
319
+ A ring, dimensions and a scalar::
320
+
321
+ sage: m = matrix(2,2,1); m; m.parent()
322
+ [1 0]
323
+ [0 1]
324
+ Full MatrixSpace of 2 by 2 dense matrices over Integer Ring
325
+ sage: m = matrix(QQ,2,2,5); m; m.parent()
326
+ [5 0]
327
+ [0 5]
328
+ Full MatrixSpace of 2 by 2 dense matrices over Rational Field
329
+
330
+ For non-square matrices, only zero works::
331
+
332
+ sage: m = matrix(2,3,0); m; m.parent()
333
+ [0 0 0]
334
+ [0 0 0]
335
+ Full MatrixSpace of 2 by 3 dense matrices over Integer Ring
336
+ sage: m = matrix(QQ,2,3,0); m; m.parent()
337
+ [0 0 0]
338
+ [0 0 0]
339
+ Full MatrixSpace of 2 by 3 dense matrices over Rational Field
340
+ sage: matrix(QQ,2,3,1)
341
+ Traceback (most recent call last):
342
+ ...
343
+ TypeError: nonzero scalar matrix must be square
344
+ sage: matrix(QQ,2,3,5)
345
+ Traceback (most recent call last):
346
+ ...
347
+ TypeError: nonzero scalar matrix must be square
348
+
349
+ Matrices specified by a list of entries::
350
+
351
+ sage: m = matrix([[1,2,3],[4,5,6]]); m; m.parent()
352
+ [1 2 3]
353
+ [4 5 6]
354
+ Full MatrixSpace of 2 by 3 dense matrices over Integer Ring
355
+ sage: m = matrix(QQ, 2, [[1,2,3],[4,5,6]]); m; m.parent()
356
+ [1 2 3]
357
+ [4 5 6]
358
+ Full MatrixSpace of 2 by 3 dense matrices over Rational Field
359
+ sage: m = matrix(QQ, 3, [[1,2,3],[4,5,6]]); m; m.parent()
360
+ Traceback (most recent call last):
361
+ ...
362
+ ValueError: inconsistent number of rows: should be 3 but got 2
363
+ sage: m = matrix(QQ, 2, 3, [[1,2,3],[4,5,6]]); m; m.parent()
364
+ [1 2 3]
365
+ [4 5 6]
366
+ Full MatrixSpace of 2 by 3 dense matrices over Rational Field
367
+ sage: m = matrix(QQ, 2, 4, [[1,2,3],[4,5,6]]); m; m.parent()
368
+ Traceback (most recent call last):
369
+ ...
370
+ ValueError: sequence too short (expected length 4, got 3)
371
+ sage: m = matrix([(1,2,3),(4,5,6)]); m; m.parent()
372
+ [1 2 3]
373
+ [4 5 6]
374
+ Full MatrixSpace of 2 by 3 dense matrices over Integer Ring
375
+ sage: m = matrix([1,2,3,4,5,6]); m; m.parent()
376
+ [1 2 3 4 5 6]
377
+ Full MatrixSpace of 1 by 6 dense matrices over Integer Ring
378
+ sage: m = matrix((1,2,3,4,5,6)); m; m.parent()
379
+ [1 2 3 4 5 6]
380
+ Full MatrixSpace of 1 by 6 dense matrices over Integer Ring
381
+ sage: m = matrix(QQ, [1,2,3,4,5,6]); m; m.parent()
382
+ [1 2 3 4 5 6]
383
+ Full MatrixSpace of 1 by 6 dense matrices over Rational Field
384
+ sage: m = matrix(QQ, 3, 2, [1,2,3,4,5,6]); m; m.parent()
385
+ [1 2]
386
+ [3 4]
387
+ [5 6]
388
+ Full MatrixSpace of 3 by 2 dense matrices over Rational Field
389
+ sage: m = matrix(QQ, 2, 4, [1,2,3,4,5,6]); m; m.parent()
390
+ Traceback (most recent call last):
391
+ ...
392
+ ValueError: sequence too short (expected length 8, got 6)
393
+ sage: m = matrix(QQ, 5, [1,2,3,4,5,6]); m; m.parent()
394
+ Traceback (most recent call last):
395
+ ...
396
+ ValueError: sequence too long (expected length 5, got more)
397
+
398
+ Matrices specified by a dict of entries::
399
+
400
+ sage: m = matrix({(1,1): 2}); m; m.parent()
401
+ [0 0]
402
+ [0 2]
403
+ Full MatrixSpace of 2 by 2 sparse matrices over Integer Ring
404
+ sage: m = matrix({(1,1): 2}, sparse=False); m; m.parent()
405
+ [0 0]
406
+ [0 2]
407
+ Full MatrixSpace of 2 by 2 dense matrices over Integer Ring
408
+ sage: m = matrix(QQ, {(1,1): 2}); m; m.parent()
409
+ [0 0]
410
+ [0 2]
411
+ Full MatrixSpace of 2 by 2 sparse matrices over Rational Field
412
+ sage: m = matrix(QQ, 3, {(1,1): 2}); m; m.parent()
413
+ [0 0 0]
414
+ [0 2 0]
415
+ [0 0 0]
416
+ Full MatrixSpace of 3 by 3 sparse matrices over Rational Field
417
+ sage: m = matrix(QQ, 3, 4, {(1,1): 2}); m; m.parent()
418
+ [0 0 0 0]
419
+ [0 2 0 0]
420
+ [0 0 0 0]
421
+ Full MatrixSpace of 3 by 4 sparse matrices over Rational Field
422
+ sage: m = matrix(QQ, 2, {(1,1): 2}); m; m.parent()
423
+ [0 0]
424
+ [0 2]
425
+ Full MatrixSpace of 2 by 2 sparse matrices over Rational Field
426
+ sage: m = matrix(QQ, 1, {(1,1): 2}); m; m.parent()
427
+ Traceback (most recent call last):
428
+ ...
429
+ IndexError: invalid row index 1
430
+ sage: m = matrix({}); m; m.parent()
431
+ []
432
+ Full MatrixSpace of 0 by 0 sparse matrices over Integer Ring
433
+ sage: m = matrix(QQ, {}); m; m.parent()
434
+ []
435
+ Full MatrixSpace of 0 by 0 sparse matrices over Rational Field
436
+ sage: m = matrix(QQ, 2, {}); m; m.parent()
437
+ [0 0]
438
+ [0 0]
439
+ Full MatrixSpace of 2 by 2 sparse matrices over Rational Field
440
+ sage: m = matrix(QQ, 2, 3, {}); m; m.parent()
441
+ [0 0 0]
442
+ [0 0 0]
443
+ Full MatrixSpace of 2 by 3 sparse matrices over Rational Field
444
+ sage: m = matrix(2, {}); m; m.parent()
445
+ [0 0]
446
+ [0 0]
447
+ Full MatrixSpace of 2 by 2 sparse matrices over Integer Ring
448
+ sage: m = matrix(2, 3, {}); m; m.parent()
449
+ [0 0 0]
450
+ [0 0 0]
451
+ Full MatrixSpace of 2 by 3 sparse matrices over Integer Ring
452
+
453
+ Matrices with zero rows or columns::
454
+
455
+ sage: m = matrix(0,2); m; m.parent()
456
+ []
457
+ Full MatrixSpace of 0 by 2 dense matrices over Integer Ring
458
+ sage: m = matrix(2,0); m; m.parent()
459
+ []
460
+ Full MatrixSpace of 2 by 0 dense matrices over Integer Ring
461
+ sage: m = matrix(0, [1]); m; m.parent()
462
+ Traceback (most recent call last):
463
+ ...
464
+ ValueError: sequence too long (expected length 0, got more)
465
+ sage: m = matrix(1, 0, []); m; m.parent()
466
+ []
467
+ Full MatrixSpace of 1 by 0 dense matrices over Integer Ring
468
+ sage: m = matrix(0, 1, []); m; m.parent()
469
+ []
470
+ Full MatrixSpace of 0 by 1 dense matrices over Integer Ring
471
+ sage: m = matrix(0, []); m; m.parent()
472
+ []
473
+ Full MatrixSpace of 0 by 0 dense matrices over Integer Ring
474
+ sage: m = matrix(0, {}); m; m.parent()
475
+ []
476
+ Full MatrixSpace of 0 by 0 sparse matrices over Integer Ring
477
+ sage: m = matrix(0, {(1,1): 2}); m; m.parent()
478
+ Traceback (most recent call last):
479
+ ...
480
+ IndexError: invalid row index 1
481
+ sage: m = matrix(2, 0, {(1,1): 2}); m; m.parent()
482
+ Traceback (most recent call last):
483
+ ...
484
+ IndexError: invalid column index 1
485
+
486
+ Check conversion from numpy::
487
+
488
+ sage: # needs numpy
489
+ sage: import numpy
490
+ sage: n = numpy.array([[complex(0,1),complex(0,2)], [3,4]], complex)
491
+ sage: m = matrix(n); m; m.parent()
492
+ [1.0*I 2.0*I]
493
+ [ 3.0 4.0]
494
+ Full MatrixSpace of 2 by 2 dense matrices over Complex Double Field
495
+ sage: n = numpy.array([[1,2], [3,4]], 'int32')
496
+ sage: m = matrix(n); m; m.parent()
497
+ [1 2]
498
+ [3 4]
499
+ Full MatrixSpace of 2 by 2 dense matrices over Integer Ring
500
+ sage: n = numpy.array([[1,2,3], [4,5,6], [7,8,9]], 'float32')
501
+ sage: m = matrix(n); m; m.parent()
502
+ [1.0 2.0 3.0]
503
+ [4.0 5.0 6.0]
504
+ [7.0 8.0 9.0]
505
+ Full MatrixSpace of 3 by 3 dense matrices over Real Double Field
506
+ sage: n = numpy.matrix([[1,2,3], [4,5,6], [7,8,9]], 'float64')
507
+ sage: m = matrix(n); m; m.parent()
508
+ [1.0 2.0 3.0]
509
+ [4.0 5.0 6.0]
510
+ [7.0 8.0 9.0]
511
+ Full MatrixSpace of 3 by 3 dense matrices over Real Double Field
512
+ sage: n = numpy.array([[1,2,3], [4,5,6], [7,8,9]], 'complex64')
513
+ sage: m = matrix(n); m; m.parent()
514
+ [1.0 2.0 3.0]
515
+ [4.0 5.0 6.0]
516
+ [7.0 8.0 9.0]
517
+ Full MatrixSpace of 3 by 3 dense matrices over Complex Double Field
518
+ sage: n = numpy.matrix([[1,2,3], [4,5,6], [7,8,9]], 'complex128')
519
+ sage: m = matrix(n); m; m.parent()
520
+ [1.0 2.0 3.0]
521
+ [4.0 5.0 6.0]
522
+ [7.0 8.0 9.0]
523
+ Full MatrixSpace of 3 by 3 dense matrices over Complex Double Field
524
+ sage: a = matrix([[1,2], [3,4]])
525
+ sage: b = matrix(a.numpy()); b
526
+ [1 2]
527
+ [3 4]
528
+ sage: a == b
529
+ True
530
+ sage: c = matrix(a.numpy('float32')); c
531
+ [1.0 2.0]
532
+ [3.0 4.0]
533
+ sage: matrix(numpy.array([[5]]))
534
+ [5]
535
+ sage: matrix(numpy.matrix([[5]]))
536
+ [5]
537
+
538
+ A ring and a numpy array::
539
+
540
+ sage: # needs numpy
541
+ sage: n = numpy.array([[1,2,3], [4,5,6], [7,8,9]], 'float32')
542
+ sage: m = matrix(ZZ, n); m; m.parent()
543
+ [1 2 3]
544
+ [4 5 6]
545
+ [7 8 9]
546
+ Full MatrixSpace of 3 by 3 dense matrices over Integer Ring
547
+ sage: n = matrix(QQ, 2, 2, [1, 1/2, 1/3, 1/4]).numpy(); n
548
+ array([[1. , 0.5 ],
549
+ [0.33333333, 0.25 ]])
550
+ sage: matrix(QQ, n)
551
+ [ 1 1/2]
552
+ [1/3 1/4]
553
+
554
+ The dimensions of a matrix may be given as numpy types::
555
+
556
+ sage: matrix(numpy.int32(2), numpy.int32(3)) # needs numpy
557
+ [0 0 0]
558
+ [0 0 0]
559
+
560
+ sage: matrix(nrows=numpy.int32(2), ncols=numpy.int32(3)) # needs numpy
561
+ [0 0 0]
562
+ [0 0 0]
563
+
564
+ The dimensions of a matrix must have an integral type::
565
+
566
+ sage: matrix(RR, 2.0, 2.0)
567
+ Traceback (most recent call last):
568
+ ...
569
+ TypeError: too many arguments in matrix constructor
570
+
571
+ More tests::
572
+
573
+ sage: v = vector(ZZ, [1, 10, 100])
574
+ sage: m = matrix(ZZ['x'], v); m; m.parent()
575
+ [ 1 10 100]
576
+ Full MatrixSpace of 1 by 3 dense matrices
577
+ over Univariate Polynomial Ring in x over Integer Ring
578
+ sage: matrix(ZZ, 10, 10, range(100)).parent()
579
+ Full MatrixSpace of 10 by 10 dense matrices over Integer Ring
580
+ sage: m = matrix(GF(7), [[1/3,2/3,1/2], [3/4,4/5,7]]); m; m.parent()
581
+ [5 3 4]
582
+ [6 5 0]
583
+ Full MatrixSpace of 2 by 3 dense matrices over Finite Field of size 7
584
+ sage: m = matrix([[1,2,3], [RDF(2), CDF(1,2), 3]]); m; m.parent()
585
+ [ 1.0 2.0 3.0]
586
+ [ 2.0 1.0 + 2.0*I 3.0]
587
+ Full MatrixSpace of 2 by 3 dense matrices over Complex Double Field
588
+ sage: m = matrix(3, 3, 1/2); m; m.parent()
589
+ [1/2 0 0]
590
+ [ 0 1/2 0]
591
+ [ 0 0 1/2]
592
+ Full MatrixSpace of 3 by 3 dense matrices over Rational Field
593
+ sage: matrix([[1],[2,3]])
594
+ Traceback (most recent call last):
595
+ ...
596
+ ValueError: inconsistent number of columns: should be 1 but got 2
597
+ sage: matrix([[1],2])
598
+ Traceback (most recent call last):
599
+ ...
600
+ TypeError: 'sage.rings.integer.Integer' object is not iterable
601
+ sage: matrix(vector(RR, [1,2,3])).parent()
602
+ Full MatrixSpace of 1 by 3 dense matrices over Real Field with 53 bits of precision
603
+
604
+ Check :issue:`10158`::
605
+
606
+ sage: matrix(ZZ, [[0] for i in range(10^5)]).is_zero()
607
+ True
608
+
609
+ Check :issue:`24459`::
610
+
611
+ sage: # needs sage.libs.linbox
612
+ sage: Matrix(ZZ, sys.maxsize, sys.maxsize)
613
+ Traceback (most recent call last):
614
+ ...
615
+ RuntimeError...
616
+
617
+ Test a simple ``_matrix_`` method. Note that we are ignoring
618
+ ``base`` which is inefficient but allowed::
619
+
620
+ sage: class MatrixTest():
621
+ ....: def _matrix_(self, base=None):
622
+ ....: return matrix(ZZ, 2, 2, [1,2,3,4])
623
+ sage: e = MatrixTest()
624
+ sage: matrix(e)
625
+ [1 2]
626
+ [3 4]
627
+ sage: S = MatrixSpace(ZZ, 2, 2)
628
+ sage: M = S(e); M
629
+ [1 2]
630
+ [3 4]
631
+ sage: parent(M) is S
632
+ True
633
+ sage: matrix(RDF, e)
634
+ [1.0 2.0]
635
+ [3.0 4.0]
636
+ sage: S = MatrixSpace(RDF, 2, 2)
637
+ sage: M = S(e); M
638
+ [1.0 2.0]
639
+ [3.0 4.0]
640
+ sage: parent(M) is S
641
+ True
642
+
643
+ A redundant ``base_ring`` argument::
644
+
645
+ sage: matrix(ZZ, 3, 3, base_ring=ZZ)
646
+ Traceback (most recent call last):
647
+ ...
648
+ TypeError: too many arguments in matrix constructor
649
+
650
+ Some calls using an iterator::
651
+
652
+ sage: matrix(QQ, 3, 6, range(18), sparse=true)
653
+ [ 0 1 2 3 4 5]
654
+ [ 6 7 8 9 10 11]
655
+ [12 13 14 15 16 17]
656
+ sage: matrix(4, 4, range(16))
657
+ [ 0 1 2 3]
658
+ [ 4 5 6 7]
659
+ [ 8 9 10 11]
660
+ [12 13 14 15]
661
+
662
+ AUTHORS:
663
+
664
+ - William Stein: Initial implementation
665
+
666
+ - Jason Grout (2008-03): almost a complete rewrite, with bits and
667
+ pieces from the original implementation
668
+
669
+ - Jeroen Demeyer (2016-02-05): major clean up, see :issue:`20015`
670
+ and :issue:`20016`
671
+
672
+ - Jeroen Demeyer (2018-02-20): completely rewritten using
673
+ :class:`MatrixArgs`, see :issue:`24742`
674
+ """
675
+ immutable = kwds.pop('immutable', False)
676
+ return MatrixArgs(*args, **kwds).element(immutable=immutable)
677
+
678
+
679
+ from sage.matrix.special import *
680
+
681
+
682
+ Matrix = matrix
683
+
684
+
685
+ @matrix_method
686
+ class options(GlobalOptions):
687
+ r"""
688
+ Global options for matrices.
689
+
690
+ @OPTIONS@
691
+
692
+ EXAMPLES::
693
+
694
+ sage: matrix.options.max_cols = 6
695
+ sage: matrix.options.max_rows = 3
696
+ sage: matrix(ZZ, 3, 6)
697
+ [0 0 0 0 0 0]
698
+ [0 0 0 0 0 0]
699
+ [0 0 0 0 0 0]
700
+ sage: matrix(ZZ, 3, 7)
701
+ 3 x 7 dense matrix over Integer Ring...
702
+ sage: matrix(ZZ, 4, 6)
703
+ 4 x 6 dense matrix over Integer Ring...
704
+ sage: matrix.options._reset()
705
+
706
+ The precision can also be set via the IPython magic::
707
+
708
+ sage: from sage.repl.interpreter import get_test_shell
709
+ sage: shell = get_test_shell()
710
+ sage: shell.run_cell('%precision 5')
711
+ '%.5f'
712
+ sage: matrix.options.precision
713
+ 5
714
+ sage: A = matrix(RR, [[200/3]]); A
715
+ [66.667]
716
+
717
+ The number format can be specified as well::
718
+
719
+ sage: matrix.options.format_numeric = '{:.{prec}e}'
720
+ sage: A
721
+ [6.66667e+1]
722
+ sage: matrix.options.format_numeric = '{:.{prec}f}'
723
+ sage: A
724
+ [66.66667]
725
+ sage: matrix.options.format_numeric = '{:+.{prec}g}'
726
+ sage: A
727
+ [+66.667]
728
+ sage: matrix.options._reset()
729
+ """
730
+ NAME = 'Matrix'
731
+ max_cols = dict(default=49,
732
+ description='maximum number of columns to display',
733
+ checker=lambda val: val >= 0)
734
+ max_rows = dict(default=19,
735
+ description='maximum number of rows to display',
736
+ checker=lambda val: val >= 0)
737
+ precision = \
738
+ dict(default=None,
739
+ description='number of digits to display for floating point '
740
+ 'entries; if ``None``, the exact representation is '
741
+ 'used instead. This option is also set by the '
742
+ '`IPython magic <https://ipython.readthedocs.io/en/stable/interactive/magics.html#magic-precision>`_ '
743
+ '``%precision``.',
744
+ checker=lambda val: val is None or val >= 0)
745
+ format_numeric = \
746
+ dict(default='{:.{prec}}',
747
+ description='string used for formatting floating point numbers of'
748
+ ' an (optional) precision ``prec``; only supported '
749
+ 'for entry types implementing ``__format__``',
750
+ checker=lambda val: isinstance(val.format(3.1415, prec=3), str))