passagemath-categories 10.6.32__cp314-cp314t-musllinux_1_2_aarch64.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.
Files changed (719) hide show
  1. passagemath_categories-10.6.32.dist-info/METADATA +156 -0
  2. passagemath_categories-10.6.32.dist-info/RECORD +719 -0
  3. passagemath_categories-10.6.32.dist-info/WHEEL +5 -0
  4. passagemath_categories-10.6.32.dist-info/top_level.txt +2 -0
  5. passagemath_categories.libs/libgcc_s-2d945d6c.so.1 +0 -0
  6. passagemath_categories.libs/libgmp-28992bcb.so.10.5.0 +0 -0
  7. passagemath_categories.libs/libstdc++-85f2cd6d.so.6.0.33 +0 -0
  8. sage/all__sagemath_categories.py +28 -0
  9. sage/arith/all.py +38 -0
  10. sage/arith/constants.pxd +27 -0
  11. sage/arith/functions.cpython-314t-aarch64-linux-musl.so +0 -0
  12. sage/arith/functions.pxd +4 -0
  13. sage/arith/functions.pyx +221 -0
  14. sage/arith/misc.py +6552 -0
  15. sage/arith/multi_modular.cpython-314t-aarch64-linux-musl.so +0 -0
  16. sage/arith/multi_modular.pxd +39 -0
  17. sage/arith/multi_modular.pyx +994 -0
  18. sage/arith/rational_reconstruction.cpython-314t-aarch64-linux-musl.so +0 -0
  19. sage/arith/rational_reconstruction.pxd +4 -0
  20. sage/arith/rational_reconstruction.pyx +115 -0
  21. sage/arith/srange.cpython-314t-aarch64-linux-musl.so +0 -0
  22. sage/arith/srange.pyx +571 -0
  23. sage/calculus/all__sagemath_categories.py +2 -0
  24. sage/calculus/functional.py +481 -0
  25. sage/calculus/functions.py +151 -0
  26. sage/categories/additive_groups.py +73 -0
  27. sage/categories/additive_magmas.py +1044 -0
  28. sage/categories/additive_monoids.py +114 -0
  29. sage/categories/additive_semigroups.py +184 -0
  30. sage/categories/affine_weyl_groups.py +238 -0
  31. sage/categories/algebra_ideals.py +95 -0
  32. sage/categories/algebra_modules.py +96 -0
  33. sage/categories/algebras.py +349 -0
  34. sage/categories/algebras_with_basis.py +377 -0
  35. sage/categories/all.py +160 -0
  36. sage/categories/aperiodic_semigroups.py +29 -0
  37. sage/categories/associative_algebras.py +47 -0
  38. sage/categories/bialgebras.py +101 -0
  39. sage/categories/bialgebras_with_basis.py +414 -0
  40. sage/categories/bimodules.py +206 -0
  41. sage/categories/chain_complexes.py +268 -0
  42. sage/categories/classical_crystals.py +480 -0
  43. sage/categories/coalgebras.py +405 -0
  44. sage/categories/coalgebras_with_basis.py +232 -0
  45. sage/categories/coercion_methods.cpython-314t-aarch64-linux-musl.so +0 -0
  46. sage/categories/coercion_methods.pyx +52 -0
  47. sage/categories/commutative_additive_groups.py +104 -0
  48. sage/categories/commutative_additive_monoids.py +45 -0
  49. sage/categories/commutative_additive_semigroups.py +48 -0
  50. sage/categories/commutative_algebra_ideals.py +87 -0
  51. sage/categories/commutative_algebras.py +94 -0
  52. sage/categories/commutative_ring_ideals.py +58 -0
  53. sage/categories/commutative_rings.py +736 -0
  54. sage/categories/complete_discrete_valuation.py +293 -0
  55. sage/categories/complex_reflection_groups.py +145 -0
  56. sage/categories/complex_reflection_or_generalized_coxeter_groups.py +1249 -0
  57. sage/categories/coxeter_group_algebras.py +186 -0
  58. sage/categories/coxeter_groups.py +3402 -0
  59. sage/categories/crystals.py +2628 -0
  60. sage/categories/cw_complexes.py +216 -0
  61. sage/categories/dedekind_domains.py +137 -0
  62. sage/categories/discrete_valuation.py +325 -0
  63. sage/categories/distributive_magmas_and_additive_magmas.py +100 -0
  64. sage/categories/division_rings.py +114 -0
  65. sage/categories/domains.py +95 -0
  66. sage/categories/drinfeld_modules.py +789 -0
  67. sage/categories/dual.py +42 -0
  68. sage/categories/enumerated_sets.py +1146 -0
  69. sage/categories/euclidean_domains.py +271 -0
  70. sage/categories/examples/algebras_with_basis.py +102 -0
  71. sage/categories/examples/all.py +1 -0
  72. sage/categories/examples/commutative_additive_monoids.py +130 -0
  73. sage/categories/examples/commutative_additive_semigroups.py +199 -0
  74. sage/categories/examples/coxeter_groups.py +8 -0
  75. sage/categories/examples/crystals.py +236 -0
  76. sage/categories/examples/cw_complexes.py +163 -0
  77. sage/categories/examples/facade_sets.py +187 -0
  78. sage/categories/examples/filtered_algebras_with_basis.py +204 -0
  79. sage/categories/examples/filtered_modules_with_basis.py +154 -0
  80. sage/categories/examples/finite_coxeter_groups.py +252 -0
  81. sage/categories/examples/finite_dimensional_algebras_with_basis.py +148 -0
  82. sage/categories/examples/finite_dimensional_lie_algebras_with_basis.py +495 -0
  83. sage/categories/examples/finite_enumerated_sets.py +208 -0
  84. sage/categories/examples/finite_monoids.py +150 -0
  85. sage/categories/examples/finite_semigroups.py +190 -0
  86. sage/categories/examples/finite_weyl_groups.py +191 -0
  87. sage/categories/examples/graded_connected_hopf_algebras_with_basis.py +152 -0
  88. sage/categories/examples/graded_modules_with_basis.py +168 -0
  89. sage/categories/examples/graphs.py +122 -0
  90. sage/categories/examples/hopf_algebras_with_basis.py +145 -0
  91. sage/categories/examples/infinite_enumerated_sets.py +190 -0
  92. sage/categories/examples/lie_algebras.py +352 -0
  93. sage/categories/examples/lie_algebras_with_basis.py +196 -0
  94. sage/categories/examples/magmas.py +162 -0
  95. sage/categories/examples/manifolds.py +94 -0
  96. sage/categories/examples/monoids.py +144 -0
  97. sage/categories/examples/posets.py +178 -0
  98. sage/categories/examples/semigroups.py +580 -0
  99. sage/categories/examples/semigroups_cython.cpython-314t-aarch64-linux-musl.so +0 -0
  100. sage/categories/examples/semigroups_cython.pyx +221 -0
  101. sage/categories/examples/semirings.py +249 -0
  102. sage/categories/examples/sets_cat.py +706 -0
  103. sage/categories/examples/sets_with_grading.py +101 -0
  104. sage/categories/examples/with_realizations.py +542 -0
  105. sage/categories/fields.py +991 -0
  106. sage/categories/filtered_algebras.py +63 -0
  107. sage/categories/filtered_algebras_with_basis.py +548 -0
  108. sage/categories/filtered_hopf_algebras_with_basis.py +138 -0
  109. sage/categories/filtered_modules.py +210 -0
  110. sage/categories/filtered_modules_with_basis.py +1209 -0
  111. sage/categories/finite_complex_reflection_groups.py +1506 -0
  112. sage/categories/finite_coxeter_groups.py +1138 -0
  113. sage/categories/finite_crystals.py +103 -0
  114. sage/categories/finite_dimensional_algebras_with_basis.py +1860 -0
  115. sage/categories/finite_dimensional_bialgebras_with_basis.py +33 -0
  116. sage/categories/finite_dimensional_coalgebras_with_basis.py +33 -0
  117. sage/categories/finite_dimensional_graded_lie_algebras_with_basis.py +231 -0
  118. sage/categories/finite_dimensional_hopf_algebras_with_basis.py +38 -0
  119. sage/categories/finite_dimensional_lie_algebras_with_basis.py +2774 -0
  120. sage/categories/finite_dimensional_modules_with_basis.py +1407 -0
  121. sage/categories/finite_dimensional_nilpotent_lie_algebras_with_basis.py +167 -0
  122. sage/categories/finite_dimensional_semisimple_algebras_with_basis.py +270 -0
  123. sage/categories/finite_enumerated_sets.py +769 -0
  124. sage/categories/finite_fields.py +252 -0
  125. sage/categories/finite_groups.py +256 -0
  126. sage/categories/finite_lattice_posets.py +242 -0
  127. sage/categories/finite_monoids.py +316 -0
  128. sage/categories/finite_permutation_groups.py +339 -0
  129. sage/categories/finite_posets.py +1994 -0
  130. sage/categories/finite_semigroups.py +136 -0
  131. sage/categories/finite_sets.py +93 -0
  132. sage/categories/finite_weyl_groups.py +39 -0
  133. sage/categories/finitely_generated_lambda_bracket_algebras.py +112 -0
  134. sage/categories/finitely_generated_lie_conformal_algebras.py +114 -0
  135. sage/categories/finitely_generated_magmas.py +57 -0
  136. sage/categories/finitely_generated_semigroups.py +214 -0
  137. sage/categories/function_fields.py +76 -0
  138. sage/categories/g_sets.py +77 -0
  139. sage/categories/gcd_domains.py +65 -0
  140. sage/categories/generalized_coxeter_groups.py +94 -0
  141. sage/categories/graded_algebras.py +85 -0
  142. sage/categories/graded_algebras_with_basis.py +258 -0
  143. sage/categories/graded_bialgebras.py +32 -0
  144. sage/categories/graded_bialgebras_with_basis.py +32 -0
  145. sage/categories/graded_coalgebras.py +65 -0
  146. sage/categories/graded_coalgebras_with_basis.py +51 -0
  147. sage/categories/graded_hopf_algebras.py +41 -0
  148. sage/categories/graded_hopf_algebras_with_basis.py +169 -0
  149. sage/categories/graded_lie_algebras.py +91 -0
  150. sage/categories/graded_lie_algebras_with_basis.py +44 -0
  151. sage/categories/graded_lie_conformal_algebras.py +74 -0
  152. sage/categories/graded_modules.py +133 -0
  153. sage/categories/graded_modules_with_basis.py +329 -0
  154. sage/categories/graphs.py +138 -0
  155. sage/categories/group_algebras.py +430 -0
  156. sage/categories/groupoid.py +94 -0
  157. sage/categories/groups.py +667 -0
  158. sage/categories/h_trivial_semigroups.py +64 -0
  159. sage/categories/hecke_modules.py +185 -0
  160. sage/categories/highest_weight_crystals.py +980 -0
  161. sage/categories/hopf_algebras.py +219 -0
  162. sage/categories/hopf_algebras_with_basis.py +309 -0
  163. sage/categories/infinite_enumerated_sets.py +115 -0
  164. sage/categories/integral_domains.py +203 -0
  165. sage/categories/j_trivial_semigroups.py +29 -0
  166. sage/categories/kac_moody_algebras.py +82 -0
  167. sage/categories/kahler_algebras.py +203 -0
  168. sage/categories/l_trivial_semigroups.py +63 -0
  169. sage/categories/lambda_bracket_algebras.py +280 -0
  170. sage/categories/lambda_bracket_algebras_with_basis.py +107 -0
  171. sage/categories/lattice_posets.py +89 -0
  172. sage/categories/left_modules.py +49 -0
  173. sage/categories/lie_algebras.py +1070 -0
  174. sage/categories/lie_algebras_with_basis.py +261 -0
  175. sage/categories/lie_conformal_algebras.py +350 -0
  176. sage/categories/lie_conformal_algebras_with_basis.py +147 -0
  177. sage/categories/lie_groups.py +73 -0
  178. sage/categories/loop_crystals.py +1290 -0
  179. sage/categories/magmas.py +1189 -0
  180. sage/categories/magmas_and_additive_magmas.py +149 -0
  181. sage/categories/magmatic_algebras.py +365 -0
  182. sage/categories/manifolds.py +352 -0
  183. sage/categories/matrix_algebras.py +40 -0
  184. sage/categories/metric_spaces.py +387 -0
  185. sage/categories/modular_abelian_varieties.py +78 -0
  186. sage/categories/modules.py +989 -0
  187. sage/categories/modules_with_basis.py +2794 -0
  188. sage/categories/monoid_algebras.py +38 -0
  189. sage/categories/monoids.py +739 -0
  190. sage/categories/noetherian_rings.py +87 -0
  191. sage/categories/number_fields.py +242 -0
  192. sage/categories/ore_modules.py +189 -0
  193. sage/categories/partially_ordered_monoids.py +49 -0
  194. sage/categories/permutation_groups.py +63 -0
  195. sage/categories/pointed_sets.py +42 -0
  196. sage/categories/polyhedra.py +74 -0
  197. sage/categories/poor_man_map.py +270 -0
  198. sage/categories/posets.py +722 -0
  199. sage/categories/principal_ideal_domains.py +270 -0
  200. sage/categories/quantum_group_representations.py +543 -0
  201. sage/categories/quotient_fields.py +728 -0
  202. sage/categories/r_trivial_semigroups.py +45 -0
  203. sage/categories/regular_crystals.py +898 -0
  204. sage/categories/regular_supercrystals.py +170 -0
  205. sage/categories/right_modules.py +49 -0
  206. sage/categories/ring_ideals.py +74 -0
  207. sage/categories/rings.py +1904 -0
  208. sage/categories/rngs.py +175 -0
  209. sage/categories/schemes.py +393 -0
  210. sage/categories/semigroups.py +1060 -0
  211. sage/categories/semirings.py +71 -0
  212. sage/categories/semisimple_algebras.py +114 -0
  213. sage/categories/sets_with_grading.py +235 -0
  214. sage/categories/shephard_groups.py +43 -0
  215. sage/categories/signed_tensor.py +120 -0
  216. sage/categories/simplicial_complexes.py +134 -0
  217. sage/categories/simplicial_sets.py +1206 -0
  218. sage/categories/super_algebras.py +149 -0
  219. sage/categories/super_algebras_with_basis.py +144 -0
  220. sage/categories/super_hopf_algebras_with_basis.py +126 -0
  221. sage/categories/super_lie_conformal_algebras.py +193 -0
  222. sage/categories/super_modules.py +229 -0
  223. sage/categories/super_modules_with_basis.py +193 -0
  224. sage/categories/supercommutative_algebras.py +99 -0
  225. sage/categories/supercrystals.py +406 -0
  226. sage/categories/tensor.py +110 -0
  227. sage/categories/topological_spaces.py +170 -0
  228. sage/categories/triangular_kac_moody_algebras.py +439 -0
  229. sage/categories/tutorial.py +58 -0
  230. sage/categories/unique_factorization_domains.py +318 -0
  231. sage/categories/unital_algebras.py +426 -0
  232. sage/categories/vector_bundles.py +159 -0
  233. sage/categories/vector_spaces.py +357 -0
  234. sage/categories/weyl_groups.py +853 -0
  235. sage/combinat/all__sagemath_categories.py +34 -0
  236. sage/combinat/backtrack.py +180 -0
  237. sage/combinat/combinat.py +2269 -0
  238. sage/combinat/combinat_cython.cpython-314t-aarch64-linux-musl.so +0 -0
  239. sage/combinat/combinat_cython.pxd +6 -0
  240. sage/combinat/combinat_cython.pyx +390 -0
  241. sage/combinat/combination.py +796 -0
  242. sage/combinat/combinatorial_map.py +416 -0
  243. sage/combinat/composition.py +2192 -0
  244. sage/combinat/dlx.py +510 -0
  245. sage/combinat/integer_lists/__init__.py +7 -0
  246. sage/combinat/integer_lists/base.cpython-314t-aarch64-linux-musl.so +0 -0
  247. sage/combinat/integer_lists/base.pxd +16 -0
  248. sage/combinat/integer_lists/base.pyx +713 -0
  249. sage/combinat/integer_lists/invlex.cpython-314t-aarch64-linux-musl.so +0 -0
  250. sage/combinat/integer_lists/invlex.pxd +4 -0
  251. sage/combinat/integer_lists/invlex.pyx +1650 -0
  252. sage/combinat/integer_lists/lists.py +328 -0
  253. sage/combinat/integer_lists/nn.py +48 -0
  254. sage/combinat/integer_vector.py +1818 -0
  255. sage/combinat/integer_vector_weighted.py +413 -0
  256. sage/combinat/matrices/all__sagemath_categories.py +5 -0
  257. sage/combinat/matrices/dancing_links.cpython-314t-aarch64-linux-musl.so +0 -0
  258. sage/combinat/matrices/dancing_links.pyx +1159 -0
  259. sage/combinat/matrices/dancing_links_c.h +380 -0
  260. sage/combinat/matrices/dlxcpp.py +136 -0
  261. sage/combinat/partition.py +10070 -0
  262. sage/combinat/partitions.cpython-314t-aarch64-linux-musl.so +0 -0
  263. sage/combinat/partitions.pyx +743 -0
  264. sage/combinat/permutation.py +10168 -0
  265. sage/combinat/permutation_cython.cpython-314t-aarch64-linux-musl.so +0 -0
  266. sage/combinat/permutation_cython.pxd +11 -0
  267. sage/combinat/permutation_cython.pyx +407 -0
  268. sage/combinat/q_analogues.py +1090 -0
  269. sage/combinat/ranker.py +268 -0
  270. sage/combinat/subset.py +1561 -0
  271. sage/combinat/subsets_hereditary.py +202 -0
  272. sage/combinat/subsets_pairwise.py +184 -0
  273. sage/combinat/tools.py +63 -0
  274. sage/combinat/tuple.py +348 -0
  275. sage/data_structures/all.py +2 -0
  276. sage/data_structures/all__sagemath_categories.py +2 -0
  277. sage/data_structures/binary_matrix.pxd +138 -0
  278. sage/data_structures/binary_search.cpython-314t-aarch64-linux-musl.so +0 -0
  279. sage/data_structures/binary_search.pxd +3 -0
  280. sage/data_structures/binary_search.pyx +66 -0
  281. sage/data_structures/bitset.cpython-314t-aarch64-linux-musl.so +0 -0
  282. sage/data_structures/bitset.pxd +40 -0
  283. sage/data_structures/bitset.pyx +2385 -0
  284. sage/data_structures/bitset_base.cpython-314t-aarch64-linux-musl.so +0 -0
  285. sage/data_structures/bitset_base.pxd +926 -0
  286. sage/data_structures/bitset_base.pyx +117 -0
  287. sage/data_structures/bitset_intrinsics.h +487 -0
  288. sage/data_structures/blas_dict.cpython-314t-aarch64-linux-musl.so +0 -0
  289. sage/data_structures/blas_dict.pxd +12 -0
  290. sage/data_structures/blas_dict.pyx +469 -0
  291. sage/data_structures/list_of_pairs.cpython-314t-aarch64-linux-musl.so +0 -0
  292. sage/data_structures/list_of_pairs.pxd +16 -0
  293. sage/data_structures/list_of_pairs.pyx +122 -0
  294. sage/data_structures/mutable_poset.py +3312 -0
  295. sage/data_structures/pairing_heap.cpython-314t-aarch64-linux-musl.so +0 -0
  296. sage/data_structures/pairing_heap.h +346 -0
  297. sage/data_structures/pairing_heap.pxd +88 -0
  298. sage/data_structures/pairing_heap.pyx +1464 -0
  299. sage/data_structures/sparse_bitset.pxd +62 -0
  300. sage/data_structures/stream.py +5070 -0
  301. sage/databases/all__sagemath_categories.py +7 -0
  302. sage/databases/sql_db.py +2236 -0
  303. sage/ext/all__sagemath_categories.py +3 -0
  304. sage/ext/fast_callable.cpython-314t-aarch64-linux-musl.so +0 -0
  305. sage/ext/fast_callable.pxd +4 -0
  306. sage/ext/fast_callable.pyx +2746 -0
  307. sage/ext/fast_eval.cpython-314t-aarch64-linux-musl.so +0 -0
  308. sage/ext/fast_eval.pxd +1 -0
  309. sage/ext/fast_eval.pyx +102 -0
  310. sage/ext/interpreters/__init__.py +1 -0
  311. sage/ext/interpreters/all__sagemath_categories.py +2 -0
  312. sage/ext/interpreters/wrapper_el.cpython-314t-aarch64-linux-musl.so +0 -0
  313. sage/ext/interpreters/wrapper_el.pxd +18 -0
  314. sage/ext/interpreters/wrapper_el.pyx +148 -0
  315. sage/ext/interpreters/wrapper_py.cpython-314t-aarch64-linux-musl.so +0 -0
  316. sage/ext/interpreters/wrapper_py.pxd +17 -0
  317. sage/ext/interpreters/wrapper_py.pyx +133 -0
  318. sage/functions/airy.py +937 -0
  319. sage/functions/all.py +97 -0
  320. sage/functions/bessel.py +2102 -0
  321. sage/functions/error.py +784 -0
  322. sage/functions/exp_integral.py +1529 -0
  323. sage/functions/gamma.py +1087 -0
  324. sage/functions/generalized.py +672 -0
  325. sage/functions/hyperbolic.py +747 -0
  326. sage/functions/hypergeometric.py +1156 -0
  327. sage/functions/jacobi.py +1705 -0
  328. sage/functions/log.py +1402 -0
  329. sage/functions/min_max.py +338 -0
  330. sage/functions/orthogonal_polys.py +3106 -0
  331. sage/functions/other.py +2303 -0
  332. sage/functions/piecewise.py +1505 -0
  333. sage/functions/prime_pi.cpython-314t-aarch64-linux-musl.so +0 -0
  334. sage/functions/prime_pi.pyx +262 -0
  335. sage/functions/special.py +1212 -0
  336. sage/functions/spike_function.py +278 -0
  337. sage/functions/transcendental.py +690 -0
  338. sage/functions/trig.py +1062 -0
  339. sage/functions/wigner.py +726 -0
  340. sage/geometry/abc.cpython-314t-aarch64-linux-musl.so +0 -0
  341. sage/geometry/abc.pyx +82 -0
  342. sage/geometry/all__sagemath_categories.py +1 -0
  343. sage/groups/all__sagemath_categories.py +11 -0
  344. sage/groups/generic.py +1733 -0
  345. sage/groups/groups_catalog.py +113 -0
  346. sage/groups/perm_gps/all__sagemath_categories.py +1 -0
  347. sage/groups/perm_gps/partn_ref/all.py +1 -0
  348. sage/groups/perm_gps/partn_ref/all__sagemath_categories.py +1 -0
  349. sage/groups/perm_gps/partn_ref/automorphism_group_canonical_label.cpython-314t-aarch64-linux-musl.so +0 -0
  350. sage/groups/perm_gps/partn_ref/automorphism_group_canonical_label.pxd +52 -0
  351. sage/groups/perm_gps/partn_ref/automorphism_group_canonical_label.pyx +906 -0
  352. sage/groups/perm_gps/partn_ref/canonical_augmentation.cpython-314t-aarch64-linux-musl.so +0 -0
  353. sage/groups/perm_gps/partn_ref/canonical_augmentation.pxd +85 -0
  354. sage/groups/perm_gps/partn_ref/canonical_augmentation.pyx +534 -0
  355. sage/groups/perm_gps/partn_ref/data_structures.cpython-314t-aarch64-linux-musl.so +0 -0
  356. sage/groups/perm_gps/partn_ref/data_structures.pxd +576 -0
  357. sage/groups/perm_gps/partn_ref/data_structures.pyx +1792 -0
  358. sage/groups/perm_gps/partn_ref/double_coset.cpython-314t-aarch64-linux-musl.so +0 -0
  359. sage/groups/perm_gps/partn_ref/double_coset.pxd +45 -0
  360. sage/groups/perm_gps/partn_ref/double_coset.pyx +739 -0
  361. sage/groups/perm_gps/partn_ref/refinement_lists.cpython-314t-aarch64-linux-musl.so +0 -0
  362. sage/groups/perm_gps/partn_ref/refinement_lists.pxd +18 -0
  363. sage/groups/perm_gps/partn_ref/refinement_lists.pyx +82 -0
  364. sage/groups/perm_gps/partn_ref/refinement_python.cpython-314t-aarch64-linux-musl.so +0 -0
  365. sage/groups/perm_gps/partn_ref/refinement_python.pxd +16 -0
  366. sage/groups/perm_gps/partn_ref/refinement_python.pyx +564 -0
  367. sage/groups/perm_gps/partn_ref/refinement_sets.cpython-314t-aarch64-linux-musl.so +0 -0
  368. sage/groups/perm_gps/partn_ref/refinement_sets.pxd +60 -0
  369. sage/groups/perm_gps/partn_ref/refinement_sets.pyx +858 -0
  370. sage/interfaces/abc.py +140 -0
  371. sage/interfaces/all.py +58 -0
  372. sage/interfaces/all__sagemath_categories.py +1 -0
  373. sage/interfaces/expect.py +1643 -0
  374. sage/interfaces/interface.py +1682 -0
  375. sage/interfaces/process.cpython-314t-aarch64-linux-musl.so +0 -0
  376. sage/interfaces/process.pxd +5 -0
  377. sage/interfaces/process.pyx +288 -0
  378. sage/interfaces/quit.py +167 -0
  379. sage/interfaces/sage0.py +604 -0
  380. sage/interfaces/sagespawn.cpython-314t-aarch64-linux-musl.so +0 -0
  381. sage/interfaces/sagespawn.pyx +308 -0
  382. sage/interfaces/tab_completion.py +101 -0
  383. sage/misc/all__sagemath_categories.py +78 -0
  384. sage/misc/allocator.cpython-314t-aarch64-linux-musl.so +0 -0
  385. sage/misc/allocator.pxd +6 -0
  386. sage/misc/allocator.pyx +47 -0
  387. sage/misc/binary_tree.cpython-314t-aarch64-linux-musl.so +0 -0
  388. sage/misc/binary_tree.pxd +29 -0
  389. sage/misc/binary_tree.pyx +537 -0
  390. sage/misc/callable_dict.cpython-314t-aarch64-linux-musl.so +0 -0
  391. sage/misc/callable_dict.pyx +89 -0
  392. sage/misc/citation.cpython-314t-aarch64-linux-musl.so +0 -0
  393. sage/misc/citation.pyx +159 -0
  394. sage/misc/converting_dict.py +293 -0
  395. sage/misc/defaults.py +129 -0
  396. sage/misc/derivative.cpython-314t-aarch64-linux-musl.so +0 -0
  397. sage/misc/derivative.pyx +223 -0
  398. sage/misc/functional.py +2005 -0
  399. sage/misc/html.py +589 -0
  400. sage/misc/latex.py +2673 -0
  401. sage/misc/latex_macros.py +236 -0
  402. sage/misc/latex_standalone.py +1833 -0
  403. sage/misc/map_threaded.py +38 -0
  404. sage/misc/mathml.py +76 -0
  405. sage/misc/method_decorator.py +88 -0
  406. sage/misc/mrange.py +755 -0
  407. sage/misc/multireplace.py +41 -0
  408. sage/misc/object_multiplexer.py +92 -0
  409. sage/misc/parser.cpython-314t-aarch64-linux-musl.so +0 -0
  410. sage/misc/parser.pyx +1107 -0
  411. sage/misc/random_testing.py +264 -0
  412. sage/misc/rest_index_of_methods.py +377 -0
  413. sage/misc/search.cpython-314t-aarch64-linux-musl.so +0 -0
  414. sage/misc/search.pxd +2 -0
  415. sage/misc/search.pyx +68 -0
  416. sage/misc/stopgap.cpython-314t-aarch64-linux-musl.so +0 -0
  417. sage/misc/stopgap.pyx +95 -0
  418. sage/misc/table.py +853 -0
  419. sage/monoids/all__sagemath_categories.py +1 -0
  420. sage/monoids/indexed_free_monoid.py +1071 -0
  421. sage/monoids/monoid.py +82 -0
  422. sage/numerical/all__sagemath_categories.py +1 -0
  423. sage/numerical/backends/all__sagemath_categories.py +1 -0
  424. sage/numerical/backends/generic_backend.cpython-314t-aarch64-linux-musl.so +0 -0
  425. sage/numerical/backends/generic_backend.pxd +61 -0
  426. sage/numerical/backends/generic_backend.pyx +1893 -0
  427. sage/numerical/backends/generic_sdp_backend.cpython-314t-aarch64-linux-musl.so +0 -0
  428. sage/numerical/backends/generic_sdp_backend.pxd +38 -0
  429. sage/numerical/backends/generic_sdp_backend.pyx +755 -0
  430. sage/parallel/all.py +6 -0
  431. sage/parallel/decorate.py +575 -0
  432. sage/parallel/map_reduce.py +1997 -0
  433. sage/parallel/multiprocessing_sage.py +76 -0
  434. sage/parallel/ncpus.py +35 -0
  435. sage/parallel/parallelism.py +364 -0
  436. sage/parallel/reference.py +47 -0
  437. sage/parallel/use_fork.py +333 -0
  438. sage/rings/abc.cpython-314t-aarch64-linux-musl.so +0 -0
  439. sage/rings/abc.pxd +31 -0
  440. sage/rings/abc.pyx +526 -0
  441. sage/rings/algebraic_closure_finite_field.py +1154 -0
  442. sage/rings/all__sagemath_categories.py +91 -0
  443. sage/rings/big_oh.py +227 -0
  444. sage/rings/continued_fraction.py +2754 -0
  445. sage/rings/continued_fraction_gosper.py +220 -0
  446. sage/rings/factorint.cpython-314t-aarch64-linux-musl.so +0 -0
  447. sage/rings/factorint.pyx +295 -0
  448. sage/rings/fast_arith.cpython-314t-aarch64-linux-musl.so +0 -0
  449. sage/rings/fast_arith.pxd +21 -0
  450. sage/rings/fast_arith.pyx +535 -0
  451. sage/rings/finite_rings/all__sagemath_categories.py +9 -0
  452. sage/rings/finite_rings/conway_polynomials.py +542 -0
  453. sage/rings/finite_rings/element_base.cpython-314t-aarch64-linux-musl.so +0 -0
  454. sage/rings/finite_rings/element_base.pxd +12 -0
  455. sage/rings/finite_rings/element_base.pyx +1176 -0
  456. sage/rings/finite_rings/finite_field_base.cpython-314t-aarch64-linux-musl.so +0 -0
  457. sage/rings/finite_rings/finite_field_base.pxd +7 -0
  458. sage/rings/finite_rings/finite_field_base.pyx +2171 -0
  459. sage/rings/finite_rings/finite_field_constructor.py +827 -0
  460. sage/rings/finite_rings/finite_field_prime_modn.py +372 -0
  461. sage/rings/finite_rings/galois_group.py +154 -0
  462. sage/rings/finite_rings/hom_finite_field.cpython-314t-aarch64-linux-musl.so +0 -0
  463. sage/rings/finite_rings/hom_finite_field.pxd +23 -0
  464. sage/rings/finite_rings/hom_finite_field.pyx +856 -0
  465. sage/rings/finite_rings/hom_prime_finite_field.cpython-314t-aarch64-linux-musl.so +0 -0
  466. sage/rings/finite_rings/hom_prime_finite_field.pxd +15 -0
  467. sage/rings/finite_rings/hom_prime_finite_field.pyx +164 -0
  468. sage/rings/finite_rings/homset.py +357 -0
  469. sage/rings/finite_rings/integer_mod.cpython-314t-aarch64-linux-musl.so +0 -0
  470. sage/rings/finite_rings/integer_mod.pxd +56 -0
  471. sage/rings/finite_rings/integer_mod.pyx +4586 -0
  472. sage/rings/finite_rings/integer_mod_limits.h +11 -0
  473. sage/rings/finite_rings/integer_mod_ring.py +2044 -0
  474. sage/rings/finite_rings/residue_field.cpython-314t-aarch64-linux-musl.so +0 -0
  475. sage/rings/finite_rings/residue_field.pxd +30 -0
  476. sage/rings/finite_rings/residue_field.pyx +1811 -0
  477. sage/rings/finite_rings/stdint.pxd +19 -0
  478. sage/rings/fraction_field.py +1452 -0
  479. sage/rings/fraction_field_element.cpython-314t-aarch64-linux-musl.so +0 -0
  480. sage/rings/fraction_field_element.pyx +1357 -0
  481. sage/rings/function_field/all.py +7 -0
  482. sage/rings/function_field/all__sagemath_categories.py +2 -0
  483. sage/rings/function_field/constructor.py +218 -0
  484. sage/rings/function_field/element.cpython-314t-aarch64-linux-musl.so +0 -0
  485. sage/rings/function_field/element.pxd +11 -0
  486. sage/rings/function_field/element.pyx +1008 -0
  487. sage/rings/function_field/element_rational.cpython-314t-aarch64-linux-musl.so +0 -0
  488. sage/rings/function_field/element_rational.pyx +513 -0
  489. sage/rings/function_field/extensions.py +230 -0
  490. sage/rings/function_field/function_field.py +1468 -0
  491. sage/rings/function_field/function_field_rational.py +1005 -0
  492. sage/rings/function_field/ideal.py +1155 -0
  493. sage/rings/function_field/ideal_rational.py +629 -0
  494. sage/rings/function_field/jacobian_base.py +826 -0
  495. sage/rings/function_field/jacobian_hess.py +1053 -0
  496. sage/rings/function_field/jacobian_khuri_makdisi.py +1027 -0
  497. sage/rings/function_field/maps.py +1039 -0
  498. sage/rings/function_field/order.py +281 -0
  499. sage/rings/function_field/order_basis.py +586 -0
  500. sage/rings/function_field/order_rational.py +576 -0
  501. sage/rings/function_field/place.py +426 -0
  502. sage/rings/function_field/place_rational.py +181 -0
  503. sage/rings/generic.py +320 -0
  504. sage/rings/homset.py +332 -0
  505. sage/rings/ideal.py +1885 -0
  506. sage/rings/ideal_monoid.py +215 -0
  507. sage/rings/infinity.py +1890 -0
  508. sage/rings/integer.cpython-314t-aarch64-linux-musl.so +0 -0
  509. sage/rings/integer.pxd +45 -0
  510. sage/rings/integer.pyx +7874 -0
  511. sage/rings/integer_ring.cpython-314t-aarch64-linux-musl.so +0 -0
  512. sage/rings/integer_ring.pxd +8 -0
  513. sage/rings/integer_ring.pyx +1693 -0
  514. sage/rings/laurent_series_ring.py +931 -0
  515. sage/rings/laurent_series_ring_element.cpython-314t-aarch64-linux-musl.so +0 -0
  516. sage/rings/laurent_series_ring_element.pxd +11 -0
  517. sage/rings/laurent_series_ring_element.pyx +1927 -0
  518. sage/rings/lazy_series.py +7815 -0
  519. sage/rings/lazy_series_ring.py +4356 -0
  520. sage/rings/localization.py +1043 -0
  521. sage/rings/morphism.cpython-314t-aarch64-linux-musl.so +0 -0
  522. sage/rings/morphism.pxd +39 -0
  523. sage/rings/morphism.pyx +3299 -0
  524. sage/rings/multi_power_series_ring.py +1145 -0
  525. sage/rings/multi_power_series_ring_element.py +2184 -0
  526. sage/rings/noncommutative_ideals.cpython-314t-aarch64-linux-musl.so +0 -0
  527. sage/rings/noncommutative_ideals.pyx +423 -0
  528. sage/rings/number_field/all__sagemath_categories.py +1 -0
  529. sage/rings/number_field/number_field_base.cpython-314t-aarch64-linux-musl.so +0 -0
  530. sage/rings/number_field/number_field_base.pxd +8 -0
  531. sage/rings/number_field/number_field_base.pyx +507 -0
  532. sage/rings/number_field/number_field_element_base.cpython-314t-aarch64-linux-musl.so +0 -0
  533. sage/rings/number_field/number_field_element_base.pxd +6 -0
  534. sage/rings/number_field/number_field_element_base.pyx +36 -0
  535. sage/rings/number_field/number_field_ideal.py +3550 -0
  536. sage/rings/padics/all__sagemath_categories.py +4 -0
  537. sage/rings/padics/local_generic.py +1670 -0
  538. sage/rings/padics/local_generic_element.cpython-314t-aarch64-linux-musl.so +0 -0
  539. sage/rings/padics/local_generic_element.pxd +5 -0
  540. sage/rings/padics/local_generic_element.pyx +1017 -0
  541. sage/rings/padics/misc.py +256 -0
  542. sage/rings/padics/padic_generic.py +1911 -0
  543. sage/rings/padics/pow_computer.cpython-314t-aarch64-linux-musl.so +0 -0
  544. sage/rings/padics/pow_computer.pxd +38 -0
  545. sage/rings/padics/pow_computer.pyx +671 -0
  546. sage/rings/padics/precision_error.py +24 -0
  547. sage/rings/polynomial/all__sagemath_categories.py +25 -0
  548. sage/rings/polynomial/commutative_polynomial.cpython-314t-aarch64-linux-musl.so +0 -0
  549. sage/rings/polynomial/commutative_polynomial.pxd +6 -0
  550. sage/rings/polynomial/commutative_polynomial.pyx +24 -0
  551. sage/rings/polynomial/cyclotomic.cpython-314t-aarch64-linux-musl.so +0 -0
  552. sage/rings/polynomial/cyclotomic.pyx +404 -0
  553. sage/rings/polynomial/flatten.py +711 -0
  554. sage/rings/polynomial/ideal.py +102 -0
  555. sage/rings/polynomial/infinite_polynomial_element.py +1768 -0
  556. sage/rings/polynomial/infinite_polynomial_ring.py +1653 -0
  557. sage/rings/polynomial/laurent_polynomial.cpython-314t-aarch64-linux-musl.so +0 -0
  558. sage/rings/polynomial/laurent_polynomial.pxd +18 -0
  559. sage/rings/polynomial/laurent_polynomial.pyx +2190 -0
  560. sage/rings/polynomial/laurent_polynomial_ideal.py +590 -0
  561. sage/rings/polynomial/laurent_polynomial_ring.py +832 -0
  562. sage/rings/polynomial/laurent_polynomial_ring_base.py +708 -0
  563. sage/rings/polynomial/multi_polynomial.cpython-314t-aarch64-linux-musl.so +0 -0
  564. sage/rings/polynomial/multi_polynomial.pxd +12 -0
  565. sage/rings/polynomial/multi_polynomial.pyx +3082 -0
  566. sage/rings/polynomial/multi_polynomial_element.py +2570 -0
  567. sage/rings/polynomial/multi_polynomial_ideal.py +5771 -0
  568. sage/rings/polynomial/multi_polynomial_ring.py +947 -0
  569. sage/rings/polynomial/multi_polynomial_ring_base.cpython-314t-aarch64-linux-musl.so +0 -0
  570. sage/rings/polynomial/multi_polynomial_ring_base.pxd +15 -0
  571. sage/rings/polynomial/multi_polynomial_ring_base.pyx +1855 -0
  572. sage/rings/polynomial/multi_polynomial_sequence.py +2204 -0
  573. sage/rings/polynomial/polydict.cpython-314t-aarch64-linux-musl.so +0 -0
  574. sage/rings/polynomial/polydict.pxd +45 -0
  575. sage/rings/polynomial/polydict.pyx +2701 -0
  576. sage/rings/polynomial/polynomial_compiled.cpython-314t-aarch64-linux-musl.so +0 -0
  577. sage/rings/polynomial/polynomial_compiled.pxd +59 -0
  578. sage/rings/polynomial/polynomial_compiled.pyx +509 -0
  579. sage/rings/polynomial/polynomial_element.cpython-314t-aarch64-linux-musl.so +0 -0
  580. sage/rings/polynomial/polynomial_element.pxd +64 -0
  581. sage/rings/polynomial/polynomial_element.pyx +13255 -0
  582. sage/rings/polynomial/polynomial_element_generic.py +1637 -0
  583. sage/rings/polynomial/polynomial_fateman.py +97 -0
  584. sage/rings/polynomial/polynomial_quotient_ring.py +2465 -0
  585. sage/rings/polynomial/polynomial_quotient_ring_element.py +779 -0
  586. sage/rings/polynomial/polynomial_ring.py +3784 -0
  587. sage/rings/polynomial/polynomial_ring_constructor.py +1051 -0
  588. sage/rings/polynomial/polynomial_ring_homomorphism.cpython-314t-aarch64-linux-musl.so +0 -0
  589. sage/rings/polynomial/polynomial_ring_homomorphism.pxd +5 -0
  590. sage/rings/polynomial/polynomial_ring_homomorphism.pyx +121 -0
  591. sage/rings/polynomial/polynomial_singular_interface.py +549 -0
  592. sage/rings/polynomial/symmetric_ideal.py +989 -0
  593. sage/rings/polynomial/symmetric_reduction.cpython-314t-aarch64-linux-musl.so +0 -0
  594. sage/rings/polynomial/symmetric_reduction.pxd +8 -0
  595. sage/rings/polynomial/symmetric_reduction.pyx +669 -0
  596. sage/rings/polynomial/term_order.py +2279 -0
  597. sage/rings/polynomial/toy_buchberger.py +449 -0
  598. sage/rings/polynomial/toy_d_basis.py +387 -0
  599. sage/rings/polynomial/toy_variety.py +362 -0
  600. sage/rings/power_series_mpoly.cpython-314t-aarch64-linux-musl.so +0 -0
  601. sage/rings/power_series_mpoly.pxd +9 -0
  602. sage/rings/power_series_mpoly.pyx +161 -0
  603. sage/rings/power_series_poly.cpython-314t-aarch64-linux-musl.so +0 -0
  604. sage/rings/power_series_poly.pxd +10 -0
  605. sage/rings/power_series_poly.pyx +1317 -0
  606. sage/rings/power_series_ring.py +1441 -0
  607. sage/rings/power_series_ring_element.cpython-314t-aarch64-linux-musl.so +0 -0
  608. sage/rings/power_series_ring_element.pxd +12 -0
  609. sage/rings/power_series_ring_element.pyx +3028 -0
  610. sage/rings/puiseux_series_ring.py +487 -0
  611. sage/rings/puiseux_series_ring_element.cpython-314t-aarch64-linux-musl.so +0 -0
  612. sage/rings/puiseux_series_ring_element.pxd +7 -0
  613. sage/rings/puiseux_series_ring_element.pyx +1055 -0
  614. sage/rings/qqbar_decorators.py +167 -0
  615. sage/rings/quotient_ring.py +1598 -0
  616. sage/rings/quotient_ring_element.py +979 -0
  617. sage/rings/rational.cpython-314t-aarch64-linux-musl.so +0 -0
  618. sage/rings/rational.pxd +20 -0
  619. sage/rings/rational.pyx +4284 -0
  620. sage/rings/rational_field.py +1730 -0
  621. sage/rings/real_double.cpython-314t-aarch64-linux-musl.so +0 -0
  622. sage/rings/real_double.pxd +16 -0
  623. sage/rings/real_double.pyx +2218 -0
  624. sage/rings/real_lazy.cpython-314t-aarch64-linux-musl.so +0 -0
  625. sage/rings/real_lazy.pxd +30 -0
  626. sage/rings/real_lazy.pyx +1773 -0
  627. sage/rings/ring.cpython-314t-aarch64-linux-musl.so +0 -0
  628. sage/rings/ring.pxd +30 -0
  629. sage/rings/ring.pyx +850 -0
  630. sage/rings/semirings/all.py +3 -0
  631. sage/rings/semirings/non_negative_integer_semiring.py +107 -0
  632. sage/rings/semirings/tropical_mpolynomial.py +972 -0
  633. sage/rings/semirings/tropical_polynomial.py +997 -0
  634. sage/rings/semirings/tropical_semiring.cpython-314t-aarch64-linux-musl.so +0 -0
  635. sage/rings/semirings/tropical_semiring.pyx +676 -0
  636. sage/rings/semirings/tropical_variety.py +1701 -0
  637. sage/rings/sum_of_squares.cpython-314t-aarch64-linux-musl.so +0 -0
  638. sage/rings/sum_of_squares.pxd +3 -0
  639. sage/rings/sum_of_squares.pyx +336 -0
  640. sage/rings/tests.py +504 -0
  641. sage/schemes/affine/affine_homset.py +508 -0
  642. sage/schemes/affine/affine_morphism.py +1574 -0
  643. sage/schemes/affine/affine_point.py +460 -0
  644. sage/schemes/affine/affine_rational_point.py +308 -0
  645. sage/schemes/affine/affine_space.py +1264 -0
  646. sage/schemes/affine/affine_subscheme.py +592 -0
  647. sage/schemes/affine/all.py +25 -0
  648. sage/schemes/all__sagemath_categories.py +5 -0
  649. sage/schemes/generic/algebraic_scheme.py +2092 -0
  650. sage/schemes/generic/all.py +5 -0
  651. sage/schemes/generic/ambient_space.py +400 -0
  652. sage/schemes/generic/divisor.py +465 -0
  653. sage/schemes/generic/divisor_group.py +313 -0
  654. sage/schemes/generic/glue.py +84 -0
  655. sage/schemes/generic/homset.py +820 -0
  656. sage/schemes/generic/hypersurface.py +234 -0
  657. sage/schemes/generic/morphism.py +2107 -0
  658. sage/schemes/generic/point.py +237 -0
  659. sage/schemes/generic/scheme.py +1190 -0
  660. sage/schemes/generic/spec.py +199 -0
  661. sage/schemes/product_projective/all.py +6 -0
  662. sage/schemes/product_projective/homset.py +236 -0
  663. sage/schemes/product_projective/morphism.py +517 -0
  664. sage/schemes/product_projective/point.py +568 -0
  665. sage/schemes/product_projective/rational_point.py +550 -0
  666. sage/schemes/product_projective/space.py +1301 -0
  667. sage/schemes/product_projective/subscheme.py +466 -0
  668. sage/schemes/projective/all.py +24 -0
  669. sage/schemes/projective/proj_bdd_height.py +453 -0
  670. sage/schemes/projective/projective_homset.py +718 -0
  671. sage/schemes/projective/projective_morphism.py +2792 -0
  672. sage/schemes/projective/projective_point.py +1484 -0
  673. sage/schemes/projective/projective_rational_point.py +569 -0
  674. sage/schemes/projective/projective_space.py +2571 -0
  675. sage/schemes/projective/projective_subscheme.py +1574 -0
  676. sage/sets/all.py +17 -0
  677. sage/sets/cartesian_product.py +376 -0
  678. sage/sets/condition_set.py +525 -0
  679. sage/sets/disjoint_set.cpython-314t-aarch64-linux-musl.so +0 -0
  680. sage/sets/disjoint_set.pxd +36 -0
  681. sage/sets/disjoint_set.pyx +998 -0
  682. sage/sets/disjoint_union_enumerated_sets.py +625 -0
  683. sage/sets/family.cpython-314t-aarch64-linux-musl.so +0 -0
  684. sage/sets/family.pxd +12 -0
  685. sage/sets/family.pyx +1556 -0
  686. sage/sets/finite_enumerated_set.py +406 -0
  687. sage/sets/finite_set_map_cy.cpython-314t-aarch64-linux-musl.so +0 -0
  688. sage/sets/finite_set_map_cy.pxd +34 -0
  689. sage/sets/finite_set_map_cy.pyx +708 -0
  690. sage/sets/finite_set_maps.py +591 -0
  691. sage/sets/image_set.py +448 -0
  692. sage/sets/integer_range.py +829 -0
  693. sage/sets/non_negative_integers.py +241 -0
  694. sage/sets/positive_integers.py +93 -0
  695. sage/sets/primes.py +188 -0
  696. sage/sets/real_set.py +2760 -0
  697. sage/sets/recursively_enumerated_set.cpython-314t-aarch64-linux-musl.so +0 -0
  698. sage/sets/recursively_enumerated_set.pxd +31 -0
  699. sage/sets/recursively_enumerated_set.pyx +2082 -0
  700. sage/sets/set.py +2083 -0
  701. sage/sets/set_from_iterator.py +1021 -0
  702. sage/sets/totally_ordered_finite_set.py +329 -0
  703. sage/symbolic/all__sagemath_categories.py +1 -0
  704. sage/symbolic/function.cpython-314t-aarch64-linux-musl.so +0 -0
  705. sage/symbolic/function.pxd +29 -0
  706. sage/symbolic/function.pyx +1488 -0
  707. sage/symbolic/symbols.py +56 -0
  708. sage/tests/all__sagemath_categories.py +1 -0
  709. sage/tests/cython.cpython-314t-aarch64-linux-musl.so +0 -0
  710. sage/tests/cython.pyx +37 -0
  711. sage/tests/stl_vector.cpython-314t-aarch64-linux-musl.so +0 -0
  712. sage/tests/stl_vector.pyx +171 -0
  713. sage/typeset/all.py +6 -0
  714. sage/typeset/ascii_art.py +295 -0
  715. sage/typeset/character_art.py +789 -0
  716. sage/typeset/character_art_factory.py +572 -0
  717. sage/typeset/symbols.py +334 -0
  718. sage/typeset/unicode_art.py +183 -0
  719. sage/typeset/unicode_characters.py +101 -0
