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,843 @@
1
+ # sage_setup: distribution = sagemath-modules
2
+ """
3
+ Unpickling methods
4
+
5
+ Python saves objects by providing a pair ``(f, data)`` such that ``f(data)``
6
+ reconstructs the object. This module collects the loading (_unpickling_ in
7
+ Python terminology) functions for Sage's matroids.
8
+
9
+ .. NOTE::
10
+
11
+ The reason this code was separated out from the classes was to make it
12
+ play nice with lazy importing of the ``Matroid()`` and ``matroids``
13
+ keywords.
14
+
15
+ AUTHORS:
16
+
17
+ - Rudi Pendavingh, Stefan van Zwam (2013-07-01): initial version
18
+ - Giorgos Mousa (2024-01-01): add CircuitsMatroid and FlatsMatroid
19
+ """
20
+ # ****************************************************************************
21
+ # Copyright (C) 2013 Rudi Pendavingh <rudi.pendavingh@gmail.com>
22
+ # Copyright (C) 2013 Stefan van Zwam <stefanvanzwam@gmail.com>
23
+ #
24
+ # Distributed under the terms of the GNU General Public License (GPL)
25
+ # as published by the Free Software Foundation; either version 2 of
26
+ # the License, or (at your option) any later version.
27
+ # https://www.gnu.org/licenses/
28
+ # ****************************************************************************
29
+
30
+ from sage.data_structures.bitset_base cimport *
31
+ from sage.libs.gmp.mpq cimport mpq_set
32
+ from sage.rings.rational cimport Rational
33
+
34
+ from sage.matroids.basis_matroid cimport BasisMatroid
35
+ from sage.matroids.circuits_matroid cimport CircuitsMatroid
36
+ from sage.matroids.circuit_closures_matroid cimport CircuitClosuresMatroid
37
+ from sage.matroids.dual_matroid import DualMatroid
38
+ from sage.matroids.lean_matrix cimport GenericMatrix, BinaryMatrix, TernaryMatrix, QuaternaryMatrix, PlusMinusOneMatrix, RationalMatrix
39
+ from sage.matroids.linear_matroid cimport LinearMatroid, RegularMatroid, BinaryMatroid, TernaryMatroid, QuaternaryMatroid
40
+ from sage.matroids.minor_matroid import MinorMatroid
41
+
42
+
43
+ # ------------
44
+ # BasisMatroid
45
+ # ------------
46
+
47
+ def unpickle_basis_matroid(version, data):
48
+ """
49
+ Unpickle a BasisMatroid.
50
+
51
+ *Pickling* is Python's term for the loading and saving of objects.
52
+ Functions like these serve to reconstruct a saved object. This all happens
53
+ transparently through the ``load`` and ``save`` commands, and you should
54
+ never have to call this function directly.
55
+
56
+ INPUT:
57
+
58
+ - ``version`` -- integer; expected to be 0
59
+ - ``data`` -- tuple ``(E, R, name, BB)`` in which ``E`` is the groundset
60
+ of the matroid, ``R`` is the rank, ``name`` is a custom name, and ``BB``
61
+ is the bitpacked list of bases, as pickled by Sage's ``bitset_pickle``.
62
+
63
+ OUTPUT: matroid
64
+
65
+ .. WARNING::
66
+
67
+ Users should never call this function directly.
68
+
69
+ EXAMPLES::
70
+
71
+ sage: from sage.matroids.advanced import *
72
+ sage: M = BasisMatroid(matroids.catalog.Vamos())
73
+ sage: M == loads(dumps(M)) # indirect doctest
74
+ True
75
+ """
76
+ cdef BasisMatroid M
77
+ if version != 0:
78
+ raise TypeError("object was created with newer version of Sage. Please upgrade.")
79
+ E, R, name, BB = data
80
+ M = BasisMatroid(groundset=E, rank=R)
81
+ bitset_unpickle(M._bb, BB)
82
+ M._reset_invariants()
83
+ M.reset_current_basis()
84
+ if name is not None:
85
+ M.rename(name)
86
+ return M
87
+
88
+
89
+ # ---------------
90
+ # CircuitsMatroid
91
+ # ---------------
92
+
93
+ def unpickle_circuits_matroid(version, data):
94
+ """
95
+ Unpickle a CircuitsMatroid.
96
+
97
+ *Pickling* is Python's term for the loading and saving of objects.
98
+ Functions like these serve to reconstruct a saved object. This all happens
99
+ transparently through the ``load`` and ``save`` commands, and you should
100
+ never have to call this function directly.
101
+
102
+ INPUT:
103
+
104
+ - ``version`` -- integer; expected to be 0
105
+ - ``data`` -- tuple ``(E, C, name)`` in which ``E`` is the groundset
106
+ of the matroid, ``C`` is the list of circuits , and ``name`` is a custom
107
+ name.
108
+
109
+ OUTPUT: matroid
110
+
111
+ .. WARNING::
112
+
113
+ Users should never call this function directly.
114
+
115
+ EXAMPLES::
116
+
117
+ sage: M = matroids.Theta(5)
118
+ sage: M == loads(dumps(M)) # indirect doctest
119
+ True
120
+ """
121
+ cdef CircuitsMatroid M
122
+ if version != 0:
123
+ raise TypeError("object was created with newer version of Sage. Please upgrade.")
124
+ M = CircuitsMatroid(groundset=data[0], circuits=data[1])
125
+ if data[2] is not None:
126
+ M.rename(data[2])
127
+ return M
128
+
129
+
130
+ # ----------------------
131
+ # CircuitClosuresMatroid
132
+ # ----------------------
133
+
134
+ def unpickle_circuit_closures_matroid(version, data):
135
+ """
136
+ Unpickle a CircuitClosuresMatroid.
137
+
138
+ *Pickling* is Python's term for the loading and saving of objects.
139
+ Functions like these serve to reconstruct a saved object. This all happens
140
+ transparently through the ``load`` and ``save`` commands, and you should
141
+ never have to call this function directly.
142
+
143
+ INPUT:
144
+
145
+ - ``version`` -- integer; expected to be 0
146
+ - ``data`` -- tuple ``(E, CC, name)`` in which ``E`` is the groundset
147
+ of the matroid, ``CC`` is the dictionary of circuit closures, and
148
+ ``name`` is a custom name.
149
+
150
+ OUTPUT: matroid
151
+
152
+ .. WARNING::
153
+
154
+ Users should never call this function directly.
155
+
156
+ EXAMPLES::
157
+
158
+ sage: M = matroids.catalog.Vamos()
159
+ sage: M == loads(dumps(M)) # indirect doctest
160
+ True
161
+ """
162
+ cdef CircuitClosuresMatroid M
163
+ if version != 0:
164
+ raise TypeError("object was created with newer version of Sage. Please upgrade.")
165
+ M = CircuitClosuresMatroid(groundset=data[0], circuit_closures=data[1])
166
+ if data[2] is not None:
167
+ M.rename(data[2])
168
+ return M
169
+
170
+
171
+ # ------------
172
+ # FlatsMatroid
173
+ # ------------
174
+
175
+ def unpickle_flats_matroid(version, data):
176
+ """
177
+ Unpickle a :class:`FlatsMatroid`.
178
+
179
+ *Pickling* is Python's term for the loading and saving of objects.
180
+ Functions like these serve to reconstruct a saved object. This all happens
181
+ transparently through the ``load`` and ``save`` commands, and you should
182
+ never have to call this function directly.
183
+
184
+ INPUT:
185
+
186
+ - ``version`` -- integer; expected to be 0
187
+ - ``data`` -- tuple ``(E, F, name)`` in which ``E`` is the groundset of
188
+ the matroid, ``F`` is the dictionary of flats, and ``name`` is a custom
189
+ name.
190
+
191
+ OUTPUT: matroid
192
+
193
+ .. WARNING::
194
+
195
+ Users should never call this function directly.
196
+
197
+ EXAMPLES::
198
+
199
+ sage: # needs sage.graphs
200
+ sage: from sage.matroids.flats_matroid import FlatsMatroid
201
+ sage: M = FlatsMatroid(matroids.catalog.Vamos())
202
+ sage: M == loads(dumps(M)) # indirect doctest
203
+ True
204
+ """
205
+ from sage.matroids.flats_matroid import FlatsMatroid
206
+ if version != 0:
207
+ raise TypeError("object was created with newer version of Sage. Please upgrade.")
208
+ M = FlatsMatroid(groundset=data[0], flats=data[1])
209
+ if data[2] is not None:
210
+ M.rename(data[2])
211
+ return M
212
+
213
+
214
+ # -----------
215
+ # DualMatroid
216
+ # -----------
217
+
218
+ def unpickle_dual_matroid(version, data):
219
+ """
220
+ Unpickle a DualMatroid.
221
+
222
+ *Pickling* is Python's term for the loading and saving of objects.
223
+ Functions like these serve to reconstruct a saved object. This all happens
224
+ transparently through the ``load`` and ``save`` commands, and you should
225
+ never have to call this function directly.
226
+
227
+ INPUT:
228
+
229
+ - ``version`` -- integer; expected to be 0
230
+ - ``data`` -- tuple ``(M, name)`` in which ``M`` is
231
+ the internal matroid, and ``name`` is a custom name
232
+
233
+ OUTPUT: matroid
234
+
235
+ .. WARNING::
236
+
237
+ Users should not call this function directly. Instead, use load/save.
238
+
239
+ EXAMPLES::
240
+
241
+ sage: M = matroids.catalog.Vamos().dual()
242
+ sage: M == loads(dumps(M)) # indirect doctest
243
+ True
244
+ """
245
+ if version != 0:
246
+ raise TypeError("object was created with newer version of Sage. Please upgrade.")
247
+ M = DualMatroid(data[0])
248
+ if data[1] is not None:
249
+ M.rename(data[1])
250
+ return M
251
+
252
+
253
+ # -------
254
+ # Gammoid
255
+ # -------
256
+
257
+ def unpickle_gammoid(version, data):
258
+ """
259
+ Unpickle a :class:`Gammoid`.
260
+
261
+ *Pickling* is Python's term for the loading and saving of objects.
262
+ Functions like these serve to reconstruct a saved object. This all happens
263
+ transparently through the ``load`` and ``save`` commands, and you should
264
+ never have to call this function directly.
265
+
266
+ INPUT:
267
+
268
+ - ``version`` -- integer; expected to be 0
269
+ - ``data`` -- tuple ``(D, roots, E, name)`` in which ``D`` is a loopless
270
+ DiGraph representing the gammoid, ``roots`` is a subset of the vertices,
271
+ ``E`` is the groundset of the matroid, and ``name`` is a custom name.
272
+
273
+ OUTPUT: matroid
274
+
275
+ .. WARNING::
276
+
277
+ Users should never call this function directly.
278
+
279
+ EXAMPLES::
280
+
281
+ sage: # needs sage.graphs
282
+ sage: from sage.matroids.gammoid import Gammoid
283
+ sage: M = Gammoid(digraphs.TransitiveTournament(5), roots=[3, 4])
284
+ sage: M == loads(dumps(M)) # indirect doctest
285
+ True
286
+ """
287
+ from sage.matroids.gammoid import Gammoid
288
+
289
+ if version != 0:
290
+ raise TypeError("object was created with newer version of Sage. Please upgrade.")
291
+ M = Gammoid(D=data[0], roots=data[1], groundset=data[2])
292
+ if data[3] is not None:
293
+ M.rename(data[3])
294
+ return M
295
+
296
+
297
+ # ---------------------
298
+ # LeanMatrix subclasses
299
+ # ---------------------
300
+
301
+ def unpickle_generic_matrix(version, data):
302
+ """
303
+ Reconstruct a ``GenericMatrix`` object (internal Sage data structure).
304
+
305
+ .. WARNING::
306
+
307
+ Users should not call this method directly.
308
+
309
+ EXAMPLES::
310
+
311
+ sage: from sage.matroids.lean_matrix import *
312
+ sage: A = GenericMatrix(2, 5, ring=QQ)
313
+ sage: A == loads(dumps(A)) # indirect doctest
314
+ True
315
+ """
316
+ if version != 0:
317
+ raise TypeError("object was created with newer version of Sage. Please upgrade.")
318
+ cdef GenericMatrix A = GenericMatrix(0, 0, ring=data[2])
319
+ A._entries = data[3][:]
320
+ A._nrows = data[0]
321
+ A._ncols = data[1]
322
+ return A
323
+
324
+
325
+ def unpickle_binary_matrix(version, data):
326
+ """
327
+ Reconstruct a ``BinaryMatrix`` object (internal Sage data structure).
328
+
329
+ .. WARNING::
330
+
331
+ Users should not call this method directly.
332
+
333
+ EXAMPLES::
334
+
335
+ sage: from sage.matroids.lean_matrix import *
336
+ sage: A = BinaryMatrix(2, 5)
337
+ sage: A == loads(dumps(A)) # indirect doctest
338
+ True
339
+ sage: C = BinaryMatrix(2, 2, Matrix(GF(2), [[1, 1], [0, 1]]))
340
+ sage: C == loads(dumps(C))
341
+ True
342
+ """
343
+ cdef BinaryMatrix A
344
+ cdef long i
345
+ if version != 0:
346
+ raise TypeError("object was created with newer version of Sage. Please upgrade.")
347
+ nrows, ncols, versionB, size, limbs, longsize, M = data
348
+ A = BinaryMatrix(nrows, ncols)
349
+ for i in range(nrows):
350
+ bitset_unpickle(A._M[i], (versionB, size, limbs, longsize, M[i]))
351
+ return A
352
+
353
+
354
+ def unpickle_ternary_matrix(version, data):
355
+ """
356
+ Reconstruct a ``TernaryMatrix`` object (internal Sage data structure).
357
+
358
+ .. WARNING::
359
+
360
+ Users should not call this method directly.
361
+
362
+ EXAMPLES::
363
+
364
+ sage: from sage.matroids.lean_matrix import *
365
+ sage: A = TernaryMatrix(2, 5)
366
+ sage: A == loads(dumps(A)) # indirect doctest
367
+ True
368
+ sage: C = TernaryMatrix(2, 2, Matrix(GF(3), [[1, 1], [0, 1]]))
369
+ sage: C == loads(dumps(C))
370
+ True
371
+ """
372
+ cdef TernaryMatrix A
373
+ cdef long i
374
+ if version != 0:
375
+ raise TypeError("object was created with newer version of Sage. Please upgrade.")
376
+ nrows, ncols, versionB, size, limbs, longsize, M0, M1 = data
377
+ A = TernaryMatrix(nrows, ncols)
378
+ for i in range(nrows):
379
+ bitset_unpickle(A._M0[i], (versionB, size, limbs, longsize, M0[i]))
380
+ bitset_unpickle(A._M1[i], (versionB, size, limbs, longsize, M1[i]))
381
+ return A
382
+
383
+
384
+ def unpickle_quaternary_matrix(version, data):
385
+ """
386
+ Reconstruct a ``QuaternaryMatrix`` object (internal Sage data structure).
387
+
388
+ .. WARNING::
389
+
390
+ Users should not call this method directly.
391
+
392
+ EXAMPLES::
393
+
394
+ sage: # needs sage.rings.finite_rings
395
+ sage: from sage.matroids.lean_matrix import *
396
+ sage: A = QuaternaryMatrix(2, 5, ring=GF(4, 'x'))
397
+ sage: A == loads(dumps(A)) # indirect doctest
398
+ True
399
+ sage: C = QuaternaryMatrix(2, 2, Matrix(GF(4, 'x'), [[1, 1], [0, 1]]))
400
+ sage: C == loads(dumps(C))
401
+ True
402
+ """
403
+ cdef QuaternaryMatrix A
404
+ cdef long i
405
+ if version != 0:
406
+ raise TypeError("object was created with newer version of Sage. Please upgrade.")
407
+ nrows, ncols, ring, versionB, size, limbs, longsize, M0, M1 = data
408
+ A = QuaternaryMatrix(nrows, ncols, ring=ring)
409
+ for i in range(nrows):
410
+ bitset_unpickle(A._M0[i], (versionB, size, limbs, longsize, M0[i]))
411
+ bitset_unpickle(A._M1[i], (versionB, size, limbs, longsize, M1[i]))
412
+ return A
413
+
414
+
415
+ def unpickle_plus_minus_one_matrix(version, data):
416
+ r"""
417
+ Reconstruct an ``PlusMinusOneMatrix`` object (internal Sage data structure).
418
+
419
+ .. WARNING::
420
+
421
+ Users should not call this method directly.
422
+
423
+ EXAMPLES::
424
+
425
+ sage: from sage.matroids.lean_matrix import *
426
+ sage: A = PlusMinusOneMatrix(2, 5)
427
+ sage: A == loads(dumps(A)) # indirect doctest
428
+ True
429
+
430
+ TESTS:
431
+
432
+ Check that we can unpickle old ``IntegerMatrix`` pickles::
433
+
434
+ sage: p = (b"x\x9ck`J.NLO\xd5\xcbM,)\xca\xcfL)\xd6+\xcd+\xc8L\xce\xce"
435
+ ....: b"\xc9\xccK\xe7\x822S\xe33\xf3JR\xd3S\x8b\xe2A\x8a2+\xb8\n"
436
+ ....: b"\x19\xbd\x19\xbc\x99\xbc\x99b\x0b\x994\xbc\x81l\xaf\xff@"
437
+ ....: b"\xe0\xcd\x98\xda\xde\x16T\xc8\xac\x07\x00\xf0\xe6\x1e\x07")
438
+ sage: M = loads(p)
439
+ sage: M
440
+ PlusMinusOneMatrix instance with 2 rows and 2 columns
441
+ sage: type(M)
442
+ <class 'sage.matroids.lean_matrix.PlusMinusOneMatrix'>
443
+ sage: M.__reduce__()[1][1]
444
+ (2, 2, [1, 0, -1, 1])
445
+ """
446
+ if version != 0:
447
+ raise TypeError("object was created with newer version of Sage. Please upgrade.")
448
+ cdef PlusMinusOneMatrix A = PlusMinusOneMatrix(data[0], data[1])
449
+ cdef long i
450
+ for i in range(A._nrows * A._ncols):
451
+ A._entries[i] = data[2][i]
452
+ return A
453
+
454
+
455
+ from sage.misc.persist import register_unpickle_override
456
+ register_unpickle_override("sage.matroids.unpickling", "unpickle_integer_matrix", unpickle_plus_minus_one_matrix)
457
+
458
+
459
+ def unpickle_rational_matrix(version, data):
460
+ """
461
+ Reconstruct a :class:`sage.matroids.lean_matrix.RationalMatrix` object
462
+ (internal Sage data structure).
463
+
464
+ .. WARNING::
465
+
466
+ Users should not call this method directly.
467
+
468
+ EXAMPLES::
469
+
470
+ sage: from sage.matroids.lean_matrix import RationalMatrix
471
+ sage: A = RationalMatrix(2, 5)
472
+ sage: A == loads(dumps(A)) # indirect doctest
473
+ True
474
+ """
475
+ if version != 0:
476
+ raise TypeError("object was created with newer version of Sage; please upgrade")
477
+ cdef RationalMatrix A = RationalMatrix(data[0], data[1])
478
+ cdef long i
479
+ for i in range(A._nrows * A._ncols):
480
+ mpq_set(A._entries[i], (<Rational?> data[2][i]).value)
481
+ return A
482
+
483
+
484
+ # ----------------------------
485
+ # LinearMatroid and subclasses
486
+ # ----------------------------
487
+
488
+ def unpickle_linear_matroid(version, data):
489
+ """
490
+ Unpickle a LinearMatroid.
491
+
492
+ *Pickling* is Python's term for the loading and saving of objects.
493
+ Functions like these serve to reconstruct a saved object. This all happens
494
+ transparently through the ``load`` and ``save`` commands, and you should
495
+ never have to call this function directly.
496
+
497
+ INPUT:
498
+
499
+ - ``version`` -- integer (currently 0)
500
+ - ``data`` -- tuple ``(A, E, reduced, name)`` where ``A`` is the
501
+ representation matrix, ``E`` is the groundset of the matroid,
502
+ ``reduced`` is a boolean indicating whether ``A`` is a reduced matrix,
503
+ and ``name`` is a custom name.
504
+
505
+ OUTPUT: :class:`LinearMatroid`
506
+
507
+ .. WARNING::
508
+
509
+ Users should never call this function directly.
510
+
511
+ EXAMPLES::
512
+
513
+ sage: M = Matroid(Matrix(GF(7), [[1, 0, 0, 1, 1], [0, 1, 0, 1, 2],
514
+ ....: [0, 1, 1, 1, 3]]))
515
+ sage: M == loads(dumps(M)) # indirect doctest
516
+ True
517
+ sage: M.rename('U35')
518
+ sage: loads(dumps(M))
519
+ U35
520
+ """
521
+ if version != 0:
522
+ raise TypeError("object was created with newer version of Sage. Please upgrade.")
523
+ A, gs, reduced, name = data
524
+ if not reduced:
525
+ M = LinearMatroid(groundset=gs, matrix=A, keep_initial_representation=True)
526
+ else:
527
+ M = LinearMatroid(groundset=gs, reduced_matrix=A)
528
+ if name is not None:
529
+ M.rename(name)
530
+ return M
531
+
532
+
533
+ def unpickle_binary_matroid(version, data):
534
+ """
535
+ Unpickle a BinaryMatroid.
536
+
537
+ *Pickling* is Python's term for the loading and saving of objects.
538
+ Functions like these serve to reconstruct a saved object. This all happens
539
+ transparently through the ``load`` and ``save`` commands, and you should
540
+ never have to call this function directly.
541
+
542
+ INPUT:
543
+
544
+ - ``version`` -- integer (currently 0)
545
+ - ``data`` -- tuple ``(A, E, B, name)`` where ``A`` is the
546
+ representation matrix, ``E`` is the groundset of the matroid, ``B`` is
547
+ the currently displayed basis, and ``name`` is a custom name.
548
+
549
+ OUTPUT: :class:`BinaryMatroid`
550
+
551
+ .. WARNING::
552
+
553
+ Users should never call this function directly.
554
+
555
+ EXAMPLES::
556
+
557
+ sage: M = Matroid(Matrix(GF(2), [[1, 0, 0, 1], [0, 1, 0, 1],
558
+ ....: [0, 0, 1, 1]]))
559
+ sage: M == loads(dumps(M)) # indirect doctest
560
+ True
561
+ sage: M.rename('U34')
562
+ sage: loads(dumps(M))
563
+ U34
564
+ """
565
+ if version != 0:
566
+ raise TypeError("object was created with newer version of Sage. Please upgrade.")
567
+ A, gs, basis, name = data
568
+ if basis is None:
569
+ M = BinaryMatroid(groundset=gs, matrix=A, keep_initial_representation=True)
570
+ else:
571
+ M = BinaryMatroid(groundset=gs, matrix=A, basis=basis)
572
+ if name is not None:
573
+ M.rename(name)
574
+ return M
575
+
576
+
577
+ def unpickle_ternary_matroid(version, data):
578
+ """
579
+ Unpickle a TernaryMatroid.
580
+
581
+ *Pickling* is Python's term for the loading and saving of objects.
582
+ Functions like these serve to reconstruct a saved object. This all happens
583
+ transparently through the ``load`` and ``save`` commands, and you should
584
+ never have to call this function directly.
585
+
586
+ INPUT:
587
+
588
+ - ``version`` -- integer (currently 0)
589
+ - ``data`` -- tuple ``(A, E, B, name)`` where ``A`` is the
590
+ representation matrix, ``E`` is the groundset of the matroid, ``B`` is
591
+ the currently displayed basis, and ``name`` is a custom name.
592
+
593
+ OUTPUT: :class:`TernaryMatroid`
594
+
595
+ .. WARNING::
596
+
597
+ Users should never call this function directly.
598
+
599
+ EXAMPLES::
600
+
601
+ sage: from sage.matroids.advanced import *
602
+ sage: M = TernaryMatroid(Matrix(GF(3), [[1, 0, 0, 1], [0, 1, 0, 1],
603
+ ....: [0, 0, 1, 1]]))
604
+ sage: M == loads(dumps(M)) # indirect doctest
605
+ True
606
+ sage: M.rename('U34')
607
+ sage: loads(dumps(M))
608
+ U34
609
+ """
610
+ if version != 0:
611
+ raise TypeError("object was created with newer version of Sage. Please upgrade.")
612
+ A, gs, basis, name = data
613
+ if basis is None:
614
+ M = TernaryMatroid(groundset=gs, matrix=A, keep_initial_representation=True)
615
+ else:
616
+ M = TernaryMatroid(groundset=gs, matrix=A, basis=basis)
617
+ if name is not None:
618
+ M.rename(name)
619
+ return M
620
+
621
+
622
+ def unpickle_quaternary_matroid(version, data):
623
+ """
624
+ Unpickle a QuaternaryMatroid.
625
+
626
+ *Pickling* is Python's term for the loading and saving of objects.
627
+ Functions like these serve to reconstruct a saved object. This all happens
628
+ transparently through the ``load`` and ``save`` commands, and you should
629
+ never have to call this function directly.
630
+
631
+ INPUT:
632
+
633
+ - ``version`` -- integer (currently 0)
634
+ - ``data`` -- tuple ``(A, E, B, name)`` where ``A`` is the
635
+ representation matrix, ``E`` is the groundset of the matroid, ``B`` is
636
+ the currently displayed basis, and ``name`` is a custom name.
637
+
638
+ OUTPUT: :class:`TernaryMatroid`
639
+
640
+ .. WARNING::
641
+
642
+ Users should never call this function directly.
643
+
644
+ EXAMPLES::
645
+
646
+ sage: from sage.matroids.advanced import *
647
+ sage: M = QuaternaryMatroid(Matrix(GF(3), [[1, 0, 0, 1], [0, 1, 0, 1],
648
+ ....: [0, 0, 1, 1]]))
649
+ sage: M == loads(dumps(M)) # indirect doctest
650
+ True
651
+ sage: M.rename('U34')
652
+ sage: loads(dumps(M))
653
+ U34
654
+ sage: M = QuaternaryMatroid(Matrix(GF(4, 'x'), [[1, 0, 1], # needs sage.rings.finite_rings
655
+ ....: [1, 0, 1]]))
656
+ sage: loads(dumps(M)).representation() # needs sage.rings.finite_rings
657
+ [1 0 1]
658
+ [1 0 1]
659
+ """
660
+ if version != 0:
661
+ raise TypeError("object was created with newer version of Sage. Please upgrade.")
662
+ A, gs, basis, name = data
663
+ if basis is None:
664
+ M = QuaternaryMatroid(groundset=gs, matrix=A, keep_initial_representation=True)
665
+ else:
666
+ M = QuaternaryMatroid(groundset=gs, matrix=A, basis=basis)
667
+ if name is not None:
668
+ M.rename(name)
669
+ return M
670
+
671
+
672
+ def unpickle_regular_matroid(version, data):
673
+ """
674
+ Unpickle a RegularMatroid.
675
+
676
+ *Pickling* is Python's term for the loading and saving of objects.
677
+ Functions like these serve to reconstruct a saved object. This all happens
678
+ transparently through the ``load`` and ``save`` commands, and you should
679
+ never have to call this function directly.
680
+
681
+ INPUT:
682
+
683
+ - ``version`` -- integer (currently 0)
684
+ - ``data`` -- tuple ``(A, E, reduced, name)`` where ``A`` is the
685
+ representation matrix, ``E`` is the groundset of the matroid,
686
+ ``reduced`` is a boolean indicating whether ``A`` is a reduced matrix,
687
+ and ``name`` is a custom name.
688
+
689
+ OUTPUT: :class:`RegularMatroid`
690
+
691
+ .. WARNING::
692
+
693
+ Users should never call this function directly.
694
+
695
+ EXAMPLES::
696
+
697
+ sage: M = matroids.catalog.R10()
698
+ sage: M == loads(dumps(M)) # indirect doctest
699
+ True
700
+ sage: M.rename('R_{10}')
701
+ sage: loads(dumps(M))
702
+ R_{10}
703
+ """
704
+ if version != 0:
705
+ raise TypeError("object was created with newer version of Sage. Please upgrade.")
706
+ A, gs, reduced, name = data
707
+ if not reduced:
708
+ M = RegularMatroid(groundset=gs, matrix=A, keep_initial_representation=True)
709
+ else:
710
+ M = RegularMatroid(groundset=gs, reduced_matrix=A)
711
+ if name is not None:
712
+ M.rename(name)
713
+ return M
714
+
715
+
716
+ # ------------
717
+ # MinorMatroid
718
+ # ------------
719
+
720
+ def unpickle_minor_matroid(version, data):
721
+ """
722
+ Unpickle a MinorMatroid.
723
+
724
+ *Pickling* is Python's term for the loading and saving of objects.
725
+ Functions like these serve to reconstruct a saved object. This all happens
726
+ transparently through the ``load`` and ``save`` commands, and you should
727
+ never have to call this function directly.
728
+
729
+ INPUT:
730
+
731
+ - ``version`` -- integer; currently `0`
732
+ - ``data`` -- tuple ``(M, C, D, name)``, where ``M`` is the original
733
+ matroid of which the output is a minor, ``C`` is the set of
734
+ contractions, ``D`` is the set of deletions, and ``name`` is a custom
735
+ name.
736
+
737
+ OUTPUT: :class:`MinorMatroid`
738
+
739
+ .. WARNING::
740
+
741
+ Users should never call this function directly.
742
+
743
+ EXAMPLES::
744
+
745
+ sage: M = matroids.catalog.Vamos().minor('abc', 'g')
746
+ sage: M == loads(dumps(M)) # indirect doctest
747
+ True
748
+ """
749
+ if version != 0:
750
+ raise TypeError("object was created with newer version of Sage. Please upgrade.")
751
+ M = MinorMatroid(matroid=data[0], contractions=data[1], deletions=data[2])
752
+ if data[3] is not None:
753
+ M.rename(data[3])
754
+ return M
755
+
756
+
757
+ # --------------
758
+ # GraphicMatroid
759
+ # --------------
760
+
761
+ def unpickle_graphic_matroid(version, data):
762
+ """
763
+ Unpickle a GraphicMatroid.
764
+
765
+ *Pickling* is Python's term for the loading and saving of objects.
766
+ Functions like these serve to reconstruct a saved object. This all happens
767
+ transparently through the ``load`` and ``save`` commands, and you should
768
+ never have to call this function directly.
769
+
770
+ INPUT:
771
+
772
+ - ``version`` -- integer (currently 0)
773
+ - ``data`` -- tuple consisting of a SageMath graph and a name
774
+
775
+ OUTPUT: :class:`GraphicMatroid`
776
+
777
+ .. WARNING::
778
+
779
+ Users should never call this function directly.
780
+
781
+ EXAMPLES::
782
+
783
+ sage: M = Matroid(graphs.DiamondGraph()) # needs sage.graphs
784
+ sage: M == loads(dumps(M)) # needs sage.graphs
785
+ True
786
+ """
787
+ from sage.matroids.graphic_matroid import GraphicMatroid
788
+ if version != 0:
789
+ raise TypeError("object was created with newer version of Sage. Please upgrade.")
790
+ G, name = data
791
+ M = GraphicMatroid(G)
792
+ if name is not None:
793
+ M.rename(name)
794
+ return M
795
+
796
+
797
+ # ------------------
798
+ # TransversalMatroid
799
+ # ------------------
800
+
801
+ def unpickle_transversal_matroid(version, data):
802
+ """
803
+ Unpickle a TransversalMatroid.
804
+
805
+ *Pickling* is Python's term for the loading and saving of objects.
806
+ Functions like these serve to reconstruct a saved object. This all happens
807
+ transparently through the ``load`` and ``save`` commands, and you should
808
+ never have to call this function directly.
809
+
810
+ INPUT:
811
+
812
+ - ``version`` -- integer (currently `0`)
813
+ - ``data`` -- tuple ``(sets, groundset, name)``, where ``groundset`` is a
814
+ ``frozenset`` of elements, and ``sets`` is a ``frozenset`` of tuples
815
+ consisting of a name for the set, and a ``frozenset`` of groundset
816
+ elements it contains.
817
+
818
+ OUTPUT: :class:`TransversalMatroid`
819
+
820
+ .. WARNING::
821
+
822
+ Users should never call this function directly.
823
+
824
+ EXAMPLES::
825
+
826
+ sage: # needs networkx sage.graphs
827
+ sage: from sage.matroids.transversal_matroid import *
828
+ sage: sets = [range(6)] * 3
829
+ sage: M = TransversalMatroid(sets)
830
+ sage: M == loads(dumps(M))
831
+ True
832
+ sage: M.rename('U36')
833
+ sage: loads(dumps(M))
834
+ U36
835
+ """
836
+ from sage.matroids.transversal_matroid import TransversalMatroid
837
+ if version != 0:
838
+ raise TypeError("object was created with newer version of Sage. Please upgrade.")
839
+ sets, groundset, set_labels, matching, name = data
840
+ M = TransversalMatroid(sets, groundset, set_labels, matching)
841
+ if name is not None:
842
+ M.rename(name)
843
+ return M