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.
- passagemath_categories-10.6.32.dist-info/METADATA +156 -0
- passagemath_categories-10.6.32.dist-info/RECORD +719 -0
- passagemath_categories-10.6.32.dist-info/WHEEL +5 -0
- passagemath_categories-10.6.32.dist-info/top_level.txt +2 -0
- passagemath_categories.libs/libgcc_s-2d945d6c.so.1 +0 -0
- passagemath_categories.libs/libgmp-28992bcb.so.10.5.0 +0 -0
- passagemath_categories.libs/libstdc++-85f2cd6d.so.6.0.33 +0 -0
- sage/all__sagemath_categories.py +28 -0
- sage/arith/all.py +38 -0
- sage/arith/constants.pxd +27 -0
- sage/arith/functions.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/arith/functions.pxd +4 -0
- sage/arith/functions.pyx +221 -0
- sage/arith/misc.py +6552 -0
- sage/arith/multi_modular.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/arith/multi_modular.pxd +39 -0
- sage/arith/multi_modular.pyx +994 -0
- sage/arith/rational_reconstruction.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/arith/rational_reconstruction.pxd +4 -0
- sage/arith/rational_reconstruction.pyx +115 -0
- sage/arith/srange.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/arith/srange.pyx +571 -0
- sage/calculus/all__sagemath_categories.py +2 -0
- sage/calculus/functional.py +481 -0
- sage/calculus/functions.py +151 -0
- sage/categories/additive_groups.py +73 -0
- sage/categories/additive_magmas.py +1044 -0
- sage/categories/additive_monoids.py +114 -0
- sage/categories/additive_semigroups.py +184 -0
- sage/categories/affine_weyl_groups.py +238 -0
- sage/categories/algebra_ideals.py +95 -0
- sage/categories/algebra_modules.py +96 -0
- sage/categories/algebras.py +349 -0
- sage/categories/algebras_with_basis.py +377 -0
- sage/categories/all.py +160 -0
- sage/categories/aperiodic_semigroups.py +29 -0
- sage/categories/associative_algebras.py +47 -0
- sage/categories/bialgebras.py +101 -0
- sage/categories/bialgebras_with_basis.py +414 -0
- sage/categories/bimodules.py +206 -0
- sage/categories/chain_complexes.py +268 -0
- sage/categories/classical_crystals.py +480 -0
- sage/categories/coalgebras.py +405 -0
- sage/categories/coalgebras_with_basis.py +232 -0
- sage/categories/coercion_methods.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/categories/coercion_methods.pyx +52 -0
- sage/categories/commutative_additive_groups.py +104 -0
- sage/categories/commutative_additive_monoids.py +45 -0
- sage/categories/commutative_additive_semigroups.py +48 -0
- sage/categories/commutative_algebra_ideals.py +87 -0
- sage/categories/commutative_algebras.py +94 -0
- sage/categories/commutative_ring_ideals.py +58 -0
- sage/categories/commutative_rings.py +736 -0
- sage/categories/complete_discrete_valuation.py +293 -0
- sage/categories/complex_reflection_groups.py +145 -0
- sage/categories/complex_reflection_or_generalized_coxeter_groups.py +1249 -0
- sage/categories/coxeter_group_algebras.py +186 -0
- sage/categories/coxeter_groups.py +3402 -0
- sage/categories/crystals.py +2628 -0
- sage/categories/cw_complexes.py +216 -0
- sage/categories/dedekind_domains.py +137 -0
- sage/categories/discrete_valuation.py +325 -0
- sage/categories/distributive_magmas_and_additive_magmas.py +100 -0
- sage/categories/division_rings.py +114 -0
- sage/categories/domains.py +95 -0
- sage/categories/drinfeld_modules.py +789 -0
- sage/categories/dual.py +42 -0
- sage/categories/enumerated_sets.py +1146 -0
- sage/categories/euclidean_domains.py +271 -0
- sage/categories/examples/algebras_with_basis.py +102 -0
- sage/categories/examples/all.py +1 -0
- sage/categories/examples/commutative_additive_monoids.py +130 -0
- sage/categories/examples/commutative_additive_semigroups.py +199 -0
- sage/categories/examples/coxeter_groups.py +8 -0
- sage/categories/examples/crystals.py +236 -0
- sage/categories/examples/cw_complexes.py +163 -0
- sage/categories/examples/facade_sets.py +187 -0
- sage/categories/examples/filtered_algebras_with_basis.py +204 -0
- sage/categories/examples/filtered_modules_with_basis.py +154 -0
- sage/categories/examples/finite_coxeter_groups.py +252 -0
- sage/categories/examples/finite_dimensional_algebras_with_basis.py +148 -0
- sage/categories/examples/finite_dimensional_lie_algebras_with_basis.py +495 -0
- sage/categories/examples/finite_enumerated_sets.py +208 -0
- sage/categories/examples/finite_monoids.py +150 -0
- sage/categories/examples/finite_semigroups.py +190 -0
- sage/categories/examples/finite_weyl_groups.py +191 -0
- sage/categories/examples/graded_connected_hopf_algebras_with_basis.py +152 -0
- sage/categories/examples/graded_modules_with_basis.py +168 -0
- sage/categories/examples/graphs.py +122 -0
- sage/categories/examples/hopf_algebras_with_basis.py +145 -0
- sage/categories/examples/infinite_enumerated_sets.py +190 -0
- sage/categories/examples/lie_algebras.py +352 -0
- sage/categories/examples/lie_algebras_with_basis.py +196 -0
- sage/categories/examples/magmas.py +162 -0
- sage/categories/examples/manifolds.py +94 -0
- sage/categories/examples/monoids.py +144 -0
- sage/categories/examples/posets.py +178 -0
- sage/categories/examples/semigroups.py +580 -0
- sage/categories/examples/semigroups_cython.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/categories/examples/semigroups_cython.pyx +221 -0
- sage/categories/examples/semirings.py +249 -0
- sage/categories/examples/sets_cat.py +706 -0
- sage/categories/examples/sets_with_grading.py +101 -0
- sage/categories/examples/with_realizations.py +542 -0
- sage/categories/fields.py +991 -0
- sage/categories/filtered_algebras.py +63 -0
- sage/categories/filtered_algebras_with_basis.py +548 -0
- sage/categories/filtered_hopf_algebras_with_basis.py +138 -0
- sage/categories/filtered_modules.py +210 -0
- sage/categories/filtered_modules_with_basis.py +1209 -0
- sage/categories/finite_complex_reflection_groups.py +1506 -0
- sage/categories/finite_coxeter_groups.py +1138 -0
- sage/categories/finite_crystals.py +103 -0
- sage/categories/finite_dimensional_algebras_with_basis.py +1860 -0
- sage/categories/finite_dimensional_bialgebras_with_basis.py +33 -0
- sage/categories/finite_dimensional_coalgebras_with_basis.py +33 -0
- sage/categories/finite_dimensional_graded_lie_algebras_with_basis.py +231 -0
- sage/categories/finite_dimensional_hopf_algebras_with_basis.py +38 -0
- sage/categories/finite_dimensional_lie_algebras_with_basis.py +2774 -0
- sage/categories/finite_dimensional_modules_with_basis.py +1407 -0
- sage/categories/finite_dimensional_nilpotent_lie_algebras_with_basis.py +167 -0
- sage/categories/finite_dimensional_semisimple_algebras_with_basis.py +270 -0
- sage/categories/finite_enumerated_sets.py +769 -0
- sage/categories/finite_fields.py +252 -0
- sage/categories/finite_groups.py +256 -0
- sage/categories/finite_lattice_posets.py +242 -0
- sage/categories/finite_monoids.py +316 -0
- sage/categories/finite_permutation_groups.py +339 -0
- sage/categories/finite_posets.py +1994 -0
- sage/categories/finite_semigroups.py +136 -0
- sage/categories/finite_sets.py +93 -0
- sage/categories/finite_weyl_groups.py +39 -0
- sage/categories/finitely_generated_lambda_bracket_algebras.py +112 -0
- sage/categories/finitely_generated_lie_conformal_algebras.py +114 -0
- sage/categories/finitely_generated_magmas.py +57 -0
- sage/categories/finitely_generated_semigroups.py +214 -0
- sage/categories/function_fields.py +76 -0
- sage/categories/g_sets.py +77 -0
- sage/categories/gcd_domains.py +65 -0
- sage/categories/generalized_coxeter_groups.py +94 -0
- sage/categories/graded_algebras.py +85 -0
- sage/categories/graded_algebras_with_basis.py +258 -0
- sage/categories/graded_bialgebras.py +32 -0
- sage/categories/graded_bialgebras_with_basis.py +32 -0
- sage/categories/graded_coalgebras.py +65 -0
- sage/categories/graded_coalgebras_with_basis.py +51 -0
- sage/categories/graded_hopf_algebras.py +41 -0
- sage/categories/graded_hopf_algebras_with_basis.py +169 -0
- sage/categories/graded_lie_algebras.py +91 -0
- sage/categories/graded_lie_algebras_with_basis.py +44 -0
- sage/categories/graded_lie_conformal_algebras.py +74 -0
- sage/categories/graded_modules.py +133 -0
- sage/categories/graded_modules_with_basis.py +329 -0
- sage/categories/graphs.py +138 -0
- sage/categories/group_algebras.py +430 -0
- sage/categories/groupoid.py +94 -0
- sage/categories/groups.py +667 -0
- sage/categories/h_trivial_semigroups.py +64 -0
- sage/categories/hecke_modules.py +185 -0
- sage/categories/highest_weight_crystals.py +980 -0
- sage/categories/hopf_algebras.py +219 -0
- sage/categories/hopf_algebras_with_basis.py +309 -0
- sage/categories/infinite_enumerated_sets.py +115 -0
- sage/categories/integral_domains.py +203 -0
- sage/categories/j_trivial_semigroups.py +29 -0
- sage/categories/kac_moody_algebras.py +82 -0
- sage/categories/kahler_algebras.py +203 -0
- sage/categories/l_trivial_semigroups.py +63 -0
- sage/categories/lambda_bracket_algebras.py +280 -0
- sage/categories/lambda_bracket_algebras_with_basis.py +107 -0
- sage/categories/lattice_posets.py +89 -0
- sage/categories/left_modules.py +49 -0
- sage/categories/lie_algebras.py +1070 -0
- sage/categories/lie_algebras_with_basis.py +261 -0
- sage/categories/lie_conformal_algebras.py +350 -0
- sage/categories/lie_conformal_algebras_with_basis.py +147 -0
- sage/categories/lie_groups.py +73 -0
- sage/categories/loop_crystals.py +1290 -0
- sage/categories/magmas.py +1189 -0
- sage/categories/magmas_and_additive_magmas.py +149 -0
- sage/categories/magmatic_algebras.py +365 -0
- sage/categories/manifolds.py +352 -0
- sage/categories/matrix_algebras.py +40 -0
- sage/categories/metric_spaces.py +387 -0
- sage/categories/modular_abelian_varieties.py +78 -0
- sage/categories/modules.py +989 -0
- sage/categories/modules_with_basis.py +2794 -0
- sage/categories/monoid_algebras.py +38 -0
- sage/categories/monoids.py +739 -0
- sage/categories/noetherian_rings.py +87 -0
- sage/categories/number_fields.py +242 -0
- sage/categories/ore_modules.py +189 -0
- sage/categories/partially_ordered_monoids.py +49 -0
- sage/categories/permutation_groups.py +63 -0
- sage/categories/pointed_sets.py +42 -0
- sage/categories/polyhedra.py +74 -0
- sage/categories/poor_man_map.py +270 -0
- sage/categories/posets.py +722 -0
- sage/categories/principal_ideal_domains.py +270 -0
- sage/categories/quantum_group_representations.py +543 -0
- sage/categories/quotient_fields.py +728 -0
- sage/categories/r_trivial_semigroups.py +45 -0
- sage/categories/regular_crystals.py +898 -0
- sage/categories/regular_supercrystals.py +170 -0
- sage/categories/right_modules.py +49 -0
- sage/categories/ring_ideals.py +74 -0
- sage/categories/rings.py +1904 -0
- sage/categories/rngs.py +175 -0
- sage/categories/schemes.py +393 -0
- sage/categories/semigroups.py +1060 -0
- sage/categories/semirings.py +71 -0
- sage/categories/semisimple_algebras.py +114 -0
- sage/categories/sets_with_grading.py +235 -0
- sage/categories/shephard_groups.py +43 -0
- sage/categories/signed_tensor.py +120 -0
- sage/categories/simplicial_complexes.py +134 -0
- sage/categories/simplicial_sets.py +1206 -0
- sage/categories/super_algebras.py +149 -0
- sage/categories/super_algebras_with_basis.py +144 -0
- sage/categories/super_hopf_algebras_with_basis.py +126 -0
- sage/categories/super_lie_conformal_algebras.py +193 -0
- sage/categories/super_modules.py +229 -0
- sage/categories/super_modules_with_basis.py +193 -0
- sage/categories/supercommutative_algebras.py +99 -0
- sage/categories/supercrystals.py +406 -0
- sage/categories/tensor.py +110 -0
- sage/categories/topological_spaces.py +170 -0
- sage/categories/triangular_kac_moody_algebras.py +439 -0
- sage/categories/tutorial.py +58 -0
- sage/categories/unique_factorization_domains.py +318 -0
- sage/categories/unital_algebras.py +426 -0
- sage/categories/vector_bundles.py +159 -0
- sage/categories/vector_spaces.py +357 -0
- sage/categories/weyl_groups.py +853 -0
- sage/combinat/all__sagemath_categories.py +34 -0
- sage/combinat/backtrack.py +180 -0
- sage/combinat/combinat.py +2269 -0
- sage/combinat/combinat_cython.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/combinat/combinat_cython.pxd +6 -0
- sage/combinat/combinat_cython.pyx +390 -0
- sage/combinat/combination.py +796 -0
- sage/combinat/combinatorial_map.py +416 -0
- sage/combinat/composition.py +2192 -0
- sage/combinat/dlx.py +510 -0
- sage/combinat/integer_lists/__init__.py +7 -0
- sage/combinat/integer_lists/base.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/combinat/integer_lists/base.pxd +16 -0
- sage/combinat/integer_lists/base.pyx +713 -0
- sage/combinat/integer_lists/invlex.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/combinat/integer_lists/invlex.pxd +4 -0
- sage/combinat/integer_lists/invlex.pyx +1650 -0
- sage/combinat/integer_lists/lists.py +328 -0
- sage/combinat/integer_lists/nn.py +48 -0
- sage/combinat/integer_vector.py +1818 -0
- sage/combinat/integer_vector_weighted.py +413 -0
- sage/combinat/matrices/all__sagemath_categories.py +5 -0
- sage/combinat/matrices/dancing_links.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/combinat/matrices/dancing_links.pyx +1159 -0
- sage/combinat/matrices/dancing_links_c.h +380 -0
- sage/combinat/matrices/dlxcpp.py +136 -0
- sage/combinat/partition.py +10070 -0
- sage/combinat/partitions.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/combinat/partitions.pyx +743 -0
- sage/combinat/permutation.py +10168 -0
- sage/combinat/permutation_cython.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/combinat/permutation_cython.pxd +11 -0
- sage/combinat/permutation_cython.pyx +407 -0
- sage/combinat/q_analogues.py +1090 -0
- sage/combinat/ranker.py +268 -0
- sage/combinat/subset.py +1561 -0
- sage/combinat/subsets_hereditary.py +202 -0
- sage/combinat/subsets_pairwise.py +184 -0
- sage/combinat/tools.py +63 -0
- sage/combinat/tuple.py +348 -0
- sage/data_structures/all.py +2 -0
- sage/data_structures/all__sagemath_categories.py +2 -0
- sage/data_structures/binary_matrix.pxd +138 -0
- sage/data_structures/binary_search.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/data_structures/binary_search.pxd +3 -0
- sage/data_structures/binary_search.pyx +66 -0
- sage/data_structures/bitset.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/data_structures/bitset.pxd +40 -0
- sage/data_structures/bitset.pyx +2385 -0
- sage/data_structures/bitset_base.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/data_structures/bitset_base.pxd +926 -0
- sage/data_structures/bitset_base.pyx +117 -0
- sage/data_structures/bitset_intrinsics.h +487 -0
- sage/data_structures/blas_dict.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/data_structures/blas_dict.pxd +12 -0
- sage/data_structures/blas_dict.pyx +469 -0
- sage/data_structures/list_of_pairs.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/data_structures/list_of_pairs.pxd +16 -0
- sage/data_structures/list_of_pairs.pyx +122 -0
- sage/data_structures/mutable_poset.py +3312 -0
- sage/data_structures/pairing_heap.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/data_structures/pairing_heap.h +346 -0
- sage/data_structures/pairing_heap.pxd +88 -0
- sage/data_structures/pairing_heap.pyx +1464 -0
- sage/data_structures/sparse_bitset.pxd +62 -0
- sage/data_structures/stream.py +5070 -0
- sage/databases/all__sagemath_categories.py +7 -0
- sage/databases/sql_db.py +2236 -0
- sage/ext/all__sagemath_categories.py +3 -0
- sage/ext/fast_callable.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/ext/fast_callable.pxd +4 -0
- sage/ext/fast_callable.pyx +2746 -0
- sage/ext/fast_eval.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/ext/fast_eval.pxd +1 -0
- sage/ext/fast_eval.pyx +102 -0
- sage/ext/interpreters/__init__.py +1 -0
- sage/ext/interpreters/all__sagemath_categories.py +2 -0
- sage/ext/interpreters/wrapper_el.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/ext/interpreters/wrapper_el.pxd +18 -0
- sage/ext/interpreters/wrapper_el.pyx +148 -0
- sage/ext/interpreters/wrapper_py.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/ext/interpreters/wrapper_py.pxd +17 -0
- sage/ext/interpreters/wrapper_py.pyx +133 -0
- sage/functions/airy.py +937 -0
- sage/functions/all.py +97 -0
- sage/functions/bessel.py +2102 -0
- sage/functions/error.py +784 -0
- sage/functions/exp_integral.py +1529 -0
- sage/functions/gamma.py +1087 -0
- sage/functions/generalized.py +672 -0
- sage/functions/hyperbolic.py +747 -0
- sage/functions/hypergeometric.py +1156 -0
- sage/functions/jacobi.py +1705 -0
- sage/functions/log.py +1402 -0
- sage/functions/min_max.py +338 -0
- sage/functions/orthogonal_polys.py +3106 -0
- sage/functions/other.py +2303 -0
- sage/functions/piecewise.py +1505 -0
- sage/functions/prime_pi.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/functions/prime_pi.pyx +262 -0
- sage/functions/special.py +1212 -0
- sage/functions/spike_function.py +278 -0
- sage/functions/transcendental.py +690 -0
- sage/functions/trig.py +1062 -0
- sage/functions/wigner.py +726 -0
- sage/geometry/abc.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/geometry/abc.pyx +82 -0
- sage/geometry/all__sagemath_categories.py +1 -0
- sage/groups/all__sagemath_categories.py +11 -0
- sage/groups/generic.py +1733 -0
- sage/groups/groups_catalog.py +113 -0
- sage/groups/perm_gps/all__sagemath_categories.py +1 -0
- sage/groups/perm_gps/partn_ref/all.py +1 -0
- sage/groups/perm_gps/partn_ref/all__sagemath_categories.py +1 -0
- sage/groups/perm_gps/partn_ref/automorphism_group_canonical_label.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/groups/perm_gps/partn_ref/automorphism_group_canonical_label.pxd +52 -0
- sage/groups/perm_gps/partn_ref/automorphism_group_canonical_label.pyx +906 -0
- sage/groups/perm_gps/partn_ref/canonical_augmentation.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/groups/perm_gps/partn_ref/canonical_augmentation.pxd +85 -0
- sage/groups/perm_gps/partn_ref/canonical_augmentation.pyx +534 -0
- sage/groups/perm_gps/partn_ref/data_structures.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/groups/perm_gps/partn_ref/data_structures.pxd +576 -0
- sage/groups/perm_gps/partn_ref/data_structures.pyx +1792 -0
- sage/groups/perm_gps/partn_ref/double_coset.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/groups/perm_gps/partn_ref/double_coset.pxd +45 -0
- sage/groups/perm_gps/partn_ref/double_coset.pyx +739 -0
- sage/groups/perm_gps/partn_ref/refinement_lists.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/groups/perm_gps/partn_ref/refinement_lists.pxd +18 -0
- sage/groups/perm_gps/partn_ref/refinement_lists.pyx +82 -0
- sage/groups/perm_gps/partn_ref/refinement_python.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/groups/perm_gps/partn_ref/refinement_python.pxd +16 -0
- sage/groups/perm_gps/partn_ref/refinement_python.pyx +564 -0
- sage/groups/perm_gps/partn_ref/refinement_sets.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/groups/perm_gps/partn_ref/refinement_sets.pxd +60 -0
- sage/groups/perm_gps/partn_ref/refinement_sets.pyx +858 -0
- sage/interfaces/abc.py +140 -0
- sage/interfaces/all.py +58 -0
- sage/interfaces/all__sagemath_categories.py +1 -0
- sage/interfaces/expect.py +1643 -0
- sage/interfaces/interface.py +1682 -0
- sage/interfaces/process.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/interfaces/process.pxd +5 -0
- sage/interfaces/process.pyx +288 -0
- sage/interfaces/quit.py +167 -0
- sage/interfaces/sage0.py +604 -0
- sage/interfaces/sagespawn.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/interfaces/sagespawn.pyx +308 -0
- sage/interfaces/tab_completion.py +101 -0
- sage/misc/all__sagemath_categories.py +78 -0
- sage/misc/allocator.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/misc/allocator.pxd +6 -0
- sage/misc/allocator.pyx +47 -0
- sage/misc/binary_tree.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/misc/binary_tree.pxd +29 -0
- sage/misc/binary_tree.pyx +537 -0
- sage/misc/callable_dict.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/misc/callable_dict.pyx +89 -0
- sage/misc/citation.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/misc/citation.pyx +159 -0
- sage/misc/converting_dict.py +293 -0
- sage/misc/defaults.py +129 -0
- sage/misc/derivative.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/misc/derivative.pyx +223 -0
- sage/misc/functional.py +2005 -0
- sage/misc/html.py +589 -0
- sage/misc/latex.py +2673 -0
- sage/misc/latex_macros.py +236 -0
- sage/misc/latex_standalone.py +1833 -0
- sage/misc/map_threaded.py +38 -0
- sage/misc/mathml.py +76 -0
- sage/misc/method_decorator.py +88 -0
- sage/misc/mrange.py +755 -0
- sage/misc/multireplace.py +41 -0
- sage/misc/object_multiplexer.py +92 -0
- sage/misc/parser.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/misc/parser.pyx +1107 -0
- sage/misc/random_testing.py +264 -0
- sage/misc/rest_index_of_methods.py +377 -0
- sage/misc/search.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/misc/search.pxd +2 -0
- sage/misc/search.pyx +68 -0
- sage/misc/stopgap.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/misc/stopgap.pyx +95 -0
- sage/misc/table.py +853 -0
- sage/monoids/all__sagemath_categories.py +1 -0
- sage/monoids/indexed_free_monoid.py +1071 -0
- sage/monoids/monoid.py +82 -0
- sage/numerical/all__sagemath_categories.py +1 -0
- sage/numerical/backends/all__sagemath_categories.py +1 -0
- sage/numerical/backends/generic_backend.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/numerical/backends/generic_backend.pxd +61 -0
- sage/numerical/backends/generic_backend.pyx +1893 -0
- sage/numerical/backends/generic_sdp_backend.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/numerical/backends/generic_sdp_backend.pxd +38 -0
- sage/numerical/backends/generic_sdp_backend.pyx +755 -0
- sage/parallel/all.py +6 -0
- sage/parallel/decorate.py +575 -0
- sage/parallel/map_reduce.py +1997 -0
- sage/parallel/multiprocessing_sage.py +76 -0
- sage/parallel/ncpus.py +35 -0
- sage/parallel/parallelism.py +364 -0
- sage/parallel/reference.py +47 -0
- sage/parallel/use_fork.py +333 -0
- sage/rings/abc.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/abc.pxd +31 -0
- sage/rings/abc.pyx +526 -0
- sage/rings/algebraic_closure_finite_field.py +1154 -0
- sage/rings/all__sagemath_categories.py +91 -0
- sage/rings/big_oh.py +227 -0
- sage/rings/continued_fraction.py +2754 -0
- sage/rings/continued_fraction_gosper.py +220 -0
- sage/rings/factorint.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/factorint.pyx +295 -0
- sage/rings/fast_arith.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/fast_arith.pxd +21 -0
- sage/rings/fast_arith.pyx +535 -0
- sage/rings/finite_rings/all__sagemath_categories.py +9 -0
- sage/rings/finite_rings/conway_polynomials.py +542 -0
- sage/rings/finite_rings/element_base.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/finite_rings/element_base.pxd +12 -0
- sage/rings/finite_rings/element_base.pyx +1176 -0
- sage/rings/finite_rings/finite_field_base.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/finite_rings/finite_field_base.pxd +7 -0
- sage/rings/finite_rings/finite_field_base.pyx +2171 -0
- sage/rings/finite_rings/finite_field_constructor.py +827 -0
- sage/rings/finite_rings/finite_field_prime_modn.py +372 -0
- sage/rings/finite_rings/galois_group.py +154 -0
- sage/rings/finite_rings/hom_finite_field.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/finite_rings/hom_finite_field.pxd +23 -0
- sage/rings/finite_rings/hom_finite_field.pyx +856 -0
- sage/rings/finite_rings/hom_prime_finite_field.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/finite_rings/hom_prime_finite_field.pxd +15 -0
- sage/rings/finite_rings/hom_prime_finite_field.pyx +164 -0
- sage/rings/finite_rings/homset.py +357 -0
- sage/rings/finite_rings/integer_mod.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/finite_rings/integer_mod.pxd +56 -0
- sage/rings/finite_rings/integer_mod.pyx +4586 -0
- sage/rings/finite_rings/integer_mod_limits.h +11 -0
- sage/rings/finite_rings/integer_mod_ring.py +2044 -0
- sage/rings/finite_rings/residue_field.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/finite_rings/residue_field.pxd +30 -0
- sage/rings/finite_rings/residue_field.pyx +1811 -0
- sage/rings/finite_rings/stdint.pxd +19 -0
- sage/rings/fraction_field.py +1452 -0
- sage/rings/fraction_field_element.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/fraction_field_element.pyx +1357 -0
- sage/rings/function_field/all.py +7 -0
- sage/rings/function_field/all__sagemath_categories.py +2 -0
- sage/rings/function_field/constructor.py +218 -0
- sage/rings/function_field/element.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/function_field/element.pxd +11 -0
- sage/rings/function_field/element.pyx +1008 -0
- sage/rings/function_field/element_rational.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/function_field/element_rational.pyx +513 -0
- sage/rings/function_field/extensions.py +230 -0
- sage/rings/function_field/function_field.py +1468 -0
- sage/rings/function_field/function_field_rational.py +1005 -0
- sage/rings/function_field/ideal.py +1155 -0
- sage/rings/function_field/ideal_rational.py +629 -0
- sage/rings/function_field/jacobian_base.py +826 -0
- sage/rings/function_field/jacobian_hess.py +1053 -0
- sage/rings/function_field/jacobian_khuri_makdisi.py +1027 -0
- sage/rings/function_field/maps.py +1039 -0
- sage/rings/function_field/order.py +281 -0
- sage/rings/function_field/order_basis.py +586 -0
- sage/rings/function_field/order_rational.py +576 -0
- sage/rings/function_field/place.py +426 -0
- sage/rings/function_field/place_rational.py +181 -0
- sage/rings/generic.py +320 -0
- sage/rings/homset.py +332 -0
- sage/rings/ideal.py +1885 -0
- sage/rings/ideal_monoid.py +215 -0
- sage/rings/infinity.py +1890 -0
- sage/rings/integer.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/integer.pxd +45 -0
- sage/rings/integer.pyx +7874 -0
- sage/rings/integer_ring.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/integer_ring.pxd +8 -0
- sage/rings/integer_ring.pyx +1693 -0
- sage/rings/laurent_series_ring.py +931 -0
- sage/rings/laurent_series_ring_element.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/laurent_series_ring_element.pxd +11 -0
- sage/rings/laurent_series_ring_element.pyx +1927 -0
- sage/rings/lazy_series.py +7815 -0
- sage/rings/lazy_series_ring.py +4356 -0
- sage/rings/localization.py +1043 -0
- sage/rings/morphism.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/morphism.pxd +39 -0
- sage/rings/morphism.pyx +3299 -0
- sage/rings/multi_power_series_ring.py +1145 -0
- sage/rings/multi_power_series_ring_element.py +2184 -0
- sage/rings/noncommutative_ideals.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/noncommutative_ideals.pyx +423 -0
- sage/rings/number_field/all__sagemath_categories.py +1 -0
- sage/rings/number_field/number_field_base.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/number_field/number_field_base.pxd +8 -0
- sage/rings/number_field/number_field_base.pyx +507 -0
- sage/rings/number_field/number_field_element_base.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/number_field/number_field_element_base.pxd +6 -0
- sage/rings/number_field/number_field_element_base.pyx +36 -0
- sage/rings/number_field/number_field_ideal.py +3550 -0
- sage/rings/padics/all__sagemath_categories.py +4 -0
- sage/rings/padics/local_generic.py +1670 -0
- sage/rings/padics/local_generic_element.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/padics/local_generic_element.pxd +5 -0
- sage/rings/padics/local_generic_element.pyx +1017 -0
- sage/rings/padics/misc.py +256 -0
- sage/rings/padics/padic_generic.py +1911 -0
- sage/rings/padics/pow_computer.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/padics/pow_computer.pxd +38 -0
- sage/rings/padics/pow_computer.pyx +671 -0
- sage/rings/padics/precision_error.py +24 -0
- sage/rings/polynomial/all__sagemath_categories.py +25 -0
- sage/rings/polynomial/commutative_polynomial.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/polynomial/commutative_polynomial.pxd +6 -0
- sage/rings/polynomial/commutative_polynomial.pyx +24 -0
- sage/rings/polynomial/cyclotomic.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/polynomial/cyclotomic.pyx +404 -0
- sage/rings/polynomial/flatten.py +711 -0
- sage/rings/polynomial/ideal.py +102 -0
- sage/rings/polynomial/infinite_polynomial_element.py +1768 -0
- sage/rings/polynomial/infinite_polynomial_ring.py +1653 -0
- sage/rings/polynomial/laurent_polynomial.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/polynomial/laurent_polynomial.pxd +18 -0
- sage/rings/polynomial/laurent_polynomial.pyx +2190 -0
- sage/rings/polynomial/laurent_polynomial_ideal.py +590 -0
- sage/rings/polynomial/laurent_polynomial_ring.py +832 -0
- sage/rings/polynomial/laurent_polynomial_ring_base.py +708 -0
- sage/rings/polynomial/multi_polynomial.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/polynomial/multi_polynomial.pxd +12 -0
- sage/rings/polynomial/multi_polynomial.pyx +3082 -0
- sage/rings/polynomial/multi_polynomial_element.py +2570 -0
- sage/rings/polynomial/multi_polynomial_ideal.py +5771 -0
- sage/rings/polynomial/multi_polynomial_ring.py +947 -0
- sage/rings/polynomial/multi_polynomial_ring_base.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/polynomial/multi_polynomial_ring_base.pxd +15 -0
- sage/rings/polynomial/multi_polynomial_ring_base.pyx +1855 -0
- sage/rings/polynomial/multi_polynomial_sequence.py +2204 -0
- sage/rings/polynomial/polydict.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/polynomial/polydict.pxd +45 -0
- sage/rings/polynomial/polydict.pyx +2701 -0
- sage/rings/polynomial/polynomial_compiled.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/polynomial/polynomial_compiled.pxd +59 -0
- sage/rings/polynomial/polynomial_compiled.pyx +509 -0
- sage/rings/polynomial/polynomial_element.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/polynomial/polynomial_element.pxd +64 -0
- sage/rings/polynomial/polynomial_element.pyx +13255 -0
- sage/rings/polynomial/polynomial_element_generic.py +1637 -0
- sage/rings/polynomial/polynomial_fateman.py +97 -0
- sage/rings/polynomial/polynomial_quotient_ring.py +2465 -0
- sage/rings/polynomial/polynomial_quotient_ring_element.py +779 -0
- sage/rings/polynomial/polynomial_ring.py +3784 -0
- sage/rings/polynomial/polynomial_ring_constructor.py +1051 -0
- sage/rings/polynomial/polynomial_ring_homomorphism.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/polynomial/polynomial_ring_homomorphism.pxd +5 -0
- sage/rings/polynomial/polynomial_ring_homomorphism.pyx +121 -0
- sage/rings/polynomial/polynomial_singular_interface.py +549 -0
- sage/rings/polynomial/symmetric_ideal.py +989 -0
- sage/rings/polynomial/symmetric_reduction.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/polynomial/symmetric_reduction.pxd +8 -0
- sage/rings/polynomial/symmetric_reduction.pyx +669 -0
- sage/rings/polynomial/term_order.py +2279 -0
- sage/rings/polynomial/toy_buchberger.py +449 -0
- sage/rings/polynomial/toy_d_basis.py +387 -0
- sage/rings/polynomial/toy_variety.py +362 -0
- sage/rings/power_series_mpoly.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/power_series_mpoly.pxd +9 -0
- sage/rings/power_series_mpoly.pyx +161 -0
- sage/rings/power_series_poly.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/power_series_poly.pxd +10 -0
- sage/rings/power_series_poly.pyx +1317 -0
- sage/rings/power_series_ring.py +1441 -0
- sage/rings/power_series_ring_element.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/power_series_ring_element.pxd +12 -0
- sage/rings/power_series_ring_element.pyx +3028 -0
- sage/rings/puiseux_series_ring.py +487 -0
- sage/rings/puiseux_series_ring_element.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/puiseux_series_ring_element.pxd +7 -0
- sage/rings/puiseux_series_ring_element.pyx +1055 -0
- sage/rings/qqbar_decorators.py +167 -0
- sage/rings/quotient_ring.py +1598 -0
- sage/rings/quotient_ring_element.py +979 -0
- sage/rings/rational.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/rational.pxd +20 -0
- sage/rings/rational.pyx +4284 -0
- sage/rings/rational_field.py +1730 -0
- sage/rings/real_double.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/real_double.pxd +16 -0
- sage/rings/real_double.pyx +2218 -0
- sage/rings/real_lazy.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/real_lazy.pxd +30 -0
- sage/rings/real_lazy.pyx +1773 -0
- sage/rings/ring.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/ring.pxd +30 -0
- sage/rings/ring.pyx +850 -0
- sage/rings/semirings/all.py +3 -0
- sage/rings/semirings/non_negative_integer_semiring.py +107 -0
- sage/rings/semirings/tropical_mpolynomial.py +972 -0
- sage/rings/semirings/tropical_polynomial.py +997 -0
- sage/rings/semirings/tropical_semiring.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/semirings/tropical_semiring.pyx +676 -0
- sage/rings/semirings/tropical_variety.py +1701 -0
- sage/rings/sum_of_squares.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/sum_of_squares.pxd +3 -0
- sage/rings/sum_of_squares.pyx +336 -0
- sage/rings/tests.py +504 -0
- sage/schemes/affine/affine_homset.py +508 -0
- sage/schemes/affine/affine_morphism.py +1574 -0
- sage/schemes/affine/affine_point.py +460 -0
- sage/schemes/affine/affine_rational_point.py +308 -0
- sage/schemes/affine/affine_space.py +1264 -0
- sage/schemes/affine/affine_subscheme.py +592 -0
- sage/schemes/affine/all.py +25 -0
- sage/schemes/all__sagemath_categories.py +5 -0
- sage/schemes/generic/algebraic_scheme.py +2092 -0
- sage/schemes/generic/all.py +5 -0
- sage/schemes/generic/ambient_space.py +400 -0
- sage/schemes/generic/divisor.py +465 -0
- sage/schemes/generic/divisor_group.py +313 -0
- sage/schemes/generic/glue.py +84 -0
- sage/schemes/generic/homset.py +820 -0
- sage/schemes/generic/hypersurface.py +234 -0
- sage/schemes/generic/morphism.py +2107 -0
- sage/schemes/generic/point.py +237 -0
- sage/schemes/generic/scheme.py +1190 -0
- sage/schemes/generic/spec.py +199 -0
- sage/schemes/product_projective/all.py +6 -0
- sage/schemes/product_projective/homset.py +236 -0
- sage/schemes/product_projective/morphism.py +517 -0
- sage/schemes/product_projective/point.py +568 -0
- sage/schemes/product_projective/rational_point.py +550 -0
- sage/schemes/product_projective/space.py +1301 -0
- sage/schemes/product_projective/subscheme.py +466 -0
- sage/schemes/projective/all.py +24 -0
- sage/schemes/projective/proj_bdd_height.py +453 -0
- sage/schemes/projective/projective_homset.py +718 -0
- sage/schemes/projective/projective_morphism.py +2792 -0
- sage/schemes/projective/projective_point.py +1484 -0
- sage/schemes/projective/projective_rational_point.py +569 -0
- sage/schemes/projective/projective_space.py +2571 -0
- sage/schemes/projective/projective_subscheme.py +1574 -0
- sage/sets/all.py +17 -0
- sage/sets/cartesian_product.py +376 -0
- sage/sets/condition_set.py +525 -0
- sage/sets/disjoint_set.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/sets/disjoint_set.pxd +36 -0
- sage/sets/disjoint_set.pyx +998 -0
- sage/sets/disjoint_union_enumerated_sets.py +625 -0
- sage/sets/family.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/sets/family.pxd +12 -0
- sage/sets/family.pyx +1556 -0
- sage/sets/finite_enumerated_set.py +406 -0
- sage/sets/finite_set_map_cy.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/sets/finite_set_map_cy.pxd +34 -0
- sage/sets/finite_set_map_cy.pyx +708 -0
- sage/sets/finite_set_maps.py +591 -0
- sage/sets/image_set.py +448 -0
- sage/sets/integer_range.py +829 -0
- sage/sets/non_negative_integers.py +241 -0
- sage/sets/positive_integers.py +93 -0
- sage/sets/primes.py +188 -0
- sage/sets/real_set.py +2760 -0
- sage/sets/recursively_enumerated_set.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/sets/recursively_enumerated_set.pxd +31 -0
- sage/sets/recursively_enumerated_set.pyx +2082 -0
- sage/sets/set.py +2083 -0
- sage/sets/set_from_iterator.py +1021 -0
- sage/sets/totally_ordered_finite_set.py +329 -0
- sage/symbolic/all__sagemath_categories.py +1 -0
- sage/symbolic/function.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/symbolic/function.pxd +29 -0
- sage/symbolic/function.pyx +1488 -0
- sage/symbolic/symbols.py +56 -0
- sage/tests/all__sagemath_categories.py +1 -0
- sage/tests/cython.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/tests/cython.pyx +37 -0
- sage/tests/stl_vector.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/tests/stl_vector.pyx +171 -0
- sage/typeset/all.py +6 -0
- sage/typeset/ascii_art.py +295 -0
- sage/typeset/character_art.py +789 -0
- sage/typeset/character_art_factory.py +572 -0
- sage/typeset/symbols.py +334 -0
- sage/typeset/unicode_art.py +183 -0
- sage/typeset/unicode_characters.py +101 -0
sage/misc/citation.pyx
ADDED
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-categories
|
|
2
|
+
# cython: old_style_globals=True
|
|
3
|
+
"""
|
|
4
|
+
Dependency usage tracking for citations
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from sage.misc.temporary_file import tmp_filename
|
|
8
|
+
from sage.env import SAGE_LOCAL, SAGE_VENV
|
|
9
|
+
|
|
10
|
+
systems = {}
|
|
11
|
+
systems['PARI'] = ['cypari2', 'sage.interfaces.gp']
|
|
12
|
+
systems['Singular'] = ['sage.interfaces.singular', '_libsingular',
|
|
13
|
+
'sage.libs.singular']
|
|
14
|
+
systems['Maxima'] = ['sage.interfaces.maxima']
|
|
15
|
+
systems['GAP'] = ['sage.interfaces.gap']
|
|
16
|
+
systems['Magma'] = ['sage.interfaces.magma', 'sage.interfaces.magma_free']
|
|
17
|
+
systems['Axiom'] = ['sage.interfaces.axiom']
|
|
18
|
+
systems['ECM'] = ['sage.interfaces.ecm']
|
|
19
|
+
systems['scipy'] = ['scipy']
|
|
20
|
+
systems['numpy'] = ['numpy']
|
|
21
|
+
systems['ginac'] = ['sage.symbolic']
|
|
22
|
+
systems['Maple'] = ['sage.interfaces.maple']
|
|
23
|
+
systems['Mathematica'] = ['sage.interfaces.mathematica']
|
|
24
|
+
systems['MuPAD'] = ['sage.interfaces.mupad']
|
|
25
|
+
systems['Octave'] = ['sage.interfaces.octave']
|
|
26
|
+
systems['povray'] = ['sage.interfaces.povray']
|
|
27
|
+
systems['Macaulay2'] = ['sage.interfaces.macaulay2']
|
|
28
|
+
systems['mwrank'] = ['sage.interfaces.mwrank', 'sage.libs.eclib']
|
|
29
|
+
systems['matlab'] = ['sage.interfaces.matlab']
|
|
30
|
+
systems['LiE'] = ['sage.interfaces.lie']
|
|
31
|
+
systems['Tachyon'] = ['sage.interfaces.tachyon']
|
|
32
|
+
systems['Frobby'] = ['sage.interfaces.frobby']
|
|
33
|
+
systems['gfan'] = ['sage.interfaces.gfan']
|
|
34
|
+
systems['R'] = ['sage.interfaces.r']
|
|
35
|
+
systems['KASH'] = ['sage.interfaces.kash']
|
|
36
|
+
systems['Linbox'] = ['sage.libs.linbox']
|
|
37
|
+
systems['Symmetrica'] = ['sage.libs.symmetrica']
|
|
38
|
+
systems['NTL'] = ['sage.libs.ntl',
|
|
39
|
+
'sage.rings.finite_rings.element_ntl_gf2e']
|
|
40
|
+
systems['FLINT'] = ['_flint']
|
|
41
|
+
systems['GMP'] = ['sage.rings.integer.Integer']
|
|
42
|
+
systems['MPFR'] = ['sage.rings.real_mpfr',
|
|
43
|
+
'sage.rings.complex_mpfr']
|
|
44
|
+
systems['MPFI'] = ['sage.rings.real_mpfi',
|
|
45
|
+
'sage.rings.complex_interval']
|
|
46
|
+
systems['M4RI'] = ['sage.matrix.matrix_mod2_dense']
|
|
47
|
+
systems['Givaro'] = ['sage.rings.finite_rings.element_givaro']
|
|
48
|
+
systems['PolyBoRi'] = ['sage.rings.polynomial.pbori.pbori']
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
def get_systems(cmd):
|
|
52
|
+
"""
|
|
53
|
+
Return a list of the systems used in running the command ``cmd``.
|
|
54
|
+
|
|
55
|
+
Note that the results can sometimes include systems that did not
|
|
56
|
+
actually contribute to the computation. Due to caching, it
|
|
57
|
+
could miss some dependencies as well.
|
|
58
|
+
|
|
59
|
+
INPUT:
|
|
60
|
+
|
|
61
|
+
- ``cmd`` -- string to run
|
|
62
|
+
|
|
63
|
+
.. WARNING::
|
|
64
|
+
|
|
65
|
+
In order to properly support Cython code, this requires that
|
|
66
|
+
Sage was compiled with the environment variable
|
|
67
|
+
``SAGE_PROFILE=yes``. If this was not the case, a warning will
|
|
68
|
+
be given when calling this function.
|
|
69
|
+
|
|
70
|
+
EXAMPLES::
|
|
71
|
+
|
|
72
|
+
sage: from sage.misc.citation import get_systems
|
|
73
|
+
sage: get_systems('print("hello")') # random (may print warning)
|
|
74
|
+
[]
|
|
75
|
+
sage: integrate(x^2, x) # Priming coercion model # needs sage.symbolic
|
|
76
|
+
1/3*x^3
|
|
77
|
+
sage: get_systems('integrate(x^2, x)') # needs sage.symbolic
|
|
78
|
+
['Maxima', 'ginac']
|
|
79
|
+
sage: R.<x,y,z> = QQ[]
|
|
80
|
+
sage: I = R.ideal(x^2 + y^2, z^2 + y)
|
|
81
|
+
sage: get_systems('I.primary_decomposition()') # needs sage.libs.singular
|
|
82
|
+
['Singular']
|
|
83
|
+
"""
|
|
84
|
+
import cProfile
|
|
85
|
+
import pstats
|
|
86
|
+
import re
|
|
87
|
+
|
|
88
|
+
if not cython_profile_enabled():
|
|
89
|
+
from warnings import warn
|
|
90
|
+
warn("get_systems() requires Cython profiling to be enabled, "
|
|
91
|
+
"otherwise the results will be very unreliable. "
|
|
92
|
+
"Rebuild Sage with the environment variable 'SAGE_PROFILE=yes' "
|
|
93
|
+
"to enable profiling.")
|
|
94
|
+
|
|
95
|
+
if not isinstance(cmd, str):
|
|
96
|
+
raise TypeError("command must be a string")
|
|
97
|
+
|
|
98
|
+
from sage.repl.preparse import preparse
|
|
99
|
+
cmd = preparse(cmd)
|
|
100
|
+
|
|
101
|
+
# Run the command and get the stats
|
|
102
|
+
filename = tmp_filename()
|
|
103
|
+
cProfile.runctx(cmd, globals(), {}, filename)
|
|
104
|
+
stats = pstats.Stats(filename)
|
|
105
|
+
|
|
106
|
+
# Strings is a list of method names and modules which get run
|
|
107
|
+
def string_from_stat(a):
|
|
108
|
+
s = a[0]
|
|
109
|
+
if SAGE_LOCAL:
|
|
110
|
+
s = s.replace(SAGE_LOCAL, "")
|
|
111
|
+
if SAGE_VENV:
|
|
112
|
+
s = s.replace(SAGE_VENV, "")
|
|
113
|
+
return s + " " + a[2]
|
|
114
|
+
|
|
115
|
+
strings = [string_from_stat(a)
|
|
116
|
+
for a in stats.stats]
|
|
117
|
+
|
|
118
|
+
# Remove trivial functions
|
|
119
|
+
bad_res = [re.compile(r'is_.*Element'), re.compile("is_[a-z_]*_type")]
|
|
120
|
+
for bad_re in bad_res:
|
|
121
|
+
i = 0
|
|
122
|
+
while i < len(strings):
|
|
123
|
+
if bad_re.findall(strings[i]):
|
|
124
|
+
strings.pop(i)
|
|
125
|
+
else:
|
|
126
|
+
i += 1
|
|
127
|
+
|
|
128
|
+
# Check to see which systems appear in the profiled run
|
|
129
|
+
systems_used = []
|
|
130
|
+
for system in systems:
|
|
131
|
+
if any((r in s) or (r.replace('.', '/') in s)
|
|
132
|
+
for r in systems[system] for s in strings):
|
|
133
|
+
systems_used.append(system)
|
|
134
|
+
return sorted(systems_used)
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
cdef extern from *:
|
|
138
|
+
int CYTHON_PROFILE """
|
|
139
|
+
#ifdef CYTHON_PROFILE
|
|
140
|
+
CYTHON_PROFILE
|
|
141
|
+
#else
|
|
142
|
+
0
|
|
143
|
+
#endif
|
|
144
|
+
"""
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
cpdef inline bint cython_profile_enabled() noexcept:
|
|
148
|
+
"""
|
|
149
|
+
Return whether Cython profiling is enabled.
|
|
150
|
+
|
|
151
|
+
EXAMPLES::
|
|
152
|
+
|
|
153
|
+
sage: from sage.misc.citation import cython_profile_enabled
|
|
154
|
+
sage: cython_profile_enabled() # random
|
|
155
|
+
False
|
|
156
|
+
sage: type(cython_profile_enabled()) is bool
|
|
157
|
+
True
|
|
158
|
+
"""
|
|
159
|
+
return CYTHON_PROFILE
|
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-categories
|
|
2
|
+
r"""
|
|
3
|
+
Converting Dictionary
|
|
4
|
+
|
|
5
|
+
At the moment, the only class contained in this module is a key
|
|
6
|
+
converting dictionary, which applies some function (e.g. type
|
|
7
|
+
conversion function) to all arguments used as keys.
|
|
8
|
+
|
|
9
|
+
.. It is conceivable that a other dicts might be added later on.
|
|
10
|
+
|
|
11
|
+
AUTHORS:
|
|
12
|
+
|
|
13
|
+
- Martin von Gagern (2015-01-31): initial version
|
|
14
|
+
|
|
15
|
+
EXAMPLES:
|
|
16
|
+
|
|
17
|
+
A ``KeyConvertingDict`` will apply a conversion function to all method
|
|
18
|
+
arguments which are keys::
|
|
19
|
+
|
|
20
|
+
sage: from sage.misc.converting_dict import KeyConvertingDict
|
|
21
|
+
sage: d = KeyConvertingDict(int)
|
|
22
|
+
sage: d["3"] = 42
|
|
23
|
+
sage: list(d.items())
|
|
24
|
+
[(3, 42)]
|
|
25
|
+
|
|
26
|
+
This is used e.g. in the result of a variety, to allow access to the
|
|
27
|
+
result no matter how a generator is identified::
|
|
28
|
+
|
|
29
|
+
sage: # needs sage.libs.singular sage.rings.number_field
|
|
30
|
+
sage: K.<x,y> = QQ[]
|
|
31
|
+
sage: I = ideal([x^2 + 2*y - 5, x + y + 3])
|
|
32
|
+
sage: V = sorted(I.variety(AA), key=str)
|
|
33
|
+
sage: v = V[0]
|
|
34
|
+
sage: v['x'], v['y']
|
|
35
|
+
(-2.464101615137755?, -0.535898384862246?)
|
|
36
|
+
sage: list(v)[0].parent()
|
|
37
|
+
Multivariate Polynomial Ring in x, y over Algebraic Real Field
|
|
38
|
+
"""
|
|
39
|
+
# ****************************************************************************
|
|
40
|
+
# Copyright (C) 2015 Martin von Gagern <Martin.vGagern@gmx.net>
|
|
41
|
+
#
|
|
42
|
+
# This program is free software: you can redistribute it and/or modify
|
|
43
|
+
# it under the terms of the GNU General Public License as published by
|
|
44
|
+
# the Free Software Foundation, either version 2 of the License, or
|
|
45
|
+
# (at your option) any later version.
|
|
46
|
+
# https://www.gnu.org/licenses/
|
|
47
|
+
# ****************************************************************************
|
|
48
|
+
|
|
49
|
+
from collections.abc import Mapping
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
class KeyConvertingDict(dict):
|
|
53
|
+
r"""
|
|
54
|
+
A dictionary which automatically applies a conversions to its keys.
|
|
55
|
+
|
|
56
|
+
The most common application is the case where the conversion
|
|
57
|
+
function is the object representing some category, so that key
|
|
58
|
+
conversion means a type conversion to adapt keys to that
|
|
59
|
+
category. This allows different representations for keys which in
|
|
60
|
+
turn makes accessing the correct element easier.
|
|
61
|
+
|
|
62
|
+
INPUT:
|
|
63
|
+
|
|
64
|
+
- ``key_conversion_function`` -- a function which will be
|
|
65
|
+
applied to all method arguments which represent keys
|
|
66
|
+
- ``data`` -- (optional) dictionary or sequence of key-value pairs
|
|
67
|
+
to initialize this mapping
|
|
68
|
+
|
|
69
|
+
EXAMPLES::
|
|
70
|
+
|
|
71
|
+
sage: from sage.misc.converting_dict import KeyConvertingDict
|
|
72
|
+
sage: d = KeyConvertingDict(int)
|
|
73
|
+
sage: d["3"] = 42
|
|
74
|
+
sage: list(d.items())
|
|
75
|
+
[(3, 42)]
|
|
76
|
+
sage: d[5.0] = 64
|
|
77
|
+
sage: d["05"]
|
|
78
|
+
64
|
|
79
|
+
"""
|
|
80
|
+
|
|
81
|
+
def __init__(self, key_conversion_function, data=None):
|
|
82
|
+
r"""
|
|
83
|
+
Construct a dictionary with a given conversion function.
|
|
84
|
+
|
|
85
|
+
EXAMPLES::
|
|
86
|
+
|
|
87
|
+
sage: from sage.misc.converting_dict import KeyConvertingDict
|
|
88
|
+
sage: d = KeyConvertingDict(int)
|
|
89
|
+
sage: d["3"] = 42
|
|
90
|
+
sage: list(d.items())
|
|
91
|
+
[(3, 42)]
|
|
92
|
+
sage: list(KeyConvertingDict(int, {"5": 7}).items())
|
|
93
|
+
[(5, 7)]
|
|
94
|
+
sage: list(KeyConvertingDict(int, [("9", 99)]).items())
|
|
95
|
+
[(9, 99)]
|
|
96
|
+
"""
|
|
97
|
+
super().__init__()
|
|
98
|
+
self.key_conversion_function = key_conversion_function
|
|
99
|
+
if data:
|
|
100
|
+
self.update(data)
|
|
101
|
+
|
|
102
|
+
def __getitem__(self, key):
|
|
103
|
+
r"""
|
|
104
|
+
Retrieve an element from the dictionary.
|
|
105
|
+
|
|
106
|
+
INPUT:
|
|
107
|
+
|
|
108
|
+
- ``key`` -- a value identifying the element, will be converted
|
|
109
|
+
|
|
110
|
+
EXAMPLES::
|
|
111
|
+
|
|
112
|
+
sage: from sage.misc.converting_dict import KeyConvertingDict
|
|
113
|
+
sage: d = KeyConvertingDict(int)
|
|
114
|
+
sage: d[3] = 42
|
|
115
|
+
sage: d["3"]
|
|
116
|
+
42
|
|
117
|
+
"""
|
|
118
|
+
key = self.key_conversion_function(key)
|
|
119
|
+
return super().__getitem__(key)
|
|
120
|
+
|
|
121
|
+
def __setitem__(self, key, value):
|
|
122
|
+
r"""
|
|
123
|
+
Assign an element in the dictionary.
|
|
124
|
+
|
|
125
|
+
INPUT:
|
|
126
|
+
|
|
127
|
+
- ``key`` -- a value identifying the element, will be converted
|
|
128
|
+
- ``value`` -- the associated value, will be left unmodified
|
|
129
|
+
|
|
130
|
+
EXAMPLES::
|
|
131
|
+
|
|
132
|
+
sage: from sage.misc.converting_dict import KeyConvertingDict
|
|
133
|
+
sage: d = KeyConvertingDict(int)
|
|
134
|
+
sage: d["3"] = 42
|
|
135
|
+
sage: list(d.items())
|
|
136
|
+
[(3, 42)]
|
|
137
|
+
"""
|
|
138
|
+
key = self.key_conversion_function(key)
|
|
139
|
+
return super().__setitem__(key, value)
|
|
140
|
+
|
|
141
|
+
def __delitem__(self, key):
|
|
142
|
+
r"""
|
|
143
|
+
Remove a mapping from the dictionary.
|
|
144
|
+
|
|
145
|
+
INPUT:
|
|
146
|
+
|
|
147
|
+
- ``key`` -- a value identifying the element, will be converted
|
|
148
|
+
|
|
149
|
+
EXAMPLES::
|
|
150
|
+
|
|
151
|
+
sage: from sage.misc.converting_dict import KeyConvertingDict
|
|
152
|
+
sage: d = KeyConvertingDict(int)
|
|
153
|
+
sage: d[3] = 42
|
|
154
|
+
sage: del d["3"]
|
|
155
|
+
sage: len(d)
|
|
156
|
+
0
|
|
157
|
+
"""
|
|
158
|
+
key = self.key_conversion_function(key)
|
|
159
|
+
return super().__delitem__(key)
|
|
160
|
+
|
|
161
|
+
def __contains__(self, key):
|
|
162
|
+
r"""
|
|
163
|
+
Test whether a given key is contained in the mapping.
|
|
164
|
+
|
|
165
|
+
INPUT:
|
|
166
|
+
|
|
167
|
+
- ``key`` -- a value identifying the element, will be converted
|
|
168
|
+
|
|
169
|
+
EXAMPLES::
|
|
170
|
+
|
|
171
|
+
sage: from sage.misc.converting_dict import KeyConvertingDict
|
|
172
|
+
sage: d = KeyConvertingDict(int)
|
|
173
|
+
sage: d[3] = 42
|
|
174
|
+
sage: "3" in d
|
|
175
|
+
True
|
|
176
|
+
sage: 4 in d
|
|
177
|
+
False
|
|
178
|
+
"""
|
|
179
|
+
key = self.key_conversion_function(key)
|
|
180
|
+
return super().__contains__(key)
|
|
181
|
+
|
|
182
|
+
def pop(self, key, *args):
|
|
183
|
+
r"""
|
|
184
|
+
Remove and retrieve a given element from the dictionary.
|
|
185
|
+
|
|
186
|
+
INPUT:
|
|
187
|
+
|
|
188
|
+
- ``key`` -- a value identifying the element, will be converted
|
|
189
|
+
- ``default`` -- the value to return if the element is not mapped, optional
|
|
190
|
+
|
|
191
|
+
EXAMPLES::
|
|
192
|
+
|
|
193
|
+
sage: from sage.misc.converting_dict import KeyConvertingDict
|
|
194
|
+
sage: d = KeyConvertingDict(int)
|
|
195
|
+
sage: d[3] = 42
|
|
196
|
+
sage: d.pop("3")
|
|
197
|
+
42
|
|
198
|
+
sage: d.pop("3", 33)
|
|
199
|
+
33
|
|
200
|
+
sage: d.pop("3")
|
|
201
|
+
Traceback (most recent call last):
|
|
202
|
+
...
|
|
203
|
+
KeyError: ...
|
|
204
|
+
"""
|
|
205
|
+
key = self.key_conversion_function(key)
|
|
206
|
+
return super().pop(key, *args)
|
|
207
|
+
|
|
208
|
+
def setdefault(self, key, default=None):
|
|
209
|
+
r"""
|
|
210
|
+
Create a given mapping unless there already exists a mapping
|
|
211
|
+
for that key.
|
|
212
|
+
|
|
213
|
+
INPUT:
|
|
214
|
+
|
|
215
|
+
- ``key`` -- a value identifying the element, will be converted
|
|
216
|
+
- ``default`` -- the value to associate with the key
|
|
217
|
+
|
|
218
|
+
EXAMPLES::
|
|
219
|
+
|
|
220
|
+
sage: from sage.misc.converting_dict import KeyConvertingDict
|
|
221
|
+
sage: d = KeyConvertingDict(int)
|
|
222
|
+
sage: d.setdefault("3")
|
|
223
|
+
sage: list(d.items())
|
|
224
|
+
[(3, None)]
|
|
225
|
+
"""
|
|
226
|
+
key = self.key_conversion_function(key)
|
|
227
|
+
return super().setdefault(key, default)
|
|
228
|
+
|
|
229
|
+
def update(self, *args, **kwds):
|
|
230
|
+
r"""
|
|
231
|
+
Update the dictionary with key-value pairs from another dictionary,
|
|
232
|
+
sequence of key-value pairs, or keyword arguments.
|
|
233
|
+
|
|
234
|
+
INPUT:
|
|
235
|
+
|
|
236
|
+
- ``key`` -- a value identifying the element, will be converted
|
|
237
|
+
- ``args`` -- a single dict or sequence of pairs
|
|
238
|
+
- ``kwds`` -- named elements require that the conversion
|
|
239
|
+
function accept strings
|
|
240
|
+
|
|
241
|
+
EXAMPLES::
|
|
242
|
+
|
|
243
|
+
sage: from sage.misc.converting_dict import KeyConvertingDict
|
|
244
|
+
sage: d = KeyConvertingDict(int)
|
|
245
|
+
sage: d.update([("3",1),(4,2)])
|
|
246
|
+
sage: d[3]
|
|
247
|
+
1
|
|
248
|
+
sage: d.update({"5": 7, "9": 12})
|
|
249
|
+
sage: d[9]
|
|
250
|
+
12
|
|
251
|
+
sage: d = KeyConvertingDict(QQ['x'])
|
|
252
|
+
sage: d.update(x=42)
|
|
253
|
+
sage: d
|
|
254
|
+
{x: 42}
|
|
255
|
+
"""
|
|
256
|
+
f = self.key_conversion_function
|
|
257
|
+
u = super().update
|
|
258
|
+
if args:
|
|
259
|
+
if len(args) != 1:
|
|
260
|
+
raise TypeError("update expected at most 1 argument")
|
|
261
|
+
arg = args[0]
|
|
262
|
+
if isinstance(arg, Mapping):
|
|
263
|
+
seq = ((f(k), arg[k]) for k in arg)
|
|
264
|
+
else:
|
|
265
|
+
seq = ((f(k), v) for k, v in arg)
|
|
266
|
+
u(seq)
|
|
267
|
+
if kwds:
|
|
268
|
+
seq = ((f(k), v) for k, v in kwds.items())
|
|
269
|
+
u(seq)
|
|
270
|
+
|
|
271
|
+
def _repr_pretty_(self, p, cycle):
|
|
272
|
+
"""
|
|
273
|
+
For pretty printing in the Sage command prompt.
|
|
274
|
+
|
|
275
|
+
Since ``KeyConvertingDict`` inherits from ``dict``, we just use IPython's
|
|
276
|
+
built-in ``dict`` pretty printer.
|
|
277
|
+
When :issue:`36801` is fixed, this function will be redundant.
|
|
278
|
+
|
|
279
|
+
EXAMPLES::
|
|
280
|
+
|
|
281
|
+
sage: from sage.misc.converting_dict import KeyConvertingDict
|
|
282
|
+
sage: d = KeyConvertingDict(int)
|
|
283
|
+
sage: d["3"] = 4
|
|
284
|
+
sage: d["1"] = 2
|
|
285
|
+
sage: repr(d) # dictionaries are insertion ordered since Python 3.6
|
|
286
|
+
'{3: 4, 1: 2}'
|
|
287
|
+
sage: d # indirect doctest
|
|
288
|
+
{1: 2, 3: 4}
|
|
289
|
+
|
|
290
|
+
The last example output will be ``{3: 4, 1: 2}`` outside of doctesting,
|
|
291
|
+
see :func:`sage.doctest.forker.init_sage`.
|
|
292
|
+
"""
|
|
293
|
+
p.pretty(dict(self))
|
sage/misc/defaults.py
ADDED
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-categories
|
|
2
|
+
"""
|
|
3
|
+
Default Settings
|
|
4
|
+
|
|
5
|
+
AUTHORS: William Stein and David Kohel
|
|
6
|
+
"""
|
|
7
|
+
# ****************************************************************************
|
|
8
|
+
# Copyright (C) 2004 William Stein <wstein@gmail.com>
|
|
9
|
+
#
|
|
10
|
+
# Distributed under the terms of the GNU General Public License (GPL)
|
|
11
|
+
#
|
|
12
|
+
# This code is distributed in the hope that it will be useful,
|
|
13
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
14
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
15
|
+
# General Public License for more details.
|
|
16
|
+
#
|
|
17
|
+
# The full text of the GPL is available at:
|
|
18
|
+
#
|
|
19
|
+
# https://www.gnu.org/licenses/
|
|
20
|
+
# ****************************************************************************
|
|
21
|
+
|
|
22
|
+
# default variable name
|
|
23
|
+
var_name = 'x'
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def variable_names(n, name=None):
|
|
27
|
+
r"""
|
|
28
|
+
Convert a root string into a tuple of variable names by adding
|
|
29
|
+
numbers in sequence.
|
|
30
|
+
|
|
31
|
+
INPUT:
|
|
32
|
+
|
|
33
|
+
- ``n`` -- a nonnegative Integer; the number of variable names to
|
|
34
|
+
output
|
|
35
|
+
- ``names`` a string (default: ``None``); the root of the variable
|
|
36
|
+
name
|
|
37
|
+
|
|
38
|
+
EXAMPLES::
|
|
39
|
+
|
|
40
|
+
sage: from sage.misc.defaults import variable_names
|
|
41
|
+
sage: variable_names(0)
|
|
42
|
+
()
|
|
43
|
+
sage: variable_names(1)
|
|
44
|
+
('x',)
|
|
45
|
+
sage: variable_names(1,'alpha')
|
|
46
|
+
('alpha',)
|
|
47
|
+
sage: variable_names(2,'alpha')
|
|
48
|
+
('alpha0', 'alpha1')
|
|
49
|
+
"""
|
|
50
|
+
if name is None:
|
|
51
|
+
name = var_name
|
|
52
|
+
n = int(n)
|
|
53
|
+
if n == 1:
|
|
54
|
+
return (name,)
|
|
55
|
+
return tuple(['%s%s' % (name, i) for i in range(n)])
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
def latex_variable_names(n, name=None):
|
|
59
|
+
r"""
|
|
60
|
+
Convert a root string into a tuple of variable names by adding
|
|
61
|
+
numbers in sequence.
|
|
62
|
+
|
|
63
|
+
INPUT:
|
|
64
|
+
|
|
65
|
+
- ``n`` -- a nonnegative Integer; the number of variable names to
|
|
66
|
+
output
|
|
67
|
+
- ``names`` a string (default: ``None``); the root of the variable
|
|
68
|
+
name
|
|
69
|
+
|
|
70
|
+
EXAMPLES::
|
|
71
|
+
|
|
72
|
+
sage: from sage.misc.defaults import latex_variable_names
|
|
73
|
+
sage: latex_variable_names(0)
|
|
74
|
+
()
|
|
75
|
+
sage: latex_variable_names(1,'a')
|
|
76
|
+
('a',)
|
|
77
|
+
sage: latex_variable_names(3,beta)
|
|
78
|
+
('beta_{0}', 'beta_{1}', 'beta_{2}')
|
|
79
|
+
sage: latex_variable_names(3,r'\beta')
|
|
80
|
+
('\\beta_{0}', '\\beta_{1}', '\\beta_{2}')
|
|
81
|
+
"""
|
|
82
|
+
if name is None:
|
|
83
|
+
name = var_name
|
|
84
|
+
n = int(n)
|
|
85
|
+
if n == 1:
|
|
86
|
+
return (name,)
|
|
87
|
+
return tuple(['%s_{%s}' % (name, i) for i in range(n)])
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
def set_default_variable_name(name, separator=''):
|
|
91
|
+
r"""
|
|
92
|
+
Change the default variable name and separator.
|
|
93
|
+
"""
|
|
94
|
+
global var_name, var_sep
|
|
95
|
+
var_name = str(name)
|
|
96
|
+
var_sep = str(separator)
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
# default series precision
|
|
100
|
+
series_prec = 20
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
def series_precision():
|
|
104
|
+
"""
|
|
105
|
+
Return the Sage-wide precision for series (symbolic,
|
|
106
|
+
power series, Laurent series).
|
|
107
|
+
|
|
108
|
+
EXAMPLES::
|
|
109
|
+
|
|
110
|
+
sage: series_precision()
|
|
111
|
+
20
|
|
112
|
+
"""
|
|
113
|
+
return series_prec
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
def set_series_precision(prec):
|
|
117
|
+
"""
|
|
118
|
+
Change the Sage-wide precision for series (symbolic,
|
|
119
|
+
power series, Laurent series).
|
|
120
|
+
|
|
121
|
+
EXAMPLES::
|
|
122
|
+
|
|
123
|
+
sage: set_series_precision(5)
|
|
124
|
+
sage: series_precision()
|
|
125
|
+
5
|
|
126
|
+
sage: set_series_precision(20)
|
|
127
|
+
"""
|
|
128
|
+
global series_prec
|
|
129
|
+
series_prec = prec
|
|
Binary file
|