@@ -0,0 +1,15 @@
1
+ # sage_setup: distribution = sagemath-categories
2
+ from sage.rings.finite_rings.hom_finite_field cimport (SectionFiniteFieldHomomorphism_generic,
3
+ FiniteFieldHomomorphism_generic, FrobeniusEndomorphism_finite_field)
4
+
5
+
6
+ cdef class SectionFiniteFieldHomomorphism_prime(SectionFiniteFieldHomomorphism_generic):
7
+ pass
8
+
9
+
10
+ cdef class FiniteFieldHomomorphism_prime(FiniteFieldHomomorphism_generic):
11
+ pass
12
+
13
+
14
+ cdef class FrobeniusEndomorphism_prime(FrobeniusEndomorphism_finite_field):
15
+ pass
@@ -0,0 +1,164 @@
1
+ # sage_setup: distribution = sagemath-categories
2
+ """
3
+ Finite field morphisms for prime fields
4
+
5
+ Special implementation for prime finite field of:
6
+
7
+ - embeddings of such field into general finite fields
8
+
9
+ - Frobenius endomorphisms (= identity with our assumptions)
10
+
11
+ .. SEEALSO::
12
+
13
+ :mod:`sage.rings.finite_rings.hom_finite_field`
14
+
15
+ AUTHOR:
16
+
17
+ - Xavier Caruso (2012-06-29)
18
+ """
19
+
20
+ #############################################################################
21
+ # Copyright (C) 2012 Xavier Caruso <xavier.caruso@normalesup.org>
22
+ #
23
+ # Distributed under the terms of the GNU General Public License (GPL)
24
+ #
25
+ # http://www.gnu.org/licenses/
26
+ #****************************************************************************
27
+
28
+ from sage.categories.homset import Hom
29
+ from sage.structure.element cimport Element
30
+
31
+ from sage.rings.finite_rings.hom_finite_field cimport SectionFiniteFieldHomomorphism_generic
32
+ from sage.rings.finite_rings.hom_finite_field cimport FiniteFieldHomomorphism_generic
33
+ from sage.rings.finite_rings.hom_finite_field cimport FrobeniusEndomorphism_finite_field
34
+
35
+ from sage.rings.finite_rings.finite_field_base import FiniteField
36
+
37
+
38
+ cdef class SectionFiniteFieldHomomorphism_prime(SectionFiniteFieldHomomorphism_generic):
39
+ cpdef Element _call_(self, x):
40
+ try:
41
+ return self._codomain._element_constructor_(x)
42
+ except TypeError:
43
+ raise ValueError("%s is not in the image of %s" % (x, self._inverse))
44
+
45
+
46
+ cdef class FiniteFieldHomomorphism_prime(FiniteFieldHomomorphism_generic):
47
+ """
48
+ A class implementing embeddings of prime finite fields into
49
+ general finite fields.
50
+ """
51
+ def __init__(self, parent, im_gens=None, base_map=None, check=False, section_class=None):
52
+ """
53
+ TESTS::
54
+
55
+ sage: from sage.rings.finite_rings.hom_prime_finite_field import FiniteFieldHomomorphism_prime
56
+ sage: k = GF(3)
57
+ sage: K.<T> = GF(3^4) # needs sage.rings.finite_rings
58
+ sage: f = FiniteFieldHomomorphism_prime(Hom(k, K)); f # needs sage.rings.finite_rings
59
+ Ring morphism:
60
+ From: Finite Field of size 3
61
+ To: Finite Field in T of size 3^4
62
+ Defn: 1 |--> 1
63
+
64
+ sage: k.<t> = GF(3^2) # needs sage.rings.finite_rings
65
+ sage: K.<T> = GF(3^4) # needs sage.rings.finite_rings
66
+ sage: f = FiniteFieldHomomorphism_prime(Hom(k, K)); f # needs sage.rings.finite_rings
67
+ Traceback (most recent call last):
68
+ ...
69
+ TypeError: The domain is not a finite prime field
70
+ """
71
+ domain = parent.domain()
72
+ if not isinstance(domain, FiniteField) or not domain.is_prime_field():
73
+ raise TypeError("The domain is not a finite prime field")
74
+ if section_class is None:
75
+ section_class = SectionFiniteFieldHomomorphism_prime
76
+ FiniteFieldHomomorphism_generic.__init__(self, parent, im_gens, base_map=base_map,
77
+ check=check, section_class=section_class)
78
+
79
+ cpdef Element _call_(self, x):
80
+ """
81
+ TESTS::
82
+
83
+ sage: # needs sage.rings.finite_rings
84
+ sage: from sage.rings.finite_rings.hom_prime_finite_field import FiniteFieldHomomorphism_prime
85
+ sage: k = GF(3)
86
+ sage: K.<t> = GF(3^5)
87
+ sage: f = FiniteFieldHomomorphism_prime(Hom(k, K))
88
+ sage: a = f(4); a
89
+ 1
90
+ sage: a.parent()
91
+ Finite Field in t of size 3^5
92
+ """
93
+ return self._codomain._element_constructor_(x)
94
+
95
+
96
+ cdef class FrobeniusEndomorphism_prime(FrobeniusEndomorphism_finite_field):
97
+ """
98
+ A class implementing Frobenius endomorphism on prime finite
99
+ fields (i.e. identity map :-).
100
+ """
101
+ def __init__(self, domain, power=1):
102
+ if not isinstance(domain, FiniteField) or not domain.is_prime_field():
103
+ raise TypeError("The domain is not a finite prime field")
104
+ FrobeniusEndomorphism_finite_field.__init__(self, Hom(domain, domain))
105
+ self._order = 1
106
+ self._power = 0
107
+
108
+ cpdef Element _call_(self, x):
109
+ """
110
+ TESTS::
111
+
112
+ sage: k = GF(5)
113
+ sage: Frob = k.frobenius_endomorphism()
114
+ sage: Frob(2)
115
+ 2
116
+ """
117
+ return x
118
+
119
+ def _composition(self, right):
120
+ """
121
+ Return ``self`` o ``right``.
122
+
123
+ It is always ``right``, since ``self`` is always identity because
124
+ the domain is a prime field.
125
+ """
126
+ return right
127
+
128
+ def __pow__(self, n, modulus):
129
+ """
130
+ Return the `n`-th iterate of this endomorphism
131
+ (that is the identity since the domain is a prime
132
+ field).
133
+ """
134
+ return self
135
+
136
+ def fixed_field(self):
137
+ """
138
+ Return the fixed field of ``self``.
139
+
140
+ OUTPUT:
141
+
142
+ - a tuple `(K, e)`, where `K` is the subfield of the domain
143
+ consisting of elements fixed by ``self`` and `e` is an
144
+ embedding of `K` into the domain.
145
+
146
+ .. NOTE::
147
+
148
+ Since here the domain is a prime field, the subfield
149
+ is the same prime field and the embedding is necessarily
150
+ the identity map.
151
+
152
+ EXAMPLES::
153
+
154
+ sage: k.<t> = GF(5)
155
+ sage: f = k.frobenius_endomorphism(2); f
156
+ Identity endomorphism of Finite Field of size 5
157
+ sage: kfixed, embed = f.fixed_field()
158
+
159
+ sage: kfixed == k
160
+ True
161
+ sage: [ embed(x) == x for x in kfixed ]
162
+ [True, True, True, True, True]
163
+ """
164
+ return self.domain(), self.domain().hom(self.domain())
@@ -0,0 +1,357 @@
1
+ # sage_setup: distribution = sagemath-categories
2
+ # sage.doctest: needs sage.rings.finite_rings
3
+ """
4
+ Homset for finite fields
5
+
6
+ This is the set of all field homomorphisms between two finite fields.
7
+
8
+ EXAMPLES::
9
+
10
+ sage: R.<t> = ZZ[]
11
+ sage: E.<a> = GF(25, modulus = t^2 - 2)
12
+ sage: F.<b> = GF(625)
13
+ sage: H = Hom(E, F)
14
+ sage: f = H([4*b^3 + 4*b^2 + 4*b]); f
15
+ Ring morphism:
16
+ From: Finite Field in a of size 5^2
17
+ To: Finite Field in b of size 5^4
18
+ Defn: a |--> 4*b^3 + 4*b^2 + 4*b
19
+ sage: f(2)
20
+ 2
21
+ sage: f(a)
22
+ 4*b^3 + 4*b^2 + 4*b
23
+ sage: len(H)
24
+ 2
25
+ sage: [phi(2*a)^2 for phi in Hom(E, F)]
26
+ [3, 3]
27
+
28
+ We can also create endomorphisms::
29
+
30
+ sage: End(E)
31
+ Automorphism group of Finite Field in a of size 5^2
32
+ sage: End(GF(7))[0]
33
+ Ring endomorphism of Finite Field of size 7
34
+ Defn: 1 |--> 1
35
+ sage: H = Hom(GF(7), GF(49, 'c'))
36
+ sage: H[0](2)
37
+ 2
38
+ """
39
+
40
+ from sage.rings.homset import RingHomset_generic
41
+ from sage.rings.finite_rings.hom_finite_field import FiniteFieldHomomorphism_generic
42
+ from sage.rings.finite_rings.finite_field_base import FiniteField
43
+ from sage.rings.integer import Integer
44
+ from sage.rings.morphism import RingHomomorphism_im_gens
45
+ from sage.structure.sequence import Sequence
46
+
47
+
48
+ class FiniteFieldHomset(RingHomset_generic):
49
+ """
50
+ Set of homomorphisms with domain a given finite field.
51
+ """
52
+ # def __init__(self, R, S, category=None):
53
+ # if category is None:
54
+ # from sage.categories.finite_fields import FiniteFields
55
+ # category = FiniteFields()
56
+ # RingHomset_generic.__init__(self, R, S, category)
57
+
58
+ def __call__(self, im_gens, base_map=None, check=True):
59
+ """
60
+ Construct the homomorphism defined by ``im_gens``.
61
+
62
+ EXAMPLES::
63
+
64
+ sage: R.<t> = ZZ[]
65
+ sage: E.<a> = GF(25, modulus = t^2 - 2)
66
+ sage: F.<b> = GF(625)
67
+ sage: End(E)
68
+ Automorphism group of Finite Field in a of size 5^2
69
+ sage: list(Hom(E, F))
70
+ [Ring morphism:
71
+ From: Finite Field in a of size 5^2
72
+ To: Finite Field in b of size 5^4
73
+ Defn: a |--> 4*b^3 + 4*b^2 + 4*b,
74
+ Ring morphism:
75
+ From: Finite Field in a of size 5^2
76
+ To: Finite Field in b of size 5^4
77
+ Defn: a |--> b^3 + b^2 + b]
78
+ sage: [phi(2*a)^2 for phi in Hom(E, F)]
79
+ [3, 3]
80
+ sage: End(GF(7))[0]
81
+ Ring endomorphism of Finite Field of size 7
82
+ Defn: 1 |--> 1
83
+ sage: H = Hom(GF(7), GF(49, 'c'))
84
+ sage: H[0](2)
85
+ 2
86
+ sage: Hom(GF(49, 'c'), GF(7)).list()
87
+ []
88
+ sage: Hom(GF(49, 'c'), GF(81, 'd')).list()
89
+ []
90
+ sage: H = Hom(GF(9, 'a'), GF(81, 'b'))
91
+ sage: H == loads(dumps(H))
92
+ True
93
+ """
94
+ if isinstance(im_gens, FiniteFieldHomomorphism_generic):
95
+ if base_map is not None:
96
+ raise ValueError("Cannot specify base map when providing morphism")
97
+ return self._coerce_impl(im_gens)
98
+ try:
99
+ if self.domain().degree() == 1:
100
+ from sage.rings.finite_rings.hom_prime_finite_field import FiniteFieldHomomorphism_prime
101
+ return FiniteFieldHomomorphism_prime(self, im_gens, base_map=base_map, check=check)
102
+ if isinstance(self.codomain(), FiniteField):
103
+ return FiniteFieldHomomorphism_generic(self, im_gens, base_map=base_map, check=check)
104
+ # Currently, FiniteFieldHomomorphism_generic does not work if
105
+ # the codomain is not derived from the finite field base class;
106
+ # in that case, we have to fall back to the generic
107
+ # implementation for rings
108
+ else:
109
+ return RingHomomorphism_im_gens(self, im_gens, base_map=base_map, check=check)
110
+ except (NotImplementedError, ValueError):
111
+ try:
112
+ return self._coerce_impl(im_gens)
113
+ except TypeError:
114
+ raise TypeError("images do not define a valid homomorphism")
115
+
116
+ def _coerce_impl(self, x):
117
+ """
118
+ Coercion of other morphisms.
119
+
120
+ EXAMPLES::
121
+
122
+ sage: k.<a> = GF(25)
123
+ sage: l.<b> = GF(625)
124
+ sage: H = Hom(k, l)
125
+ sage: G = loads(dumps(H))
126
+ sage: H is G
127
+ True
128
+ sage: G.coerce(list(H)[0]) # indirect doctest
129
+ Ring morphism:
130
+ From: Finite Field in a of size 5^2
131
+ To: Finite Field in b of size 5^4
132
+ Defn: a |--> 4*b^3 + 4*b^2 + 4*b + 3
133
+ """
134
+ if not isinstance(x, FiniteFieldHomomorphism_generic):
135
+ raise TypeError
136
+ if x.parent() is self:
137
+ return x
138
+ if x.parent() == self:
139
+ return FiniteFieldHomomorphism_generic(self, x.im_gens())
140
+ raise TypeError
141
+
142
+ def _repr_(self):
143
+ """
144
+ Return a string representation of ``self``.
145
+
146
+ EXAMPLES::
147
+
148
+ sage: Hom(GF(4, 'a'), GF(16, 'b'))._repr_()
149
+ 'Set of field embeddings from Finite Field in a of size 2^2 to Finite Field in b of size 2^4'
150
+ sage: Hom(GF(4, 'a'), GF(4, 'c'))._repr_()
151
+ 'Set of field embeddings from Finite Field in a of size 2^2 to Finite Field in c of size 2^2'
152
+ sage: Hom(GF(4, 'a'), GF(4, 'a'))._repr_()
153
+ 'Automorphism group of Finite Field in a of size 2^2'
154
+ """
155
+ D = self.domain()
156
+ C = self.codomain()
157
+ if C == D:
158
+ return "Automorphism group of %s" % D
159
+ else:
160
+ return "Set of field embeddings from %s to %s" % (D, C)
161
+
162
+ def is_aut(self):
163
+ """
164
+ Check if ``self`` is an automorphism.
165
+
166
+ EXAMPLES::
167
+
168
+ sage: Hom(GF(4, 'a'), GF(16, 'b')).is_aut()
169
+ False
170
+ sage: Hom(GF(4, 'a'), GF(4, 'c')).is_aut()
171
+ False
172
+ sage: Hom(GF(4, 'a'), GF(4, 'a')).is_aut()
173
+ True
174
+ """
175
+ return self.domain() == self.codomain()
176
+
177
+ def order(self):
178
+ """
179
+ Return the order of this set of field homomorphisms.
180
+
181
+ EXAMPLES::
182
+
183
+ sage: K.<a> = GF(125)
184
+ sage: End(K)
185
+ Automorphism group of Finite Field in a of size 5^3
186
+ sage: End(K).order()
187
+ 3
188
+ sage: L.<b> = GF(25)
189
+ sage: Hom(L, K).order() == Hom(K, L).order() == 0
190
+ True
191
+ """
192
+ try:
193
+ return self.__order
194
+ except AttributeError:
195
+ pass
196
+ n = len(self.list())
197
+ self.__order = n
198
+ return n
199
+
200
+ def __len__(self):
201
+ """
202
+ Return the number of elements of ``self``.
203
+
204
+ EXAMPLES::
205
+
206
+ sage: K.<a> = GF(25)
207
+ sage: len(End(K))
208
+ 2
209
+ """
210
+ return self.order()
211
+
212
+ def list(self):
213
+ """
214
+ Return a list of all the elements in this set of field homomorphisms.
215
+
216
+ EXAMPLES::
217
+
218
+ sage: K.<a> = GF(25)
219
+ sage: End(K)
220
+ Automorphism group of Finite Field in a of size 5^2
221
+ sage: list(End(K))
222
+ [Ring endomorphism of Finite Field in a of size 5^2
223
+ Defn: a |--> 4*a + 1,
224
+ Ring endomorphism of Finite Field in a of size 5^2
225
+ Defn: a |--> a]
226
+ sage: L.<z> = GF(7^6)
227
+ sage: [g for g in End(L) if (g^3)(z) == z]
228
+ [Ring endomorphism of Finite Field in z of size 7^6
229
+ Defn: z |--> z,
230
+ Ring endomorphism of Finite Field in z of size 7^6
231
+ Defn: z |--> 5*z^4 + 5*z^3 + 4*z^2 + 3*z + 1,
232
+ Ring endomorphism of Finite Field in z of size 7^6
233
+ Defn: z |--> 3*z^5 + 5*z^4 + 5*z^2 + 2*z + 3]
234
+
235
+ Between isomorphic fields with different moduli::
236
+
237
+ sage: k1 = GF(1009)
238
+ sage: k2 = GF(1009, modulus='primitive')
239
+ sage: Hom(k1, k2).list()
240
+ [Ring morphism:
241
+ From: Finite Field of size 1009
242
+ To: Finite Field of size 1009
243
+ Defn: 1 |--> 1]
244
+ sage: Hom(k2, k1).list()
245
+ [Ring morphism:
246
+ From: Finite Field of size 1009
247
+ To: Finite Field of size 1009
248
+ Defn: 11 |--> 11]
249
+
250
+ sage: k1.<a> = GF(1009^2, modulus='first_lexicographic')
251
+ sage: k2.<b> = GF(1009^2, modulus='conway')
252
+ sage: Hom(k1, k2).list()
253
+ [Ring morphism:
254
+ From: Finite Field in a of size 1009^2
255
+ To: Finite Field in b of size 1009^2
256
+ Defn: a |--> 290*b + 864,
257
+ Ring morphism:
258
+ From: Finite Field in a of size 1009^2
259
+ To: Finite Field in b of size 1009^2
260
+ Defn: a |--> 719*b + 145]
261
+
262
+ TESTS:
263
+
264
+ Check that :issue:`11390` is fixed::
265
+
266
+ sage: K = GF(1<<16,'a'); L = GF(1<<32,'b')
267
+ sage: K.Hom(L)[0]
268
+ Ring morphism:
269
+ From: Finite Field in a of size 2^16
270
+ To: Finite Field in b of size 2^32
271
+ Defn: a |--> b^29 + b^27 + b^26 + b^23 + b^21 + b^19 + b^18 + b^16 + b^14 + b^13 + b^11 + b^10 + b^9 + b^8 + b^7 + b^6 + b^5 + b^2 + b
272
+ """
273
+ try:
274
+ return self.__list
275
+ except AttributeError:
276
+ pass
277
+ D = self.domain()
278
+ C = self.codomain()
279
+ if D.characteristic() == C.characteristic() and Integer(D.degree()).divides(Integer(C.degree())):
280
+ f = D.modulus()
281
+ g = C['x'](f)
282
+ r = g.roots()
283
+ v = [self(D.hom(a, C)) for a, _ in r]
284
+ v = Sequence(v, immutable=True, cr=True)
285
+ else:
286
+ v = Sequence([], immutable=True, cr=False)
287
+ self.__list = v
288
+ return v
289
+
290
+ def __getitem__(self, n):
291
+ """
292
+ EXAMPLES::
293
+
294
+ sage: H = Hom(GF(32, 'a'), GF(1024, 'b'))
295
+ sage: H[1]
296
+ Ring morphism:
297
+ From: Finite Field in a of size 2^5
298
+ To: Finite Field in b of size 2^10
299
+ Defn: a |--> b^7 + b^5
300
+ sage: H[2:4]
301
+ [Ring morphism:
302
+ From: Finite Field in a of size 2^5
303
+ To: Finite Field in b of size 2^10
304
+ Defn: a |--> b^8 + b^6 + b^2,
305
+ Ring morphism:
306
+ From: Finite Field in a of size 2^5
307
+ To: Finite Field in b of size 2^10
308
+ Defn: a |--> b^9 + b^7 + b^6 + b^5 + b^4]
309
+ """
310
+ return self.list()[n]
311
+
312
+ def index(self, item):
313
+ """
314
+ Return the index of ``self``.
315
+
316
+ EXAMPLES::
317
+
318
+ sage: K.<z> = GF(1024)
319
+ sage: g = End(K)[3]
320
+ sage: End(K).index(g) == 3
321
+ True
322
+ """
323
+ return self.list().index(item)
324
+
325
+ def _an_element_(self):
326
+ """
327
+ Return an element of ``self``.
328
+
329
+ TESTS::
330
+
331
+ sage: Hom(GF(3^3, 'a'), GF(3^6, 'b')).an_element() # random
332
+ Ring morphism:
333
+ From: Finite Field in a of size 3^3
334
+ To: Finite Field in b of size 3^6
335
+ Defn: a |--> 2*b^5 + 2*b^4
336
+
337
+ sage: Hom(GF(3^3, 'a'), GF(3^2, 'c')).an_element()
338
+ Traceback (most recent call last):
339
+ ...
340
+ EmptySetError: no homomorphisms from Finite Field in a of size 3^3 to Finite Field in c of size 3^2
341
+
342
+ .. TODO::
343
+
344
+ Use a more sophisticated algorithm; see also :issue:`8751`.
345
+ """
346
+ K = self.domain()
347
+ L = self.codomain()
348
+ if K.degree() == 1:
349
+ return L.coerce_map_from(K)
350
+ elif not K.degree().divides(L.degree()):
351
+ from sage.categories.sets_cat import EmptySetError
352
+ raise EmptySetError('no homomorphisms from %s to %s' % (K, L))
353
+ return K.hom([K.modulus().any_root(L)])
354
+
355
+
356
+ from sage.misc.persist import register_unpickle_override
357
+ register_unpickle_override('sage.rings.finite_field_morphism', 'FiniteFieldHomset', FiniteFieldHomset)
@@ -0,0 +1,56 @@
1
+ # sage_setup: distribution = sagemath-categories
2
+ from sage.libs.gmp.types cimport *
3
+ from sage.rings.finite_rings.stdint cimport *
4
+ from sage.rings.finite_rings.element_base cimport FiniteRingElement
5
+ from sage.rings.integer cimport Integer
6
+
7
+
8
+ cdef class NativeIntStruct:
9
+ cdef Integer sageInteger
10
+ cdef int_fast32_t int32
11
+ cdef int_fast64_t int64
12
+ cdef readonly list table # list of elements of IntegerModRing(n)
13
+ cdef readonly list inverses # list of inverses (None if not invertible)
14
+ cdef inline type element_class(self):
15
+ if self.int32 > 0:
16
+ return IntegerMod_int
17
+ elif self.int64 > 0:
18
+ return IntegerMod_int64
19
+ else:
20
+ return IntegerMod_gmp
21
+
22
+
23
+ cdef class IntegerMod_abstract(FiniteRingElement):
24
+ cdef NativeIntStruct _modulus
25
+ cdef _new_c_from_long(self, long value)
26
+ cdef IntegerMod_abstract _new_c_fast(self, unsigned long value)
27
+ cdef void set_from_mpz(self, mpz_t value) noexcept
28
+ cdef void set_from_long(self, long value) noexcept
29
+ cdef void set_from_ulong_fast(self, unsigned long value) noexcept
30
+ cdef bint is_square_c(self) except -2
31
+ cpdef bint is_one(self) noexcept
32
+ cpdef bint is_unit(self) noexcept
33
+ cpdef _floordiv_(self, other)
34
+
35
+ cdef class IntegerMod_gmp(IntegerMod_abstract):
36
+ cdef mpz_t value
37
+ cdef IntegerMod_gmp _new_c(self)
38
+ cdef shift(IntegerMod_gmp self, long k)
39
+
40
+ cdef class IntegerMod_int(IntegerMod_abstract):
41
+ cdef int_fast32_t ivalue
42
+ cdef void set_from_int(IntegerMod_int self, int_fast32_t value) noexcept
43
+ cdef int_fast32_t get_int_value(IntegerMod_int self) noexcept
44
+ cdef IntegerMod_int _new_c(self, int_fast32_t value)
45
+ cdef shift(IntegerMod_int self, int k)
46
+
47
+ cdef class IntegerMod_int64(IntegerMod_abstract):
48
+ cdef int_fast64_t ivalue
49
+ cdef void set_from_int(IntegerMod_int64 self, int_fast64_t value) noexcept
50
+ cdef int_fast64_t get_int_value(IntegerMod_int64 self) noexcept
51
+ cdef IntegerMod_int64 _new_c(self, int_fast64_t value)
52
+ cdef shift(IntegerMod_int64 self, int k)
53
+
54
+
55
+ cdef int_fast32_t mod_inverse_int(int_fast32_t x, int_fast32_t n) except 0
56
+ cdef bint use_32bit_type(int_fast64_t modulus) noexcept