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,672 @@
1
+ # sage_setup: distribution = sagemath-categories
2
+ r"""
3
+ Generalized functions
4
+
5
+ Sage implements several generalized functions (also known as
6
+ distributions) such as Dirac delta, Heaviside step functions. These
7
+ generalized functions can be manipulated within Sage like any other
8
+ symbolic functions.
9
+
10
+
11
+ AUTHORS:
12
+
13
+ - Golam Mortuza Hossain (2009-06-26): initial version
14
+
15
+ EXAMPLES:
16
+
17
+ Dirac delta function::
18
+
19
+ sage: dirac_delta(x) # needs sage.symbolic
20
+ dirac_delta(x)
21
+
22
+ Heaviside step function::
23
+
24
+ sage: heaviside(x) # needs sage.symbolic
25
+ heaviside(x)
26
+
27
+ Unit step function::
28
+
29
+ sage: unit_step(x) # needs sage.symbolic
30
+ unit_step(x)
31
+
32
+ Signum (sgn) function::
33
+
34
+ sage: sgn(x) # needs sage.symbolic
35
+ sgn(x)
36
+
37
+ Kronecker delta function::
38
+
39
+ sage: m, n = var('m,n') # needs sage.symbolic
40
+ sage: kronecker_delta(m, n) # needs sage.symbolic
41
+ kronecker_delta(m, n)
42
+ """
43
+
44
+ # ############################################################################
45
+ #
46
+ # Copyright (C) 2009 Golam Mortuza Hossain <gmhossain@gmail.com>
47
+ #
48
+ # Distributed under the terms of the GNU General Public License (GPL v2+)
49
+ # https://www.gnu.org/licenses/
50
+ #
51
+ # ############################################################################
52
+
53
+ from sage.misc.lazy_import import lazy_import
54
+ from sage.rings.integer_ring import ZZ
55
+ from sage.symbolic.function import BuiltinFunction, GinacFunction
56
+
57
+ lazy_import('sage.misc.latex', 'latex')
58
+ lazy_import('sage.rings.complex_interval_field', 'ComplexIntervalField')
59
+
60
+
61
+ class FunctionDiracDelta(BuiltinFunction):
62
+ r"""
63
+ The Dirac delta (generalized) function, `\delta(x)` (``dirac_delta(x)``).
64
+
65
+ INPUT:
66
+
67
+ - ``x`` -- a real number or a symbolic expression
68
+
69
+ DEFINITION:
70
+
71
+ Dirac delta function `\delta(x)`, is defined in Sage as:
72
+
73
+ `\delta(x) = 0` for real `x \ne 0` and
74
+ `\int_{-\infty}^{\infty} \delta(x) dx = 1`
75
+
76
+ Its alternate definition with respect to an arbitrary test
77
+ function `f(x)` is
78
+
79
+ `\int_{-\infty}^{\infty} f(x) \delta(x-a) dx = f(a)`
80
+
81
+ EXAMPLES::
82
+
83
+ sage: # needs sage.symbolic
84
+ sage: dirac_delta(1)
85
+ 0
86
+ sage: dirac_delta(0)
87
+ dirac_delta(0)
88
+ sage: dirac_delta(x)
89
+ dirac_delta(x)
90
+ sage: integrate(dirac_delta(x), x, -1, 1, algorithm='sympy') # needs sympy
91
+ 1
92
+
93
+ REFERENCES:
94
+
95
+ - :wikipedia:`Dirac_delta_function`
96
+ """
97
+ def __init__(self):
98
+ r"""
99
+ The Dirac delta (generalized) function, ``dirac_delta(x)``.
100
+
101
+ INPUT:
102
+
103
+ - ``x`` -- a real number or a symbolic expression
104
+
105
+ EXAMPLES::
106
+
107
+ sage: # needs sage.symbolic
108
+ sage: dirac_delta(1)
109
+ 0
110
+ sage: dirac_delta(0)
111
+ dirac_delta(0)
112
+ sage: dirac_delta(x)
113
+ dirac_delta(x)
114
+ sage: latex(dirac_delta(x))
115
+ \delta\left(x\right)
116
+
117
+ sage: loads(dumps(dirac_delta(x))) # needs sage.symbolic
118
+ dirac_delta(x)
119
+ sage: dirac_delta(x)._sympy_() # needs sympy sage.symbolic
120
+ DiracDelta(x)
121
+ """
122
+ BuiltinFunction.__init__(self, "dirac_delta", latex_name=r"\delta",
123
+ conversions=dict(maxima='delta',
124
+ mathematica='DiracDelta',
125
+ sympy='DiracDelta',
126
+ giac='Dirac'))
127
+
128
+ def _eval_(self, x):
129
+ """
130
+ INPUT:
131
+
132
+ - ``x`` -- a real number or a symbolic expression
133
+
134
+ EXAMPLES::
135
+
136
+ sage: # needs sage.symbolic
137
+ sage: dirac_delta(1)
138
+ 0
139
+ sage: dirac_delta(0)
140
+ dirac_delta(0)
141
+ sage: dirac_delta(x)
142
+ dirac_delta(x)
143
+ sage: dirac_delta(exp(-10000000000000000000))
144
+ 0
145
+
146
+ Evaluation test::
147
+
148
+ sage: dirac_delta(x).subs(x=1) # needs sage.symbolic
149
+ 0
150
+ """
151
+ try:
152
+ return self._evalf_(x)
153
+ except (TypeError, ValueError): # x is symbolic
154
+ pass
155
+ return None
156
+
157
+ def _evalf_(self, x, **kwds):
158
+ """
159
+ TESTS::
160
+
161
+ sage: h(x) = dirac_delta(x) # needs sage.symbolic
162
+ sage: h(pi).numerical_approx() # needs sage.symbolic
163
+ 0.000000000000000
164
+ """
165
+ approx_x = ComplexIntervalField()(x)
166
+ if bool(approx_x.imag() == 0): # x is real
167
+ if bool(approx_x.real() == 0): # x is zero
168
+ return None
169
+ else:
170
+ return 0
171
+ raise ValueError("Numeric evaluation of symbolic expression")
172
+
173
+
174
+ dirac_delta = FunctionDiracDelta()
175
+
176
+
177
+ class FunctionHeaviside(GinacFunction):
178
+ r"""
179
+ The Heaviside step function, `H(x)` (``heaviside(x)``).
180
+
181
+ INPUT:
182
+
183
+ - ``x`` -- a real number or a symbolic expression
184
+
185
+ DEFINITION:
186
+
187
+ The Heaviside step function, `H(x)` is defined in Sage as:
188
+
189
+ `H(x) = 0` for `x < 0` and `H(x) = 1` for `x > 0`
190
+
191
+ .. SEEALSO:: :func:`unit_step()<sage.functions.generalized.FunctionUnitStep>`
192
+
193
+ EXAMPLES::
194
+
195
+ sage: # needs sage.symbolic
196
+ sage: heaviside(-1)
197
+ 0
198
+ sage: heaviside(1)
199
+ 1
200
+ sage: heaviside(0)
201
+ heaviside(0)
202
+ sage: heaviside(x)
203
+ heaviside(x)
204
+
205
+ sage: heaviside(-1/2) # needs sage.symbolic
206
+ 0
207
+ sage: heaviside(exp(-1000000000000000000000)) # needs sage.symbolic
208
+ 1
209
+
210
+ TESTS::
211
+
212
+ sage: heaviside(x)._sympy_() # needs sympy sage.symbolic
213
+ Heaviside(x)
214
+ sage: heaviside(x).subs(x=1) # needs sage.symbolic
215
+ 1
216
+ sage: heaviside(x).subs(x=-1) # needs sage.symbolic
217
+ 0
218
+
219
+ ::
220
+
221
+ sage: # needs sage.symbolic
222
+ sage: ex = heaviside(x) + 1
223
+ sage: t = loads(dumps(ex)); t
224
+ heaviside(x) + 1
225
+ sage: bool(t == ex)
226
+ True
227
+ sage: t.subs(x=1)
228
+ 2
229
+
230
+ REFERENCES:
231
+
232
+ - :wikipedia:`Heaviside_function`
233
+ """
234
+ def __init__(self):
235
+ r"""
236
+ The Heaviside step function, ``heaviside(x)``.
237
+
238
+ INPUT:
239
+
240
+ - ``x`` -- a real number or a symbolic expression
241
+
242
+ EXAMPLES::
243
+
244
+ sage: # needs sage.symbolic
245
+ sage: heaviside(-1)
246
+ 0
247
+ sage: heaviside(1)
248
+ 1
249
+ sage: heaviside(0)
250
+ heaviside(0)
251
+ sage: heaviside(x)
252
+ heaviside(x)
253
+ sage: latex(heaviside(x))
254
+ H\left(x\right)
255
+ sage: heaviside(x)._sympy_() # needs sympy
256
+ Heaviside(x)
257
+ sage: heaviside(x)._giac_() # needs giac
258
+ Heaviside(sageVARx)
259
+ sage: h(x) = heaviside(x)
260
+ sage: h(pi).numerical_approx()
261
+ 1.00000000000000
262
+ """
263
+ GinacFunction.__init__(self, "heaviside", latex_name='H',
264
+ conversions=dict(maxima='hstep',
265
+ mathematica='HeavisideTheta',
266
+ sympy='Heaviside',
267
+ giac='Heaviside'))
268
+
269
+ def _derivative_(self, x, diff_param=None):
270
+ """
271
+ Derivative of Heaviside step function.
272
+
273
+ EXAMPLES::
274
+
275
+ sage: heaviside(x).diff(x) # needs sage.symbolic
276
+ dirac_delta(x)
277
+ """
278
+ return dirac_delta(x)
279
+
280
+
281
+ heaviside = FunctionHeaviside()
282
+
283
+
284
+ class FunctionUnitStep(GinacFunction):
285
+ r"""
286
+ The unit step function, `\mathrm{u}(x)` (``unit_step(x)``).
287
+
288
+ INPUT:
289
+
290
+ - ``x`` -- a real number or a symbolic expression
291
+
292
+ DEFINITION:
293
+
294
+ The unit step function, `\mathrm{u}(x)` is defined in Sage as:
295
+
296
+ `\mathrm{u}(x) = 0` for `x < 0` and `\mathrm{u}(x) = 1` for `x \geq 0`
297
+
298
+ .. SEEALSO:: :func:`heaviside()<sage.functions.generalized.FunctionHeaviside>`
299
+
300
+ EXAMPLES::
301
+
302
+ sage: # needs sage.symbolic
303
+ sage: unit_step(-1)
304
+ 0
305
+ sage: unit_step(1)
306
+ 1
307
+ sage: unit_step(0)
308
+ 1
309
+ sage: unit_step(x)
310
+ unit_step(x)
311
+ sage: unit_step(-exp(-10000000000000000000))
312
+ 0
313
+
314
+ TESTS::
315
+
316
+ sage: # needs sage.symbolic
317
+ sage: unit_step(x).subs(x=1)
318
+ 1
319
+ sage: unit_step(x).subs(x=0)
320
+ 1
321
+ sage: h(x) = unit_step(x)
322
+ sage: h(pi).numerical_approx()
323
+ 1.00000000000000
324
+ """
325
+ def __init__(self):
326
+ r"""
327
+ The unit step function, ``unit_step(x)``.
328
+
329
+ INPUT:
330
+
331
+ - ``x`` -- a real number or a symbolic expression
332
+
333
+ EXAMPLES::
334
+
335
+ sage: # needs sage.symbolic
336
+ sage: unit_step(-1)
337
+ 0
338
+ sage: unit_step(1)
339
+ 1
340
+ sage: unit_step(0)
341
+ 1
342
+ sage: unit_step(x)
343
+ unit_step(x)
344
+ sage: latex(unit_step(x))
345
+ \mathrm{u}\left(x\right)
346
+
347
+ TESTS::
348
+
349
+ sage: t = loads(dumps(unit_step(x) + 1)); t # needs sage.symbolic
350
+ unit_step(x) + 1
351
+ sage: t.subs(x=0) # needs sage.symbolic
352
+ 2
353
+ """
354
+ GinacFunction.__init__(self, "unit_step", latex_name=r"\mathrm{u}",
355
+ conversions=dict(mathematica='UnitStep'))
356
+
357
+ def _derivative_(self, x, diff_param=None):
358
+ """
359
+ Derivative of unit step function.
360
+
361
+ EXAMPLES::
362
+
363
+ sage: unit_step(x).diff(x) # needs sage.symbolic
364
+ dirac_delta(x)
365
+ """
366
+ return dirac_delta(x)
367
+
368
+
369
+ unit_step = FunctionUnitStep()
370
+
371
+
372
+ class FunctionSignum(BuiltinFunction):
373
+ r"""
374
+ The signum or sgn function `\mathrm{sgn}(x)` (``sgn(x)``).
375
+
376
+ INPUT:
377
+
378
+ - ``x`` -- a real number or a symbolic expression
379
+
380
+ DEFINITION:
381
+
382
+ The sgn function, `\mathrm{sgn}(x)` is defined as:
383
+
384
+ `\mathrm{sgn}(x) = 1` for `x > 0`,
385
+ `\mathrm{sgn}(x) = 0` for `x = 0` and
386
+ `\mathrm{sgn}(x) = -1` for `x < 0`
387
+
388
+ EXAMPLES::
389
+
390
+ sage: sgn(-1)
391
+ -1
392
+ sage: sgn(1)
393
+ 1
394
+ sage: sgn(0)
395
+ 0
396
+ sage: sgn(x) # needs sage.symbolic
397
+ sgn(x)
398
+
399
+ We can also use ``sign``::
400
+
401
+ sage: sign(1)
402
+ 1
403
+ sage: sign(0)
404
+ 0
405
+ sage: a = AA(-5).nth_root(7) # needs sage.rings.number_field
406
+ sage: sign(a) # needs sage.rings.number_field
407
+ -1
408
+
409
+ TESTS:
410
+
411
+ Check if conversions to sympy and others work (:issue:`11921`)::
412
+
413
+ sage: sgn(x)._sympy_() # needs sympy sage.symbolic
414
+ sign(x)
415
+ sage: sgn(x)._fricas_init_() # needs sage.symbolic
416
+ '(x+->abs(x)/x)(x)'
417
+ sage: sgn(x)._giac_() # needs giac sage.symbolic
418
+ sign(sageVARx)
419
+
420
+ Test for :issue:`31085`::
421
+
422
+ sage: fricas(sign(x)).eval(x=-3) # optional - fricas # needs sage.symbolic
423
+ - 1
424
+
425
+ REFERENCES:
426
+
427
+ - :wikipedia:`Sign_function`
428
+ """
429
+ def __init__(self):
430
+ r"""
431
+ The sgn function, ``sgn(x)``.
432
+
433
+ EXAMPLES::
434
+
435
+ sage: sgn(-1)
436
+ -1
437
+ sage: sgn(1)
438
+ 1
439
+ sage: sgn(0)
440
+ 0
441
+ sage: sgn(x) # needs sage.symbolic
442
+ sgn(x)
443
+ sage: sgn(x)._sympy_() # needs sympy sage.symbolic
444
+ sign(x)
445
+ """
446
+ BuiltinFunction.__init__(self, "sgn", latex_name=r"\mathrm{sgn}",
447
+ conversions=dict(maxima='signum', mathematica='Sign',
448
+ sympy='sign', giac='sign',
449
+ fricas='(x+->abs(x)/x)'),
450
+ alt_name='sign')
451
+
452
+ def _eval_(self, x):
453
+ """
454
+
455
+ EXAMPLES::
456
+
457
+ sage: sgn(-1)
458
+ -1
459
+ sage: sgn(1)
460
+ 1
461
+ sage: sgn(0)
462
+ 0
463
+ sage: sgn(x) # needs sage.symbolic
464
+ sgn(x)
465
+ sage: sgn(-exp(-10000000000000000000)) # needs sage.symbolic
466
+ -1
467
+
468
+ Evaluation test::
469
+
470
+ sage: sgn(x).subs(x=1) # needs sage.symbolic
471
+ 1
472
+ sage: sgn(x).subs(x=0) # needs sage.symbolic
473
+ 0
474
+ sage: sgn(x).subs(x=-1) # needs sage.symbolic
475
+ -1
476
+
477
+ More tests::
478
+
479
+ sage: sign(RR(2))
480
+ 1
481
+ sage: sign(RDF(2))
482
+ 1
483
+ sage: sign(AA(-2)) # needs sage.rings.number_field
484
+ -1
485
+ sage: sign(AA(0)) # needs sage.rings.number_field
486
+ 0
487
+ """
488
+ try:
489
+ return self._evalf_(x)
490
+ except (TypeError, ValueError): # x is symbolic
491
+ pass
492
+ return None
493
+
494
+ def _evalf_(self, x, **kwds):
495
+ """
496
+ TESTS:
497
+
498
+ Check that :issue:`16587` is fixed::
499
+
500
+ sage: # needs sage.symbolic
501
+ sage: M = sgn(3/2, hold=True); M
502
+ sgn(3/2)
503
+ sage: M.n()
504
+ 1
505
+ sage: h(x) = sgn(x)
506
+ sage: h(pi).numerical_approx()
507
+ 1.00000000000000
508
+ """
509
+ if hasattr(x, 'sign'): # First check if x has a sign method
510
+ return x.sign()
511
+ if hasattr(x, 'sgn'): # or a sgn method
512
+ return x.sgn()
513
+ approx_x = ComplexIntervalField()(x)
514
+ if bool(approx_x.imag() == 0): # x is real
515
+ if bool(approx_x.real() == 0): # x is zero
516
+ return ZZ(0)
517
+ # Now we have a nonzero real
518
+ if bool((approx_x**(0.5)).imag() == 0): # Check: x > 0
519
+ return ZZ(1)
520
+ else:
521
+ return ZZ(-1)
522
+ raise ValueError("Numeric evaluation of symbolic expression")
523
+
524
+ def _derivative_(self, x, diff_param=None):
525
+ """
526
+ Derivative of sgn function.
527
+
528
+ EXAMPLES::
529
+
530
+ sage: sgn(x).diff(x) # needs sage.symbolic
531
+ 2*dirac_delta(x)
532
+ """
533
+ assert diff_param == 0
534
+ return 2 * dirac_delta(x)
535
+
536
+
537
+ sgn = FunctionSignum()
538
+ sign = sgn
539
+
540
+
541
+ class FunctionKroneckerDelta(BuiltinFunction):
542
+ r"""
543
+ The Kronecker delta function `\delta_{m,n}` (``kronecker_delta(m, n)``).
544
+
545
+ INPUT:
546
+
547
+ - ``m`` -- a number or a symbolic expression
548
+ - ``n`` -- a number or a symbolic expression
549
+
550
+ DEFINITION:
551
+
552
+ Kronecker delta function `\delta_{m,n}` is defined as:
553
+
554
+ `\delta_{m,n} = 0` for `m \ne n` and
555
+ `\delta_{m,n} = 1` for `m = n`
556
+
557
+ EXAMPLES::
558
+
559
+ sage: kronecker_delta(1, 2) # needs sage.rings.complex_interval_field
560
+ 0
561
+ sage: kronecker_delta(1, 1) # needs sage.rings.complex_interval_field
562
+ 1
563
+ sage: m, n = var('m,n') # needs sage.symbolic
564
+ sage: kronecker_delta(m, n) # needs sage.symbolic
565
+ kronecker_delta(m, n)
566
+
567
+ REFERENCES:
568
+
569
+ - :wikipedia:`Kronecker_delta`
570
+ """
571
+ def __init__(self):
572
+ r"""
573
+ The Kronecker delta function.
574
+
575
+ EXAMPLES::
576
+
577
+ sage: kronecker_delta(1, 2) # needs sage.rings.complex_interval_field
578
+ 0
579
+ sage: kronecker_delta(1, 1) # needs sage.rings.complex_interval_field
580
+ 1
581
+ sage: y = var('y') # needs sage.symbolic
582
+ sage: kronecker_delta(x, y)._sympy_() # needs sympy sage.symbolic
583
+ KroneckerDelta(x, y)
584
+ """
585
+ BuiltinFunction.__init__(self, "kronecker_delta", nargs=2,
586
+ conversions=dict(maxima='kron_delta',
587
+ mathematica='KroneckerDelta',
588
+ sympy='KroneckerDelta'))
589
+
590
+ def _eval_(self, m, n):
591
+ """
592
+ The Kronecker delta function.
593
+
594
+ EXAMPLES::
595
+
596
+ sage: kronecker_delta(1, 2) # needs sage.rings.complex_interval_field
597
+ 0
598
+ sage: kronecker_delta(1, 1) # needs sage.rings.complex_interval_field
599
+ 1
600
+
601
+ Kronecker delta is a symmetric function. We keep arguments sorted to
602
+ ensure that k_d(m, n) - k_d(n, m) cancels automatically::
603
+
604
+ sage: # needs sage.symbolic
605
+ sage: x, y = var('x,y')
606
+ sage: kronecker_delta(x, y)
607
+ kronecker_delta(x, y)
608
+ sage: kronecker_delta(y, x)
609
+ kronecker_delta(x, y)
610
+ sage: kronecker_delta(x, 2*x)
611
+ kronecker_delta(2*x, x)
612
+
613
+ Evaluation test::
614
+
615
+ sage: kronecker_delta(1, x).subs(x=1) # needs sage.symbolic
616
+ 1
617
+ """
618
+ try:
619
+ return self._evalf_(m, n)
620
+ except (TypeError, ValueError): # x is symbolic
621
+ pass
622
+ return None
623
+
624
+ def _evalf_(self, m, n, **kwds):
625
+ """
626
+ TESTS::
627
+
628
+ sage: h(x) = kronecker_delta(3, x) # needs sage.symbolic
629
+ sage: h(pi).numerical_approx() # needs sage.symbolic
630
+ 0.000000000000000
631
+ """
632
+ if bool(repr(m) > repr(n)):
633
+ return kronecker_delta(n, m)
634
+ x = m - n
635
+ approx_x = ComplexIntervalField()(x)
636
+ if approx_x.imag() == 0: # x is real
637
+ if approx_x.real() == 0: # x is zero
638
+ return 1
639
+ else:
640
+ return 0
641
+ return 0 # x is complex
642
+
643
+ def _derivative_(self, *args, **kwds):
644
+ """
645
+ Derivative of Kronecker delta.
646
+
647
+ EXAMPLES::
648
+
649
+ sage: kronecker_delta(x, 1).diff(x) # needs sage.symbolic
650
+ 0
651
+ """
652
+ # Kronecker delta is nonzero (but finite) only in the set of
653
+ # zero-measure unlike Dirac delta. Consequently, it is null
654
+ # for the purpose of integration/differentiation. For *discrete sum*
655
+ # Kronecker delta is however non-trivial.
656
+ return 0
657
+
658
+ def _print_latex_(self, m, n, **kwds):
659
+ r"""
660
+ Return latex expression.
661
+
662
+ EXAMPLES::
663
+
664
+ sage: from sage.misc.latex import latex
665
+ sage: m, n = var('m,n') # needs sage.symbolic
666
+ sage: latex(kronecker_delta(m, n)) # needs sage.symbolic
667
+ \delta_{m,n}
668
+ """
669
+ return r"\delta_{%s,%s}" % (latex(m), latex(n))
670
+
671
+
672
+ kronecker_delta = FunctionKroneckerDelta()