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,334 @@
1
+ # sage_setup: distribution = sagemath-categories
2
+ """
3
+ Symbols for Character Art
4
+
5
+ This module defines single- and multi-line symbols.
6
+
7
+ EXAMPLES::
8
+
9
+ sage: from sage.typeset.symbols import *
10
+
11
+ sage: symbols = ascii_art('')
12
+ sage: for i in range(1, 5):
13
+ ....: symbols += ascii_left_parenthesis.character_art(i)
14
+ ....: symbols += ascii_art(' ')
15
+ ....: symbols += ascii_right_parenthesis.character_art(i)
16
+ ....: symbols += ascii_art(' ')
17
+ sage: for i in range(1, 5):
18
+ ....: symbols += ascii_left_square_bracket.character_art(i)
19
+ ....: symbols += ascii_art(' ')
20
+ ....: symbols += ascii_right_square_bracket.character_art(i)
21
+ ....: symbols += ascii_art(' ')
22
+ sage: for i in range(1, 5):
23
+ ....: symbols += ascii_left_curly_brace.character_art(i)
24
+ ....: symbols += ascii_art(' ')
25
+ ....: symbols += ascii_right_curly_brace.character_art(i)
26
+ ....: symbols += ascii_art(' ')
27
+ sage: symbols
28
+ ( ) [ ] { }
29
+ ( ) ( ) [ ] [ ] { } { }
30
+ ( ) ( ) ( ) [ ] [ ] [ ] { } { } { }
31
+ ( ) ( ) ( ) ( ) [ ] [ ] [ ] [ ] { } { } { } { }
32
+
33
+ sage: symbols = unicode_art('')
34
+ sage: for i in range(1, 5):
35
+ ....: symbols += unicode_left_parenthesis.character_art(i)
36
+ ....: symbols += unicode_art(' ')
37
+ ....: symbols += unicode_right_parenthesis.character_art(i)
38
+ ....: symbols += unicode_art(' ')
39
+ sage: for i in range(1, 5):
40
+ ....: symbols += unicode_left_square_bracket.character_art(i)
41
+ ....: symbols += unicode_art(' ')
42
+ ....: symbols += unicode_right_square_bracket.character_art(i)
43
+ ....: symbols += unicode_art(' ')
44
+ sage: for i in range(1, 5):
45
+ ....: symbols += unicode_left_curly_brace.character_art(i)
46
+ ....: symbols += unicode_art(' ')
47
+ ....: symbols += unicode_right_curly_brace.character_art(i)
48
+ ....: symbols += unicode_art(' ')
49
+ sage: symbols
50
+ ⎛ ⎞ ⎡ ⎤ ⎧ ⎫
51
+ ⎛ ⎞ ⎜ ⎟ ⎡ ⎤ ⎢ ⎥ ⎧ ⎫ ⎭ ⎩
52
+ ⎛ ⎞ ⎜ ⎟ ⎜ ⎟ ⎡ ⎤ ⎢ ⎥ ⎢ ⎥ ⎰ ⎱ ⎨ ⎬ ⎫ ⎧
53
+ ( ) ⎝ ⎠ ⎝ ⎠ ⎝ ⎠ [ ] ⎣ ⎦ ⎣ ⎦ ⎣ ⎦ { } ⎱ ⎰ ⎩ ⎭ ⎩ ⎭
54
+ """
55
+ import unicodedata
56
+ from sage.structure.sage_object import SageObject
57
+
58
+
59
+ class CompoundSymbol(SageObject):
60
+
61
+ def __init__(self, character, top, extension, bottom,
62
+ middle=None,
63
+ middle_top=None, middle_bottom=None,
64
+ top_2=None, bottom_2=None):
65
+ """
66
+ A multi-character (ascii/unicode art) symbol.
67
+
68
+ INPUT:
69
+
70
+ Instead of a string, each of these can be unicode in Python 2:
71
+
72
+ - ``character`` -- string; the single-line version of the symbol
73
+
74
+ - ``top`` -- string; the top line of a multi-line symbol
75
+
76
+ - ``extension`` -- string; the extension line of a multi-line symbol (will
77
+ be repeated)
78
+
79
+ - ``bottom`` -- string; the bottom line of a multi-line symbol
80
+
81
+ - ``middle`` -- (optional) string; the middle part, for example
82
+ in curly braces. Will be used only once for the symbol, and
83
+ only if its height is odd.
84
+
85
+ - ``middle_top`` -- (optional) string; the upper half of the
86
+ 2-line middle part if the height of the symbol is even.
87
+ Will be used only once for the symbol.
88
+
89
+ - ``middle_bottom`` -- (optional) string; the lower half of the
90
+ 2-line middle part if the height of the symbol is even.
91
+ Will be used only once for the symbol.
92
+
93
+ - ``top_2`` -- (optional) string; the upper half of a 2-line symbol
94
+
95
+ - ``bottom_2`` -- (optional) string; the lower half of a 2-line symbol
96
+
97
+ EXAMPLES::
98
+
99
+ sage: from sage.typeset.symbols import CompoundSymbol
100
+ sage: i = CompoundSymbol('I', '+', '|', '+', '|')
101
+ sage: i.print_to_stdout(1)
102
+ I
103
+ sage: i.print_to_stdout(3)
104
+ +
105
+ |
106
+ +
107
+ """
108
+ self.character = character
109
+ self.top = top
110
+ self.extension = extension
111
+ self.bottom = bottom
112
+ self.middle = middle or extension
113
+ self.middle_top = middle_top or extension
114
+ self.middle_bottom = middle_bottom or extension
115
+ self.top_2 = top_2 or top
116
+ self.bottom_2 = bottom_2 or bottom
117
+
118
+ def _repr_(self):
119
+ """
120
+ Return string representation.
121
+
122
+ EXAMPLES::
123
+
124
+ sage: from sage.typeset.symbols import unicode_left_parenthesis
125
+ sage: unicode_left_parenthesis
126
+ multi_line version of "("
127
+ """
128
+ return 'multi_line version of "{0}"'.format(self.character)
129
+
130
+ def __call__(self, num_lines):
131
+ r"""
132
+ Return the lines for a multi-line symbol.
133
+
134
+ INPUT:
135
+
136
+ - ``num_lines`` -- integer; the total number of lines
137
+
138
+ OUTPUT: list of strings / unicode strings
139
+
140
+ EXAMPLES::
141
+
142
+ sage: from sage.typeset.symbols import unicode_left_parenthesis
143
+ sage: unicode_left_parenthesis(4)
144
+ ['\u239b', '\u239c', '\u239c', '\u239d']
145
+ """
146
+ if num_lines <= 0:
147
+ raise ValueError('number of lines must be positive')
148
+ elif num_lines == 1:
149
+ return [self.character]
150
+ elif num_lines == 2:
151
+ return [self.top_2, self.bottom_2]
152
+ elif num_lines == 3:
153
+ return [self.top, self.middle, self.bottom]
154
+ elif num_lines % 2 == 0:
155
+ ext = [self.extension] * ((num_lines - 4) // 2)
156
+ return [self.top] + ext + [self.middle_top, self.middle_bottom] + ext + [self.bottom]
157
+ else: # num_lines %2 == 1
158
+ ext = [self.extension] * ((num_lines - 3) // 2)
159
+ return [self.top] + ext + [self.middle] + ext + [self.bottom]
160
+
161
+ def print_to_stdout(self, num_lines):
162
+ """
163
+ Print the multi-line symbol.
164
+
165
+ This method is for testing purposes.
166
+
167
+ INPUT:
168
+
169
+ - ``num_lines`` -- integer; the total number of lines
170
+
171
+ EXAMPLES::
172
+
173
+ sage: from sage.typeset.symbols import *
174
+ sage: unicode_integral.print_to_stdout(1)
175
+
176
+ sage: unicode_integral.print_to_stdout(2)
177
+
178
+
179
+ sage: unicode_integral.print_to_stdout(3)
180
+
181
+
182
+
183
+ sage: unicode_integral.print_to_stdout(4)
184
+
185
+
186
+
187
+
188
+ """
189
+ print('\n'.join(self(num_lines)))
190
+
191
+
192
+ class CompoundAsciiSymbol(CompoundSymbol):
193
+
194
+ def character_art(self, num_lines):
195
+ """
196
+ Return the ASCII art of the symbol.
197
+
198
+ EXAMPLES::
199
+
200
+ sage: from sage.typeset.symbols import *
201
+ sage: ascii_left_curly_brace.character_art(3)
202
+ {
203
+ {
204
+ {
205
+ """
206
+ from sage.typeset.ascii_art import AsciiArt
207
+ return AsciiArt(self(num_lines))
208
+
209
+
210
+ class CompoundUnicodeSymbol(CompoundSymbol):
211
+
212
+ def character_art(self, num_lines):
213
+ """
214
+ Return the unicode art of the symbol.
215
+
216
+ EXAMPLES::
217
+
218
+ sage: from sage.typeset.symbols import *
219
+ sage: unicode_left_curly_brace.character_art(3)
220
+
221
+
222
+
223
+ """
224
+ from sage.typeset.unicode_art import UnicodeArt
225
+ return UnicodeArt(self(num_lines))
226
+
227
+
228
+ ascii_integral = CompoundAsciiSymbol(
229
+ 'int',
230
+ r' /\\',
231
+ r' | ',
232
+ r'\\/ ',
233
+ )
234
+
235
+ unicode_integral = CompoundUnicodeSymbol(
236
+ unicodedata.lookup('INTEGRAL'),
237
+ unicodedata.lookup('TOP HALF INTEGRAL'),
238
+ unicodedata.lookup('INTEGRAL EXTENSION'),
239
+ unicodedata.lookup('BOTTOM HALF INTEGRAL'),
240
+ )
241
+
242
+ ascii_left_parenthesis = CompoundAsciiSymbol(
243
+ '(',
244
+ '(',
245
+ '(',
246
+ '(',
247
+ )
248
+
249
+ ascii_right_parenthesis = CompoundAsciiSymbol(
250
+ ')',
251
+ ')',
252
+ ')',
253
+ ')',
254
+ )
255
+
256
+ unicode_left_parenthesis = CompoundUnicodeSymbol(
257
+ unicodedata.lookup('LEFT PARENTHESIS'),
258
+ unicodedata.lookup('LEFT PARENTHESIS UPPER HOOK'),
259
+ unicodedata.lookup('LEFT PARENTHESIS EXTENSION'),
260
+ unicodedata.lookup('LEFT PARENTHESIS LOWER HOOK'),
261
+ )
262
+
263
+ unicode_right_parenthesis = CompoundUnicodeSymbol(
264
+ unicodedata.lookup('RIGHT PARENTHESIS'),
265
+ unicodedata.lookup('RIGHT PARENTHESIS UPPER HOOK'),
266
+ unicodedata.lookup('RIGHT PARENTHESIS EXTENSION'),
267
+ unicodedata.lookup('RIGHT PARENTHESIS LOWER HOOK'),
268
+ )
269
+
270
+ ascii_left_square_bracket = CompoundAsciiSymbol(
271
+ '[',
272
+ '[',
273
+ '[',
274
+ '[',
275
+ )
276
+
277
+ ascii_right_square_bracket = CompoundAsciiSymbol(
278
+ ']',
279
+ ']',
280
+ ']',
281
+ ']',
282
+ )
283
+
284
+ unicode_left_square_bracket = CompoundUnicodeSymbol(
285
+ unicodedata.lookup('LEFT SQUARE BRACKET'),
286
+ unicodedata.lookup('LEFT SQUARE BRACKET UPPER CORNER'),
287
+ unicodedata.lookup('LEFT SQUARE BRACKET EXTENSION'),
288
+ unicodedata.lookup('LEFT SQUARE BRACKET LOWER CORNER'),
289
+ )
290
+
291
+ unicode_right_square_bracket = CompoundUnicodeSymbol(
292
+ unicodedata.lookup('RIGHT SQUARE BRACKET'),
293
+ unicodedata.lookup('RIGHT SQUARE BRACKET UPPER CORNER'),
294
+ unicodedata.lookup('RIGHT SQUARE BRACKET EXTENSION'),
295
+ unicodedata.lookup('RIGHT SQUARE BRACKET LOWER CORNER'),
296
+ )
297
+
298
+ ascii_left_curly_brace = CompoundAsciiSymbol(
299
+ '{',
300
+ '{',
301
+ '{',
302
+ '{',
303
+ )
304
+
305
+ ascii_right_curly_brace = CompoundAsciiSymbol(
306
+ '}',
307
+ '}',
308
+ '}',
309
+ '}',
310
+ )
311
+
312
+ unicode_left_curly_brace = CompoundUnicodeSymbol(
313
+ unicodedata.lookup('LEFT CURLY BRACKET'),
314
+ unicodedata.lookup('LEFT CURLY BRACKET UPPER HOOK'),
315
+ unicodedata.lookup('CURLY BRACKET EXTENSION'),
316
+ unicodedata.lookup('LEFT CURLY BRACKET LOWER HOOK'),
317
+ unicodedata.lookup('LEFT CURLY BRACKET MIDDLE PIECE'),
318
+ unicodedata.lookup('RIGHT CURLY BRACKET LOWER HOOK'),
319
+ unicodedata.lookup('RIGHT CURLY BRACKET UPPER HOOK'),
320
+ unicodedata.lookup('UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION'),
321
+ unicodedata.lookup('UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION'),
322
+ )
323
+
324
+ unicode_right_curly_brace = CompoundUnicodeSymbol(
325
+ unicodedata.lookup('RIGHT CURLY BRACKET'),
326
+ unicodedata.lookup('RIGHT CURLY BRACKET UPPER HOOK'),
327
+ unicodedata.lookup('CURLY BRACKET EXTENSION'),
328
+ unicodedata.lookup('RIGHT CURLY BRACKET LOWER HOOK'),
329
+ unicodedata.lookup('RIGHT CURLY BRACKET MIDDLE PIECE'),
330
+ unicodedata.lookup('LEFT CURLY BRACKET LOWER HOOK'),
331
+ unicodedata.lookup('LEFT CURLY BRACKET UPPER HOOK'),
332
+ unicodedata.lookup('UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION'),
333
+ unicodedata.lookup('UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION'),
334
+ )
@@ -0,0 +1,183 @@
1
+ # sage_setup: distribution = sagemath-categories
2
+ r"""
3
+ Unicode Art
4
+
5
+ This module implements ascii art using unicode characters. It is a
6
+ strict superset of :mod:`~sage.typeset.ascii_art`.
7
+ """
8
+
9
+ # ******************************************************************************
10
+ # Copyright (C) 2013 Jean-Baptiste Priez <jbp@kerios.fr>,
11
+ # 2015 Volker Braun <vbraun.name@gmail.com>
12
+ #
13
+ # Distributed under the terms of the GNU General Public License (GPL)
14
+ #
15
+ # This code is distributed in the hope that it will be useful,
16
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
17
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18
+ # General Public License for more details.
19
+ #
20
+ # The full text of the GPL is available at:
21
+ #
22
+ # https://www.gnu.org/licenses/
23
+ # ******************************************************************************
24
+
25
+ from sage.typeset.character_art import CharacterArt
26
+ from sage.typeset.character_art_factory import CharacterArtFactory
27
+ import sage.typeset.symbols as symbol
28
+
29
+
30
+ class UnicodeArt(CharacterArt):
31
+ r"""
32
+ An Ascii art object is an object with some specific representation for
33
+ *printing*.
34
+
35
+ INPUT:
36
+
37
+ - ``lines`` -- the list of lines of the representation of the ascii art
38
+ object
39
+
40
+ - ``breakpoints`` -- the list of points where the representation can be
41
+ split
42
+
43
+ - ``baseline`` -- the reference line (from the bottom)
44
+
45
+ EXAMPLES::
46
+
47
+ sage: i = var('i') # needs sage.symbolic
48
+ sage: unicode_art(sum(pi^i/factorial(i)*x^i, i, 0, oo)) # needs sage.symbolic
49
+ π⋅x
50
+
51
+ """
52
+ _string_type = str
53
+
54
+
55
+ _unicode_art_factory = CharacterArtFactory(
56
+ UnicodeArt, str, '_unicode_art_',
57
+ (symbol.unicode_left_parenthesis, symbol.unicode_right_parenthesis),
58
+ (symbol.unicode_left_square_bracket, symbol.unicode_right_square_bracket),
59
+ (symbol.unicode_left_curly_brace, symbol.unicode_right_curly_brace),
60
+ )
61
+
62
+
63
+ empty_unicode_art = _unicode_art_factory.build_empty()
64
+
65
+
66
+ def unicode_art(*obj, **kwds):
67
+ r"""
68
+ Return an unicode art representation.
69
+
70
+ INPUT:
71
+
72
+ - ``*obj`` -- any number of positional arguments, of arbitrary
73
+ type. The objects whose ascii art representation we want.
74
+
75
+ - ``sep`` -- (optional) ``'sep=...'`` keyword argument (or ``'separator'``).
76
+ Anything that can be converted to unicode art (default: empty unicode
77
+ art). The separator in-between a list of objects. Only used if
78
+ more than one object given.
79
+
80
+ - ``baseline`` -- (default: 0) the baseline for the object
81
+
82
+ - ``sep_baseline`` -- (default: 0) the baseline for the separator
83
+
84
+ OUTPUT: :class:`UnicodeArt` instance
85
+
86
+ EXAMPLES::
87
+
88
+ sage: result = unicode_art(integral(exp(sqrt(x))/(x+pi), x)) # needs sage.symbolic
89
+ ...
90
+ sage: result # needs sage.symbolic
91
+
92
+ ⎮ √x
93
+ ⎮ ℯ
94
+ ⎮ ───── dx
95
+ ⎮ x + π
96
+
97
+ sage: ident = lambda n: identity_matrix(ZZ, n)
98
+ sage: unicode_art(ident(1), ident(2), ident(3), sep=' : ') # needs sage.modules
99
+ ⎛1 0 0⎞
100
+ ⎛1 0⎞ ⎜0 1 0⎟
101
+ (1) : ⎝0 1⎠ : ⎝0 0 1⎠
102
+
103
+ If specified, the ``sep_baseline`` overrides the baseline of
104
+ an unicode art separator::
105
+
106
+ sage: sep_line = unicode_art('\n'.join(' ⎟ ' for _ in range(5)), baseline=5)
107
+ sage: unicode_art(*AlternatingSignMatrices(3), # needs sage.combinat sage.modules
108
+ ....: separator=sep_line, sep_baseline=1)
109
+ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟
110
+ ⎛1 0 0⎞ ⎟ ⎛0 1 0⎞ ⎟ ⎛1 0 0⎞ ⎟ ⎛ 0 1 0⎞ ⎟ ⎛0 0 1⎞ ⎟ ⎛0 1 0⎞ ⎟ ⎛0 0 1⎞
111
+ ⎜0 1 0⎟ ⎟ ⎜1 0 0⎟ ⎟ ⎜0 0 1⎟ ⎟ ⎜ 1 -1 1⎟ ⎟ ⎜1 0 0⎟ ⎟ ⎜0 0 1⎟ ⎟ ⎜0 1 0⎟
112
+ ⎝0 0 1⎠ ⎟ ⎝0 0 1⎠ ⎟ ⎝0 1 0⎠ ⎟ ⎝ 0 1 0⎠ ⎟ ⎝0 1 0⎠ ⎟ ⎝1 0 0⎠ ⎟ ⎝1 0 0⎠
113
+ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟
114
+
115
+ TESTS::
116
+
117
+ sage: n = var('n') # needs sage.symbolic
118
+ sage: unicode_art(sum(binomial(2 * n, n + 1) * x^n, n, 0, oo)) # needs sage.symbolic
119
+ ⎛ _________ ⎞
120
+ -⎝2⋅x + ╲╱ 1 - 4⋅x - 1⎠
121
+ ─────────────────────────
122
+ _________
123
+ 2⋅x⋅╲╱ 1 - 4⋅x
124
+ sage: unicode_art(list(DyckWords(3))) # needs sage.combinat
125
+ ⎡ ╱╲ ⎤
126
+ ⎢ ╱╲ ╱╲ ╱╲╱╲ ╱ ╲ ⎥
127
+ ⎣ ╱╲╱╲╱╲, ╱╲╱ ╲, ╱ ╲╱╲, ╱ ╲, ╱ ╲ ⎦
128
+ sage: unicode_art(1)
129
+ 1
130
+ """
131
+ separator, baseline, sep_baseline = _unicode_art_factory.parse_keywords(kwds)
132
+ if kwds:
133
+ raise ValueError('unknown keyword arguments: {0}'.format(list(kwds)))
134
+ if len(obj) == 1:
135
+ return _unicode_art_factory.build(obj[0], baseline=baseline)
136
+ if not isinstance(separator, UnicodeArt):
137
+ separator = _unicode_art_factory.build(separator, baseline=sep_baseline)
138
+ elif sep_baseline is not None:
139
+ from copy import copy
140
+ separator = copy(separator)
141
+ separator._baseline = sep_baseline
142
+ return _unicode_art_factory.concatenate(obj, separator, empty_unicode_art,
143
+ baseline=baseline)
144
+
145
+
146
+ _subscript_dict = {'0': '₀', '1': '₁', '2': '₂', '3': '₃', '4': '₄',
147
+ '5': '₅', '6': '₆', '7': '₇', '8': '₈', '9': '₉',
148
+ '-': '₋', '+': '₊'}
149
+
150
+
151
+ _superscript_dict = {'0': '⁰', '1': '¹', '2': '²', '3': '³', '4': '⁴',
152
+ '5': '⁵', '6': '⁶', '7': '⁷', '8': '⁸', '9': '⁹',
153
+ '-': '⁻', '+': '⁺', '/': 'ᐟ'}
154
+
155
+
156
+ def unicode_superscript(x):
157
+ r"""
158
+ Return the rational number ``x`` as a superscript.
159
+
160
+ EXAMPLES::
161
+
162
+ sage: from sage.typeset.unicode_art import unicode_superscript
163
+ sage: unicode_superscript(15123902)
164
+ '¹⁵¹²³⁹⁰²'
165
+ sage: unicode_superscript(-712/5)
166
+ '⁻⁷¹²ᐟ⁵'
167
+ """
168
+ return ''.join(_superscript_dict[i] for i in str(x))
169
+
170
+
171
+ def unicode_subscript(x):
172
+ r"""
173
+ Return the integer ``x`` as a superscript.
174
+
175
+ EXAMPLES::
176
+
177
+ sage: from sage.typeset.unicode_art import unicode_subscript
178
+ sage: unicode_subscript(15123902)
179
+ '₁₅₁₂₃₉₀₂'
180
+ sage: unicode_subscript(-712)
181
+ '₋₇₁₂'
182
+ """
183
+ return ''.join(_subscript_dict[i] for i in str(x))
@@ -0,0 +1,101 @@
1
+ # sage_setup: distribution = sagemath-categories
2
+ r"""
3
+ Unicode Characters
4
+
5
+ This module provides Python identifiers for Unicode characters corresponding
6
+ to various mathematical symbols.
7
+
8
+ The syntax is ``unicode_XXX``, where ``XXX`` is the LaTeX name of the symbol,
9
+ stripped of any backslash or any curly brace (e.g. ``unicode_mathbbR`` for
10
+ ``ℝ``).
11
+
12
+ EXAMPLES:
13
+
14
+ Operators::
15
+
16
+ sage: from sage.typeset.unicode_characters import unicode_otimes
17
+ sage: unicode_otimes
18
+ '⊗'
19
+ sage: hex(ord(_))
20
+ '0x2297'
21
+ sage: from sage.typeset.unicode_characters import unicode_bigotimes
22
+ sage: unicode_bigotimes
23
+ '⨂'
24
+ sage: hex(ord(_))
25
+ '0x2a02'
26
+ sage: from sage.typeset.unicode_characters import unicode_wedge
27
+ sage: unicode_wedge
28
+ '∧'
29
+ sage: hex(ord(_))
30
+ '0x2227'
31
+ sage: from sage.typeset.unicode_characters import unicode_bigwedge
32
+ sage: unicode_bigwedge
33
+ '⋀'
34
+ sage: hex(ord(_))
35
+ '0x22c0'
36
+ sage: from sage.typeset.unicode_characters import unicode_partial
37
+ sage: unicode_partial
38
+ '∂'
39
+ sage: hex(ord(_))
40
+ '0x2202'
41
+
42
+ Arrows::
43
+
44
+ sage: from sage.typeset.unicode_characters import unicode_to
45
+ sage: unicode_to
46
+ '→'
47
+ sage: hex(ord(_))
48
+ '0x2192'
49
+ sage: from sage.typeset.unicode_characters import unicode_mapsto
50
+ sage: unicode_mapsto
51
+ '↦'
52
+ sage: hex(ord(_))
53
+ '0x21a6'
54
+
55
+ Letters::
56
+
57
+ sage: from sage.typeset.unicode_characters import unicode_mathbbR
58
+ sage: unicode_mathbbR
59
+ 'ℝ'
60
+ sage: hex(ord(_))
61
+ '0x211d'
62
+ sage: from sage.typeset.unicode_characters import unicode_mathbbC
63
+ sage: unicode_mathbbC
64
+ 'ℂ'
65
+ sage: hex(ord(_))
66
+ '0x2102'
67
+ """
68
+
69
+ # ****************************************************************************
70
+ # Copyright (C) 2021 Eric Gourgoulhon <eric.gourgoulhon@obspm.fr>
71
+ #
72
+ # This program is free software: you can redistribute it and/or modify
73
+ # it under the terms of the GNU General Public License as published by
74
+ # the Free Software Foundation, either version 2 of the License, or
75
+ # (at your option) any later version.
76
+ # https://www.gnu.org/licenses/
77
+ # ****************************************************************************
78
+
79
+ # Operators:
80
+
81
+ unicode_otimes = '\u2297' # '⊗'
82
+
83
+ unicode_bigotimes = '\u2A02' # '⨂'
84
+
85
+ unicode_wedge = '\u2227' # '∧'
86
+
87
+ unicode_bigwedge = '\u22C0' # '⋀'
88
+
89
+ unicode_partial = '\u2202' # '∂'
90
+
91
+ # Arrows:
92
+
93
+ unicode_to = '\u2192' # '→'
94
+
95
+ unicode_mapsto = '\u21A6' # '↦'
96
+
97
+ # Letters:
98
+
99
+ unicode_mathbbR = '\u211D' # 'ℝ'
100
+
101
+ unicode_mathbbC = '\u2102' # 'ℂ'