passagemath-modules 10.6.31rc3__cp314-cp314-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.
Potentially problematic release.
This version of passagemath-modules might be problematic. Click here for more details.
- passagemath_modules-10.6.31rc3.dist-info/METADATA +281 -0
- passagemath_modules-10.6.31rc3.dist-info/RECORD +807 -0
- passagemath_modules-10.6.31rc3.dist-info/WHEEL +5 -0
- passagemath_modules-10.6.31rc3.dist-info/top_level.txt +2 -0
- passagemath_modules.libs/libgcc_s-2d945d6c.so.1 +0 -0
- passagemath_modules.libs/libgfortran-67378ab2.so.5.0.0 +0 -0
- passagemath_modules.libs/libgmp-28992bcb.so.10.5.0 +0 -0
- passagemath_modules.libs/libgsl-23768756.so.28.0.0 +0 -0
- passagemath_modules.libs/libmpc-7897025b.so.3.3.1 +0 -0
- passagemath_modules.libs/libmpfr-e34bb864.so.6.2.1 +0 -0
- passagemath_modules.libs/libopenblasp-r0-503f0c35.3.29.so +0 -0
- sage/algebras/all__sagemath_modules.py +20 -0
- sage/algebras/catalog.py +148 -0
- sage/algebras/clifford_algebra.py +3107 -0
- sage/algebras/clifford_algebra_element.cpython-314-aarch64-linux-musl.so +0 -0
- sage/algebras/clifford_algebra_element.pxd +16 -0
- sage/algebras/clifford_algebra_element.pyx +997 -0
- sage/algebras/commutative_dga.py +4252 -0
- sage/algebras/exterior_algebra_groebner.cpython-314-aarch64-linux-musl.so +0 -0
- sage/algebras/exterior_algebra_groebner.pxd +55 -0
- sage/algebras/exterior_algebra_groebner.pyx +727 -0
- sage/algebras/finite_dimensional_algebras/all.py +2 -0
- sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra.py +1029 -0
- sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra_element.cpython-314-aarch64-linux-musl.so +0 -0
- sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra_element.pxd +12 -0
- sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra_element.pyx +706 -0
- sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra_ideal.py +196 -0
- sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra_morphism.py +255 -0
- sage/algebras/finite_gca.py +528 -0
- sage/algebras/group_algebra.py +232 -0
- sage/algebras/lie_algebras/abelian.py +197 -0
- sage/algebras/lie_algebras/affine_lie_algebra.py +1213 -0
- sage/algebras/lie_algebras/all.py +25 -0
- sage/algebras/lie_algebras/all__sagemath_modules.py +1 -0
- sage/algebras/lie_algebras/bch.py +177 -0
- sage/algebras/lie_algebras/bgg_dual_module.py +1184 -0
- sage/algebras/lie_algebras/bgg_resolution.py +232 -0
- sage/algebras/lie_algebras/center_uea.py +767 -0
- sage/algebras/lie_algebras/classical_lie_algebra.py +2516 -0
- sage/algebras/lie_algebras/examples.py +683 -0
- sage/algebras/lie_algebras/free_lie_algebra.py +973 -0
- sage/algebras/lie_algebras/heisenberg.py +820 -0
- sage/algebras/lie_algebras/lie_algebra.py +1562 -0
- sage/algebras/lie_algebras/lie_algebra_element.cpython-314-aarch64-linux-musl.so +0 -0
- sage/algebras/lie_algebras/lie_algebra_element.pxd +68 -0
- sage/algebras/lie_algebras/lie_algebra_element.pyx +2122 -0
- sage/algebras/lie_algebras/morphism.py +661 -0
- sage/algebras/lie_algebras/nilpotent_lie_algebra.py +457 -0
- sage/algebras/lie_algebras/onsager.py +1324 -0
- sage/algebras/lie_algebras/poincare_birkhoff_witt.py +816 -0
- sage/algebras/lie_algebras/quotient.py +462 -0
- sage/algebras/lie_algebras/rank_two_heisenberg_virasoro.py +355 -0
- sage/algebras/lie_algebras/representation.py +1040 -0
- sage/algebras/lie_algebras/structure_coefficients.py +459 -0
- sage/algebras/lie_algebras/subalgebra.py +967 -0
- sage/algebras/lie_algebras/symplectic_derivation.py +289 -0
- sage/algebras/lie_algebras/verma_module.py +1630 -0
- sage/algebras/lie_algebras/virasoro.py +1186 -0
- sage/algebras/octonion_algebra.cpython-314-aarch64-linux-musl.so +0 -0
- sage/algebras/octonion_algebra.pxd +20 -0
- sage/algebras/octonion_algebra.pyx +987 -0
- sage/algebras/orlik_solomon.py +907 -0
- sage/algebras/orlik_terao.py +779 -0
- sage/algebras/steenrod/all.py +7 -0
- sage/algebras/steenrod/steenrod_algebra.py +4258 -0
- sage/algebras/steenrod/steenrod_algebra_bases.py +1179 -0
- sage/algebras/steenrod/steenrod_algebra_misc.py +1167 -0
- sage/algebras/steenrod/steenrod_algebra_mult.py +954 -0
- sage/algebras/weyl_algebra.py +1126 -0
- sage/all__sagemath_modules.py +62 -0
- sage/calculus/all__sagemath_modules.py +19 -0
- sage/calculus/expr.py +205 -0
- sage/calculus/integration.cpython-314-aarch64-linux-musl.so +0 -0
- sage/calculus/integration.pyx +698 -0
- sage/calculus/interpolation.cpython-314-aarch64-linux-musl.so +0 -0
- sage/calculus/interpolation.pxd +13 -0
- sage/calculus/interpolation.pyx +387 -0
- sage/calculus/interpolators.cpython-314-aarch64-linux-musl.so +0 -0
- sage/calculus/interpolators.pyx +326 -0
- sage/calculus/ode.cpython-314-aarch64-linux-musl.so +0 -0
- sage/calculus/ode.pxd +5 -0
- sage/calculus/ode.pyx +610 -0
- sage/calculus/riemann.cpython-314-aarch64-linux-musl.so +0 -0
- sage/calculus/riemann.pyx +1521 -0
- sage/calculus/test_sympy.py +201 -0
- sage/calculus/transforms/all.py +7 -0
- sage/calculus/transforms/dft.py +844 -0
- sage/calculus/transforms/dwt.cpython-314-aarch64-linux-musl.so +0 -0
- sage/calculus/transforms/dwt.pxd +7 -0
- sage/calculus/transforms/dwt.pyx +160 -0
- sage/calculus/transforms/fft.cpython-314-aarch64-linux-musl.so +0 -0
- sage/calculus/transforms/fft.pxd +12 -0
- sage/calculus/transforms/fft.pyx +487 -0
- sage/calculus/wester.py +662 -0
- sage/coding/abstract_code.py +1108 -0
- sage/coding/ag_code.py +868 -0
- sage/coding/ag_code_decoders.cpython-314-aarch64-linux-musl.so +0 -0
- sage/coding/ag_code_decoders.pyx +2639 -0
- sage/coding/all.py +15 -0
- sage/coding/bch_code.py +494 -0
- sage/coding/binary_code.cpython-314-aarch64-linux-musl.so +0 -0
- sage/coding/binary_code.pxd +124 -0
- sage/coding/binary_code.pyx +4139 -0
- sage/coding/bounds_catalog.py +43 -0
- sage/coding/channel.py +819 -0
- sage/coding/channels_catalog.py +29 -0
- sage/coding/code_bounds.py +755 -0
- sage/coding/code_constructions.py +804 -0
- sage/coding/codes_catalog.py +111 -0
- sage/coding/cyclic_code.py +1329 -0
- sage/coding/databases.py +316 -0
- sage/coding/decoder.py +373 -0
- sage/coding/decoders_catalog.py +88 -0
- sage/coding/delsarte_bounds.py +709 -0
- sage/coding/encoder.py +390 -0
- sage/coding/encoders_catalog.py +64 -0
- sage/coding/extended_code.py +468 -0
- sage/coding/gabidulin_code.py +1058 -0
- sage/coding/golay_code.py +404 -0
- sage/coding/goppa_code.py +441 -0
- sage/coding/grs_code.py +2371 -0
- sage/coding/guava.py +107 -0
- sage/coding/guruswami_sudan/all.py +1 -0
- sage/coding/guruswami_sudan/gs_decoder.py +897 -0
- sage/coding/guruswami_sudan/interpolation.py +409 -0
- sage/coding/guruswami_sudan/utils.py +176 -0
- sage/coding/hamming_code.py +176 -0
- sage/coding/information_set_decoder.py +1032 -0
- sage/coding/kasami_codes.cpython-314-aarch64-linux-musl.so +0 -0
- sage/coding/kasami_codes.pyx +351 -0
- sage/coding/linear_code.py +3067 -0
- sage/coding/linear_code_no_metric.py +1354 -0
- sage/coding/linear_rank_metric.py +961 -0
- sage/coding/parity_check_code.py +353 -0
- sage/coding/punctured_code.py +719 -0
- sage/coding/reed_muller_code.py +999 -0
- sage/coding/self_dual_codes.py +942 -0
- sage/coding/source_coding/all.py +2 -0
- sage/coding/source_coding/huffman.py +553 -0
- sage/coding/subfield_subcode.py +423 -0
- sage/coding/two_weight_db.py +399 -0
- sage/combinat/all__sagemath_modules.py +7 -0
- sage/combinat/cartesian_product.py +347 -0
- sage/combinat/family.py +11 -0
- sage/combinat/free_module.py +1977 -0
- sage/combinat/root_system/all.py +147 -0
- sage/combinat/root_system/ambient_space.py +527 -0
- sage/combinat/root_system/associahedron.py +471 -0
- sage/combinat/root_system/braid_move_calculator.py +143 -0
- sage/combinat/root_system/braid_orbit.cpython-314-aarch64-linux-musl.so +0 -0
- sage/combinat/root_system/braid_orbit.pyx +144 -0
- sage/combinat/root_system/branching_rules.py +2301 -0
- sage/combinat/root_system/cartan_matrix.py +1245 -0
- sage/combinat/root_system/cartan_type.py +3069 -0
- sage/combinat/root_system/coxeter_group.py +162 -0
- sage/combinat/root_system/coxeter_matrix.py +1261 -0
- sage/combinat/root_system/coxeter_type.py +681 -0
- sage/combinat/root_system/dynkin_diagram.py +900 -0
- sage/combinat/root_system/extended_affine_weyl_group.py +2993 -0
- sage/combinat/root_system/fundamental_group.py +795 -0
- sage/combinat/root_system/hecke_algebra_representation.py +1203 -0
- sage/combinat/root_system/integrable_representations.py +1227 -0
- sage/combinat/root_system/non_symmetric_macdonald_polynomials.py +1965 -0
- sage/combinat/root_system/pieri_factors.py +1147 -0
- sage/combinat/root_system/plot.py +1615 -0
- sage/combinat/root_system/root_lattice_realization_algebras.py +1214 -0
- sage/combinat/root_system/root_lattice_realizations.py +4628 -0
- sage/combinat/root_system/root_space.py +487 -0
- sage/combinat/root_system/root_system.py +882 -0
- sage/combinat/root_system/type_A.py +348 -0
- sage/combinat/root_system/type_A_affine.py +227 -0
- sage/combinat/root_system/type_A_infinity.py +241 -0
- sage/combinat/root_system/type_B.py +347 -0
- sage/combinat/root_system/type_BC_affine.py +287 -0
- sage/combinat/root_system/type_B_affine.py +216 -0
- sage/combinat/root_system/type_C.py +317 -0
- sage/combinat/root_system/type_C_affine.py +188 -0
- sage/combinat/root_system/type_D.py +357 -0
- sage/combinat/root_system/type_D_affine.py +208 -0
- sage/combinat/root_system/type_E.py +641 -0
- sage/combinat/root_system/type_E_affine.py +231 -0
- sage/combinat/root_system/type_F.py +387 -0
- sage/combinat/root_system/type_F_affine.py +137 -0
- sage/combinat/root_system/type_G.py +293 -0
- sage/combinat/root_system/type_G_affine.py +132 -0
- sage/combinat/root_system/type_H.py +105 -0
- sage/combinat/root_system/type_I.py +110 -0
- sage/combinat/root_system/type_Q.py +150 -0
- sage/combinat/root_system/type_affine.py +509 -0
- sage/combinat/root_system/type_dual.py +704 -0
- sage/combinat/root_system/type_folded.py +301 -0
- sage/combinat/root_system/type_marked.py +748 -0
- sage/combinat/root_system/type_reducible.py +601 -0
- sage/combinat/root_system/type_relabel.py +730 -0
- sage/combinat/root_system/type_super_A.py +837 -0
- sage/combinat/root_system/weight_lattice_realizations.py +1188 -0
- sage/combinat/root_system/weight_space.py +639 -0
- sage/combinat/root_system/weyl_characters.py +2238 -0
- sage/crypto/__init__.py +4 -0
- sage/crypto/all.py +28 -0
- sage/crypto/block_cipher/all.py +7 -0
- sage/crypto/block_cipher/des.py +1065 -0
- sage/crypto/block_cipher/miniaes.py +2171 -0
- sage/crypto/block_cipher/present.py +909 -0
- sage/crypto/block_cipher/sdes.py +1527 -0
- sage/crypto/boolean_function.cpython-314-aarch64-linux-musl.so +0 -0
- sage/crypto/boolean_function.pxd +10 -0
- sage/crypto/boolean_function.pyx +1487 -0
- sage/crypto/cipher.py +78 -0
- sage/crypto/classical.py +3668 -0
- sage/crypto/classical_cipher.py +569 -0
- sage/crypto/cryptosystem.py +387 -0
- sage/crypto/key_exchange/all.py +7 -0
- sage/crypto/key_exchange/catalog.py +24 -0
- sage/crypto/key_exchange/diffie_hellman.py +323 -0
- sage/crypto/key_exchange/key_exchange_scheme.py +107 -0
- sage/crypto/lattice.py +312 -0
- sage/crypto/lfsr.py +295 -0
- sage/crypto/lwe.py +840 -0
- sage/crypto/mq/__init__.py +4 -0
- sage/crypto/mq/mpolynomialsystemgenerator.py +204 -0
- sage/crypto/mq/rijndael_gf.py +2345 -0
- sage/crypto/mq/sbox.py +7 -0
- sage/crypto/mq/sr.py +3344 -0
- sage/crypto/public_key/all.py +5 -0
- sage/crypto/public_key/blum_goldwasser.py +776 -0
- sage/crypto/sbox.cpython-314-aarch64-linux-musl.so +0 -0
- sage/crypto/sbox.pyx +2090 -0
- sage/crypto/sboxes.py +2090 -0
- sage/crypto/stream.py +390 -0
- sage/crypto/stream_cipher.py +297 -0
- sage/crypto/util.py +519 -0
- sage/ext/all__sagemath_modules.py +1 -0
- sage/ext/interpreters/__init__.py +1 -0
- sage/ext/interpreters/all__sagemath_modules.py +2 -0
- sage/ext/interpreters/wrapper_cc.cpython-314-aarch64-linux-musl.so +0 -0
- sage/ext/interpreters/wrapper_cc.pxd +30 -0
- sage/ext/interpreters/wrapper_cc.pyx +252 -0
- sage/ext/interpreters/wrapper_cdf.cpython-314-aarch64-linux-musl.so +0 -0
- sage/ext/interpreters/wrapper_cdf.pxd +26 -0
- sage/ext/interpreters/wrapper_cdf.pyx +245 -0
- sage/ext/interpreters/wrapper_rdf.cpython-314-aarch64-linux-musl.so +0 -0
- sage/ext/interpreters/wrapper_rdf.pxd +23 -0
- sage/ext/interpreters/wrapper_rdf.pyx +221 -0
- sage/ext/interpreters/wrapper_rr.cpython-314-aarch64-linux-musl.so +0 -0
- sage/ext/interpreters/wrapper_rr.pxd +28 -0
- sage/ext/interpreters/wrapper_rr.pyx +335 -0
- sage/geometry/all__sagemath_modules.py +5 -0
- sage/geometry/toric_lattice.py +1745 -0
- sage/geometry/toric_lattice_element.cpython-314-aarch64-linux-musl.so +0 -0
- sage/geometry/toric_lattice_element.pyx +432 -0
- sage/groups/abelian_gps/abelian_group.py +1925 -0
- sage/groups/abelian_gps/abelian_group_element.py +164 -0
- sage/groups/abelian_gps/all__sagemath_modules.py +5 -0
- sage/groups/abelian_gps/dual_abelian_group.py +421 -0
- sage/groups/abelian_gps/dual_abelian_group_element.py +179 -0
- sage/groups/abelian_gps/element_base.py +341 -0
- sage/groups/abelian_gps/values.py +488 -0
- sage/groups/additive_abelian/additive_abelian_group.py +476 -0
- sage/groups/additive_abelian/additive_abelian_wrapper.py +857 -0
- sage/groups/additive_abelian/all.py +4 -0
- sage/groups/additive_abelian/qmodnz.py +231 -0
- sage/groups/additive_abelian/qmodnz_element.py +349 -0
- sage/groups/affine_gps/affine_group.py +535 -0
- sage/groups/affine_gps/all.py +1 -0
- sage/groups/affine_gps/catalog.py +17 -0
- sage/groups/affine_gps/euclidean_group.py +246 -0
- sage/groups/affine_gps/group_element.py +562 -0
- sage/groups/all__sagemath_modules.py +12 -0
- sage/groups/galois_group.py +479 -0
- sage/groups/matrix_gps/all.py +4 -0
- sage/groups/matrix_gps/all__sagemath_modules.py +13 -0
- sage/groups/matrix_gps/catalog.py +26 -0
- sage/groups/matrix_gps/coxeter_group.py +927 -0
- sage/groups/matrix_gps/finitely_generated.py +487 -0
- sage/groups/matrix_gps/group_element.cpython-314-aarch64-linux-musl.so +0 -0
- sage/groups/matrix_gps/group_element.pxd +11 -0
- sage/groups/matrix_gps/group_element.pyx +431 -0
- sage/groups/matrix_gps/linear.py +440 -0
- sage/groups/matrix_gps/matrix_group.py +617 -0
- sage/groups/matrix_gps/named_group.py +296 -0
- sage/groups/matrix_gps/orthogonal.py +544 -0
- sage/groups/matrix_gps/symplectic.py +251 -0
- sage/groups/matrix_gps/unitary.py +436 -0
- sage/groups/misc_gps/all__sagemath_modules.py +1 -0
- sage/groups/misc_gps/argument_groups.py +1905 -0
- sage/groups/misc_gps/imaginary_groups.py +479 -0
- sage/groups/perm_gps/all__sagemath_modules.py +1 -0
- sage/groups/perm_gps/partn_ref/all__sagemath_modules.py +1 -0
- sage/groups/perm_gps/partn_ref/refinement_binary.cpython-314-aarch64-linux-musl.so +0 -0
- sage/groups/perm_gps/partn_ref/refinement_binary.pxd +41 -0
- sage/groups/perm_gps/partn_ref/refinement_binary.pyx +1167 -0
- sage/groups/perm_gps/partn_ref/refinement_matrices.cpython-314-aarch64-linux-musl.so +0 -0
- sage/groups/perm_gps/partn_ref/refinement_matrices.pxd +31 -0
- sage/groups/perm_gps/partn_ref/refinement_matrices.pyx +385 -0
- sage/homology/algebraic_topological_model.py +595 -0
- sage/homology/all.py +2 -0
- sage/homology/all__sagemath_modules.py +8 -0
- sage/homology/chain_complex.py +2148 -0
- sage/homology/chain_complex_homspace.py +165 -0
- sage/homology/chain_complex_morphism.py +629 -0
- sage/homology/chain_homotopy.py +604 -0
- sage/homology/chains.py +653 -0
- sage/homology/free_resolution.py +923 -0
- sage/homology/graded_resolution.py +567 -0
- sage/homology/hochschild_complex.py +756 -0
- sage/homology/homology_group.py +188 -0
- sage/homology/homology_morphism.py +422 -0
- sage/homology/homology_vector_space_with_basis.py +1454 -0
- sage/homology/koszul_complex.py +169 -0
- sage/homology/matrix_utils.py +205 -0
- sage/libs/all__sagemath_modules.py +1 -0
- sage/libs/gsl/__init__.py +1 -0
- sage/libs/gsl/airy.pxd +56 -0
- sage/libs/gsl/all.pxd +66 -0
- sage/libs/gsl/array.cpython-314-aarch64-linux-musl.so +0 -0
- sage/libs/gsl/array.pxd +5 -0
- sage/libs/gsl/array.pyx +102 -0
- sage/libs/gsl/bessel.pxd +208 -0
- sage/libs/gsl/blas.pxd +116 -0
- sage/libs/gsl/blas_types.pxd +34 -0
- sage/libs/gsl/block.pxd +52 -0
- sage/libs/gsl/chebyshev.pxd +37 -0
- sage/libs/gsl/clausen.pxd +12 -0
- sage/libs/gsl/combination.pxd +47 -0
- sage/libs/gsl/complex.pxd +151 -0
- sage/libs/gsl/coulomb.pxd +30 -0
- sage/libs/gsl/coupling.pxd +21 -0
- sage/libs/gsl/dawson.pxd +12 -0
- sage/libs/gsl/debye.pxd +24 -0
- sage/libs/gsl/dilog.pxd +14 -0
- sage/libs/gsl/eigen.pxd +46 -0
- sage/libs/gsl/elementary.pxd +12 -0
- sage/libs/gsl/ellint.pxd +48 -0
- sage/libs/gsl/elljac.pxd +8 -0
- sage/libs/gsl/erf.pxd +32 -0
- sage/libs/gsl/errno.pxd +26 -0
- sage/libs/gsl/exp.pxd +44 -0
- sage/libs/gsl/expint.pxd +44 -0
- sage/libs/gsl/fermi_dirac.pxd +44 -0
- sage/libs/gsl/fft.pxd +121 -0
- sage/libs/gsl/fit.pxd +50 -0
- sage/libs/gsl/gamma.pxd +94 -0
- sage/libs/gsl/gegenbauer.pxd +26 -0
- sage/libs/gsl/histogram.pxd +176 -0
- sage/libs/gsl/hyperg.pxd +52 -0
- sage/libs/gsl/integration.pxd +69 -0
- sage/libs/gsl/interp.pxd +109 -0
- sage/libs/gsl/laguerre.pxd +24 -0
- sage/libs/gsl/lambert.pxd +16 -0
- sage/libs/gsl/legendre.pxd +90 -0
- sage/libs/gsl/linalg.pxd +185 -0
- sage/libs/gsl/log.pxd +26 -0
- sage/libs/gsl/math.pxd +43 -0
- sage/libs/gsl/matrix.pxd +143 -0
- sage/libs/gsl/matrix_complex.pxd +130 -0
- sage/libs/gsl/min.pxd +67 -0
- sage/libs/gsl/monte.pxd +56 -0
- sage/libs/gsl/ntuple.pxd +32 -0
- sage/libs/gsl/odeiv.pxd +70 -0
- sage/libs/gsl/permutation.pxd +78 -0
- sage/libs/gsl/poly.pxd +40 -0
- sage/libs/gsl/pow_int.pxd +12 -0
- sage/libs/gsl/psi.pxd +28 -0
- sage/libs/gsl/qrng.pxd +29 -0
- sage/libs/gsl/random.pxd +257 -0
- sage/libs/gsl/rng.pxd +100 -0
- sage/libs/gsl/roots.pxd +72 -0
- sage/libs/gsl/sort.pxd +36 -0
- sage/libs/gsl/statistics.pxd +59 -0
- sage/libs/gsl/sum.pxd +55 -0
- sage/libs/gsl/synchrotron.pxd +16 -0
- sage/libs/gsl/transport.pxd +24 -0
- sage/libs/gsl/trig.pxd +58 -0
- sage/libs/gsl/types.pxd +137 -0
- sage/libs/gsl/vector.pxd +101 -0
- sage/libs/gsl/vector_complex.pxd +83 -0
- sage/libs/gsl/wavelet.pxd +49 -0
- sage/libs/gsl/zeta.pxd +28 -0
- sage/libs/mpc/__init__.pxd +114 -0
- sage/libs/mpc/types.pxd +28 -0
- sage/libs/mpfr/__init__.pxd +299 -0
- sage/libs/mpfr/types.pxd +26 -0
- sage/libs/mpmath/__init__.py +1 -0
- sage/libs/mpmath/all.py +27 -0
- sage/libs/mpmath/all__sagemath_modules.py +1 -0
- sage/libs/mpmath/utils.cpython-314-aarch64-linux-musl.so +0 -0
- sage/libs/mpmath/utils.pxd +4 -0
- sage/libs/mpmath/utils.pyx +319 -0
- sage/matrix/action.cpython-314-aarch64-linux-musl.so +0 -0
- sage/matrix/action.pxd +26 -0
- sage/matrix/action.pyx +596 -0
- sage/matrix/all.py +9 -0
- sage/matrix/args.cpython-314-aarch64-linux-musl.so +0 -0
- sage/matrix/args.pxd +144 -0
- sage/matrix/args.pyx +1668 -0
- sage/matrix/benchmark.py +1258 -0
- sage/matrix/berlekamp_massey.py +95 -0
- sage/matrix/compute_J_ideal.py +926 -0
- sage/matrix/constructor.cpython-314-aarch64-linux-musl.so +0 -0
- sage/matrix/constructor.pyx +750 -0
- sage/matrix/docs.py +430 -0
- sage/matrix/echelon_matrix.cpython-314-aarch64-linux-musl.so +0 -0
- sage/matrix/echelon_matrix.pyx +155 -0
- sage/matrix/matrix.pxd +2 -0
- sage/matrix/matrix0.cpython-314-aarch64-linux-musl.so +0 -0
- sage/matrix/matrix0.pxd +68 -0
- sage/matrix/matrix0.pyx +6324 -0
- sage/matrix/matrix1.cpython-314-aarch64-linux-musl.so +0 -0
- sage/matrix/matrix1.pxd +8 -0
- sage/matrix/matrix1.pyx +2851 -0
- sage/matrix/matrix2.cpython-314-aarch64-linux-musl.so +0 -0
- sage/matrix/matrix2.pxd +25 -0
- sage/matrix/matrix2.pyx +20181 -0
- sage/matrix/matrix_cdv.cpython-314-aarch64-linux-musl.so +0 -0
- sage/matrix/matrix_cdv.pxd +4 -0
- sage/matrix/matrix_cdv.pyx +93 -0
- sage/matrix/matrix_complex_double_dense.cpython-314-aarch64-linux-musl.so +0 -0
- sage/matrix/matrix_complex_double_dense.pxd +5 -0
- sage/matrix/matrix_complex_double_dense.pyx +98 -0
- sage/matrix/matrix_dense.cpython-314-aarch64-linux-musl.so +0 -0
- sage/matrix/matrix_dense.pxd +5 -0
- sage/matrix/matrix_dense.pyx +343 -0
- sage/matrix/matrix_domain_dense.pxd +5 -0
- sage/matrix/matrix_domain_sparse.pxd +5 -0
- sage/matrix/matrix_double_dense.cpython-314-aarch64-linux-musl.so +0 -0
- sage/matrix/matrix_double_dense.pxd +7 -0
- sage/matrix/matrix_double_dense.pyx +3906 -0
- sage/matrix/matrix_double_sparse.cpython-314-aarch64-linux-musl.so +0 -0
- sage/matrix/matrix_double_sparse.pxd +6 -0
- sage/matrix/matrix_double_sparse.pyx +248 -0
- sage/matrix/matrix_generic_dense.cpython-314-aarch64-linux-musl.so +0 -0
- sage/matrix/matrix_generic_dense.pxd +7 -0
- sage/matrix/matrix_generic_dense.pyx +354 -0
- sage/matrix/matrix_generic_sparse.cpython-314-aarch64-linux-musl.so +0 -0
- sage/matrix/matrix_generic_sparse.pxd +7 -0
- sage/matrix/matrix_generic_sparse.pyx +461 -0
- sage/matrix/matrix_laurent_mpolynomial_dense.cpython-314-aarch64-linux-musl.so +0 -0
- sage/matrix/matrix_laurent_mpolynomial_dense.pxd +5 -0
- sage/matrix/matrix_laurent_mpolynomial_dense.pyx +115 -0
- sage/matrix/matrix_misc.py +313 -0
- sage/matrix/matrix_numpy_dense.cpython-314-aarch64-linux-musl.so +0 -0
- sage/matrix/matrix_numpy_dense.pxd +14 -0
- sage/matrix/matrix_numpy_dense.pyx +450 -0
- sage/matrix/matrix_numpy_integer_dense.cpython-314-aarch64-linux-musl.so +0 -0
- sage/matrix/matrix_numpy_integer_dense.pxd +7 -0
- sage/matrix/matrix_numpy_integer_dense.pyx +59 -0
- sage/matrix/matrix_polynomial_dense.cpython-314-aarch64-linux-musl.so +0 -0
- sage/matrix/matrix_polynomial_dense.pxd +5 -0
- sage/matrix/matrix_polynomial_dense.pyx +5341 -0
- sage/matrix/matrix_real_double_dense.cpython-314-aarch64-linux-musl.so +0 -0
- sage/matrix/matrix_real_double_dense.pxd +7 -0
- sage/matrix/matrix_real_double_dense.pyx +122 -0
- sage/matrix/matrix_space.py +2848 -0
- sage/matrix/matrix_sparse.cpython-314-aarch64-linux-musl.so +0 -0
- sage/matrix/matrix_sparse.pxd +5 -0
- sage/matrix/matrix_sparse.pyx +1222 -0
- sage/matrix/matrix_window.cpython-314-aarch64-linux-musl.so +0 -0
- sage/matrix/matrix_window.pxd +37 -0
- sage/matrix/matrix_window.pyx +242 -0
- sage/matrix/misc_mpfr.cpython-314-aarch64-linux-musl.so +0 -0
- sage/matrix/misc_mpfr.pyx +80 -0
- sage/matrix/operation_table.py +1182 -0
- sage/matrix/special.py +3666 -0
- sage/matrix/strassen.cpython-314-aarch64-linux-musl.so +0 -0
- sage/matrix/strassen.pyx +851 -0
- sage/matrix/symplectic_basis.py +541 -0
- sage/matrix/template.pxd +6 -0
- sage/matrix/tests.py +71 -0
- sage/matroids/advanced.py +77 -0
- sage/matroids/all.py +13 -0
- sage/matroids/basis_exchange_matroid.cpython-314-aarch64-linux-musl.so +0 -0
- sage/matroids/basis_exchange_matroid.pxd +96 -0
- sage/matroids/basis_exchange_matroid.pyx +2344 -0
- sage/matroids/basis_matroid.cpython-314-aarch64-linux-musl.so +0 -0
- sage/matroids/basis_matroid.pxd +45 -0
- sage/matroids/basis_matroid.pyx +1217 -0
- sage/matroids/catalog.py +44 -0
- sage/matroids/chow_ring.py +473 -0
- sage/matroids/chow_ring_ideal.py +849 -0
- sage/matroids/circuit_closures_matroid.cpython-314-aarch64-linux-musl.so +0 -0
- sage/matroids/circuit_closures_matroid.pxd +16 -0
- sage/matroids/circuit_closures_matroid.pyx +559 -0
- sage/matroids/circuits_matroid.cpython-314-aarch64-linux-musl.so +0 -0
- sage/matroids/circuits_matroid.pxd +38 -0
- sage/matroids/circuits_matroid.pyx +947 -0
- sage/matroids/constructor.py +1086 -0
- sage/matroids/database_collections.py +365 -0
- sage/matroids/database_matroids.py +5338 -0
- sage/matroids/dual_matroid.py +583 -0
- sage/matroids/extension.cpython-314-aarch64-linux-musl.so +0 -0
- sage/matroids/extension.pxd +34 -0
- sage/matroids/extension.pyx +519 -0
- sage/matroids/flats_matroid.cpython-314-aarch64-linux-musl.so +0 -0
- sage/matroids/flats_matroid.pxd +28 -0
- sage/matroids/flats_matroid.pyx +715 -0
- sage/matroids/gammoid.py +600 -0
- sage/matroids/graphic_matroid.cpython-314-aarch64-linux-musl.so +0 -0
- sage/matroids/graphic_matroid.pxd +39 -0
- sage/matroids/graphic_matroid.pyx +2024 -0
- sage/matroids/lean_matrix.cpython-314-aarch64-linux-musl.so +0 -0
- sage/matroids/lean_matrix.pxd +126 -0
- sage/matroids/lean_matrix.pyx +3667 -0
- sage/matroids/linear_matroid.cpython-314-aarch64-linux-musl.so +0 -0
- sage/matroids/linear_matroid.pxd +180 -0
- sage/matroids/linear_matroid.pyx +6649 -0
- sage/matroids/matroid.cpython-314-aarch64-linux-musl.so +0 -0
- sage/matroids/matroid.pxd +243 -0
- sage/matroids/matroid.pyx +8759 -0
- sage/matroids/matroids_catalog.py +190 -0
- sage/matroids/matroids_plot_helpers.py +890 -0
- sage/matroids/minor_matroid.py +480 -0
- sage/matroids/minorfix.h +9 -0
- sage/matroids/named_matroids.py +5 -0
- sage/matroids/rank_matroid.py +268 -0
- sage/matroids/set_system.cpython-314-aarch64-linux-musl.so +0 -0
- sage/matroids/set_system.pxd +38 -0
- sage/matroids/set_system.pyx +800 -0
- sage/matroids/transversal_matroid.cpython-314-aarch64-linux-musl.so +0 -0
- sage/matroids/transversal_matroid.pxd +14 -0
- sage/matroids/transversal_matroid.pyx +893 -0
- sage/matroids/union_matroid.cpython-314-aarch64-linux-musl.so +0 -0
- sage/matroids/union_matroid.pxd +20 -0
- sage/matroids/union_matroid.pyx +331 -0
- sage/matroids/unpickling.cpython-314-aarch64-linux-musl.so +0 -0
- sage/matroids/unpickling.pyx +843 -0
- sage/matroids/utilities.py +809 -0
- sage/misc/all__sagemath_modules.py +20 -0
- sage/misc/c3.cpython-314-aarch64-linux-musl.so +0 -0
- sage/misc/c3.pyx +238 -0
- sage/misc/compat.py +87 -0
- sage/misc/element_with_label.py +173 -0
- sage/misc/func_persist.py +79 -0
- sage/misc/pickle_old.cpython-314-aarch64-linux-musl.so +0 -0
- sage/misc/pickle_old.pyx +19 -0
- sage/misc/proof.py +7 -0
- sage/misc/replace_dot_all.py +472 -0
- sage/misc/sagedoc_conf.py +168 -0
- sage/misc/sphinxify.py +167 -0
- sage/misc/test_class_pickling.py +85 -0
- sage/modules/all.py +42 -0
- sage/modules/complex_double_vector.py +25 -0
- sage/modules/diamond_cutting.py +380 -0
- sage/modules/fg_pid/all.py +1 -0
- sage/modules/fg_pid/fgp_element.py +456 -0
- sage/modules/fg_pid/fgp_module.py +2091 -0
- sage/modules/fg_pid/fgp_morphism.py +550 -0
- sage/modules/filtered_vector_space.py +1271 -0
- sage/modules/finite_submodule_iter.cpython-314-aarch64-linux-musl.so +0 -0
- sage/modules/finite_submodule_iter.pxd +27 -0
- sage/modules/finite_submodule_iter.pyx +452 -0
- sage/modules/fp_graded/all.py +1 -0
- sage/modules/fp_graded/element.py +346 -0
- sage/modules/fp_graded/free_element.py +298 -0
- sage/modules/fp_graded/free_homspace.py +53 -0
- sage/modules/fp_graded/free_module.py +1060 -0
- sage/modules/fp_graded/free_morphism.py +217 -0
- sage/modules/fp_graded/homspace.py +563 -0
- sage/modules/fp_graded/module.py +1340 -0
- sage/modules/fp_graded/morphism.py +1990 -0
- sage/modules/fp_graded/steenrod/all.py +1 -0
- sage/modules/fp_graded/steenrod/homspace.py +65 -0
- sage/modules/fp_graded/steenrod/module.py +477 -0
- sage/modules/fp_graded/steenrod/morphism.py +404 -0
- sage/modules/fp_graded/steenrod/profile.py +241 -0
- sage/modules/free_module.py +8447 -0
- sage/modules/free_module_element.cpython-314-aarch64-linux-musl.so +0 -0
- sage/modules/free_module_element.pxd +22 -0
- sage/modules/free_module_element.pyx +5445 -0
- sage/modules/free_module_homspace.py +369 -0
- sage/modules/free_module_integer.py +896 -0
- sage/modules/free_module_morphism.py +823 -0
- sage/modules/free_module_pseudohomspace.py +352 -0
- sage/modules/free_module_pseudomorphism.py +578 -0
- sage/modules/free_quadratic_module.py +1706 -0
- sage/modules/free_quadratic_module_integer_symmetric.py +1790 -0
- sage/modules/matrix_morphism.py +1745 -0
- sage/modules/misc.py +103 -0
- sage/modules/module_functors.py +192 -0
- sage/modules/multi_filtered_vector_space.py +719 -0
- sage/modules/ore_module.py +2208 -0
- sage/modules/ore_module_element.py +178 -0
- sage/modules/ore_module_homspace.py +147 -0
- sage/modules/ore_module_morphism.py +968 -0
- sage/modules/quotient_module.py +699 -0
- sage/modules/real_double_vector.py +22 -0
- sage/modules/submodule.py +255 -0
- sage/modules/tensor_operations.py +567 -0
- sage/modules/torsion_quadratic_module.py +1352 -0
- sage/modules/tutorial_free_modules.py +248 -0
- sage/modules/vector_complex_double_dense.cpython-314-aarch64-linux-musl.so +0 -0
- sage/modules/vector_complex_double_dense.pxd +6 -0
- sage/modules/vector_complex_double_dense.pyx +117 -0
- sage/modules/vector_double_dense.cpython-314-aarch64-linux-musl.so +0 -0
- sage/modules/vector_double_dense.pxd +6 -0
- sage/modules/vector_double_dense.pyx +604 -0
- sage/modules/vector_integer_dense.cpython-314-aarch64-linux-musl.so +0 -0
- sage/modules/vector_integer_dense.pxd +15 -0
- sage/modules/vector_integer_dense.pyx +361 -0
- sage/modules/vector_integer_sparse.cpython-314-aarch64-linux-musl.so +0 -0
- sage/modules/vector_integer_sparse.pxd +29 -0
- sage/modules/vector_integer_sparse.pyx +406 -0
- sage/modules/vector_modn_dense.cpython-314-aarch64-linux-musl.so +0 -0
- sage/modules/vector_modn_dense.pxd +12 -0
- sage/modules/vector_modn_dense.pyx +394 -0
- sage/modules/vector_modn_sparse.cpython-314-aarch64-linux-musl.so +0 -0
- sage/modules/vector_modn_sparse.pxd +21 -0
- sage/modules/vector_modn_sparse.pyx +298 -0
- sage/modules/vector_numpy_dense.cpython-314-aarch64-linux-musl.so +0 -0
- sage/modules/vector_numpy_dense.pxd +15 -0
- sage/modules/vector_numpy_dense.pyx +304 -0
- sage/modules/vector_numpy_integer_dense.cpython-314-aarch64-linux-musl.so +0 -0
- sage/modules/vector_numpy_integer_dense.pxd +7 -0
- sage/modules/vector_numpy_integer_dense.pyx +54 -0
- sage/modules/vector_rational_dense.cpython-314-aarch64-linux-musl.so +0 -0
- sage/modules/vector_rational_dense.pxd +15 -0
- sage/modules/vector_rational_dense.pyx +387 -0
- sage/modules/vector_rational_sparse.cpython-314-aarch64-linux-musl.so +0 -0
- sage/modules/vector_rational_sparse.pxd +30 -0
- sage/modules/vector_rational_sparse.pyx +413 -0
- sage/modules/vector_real_double_dense.cpython-314-aarch64-linux-musl.so +0 -0
- sage/modules/vector_real_double_dense.pxd +6 -0
- sage/modules/vector_real_double_dense.pyx +126 -0
- sage/modules/vector_space_homspace.py +430 -0
- sage/modules/vector_space_morphism.py +989 -0
- sage/modules/with_basis/all.py +15 -0
- sage/modules/with_basis/cell_module.py +494 -0
- sage/modules/with_basis/indexed_element.cpython-314-aarch64-linux-musl.so +0 -0
- sage/modules/with_basis/indexed_element.pxd +13 -0
- sage/modules/with_basis/indexed_element.pyx +1058 -0
- sage/modules/with_basis/invariant.py +1075 -0
- sage/modules/with_basis/morphism.py +1636 -0
- sage/modules/with_basis/representation.py +2939 -0
- sage/modules/with_basis/subquotient.py +685 -0
- sage/numerical/all__sagemath_modules.py +6 -0
- sage/numerical/gauss_legendre.cpython-314-aarch64-linux-musl.so +0 -0
- sage/numerical/gauss_legendre.pyx +381 -0
- sage/numerical/optimize.py +910 -0
- sage/probability/all.py +10 -0
- sage/probability/probability_distribution.cpython-314-aarch64-linux-musl.so +0 -0
- sage/probability/probability_distribution.pyx +1242 -0
- sage/probability/random_variable.py +411 -0
- sage/quadratic_forms/all.py +4 -0
- sage/quadratic_forms/all__sagemath_modules.py +15 -0
- sage/quadratic_forms/binary_qf.py +2042 -0
- sage/quadratic_forms/bqf_class_group.py +748 -0
- sage/quadratic_forms/constructions.py +93 -0
- sage/quadratic_forms/count_local_2.cpython-314-aarch64-linux-musl.so +0 -0
- sage/quadratic_forms/count_local_2.pyx +365 -0
- sage/quadratic_forms/extras.py +195 -0
- sage/quadratic_forms/quadratic_form.py +1753 -0
- sage/quadratic_forms/quadratic_form__count_local_2.py +221 -0
- sage/quadratic_forms/quadratic_form__equivalence_testing.py +708 -0
- sage/quadratic_forms/quadratic_form__evaluate.cpython-314-aarch64-linux-musl.so +0 -0
- sage/quadratic_forms/quadratic_form__evaluate.pyx +139 -0
- sage/quadratic_forms/quadratic_form__local_density_congruence.py +977 -0
- sage/quadratic_forms/quadratic_form__local_field_invariants.py +1072 -0
- sage/quadratic_forms/quadratic_form__neighbors.py +424 -0
- sage/quadratic_forms/quadratic_form__reduction_theory.py +488 -0
- sage/quadratic_forms/quadratic_form__split_local_covering.py +416 -0
- sage/quadratic_forms/quadratic_form__ternary_Tornaria.py +657 -0
- sage/quadratic_forms/quadratic_form__theta.py +352 -0
- sage/quadratic_forms/quadratic_form__variable_substitutions.py +370 -0
- sage/quadratic_forms/random_quadraticform.py +209 -0
- sage/quadratic_forms/ternary.cpython-314-aarch64-linux-musl.so +0 -0
- sage/quadratic_forms/ternary.pyx +1154 -0
- sage/quadratic_forms/ternary_qf.py +2027 -0
- sage/rings/all__sagemath_modules.py +28 -0
- sage/rings/asymptotic/all__sagemath_modules.py +1 -0
- sage/rings/asymptotic/misc.py +1252 -0
- sage/rings/cc.py +4 -0
- sage/rings/cfinite_sequence.py +1306 -0
- sage/rings/complex_conversion.cpython-314-aarch64-linux-musl.so +0 -0
- sage/rings/complex_conversion.pxd +8 -0
- sage/rings/complex_conversion.pyx +23 -0
- sage/rings/complex_double.cpython-314-aarch64-linux-musl.so +0 -0
- sage/rings/complex_double.pxd +21 -0
- sage/rings/complex_double.pyx +2654 -0
- sage/rings/complex_mpc.cpython-314-aarch64-linux-musl.so +0 -0
- sage/rings/complex_mpc.pxd +21 -0
- sage/rings/complex_mpc.pyx +2576 -0
- sage/rings/complex_mpfr.cpython-314-aarch64-linux-musl.so +0 -0
- sage/rings/complex_mpfr.pxd +18 -0
- sage/rings/complex_mpfr.pyx +3602 -0
- sage/rings/derivation.py +2334 -0
- sage/rings/finite_rings/all__sagemath_modules.py +1 -0
- sage/rings/finite_rings/maps_finite_field.py +191 -0
- sage/rings/function_field/all__sagemath_modules.py +8 -0
- sage/rings/function_field/derivations.py +102 -0
- sage/rings/function_field/derivations_rational.py +132 -0
- sage/rings/function_field/differential.py +853 -0
- sage/rings/function_field/divisor.py +1107 -0
- sage/rings/function_field/drinfeld_modules/action.py +199 -0
- sage/rings/function_field/drinfeld_modules/all.py +1 -0
- sage/rings/function_field/drinfeld_modules/charzero_drinfeld_module.py +673 -0
- sage/rings/function_field/drinfeld_modules/drinfeld_module.py +2087 -0
- sage/rings/function_field/drinfeld_modules/finite_drinfeld_module.py +1131 -0
- sage/rings/function_field/drinfeld_modules/homset.py +420 -0
- sage/rings/function_field/drinfeld_modules/morphism.py +820 -0
- sage/rings/function_field/hermite_form_polynomial.cpython-314-aarch64-linux-musl.so +0 -0
- sage/rings/function_field/hermite_form_polynomial.pyx +188 -0
- sage/rings/function_field/khuri_makdisi.cpython-314-aarch64-linux-musl.so +0 -0
- sage/rings/function_field/khuri_makdisi.pyx +935 -0
- sage/rings/invariants/all.py +4 -0
- sage/rings/invariants/invariant_theory.py +4597 -0
- sage/rings/invariants/reconstruction.py +395 -0
- sage/rings/polynomial/all__sagemath_modules.py +17 -0
- sage/rings/polynomial/integer_valued_polynomials.py +1230 -0
- sage/rings/polynomial/laurent_polynomial_mpair.cpython-314-aarch64-linux-musl.so +0 -0
- sage/rings/polynomial/laurent_polynomial_mpair.pxd +15 -0
- sage/rings/polynomial/laurent_polynomial_mpair.pyx +2023 -0
- sage/rings/polynomial/ore_function_element.py +952 -0
- sage/rings/polynomial/ore_function_field.py +1028 -0
- sage/rings/polynomial/ore_polynomial_element.cpython-314-aarch64-linux-musl.so +0 -0
- sage/rings/polynomial/ore_polynomial_element.pxd +48 -0
- sage/rings/polynomial/ore_polynomial_element.pyx +3145 -0
- sage/rings/polynomial/ore_polynomial_ring.py +1334 -0
- sage/rings/polynomial/polynomial_real_mpfr_dense.cpython-314-aarch64-linux-musl.so +0 -0
- sage/rings/polynomial/polynomial_real_mpfr_dense.pyx +788 -0
- sage/rings/polynomial/q_integer_valued_polynomials.py +1264 -0
- sage/rings/polynomial/skew_polynomial_element.cpython-314-aarch64-linux-musl.so +0 -0
- sage/rings/polynomial/skew_polynomial_element.pxd +9 -0
- sage/rings/polynomial/skew_polynomial_element.pyx +684 -0
- sage/rings/polynomial/skew_polynomial_finite_field.cpython-314-aarch64-linux-musl.so +0 -0
- sage/rings/polynomial/skew_polynomial_finite_field.pxd +19 -0
- sage/rings/polynomial/skew_polynomial_finite_field.pyx +1093 -0
- sage/rings/polynomial/skew_polynomial_finite_order.cpython-314-aarch64-linux-musl.so +0 -0
- sage/rings/polynomial/skew_polynomial_finite_order.pxd +10 -0
- sage/rings/polynomial/skew_polynomial_finite_order.pyx +567 -0
- sage/rings/polynomial/skew_polynomial_ring.py +908 -0
- sage/rings/real_double_element_gsl.cpython-314-aarch64-linux-musl.so +0 -0
- sage/rings/real_double_element_gsl.pxd +8 -0
- sage/rings/real_double_element_gsl.pyx +794 -0
- sage/rings/real_field.py +58 -0
- sage/rings/real_mpfr.cpython-314-aarch64-linux-musl.so +0 -0
- sage/rings/real_mpfr.pxd +29 -0
- sage/rings/real_mpfr.pyx +6122 -0
- sage/rings/ring_extension.cpython-314-aarch64-linux-musl.so +0 -0
- sage/rings/ring_extension.pxd +42 -0
- sage/rings/ring_extension.pyx +2779 -0
- sage/rings/ring_extension_conversion.cpython-314-aarch64-linux-musl.so +0 -0
- sage/rings/ring_extension_conversion.pxd +16 -0
- sage/rings/ring_extension_conversion.pyx +462 -0
- sage/rings/ring_extension_element.cpython-314-aarch64-linux-musl.so +0 -0
- sage/rings/ring_extension_element.pxd +21 -0
- sage/rings/ring_extension_element.pyx +1635 -0
- sage/rings/ring_extension_homset.py +64 -0
- sage/rings/ring_extension_morphism.cpython-314-aarch64-linux-musl.so +0 -0
- sage/rings/ring_extension_morphism.pxd +35 -0
- sage/rings/ring_extension_morphism.pyx +920 -0
- sage/schemes/all__sagemath_modules.py +1 -0
- sage/schemes/projective/all__sagemath_modules.py +1 -0
- sage/schemes/projective/coherent_sheaf.py +300 -0
- sage/schemes/projective/cohomology.py +510 -0
- sage/stats/all.py +15 -0
- sage/stats/basic_stats.py +489 -0
- sage/stats/distributions/all.py +7 -0
- sage/stats/distributions/catalog.py +34 -0
- sage/stats/distributions/dgs.h +50 -0
- sage/stats/distributions/dgs.pxd +111 -0
- sage/stats/distributions/dgs_bern.h +400 -0
- sage/stats/distributions/dgs_gauss.h +614 -0
- sage/stats/distributions/dgs_misc.h +104 -0
- sage/stats/distributions/discrete_gaussian_integer.cpython-314-aarch64-linux-musl.so +0 -0
- sage/stats/distributions/discrete_gaussian_integer.pxd +14 -0
- sage/stats/distributions/discrete_gaussian_integer.pyx +498 -0
- sage/stats/distributions/discrete_gaussian_lattice.py +908 -0
- sage/stats/distributions/discrete_gaussian_polynomial.py +141 -0
- sage/stats/hmm/all.py +15 -0
- sage/stats/hmm/chmm.cpython-314-aarch64-linux-musl.so +0 -0
- sage/stats/hmm/chmm.pyx +1595 -0
- sage/stats/hmm/distributions.cpython-314-aarch64-linux-musl.so +0 -0
- sage/stats/hmm/distributions.pxd +29 -0
- sage/stats/hmm/distributions.pyx +531 -0
- sage/stats/hmm/hmm.cpython-314-aarch64-linux-musl.so +0 -0
- sage/stats/hmm/hmm.pxd +17 -0
- sage/stats/hmm/hmm.pyx +1388 -0
- sage/stats/hmm/util.cpython-314-aarch64-linux-musl.so +0 -0
- sage/stats/hmm/util.pxd +7 -0
- sage/stats/hmm/util.pyx +165 -0
- sage/stats/intlist.cpython-314-aarch64-linux-musl.so +0 -0
- sage/stats/intlist.pxd +14 -0
- sage/stats/intlist.pyx +588 -0
- sage/stats/r.py +49 -0
- sage/stats/time_series.cpython-314-aarch64-linux-musl.so +0 -0
- sage/stats/time_series.pxd +6 -0
- sage/stats/time_series.pyx +2546 -0
- sage/tensor/all.py +2 -0
- sage/tensor/modules/all.py +8 -0
- sage/tensor/modules/alternating_contr_tensor.py +761 -0
- sage/tensor/modules/comp.py +5598 -0
- sage/tensor/modules/ext_pow_free_module.py +824 -0
- sage/tensor/modules/finite_rank_free_module.py +3589 -0
- sage/tensor/modules/format_utilities.py +333 -0
- sage/tensor/modules/free_module_alt_form.py +858 -0
- sage/tensor/modules/free_module_automorphism.py +1207 -0
- sage/tensor/modules/free_module_basis.py +1074 -0
- sage/tensor/modules/free_module_element.py +284 -0
- sage/tensor/modules/free_module_homset.py +652 -0
- sage/tensor/modules/free_module_linear_group.py +564 -0
- sage/tensor/modules/free_module_morphism.py +1581 -0
- sage/tensor/modules/free_module_tensor.py +3289 -0
- sage/tensor/modules/reflexive_module.py +386 -0
- sage/tensor/modules/tensor_free_module.py +780 -0
- sage/tensor/modules/tensor_free_submodule.py +538 -0
- sage/tensor/modules/tensor_free_submodule_basis.py +140 -0
- sage/tensor/modules/tensor_with_indices.py +1043 -0
|
@@ -0,0 +1,489 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-modules
|
|
2
|
+
"""
|
|
3
|
+
Basic Statistics
|
|
4
|
+
|
|
5
|
+
This file contains basic descriptive functions. Included are the mean,
|
|
6
|
+
median, mode, moving average, standard deviation, and the variance.
|
|
7
|
+
When calling a function on data, there are checks for functions already
|
|
8
|
+
defined for that data type.
|
|
9
|
+
|
|
10
|
+
The :func:`mean` function returns the arithmetic mean (the sum of all the members
|
|
11
|
+
of a list, divided by the number of members). Further revisions may include
|
|
12
|
+
the geometric and harmonic mean. The :func:`median` function returns the number
|
|
13
|
+
separating the higher half of a sample from the lower half. The :func:`mode`
|
|
14
|
+
returns the most common occurring member of a sample, plus the number of times
|
|
15
|
+
it occurs. If entries occur equally common, the smallest of a list of the most
|
|
16
|
+
common entries is returned. The :func:`moving_average` is a finite impulse
|
|
17
|
+
response filter, creating a series of averages using a user-defined number of
|
|
18
|
+
subsets of the full data set. The :func:`std` and the :func:`variance` return a
|
|
19
|
+
measurement of how far data points tend to be from the arithmetic mean.
|
|
20
|
+
|
|
21
|
+
Functions are available in the namespace :mod:`stats`, i.e. you can use them by
|
|
22
|
+
typing ``stats.mean``, ``stats.median``, etc.
|
|
23
|
+
|
|
24
|
+
REMARK: If all the data you are working with are floating point
|
|
25
|
+
numbers, you may find :class:`stats.TimeSeries` helpful, since it is
|
|
26
|
+
extremely fast and offers many of the same descriptive statistics as
|
|
27
|
+
in the module.
|
|
28
|
+
|
|
29
|
+
AUTHOR:
|
|
30
|
+
|
|
31
|
+
- Andrew Hou (11/06/2009)
|
|
32
|
+
"""
|
|
33
|
+
# ***********************************************************************
|
|
34
|
+
# Copyright (C) 2009, Andrew Hou <amhou@uw.edu>
|
|
35
|
+
#
|
|
36
|
+
# Distributed under the terms of the GNU General Public License (GPL)
|
|
37
|
+
#
|
|
38
|
+
# The full text of the GPL is available at:
|
|
39
|
+
# https://www.gnu.org/licenses/
|
|
40
|
+
######################################################################
|
|
41
|
+
|
|
42
|
+
from sage.rings.integer_ring import ZZ
|
|
43
|
+
from sage.misc.lazy_import import lazy_import
|
|
44
|
+
from sage.misc.functional import sqrt
|
|
45
|
+
from sage.misc.superseded import deprecation
|
|
46
|
+
|
|
47
|
+
lazy_import("sage.symbolic.constants", "NaN")
|
|
48
|
+
lazy_import("numpy", "ndarray", as_="numpy_ndarray")
|
|
49
|
+
lazy_import("sage.stats.time_series", "TimeSeries")
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
def mean(v):
|
|
53
|
+
"""
|
|
54
|
+
Return the mean of the elements of `v`.
|
|
55
|
+
|
|
56
|
+
We define the mean of the empty list to be the (symbolic) NaN,
|
|
57
|
+
following the convention of MATLAB, Scipy, and R.
|
|
58
|
+
|
|
59
|
+
This function is deprecated. Use :func:`numpy.mean` or :func:`numpy.nanmean`
|
|
60
|
+
instead.
|
|
61
|
+
|
|
62
|
+
INPUT:
|
|
63
|
+
|
|
64
|
+
- ``v`` -- list of numbers
|
|
65
|
+
|
|
66
|
+
OUTPUT: a number
|
|
67
|
+
|
|
68
|
+
EXAMPLES::
|
|
69
|
+
|
|
70
|
+
sage: mean(range(4))
|
|
71
|
+
doctest:warning...
|
|
72
|
+
DeprecationWarning: sage.stats.basic_stats.mean is deprecated;
|
|
73
|
+
use numpy.mean or numpy.nanmean instead
|
|
74
|
+
See https://github.com/sagemath/sage/issues/29662 for details.
|
|
75
|
+
3/2
|
|
76
|
+
sage: mean([pi, e]) # needs sage.symbolic
|
|
77
|
+
1/2*pi + 1/2*e
|
|
78
|
+
sage: mean([]) # needs sage.symbolic
|
|
79
|
+
NaN
|
|
80
|
+
sage: mean([I, sqrt(2), 3/5]) # needs sage.symbolic
|
|
81
|
+
1/3*sqrt(2) + 1/3*I + 1/5
|
|
82
|
+
sage: mean([RIF(1.0103,1.0103), RIF(2)]) # needs sage.rings.real_interval_field
|
|
83
|
+
1.5051500000000000?
|
|
84
|
+
sage: v = stats.TimeSeries([1..100]) # needs numpy
|
|
85
|
+
sage: mean(v) # needs numpy
|
|
86
|
+
50.5
|
|
87
|
+
"""
|
|
88
|
+
deprecation(29662, 'sage.stats.basic_stats.mean is deprecated; use numpy.mean or numpy.nanmean instead')
|
|
89
|
+
if hasattr(v, 'mean'):
|
|
90
|
+
return v.mean()
|
|
91
|
+
if not v:
|
|
92
|
+
return NaN
|
|
93
|
+
s = sum(v)
|
|
94
|
+
if isinstance(s, int):
|
|
95
|
+
# python integers are stupid.
|
|
96
|
+
return s / ZZ(len(v))
|
|
97
|
+
return s / len(v)
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
def mode(v):
|
|
101
|
+
"""
|
|
102
|
+
Return the mode of `v`.
|
|
103
|
+
|
|
104
|
+
The mode is the list of the most frequently occurring
|
|
105
|
+
elements in `v`. If `n` is the most times that any element occurs
|
|
106
|
+
in `v`, then the mode is the list of elements of `v` that
|
|
107
|
+
occur `n` times. The list is sorted if possible.
|
|
108
|
+
|
|
109
|
+
This function is deprecated. Use :func:`scipy:scipy.stats.mode` or
|
|
110
|
+
:func:`statistics.mode` instead.
|
|
111
|
+
|
|
112
|
+
.. NOTE::
|
|
113
|
+
|
|
114
|
+
The elements of `v` must be hashable.
|
|
115
|
+
|
|
116
|
+
INPUT:
|
|
117
|
+
|
|
118
|
+
- ``v`` -- list
|
|
119
|
+
|
|
120
|
+
OUTPUT: list (sorted if possible)
|
|
121
|
+
|
|
122
|
+
EXAMPLES::
|
|
123
|
+
|
|
124
|
+
sage: v = [1,2,4,1,6,2,6,7,1]
|
|
125
|
+
sage: mode(v)
|
|
126
|
+
doctest:warning...
|
|
127
|
+
DeprecationWarning: sage.stats.basic_stats.mode is deprecated;
|
|
128
|
+
use scipy.stats.mode or statistics.mode instead
|
|
129
|
+
See https://github.com/sagemath/sage/issues/29662 for details.
|
|
130
|
+
[1]
|
|
131
|
+
sage: v.count(1)
|
|
132
|
+
3
|
|
133
|
+
sage: mode([])
|
|
134
|
+
[]
|
|
135
|
+
|
|
136
|
+
sage: mode([1,2,3,4,5])
|
|
137
|
+
[1, 2, 3, 4, 5]
|
|
138
|
+
sage: mode([3,1,2,1,2,3])
|
|
139
|
+
[1, 2, 3]
|
|
140
|
+
sage: mode([0, 2, 7, 7, 13, 20, 2, 13])
|
|
141
|
+
[2, 7, 13]
|
|
142
|
+
|
|
143
|
+
sage: mode(['sage', 'four', 'I', 'three', 'sage', 'pi'])
|
|
144
|
+
['sage']
|
|
145
|
+
|
|
146
|
+
sage: class MyClass:
|
|
147
|
+
....: def mode(self):
|
|
148
|
+
....: return [1]
|
|
149
|
+
sage: stats.mode(MyClass())
|
|
150
|
+
[1]
|
|
151
|
+
"""
|
|
152
|
+
deprecation(29662, 'sage.stats.basic_stats.mode is deprecated; use scipy.stats.mode or statistics.mode instead')
|
|
153
|
+
|
|
154
|
+
if hasattr(v, 'mode'):
|
|
155
|
+
return v.mode()
|
|
156
|
+
|
|
157
|
+
if not v:
|
|
158
|
+
return v
|
|
159
|
+
|
|
160
|
+
freq = {}
|
|
161
|
+
for i in v:
|
|
162
|
+
if i in freq:
|
|
163
|
+
freq[i] += 1
|
|
164
|
+
else:
|
|
165
|
+
freq[i] = 1
|
|
166
|
+
|
|
167
|
+
n = max(freq.values())
|
|
168
|
+
try:
|
|
169
|
+
return sorted(u for u, f in freq.items() if f == n)
|
|
170
|
+
except TypeError:
|
|
171
|
+
return [u for u, f in freq.items() if f == n]
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
def std(v, bias=False):
|
|
175
|
+
"""
|
|
176
|
+
Return the standard deviation of the elements of `v`.
|
|
177
|
+
|
|
178
|
+
We define the standard deviation of the empty list to be NaN,
|
|
179
|
+
following the convention of MATLAB, Scipy, and R.
|
|
180
|
+
|
|
181
|
+
This function is deprecated. Use :func:`numpy.std` or :func:`numpy.nanstd`
|
|
182
|
+
instead.
|
|
183
|
+
|
|
184
|
+
INPUT:
|
|
185
|
+
|
|
186
|
+
- ``v`` -- list of numbers
|
|
187
|
+
|
|
188
|
+
- ``bias`` -- boolean (default: ``False``); if ``False``, divide by
|
|
189
|
+
``len(v) - 1`` instead of ``len(v)`` to give a less biased
|
|
190
|
+
estimator (sample) for the standard deviation.
|
|
191
|
+
|
|
192
|
+
OUTPUT: a number
|
|
193
|
+
|
|
194
|
+
EXAMPLES::
|
|
195
|
+
|
|
196
|
+
sage: data = [random() for i in [1 .. 20]]
|
|
197
|
+
sage: s = std(data)
|
|
198
|
+
doctest:warning...
|
|
199
|
+
DeprecationWarning: sage.stats.basic_stats.std is deprecated;
|
|
200
|
+
use numpy.std or numpy.nanstd instead
|
|
201
|
+
See https://github.com/sagemath/sage/issues/29662 for details.
|
|
202
|
+
doctest:warning...
|
|
203
|
+
DeprecationWarning: sage.stats.basic_stats.variance is deprecated;
|
|
204
|
+
use numpy.var or numpy.nanvar instead
|
|
205
|
+
See https://github.com/sagemath/sage/issues/29662 for details.
|
|
206
|
+
doctest:warning...
|
|
207
|
+
DeprecationWarning: sage.stats.basic_stats.mean is deprecated;
|
|
208
|
+
use numpy.mean or numpy.nanmean instead
|
|
209
|
+
See https://github.com/sagemath/sage/issues/29662 for details.
|
|
210
|
+
sage: s # random
|
|
211
|
+
0.29487771726609185
|
|
212
|
+
|
|
213
|
+
sage: # needs sage.symbolic
|
|
214
|
+
sage: std([1..6], bias=True)
|
|
215
|
+
1/2*sqrt(35/3)
|
|
216
|
+
sage: std([1..6], bias=False)
|
|
217
|
+
sqrt(7/2)
|
|
218
|
+
sage: std([e, pi])
|
|
219
|
+
sqrt(1/2)*abs(pi - e)
|
|
220
|
+
sage: std([])
|
|
221
|
+
NaN
|
|
222
|
+
sage: std([I, sqrt(2), 3/5])
|
|
223
|
+
1/15*sqrt(1/2)*sqrt((10*sqrt(2) - 5*I - 3)^2
|
|
224
|
+
+ (5*sqrt(2) - 10*I + 3)^2 + (5*sqrt(2) + 5*I - 6)^2)
|
|
225
|
+
sage: std([RIF(1.0103, 1.0103), RIF(2)])
|
|
226
|
+
0.6998235813403261?
|
|
227
|
+
|
|
228
|
+
sage: # needs numpy
|
|
229
|
+
sage: import numpy
|
|
230
|
+
sage: if int(numpy.version.short_version[0]) > 1:
|
|
231
|
+
....: _ = numpy.set_printoptions(legacy="1.25")
|
|
232
|
+
sage: x = numpy.array([1,2,3,4,5])
|
|
233
|
+
sage: std(x, bias=False)
|
|
234
|
+
1.5811388300841898
|
|
235
|
+
sage: x = stats.TimeSeries([1..100])
|
|
236
|
+
sage: std(x)
|
|
237
|
+
29.011491975882016
|
|
238
|
+
"""
|
|
239
|
+
deprecation(29662, 'sage.stats.basic_stats.std is deprecated; use numpy.std or numpy.nanstd instead')
|
|
240
|
+
|
|
241
|
+
# NOTE: in R bias = False by default, and in Scipy bias=True by
|
|
242
|
+
# default, and R is more popular.
|
|
243
|
+
|
|
244
|
+
if hasattr(v, 'standard_deviation'):
|
|
245
|
+
return v.standard_deviation(bias=bias)
|
|
246
|
+
|
|
247
|
+
if isinstance(v, numpy_ndarray):
|
|
248
|
+
# accounts for numpy arrays
|
|
249
|
+
if bias:
|
|
250
|
+
return v.std()
|
|
251
|
+
else:
|
|
252
|
+
return v.std(ddof=1)
|
|
253
|
+
|
|
254
|
+
if not v:
|
|
255
|
+
# standard deviation of empty set defined as NaN
|
|
256
|
+
return NaN
|
|
257
|
+
|
|
258
|
+
return sqrt(variance(v, bias=bias))
|
|
259
|
+
|
|
260
|
+
|
|
261
|
+
def variance(v, bias=False):
|
|
262
|
+
"""
|
|
263
|
+
Return the variance of the elements of `v`.
|
|
264
|
+
|
|
265
|
+
We define the variance of the empty list to be NaN,
|
|
266
|
+
following the convention of MATLAB, Scipy, and R.
|
|
267
|
+
|
|
268
|
+
This function is deprecated. Use :func:`numpy.var` or :func:`numpy.nanvar`
|
|
269
|
+
instead.
|
|
270
|
+
|
|
271
|
+
INPUT:
|
|
272
|
+
|
|
273
|
+
- ``v`` -- list of numbers
|
|
274
|
+
|
|
275
|
+
- ``bias`` -- boolean (default: ``False``); if ``False``, divide by
|
|
276
|
+
``len(v) - 1`` instead of ``len(v)`` to give a less biased
|
|
277
|
+
estimator (sample) for the standard deviation.
|
|
278
|
+
|
|
279
|
+
OUTPUT: a number
|
|
280
|
+
|
|
281
|
+
EXAMPLES::
|
|
282
|
+
|
|
283
|
+
sage: variance([1..6])
|
|
284
|
+
doctest:warning...
|
|
285
|
+
DeprecationWarning: sage.stats.basic_stats.variance is deprecated;
|
|
286
|
+
use numpy.var or numpy.nanvar instead
|
|
287
|
+
See https://github.com/sagemath/sage/issues/29662 for details.
|
|
288
|
+
7/2
|
|
289
|
+
sage: variance([1..6], bias=True)
|
|
290
|
+
35/12
|
|
291
|
+
sage: variance([e, pi]) # needs sage.symbolic
|
|
292
|
+
1/2*(pi - e)^2
|
|
293
|
+
sage: variance([]) # needs sage.symbolic
|
|
294
|
+
NaN
|
|
295
|
+
sage: variance([I, sqrt(2), 3/5]) # needs sage.symbolic
|
|
296
|
+
1/450*(10*sqrt(2) - 5*I - 3)^2 + 1/450*(5*sqrt(2) - 10*I + 3)^2
|
|
297
|
+
+ 1/450*(5*sqrt(2) + 5*I - 6)^2
|
|
298
|
+
sage: variance([RIF(1.0103, 1.0103), RIF(2)]) # needs sage.rings.real_interval_field
|
|
299
|
+
0.4897530450000000?
|
|
300
|
+
|
|
301
|
+
sage: # needs numpy
|
|
302
|
+
sage: import numpy
|
|
303
|
+
sage: if int(numpy.version.short_version[0]) > 1:
|
|
304
|
+
....: _ = numpy.set_printoptions(legacy="1.25")
|
|
305
|
+
sage: x = numpy.array([1,2,3,4,5])
|
|
306
|
+
sage: variance(x, bias=False)
|
|
307
|
+
2.5
|
|
308
|
+
sage: x = stats.TimeSeries([1..100])
|
|
309
|
+
sage: variance(x)
|
|
310
|
+
841.6666666666666
|
|
311
|
+
sage: variance(x, bias=True)
|
|
312
|
+
833.25
|
|
313
|
+
|
|
314
|
+
sage: class MyClass:
|
|
315
|
+
....: def variance(self, bias=False):
|
|
316
|
+
....: return 1
|
|
317
|
+
sage: stats.variance(MyClass())
|
|
318
|
+
1
|
|
319
|
+
sage: class SillyPythonList:
|
|
320
|
+
....: def __init__(self):
|
|
321
|
+
....: self.__list = [2, 4]
|
|
322
|
+
....: def __len__(self):
|
|
323
|
+
....: return len(self.__list)
|
|
324
|
+
....: def __iter__(self):
|
|
325
|
+
....: return self.__list.__iter__()
|
|
326
|
+
....: def mean(self):
|
|
327
|
+
....: return 3
|
|
328
|
+
sage: R = SillyPythonList()
|
|
329
|
+
sage: variance(R)
|
|
330
|
+
2
|
|
331
|
+
sage: variance(R, bias=True)
|
|
332
|
+
1
|
|
333
|
+
|
|
334
|
+
TESTS:
|
|
335
|
+
|
|
336
|
+
The performance issue from :issue:`10019` is solved::
|
|
337
|
+
|
|
338
|
+
sage: variance([1] * 2^18)
|
|
339
|
+
0
|
|
340
|
+
"""
|
|
341
|
+
deprecation(29662, 'sage.stats.basic_stats.variance is deprecated; use numpy.var or numpy.nanvar instead')
|
|
342
|
+
|
|
343
|
+
if hasattr(v, 'variance'):
|
|
344
|
+
return v.variance(bias=bias)
|
|
345
|
+
|
|
346
|
+
x = 0
|
|
347
|
+
if isinstance(v, numpy_ndarray):
|
|
348
|
+
# accounts for numpy arrays
|
|
349
|
+
if bias:
|
|
350
|
+
return v.var()
|
|
351
|
+
else:
|
|
352
|
+
return v.var(ddof=1)
|
|
353
|
+
if not v:
|
|
354
|
+
# variance of empty set defined as NaN
|
|
355
|
+
return NaN
|
|
356
|
+
|
|
357
|
+
mu = mean(v)
|
|
358
|
+
for vi in v:
|
|
359
|
+
x += (vi - mu)**2
|
|
360
|
+
if bias:
|
|
361
|
+
# population variance
|
|
362
|
+
if isinstance(x, int):
|
|
363
|
+
return x / ZZ(len(v))
|
|
364
|
+
return x / len(v)
|
|
365
|
+
else:
|
|
366
|
+
# sample variance
|
|
367
|
+
if isinstance(x, int):
|
|
368
|
+
return x / ZZ(len(v)-1)
|
|
369
|
+
return x / (len(v)-1)
|
|
370
|
+
|
|
371
|
+
|
|
372
|
+
def median(v):
|
|
373
|
+
"""
|
|
374
|
+
Return the median (middle value) of the elements of `v`.
|
|
375
|
+
|
|
376
|
+
If `v` is empty, we define the median to be NaN, which is
|
|
377
|
+
consistent with NumPy (note that R returns NULL).
|
|
378
|
+
If `v` is comprised of strings, :exc:`TypeError` occurs.
|
|
379
|
+
For elements other than numbers, the median is a result of :func:`sorted`.
|
|
380
|
+
|
|
381
|
+
This function is deprecated. Use :func:`numpy.median` or :func:`numpy.nanmedian`
|
|
382
|
+
instead.
|
|
383
|
+
|
|
384
|
+
INPUT:
|
|
385
|
+
|
|
386
|
+
- ``v`` -- list
|
|
387
|
+
|
|
388
|
+
OUTPUT: median element of `v`
|
|
389
|
+
|
|
390
|
+
EXAMPLES::
|
|
391
|
+
|
|
392
|
+
sage: median([1,2,3,4,5])
|
|
393
|
+
doctest:warning...
|
|
394
|
+
DeprecationWarning: sage.stats.basic_stats.median is deprecated;
|
|
395
|
+
use numpy.median or numpy.nanmedian instead
|
|
396
|
+
See https://github.com/sagemath/sage/issues/29662 for details.
|
|
397
|
+
3
|
|
398
|
+
sage: median([e, pi]) # needs sage.symbolic
|
|
399
|
+
1/2*pi + 1/2*e
|
|
400
|
+
sage: median(['sage', 'linux', 'python'])
|
|
401
|
+
'python'
|
|
402
|
+
sage: median([]) # needs sage.symbolic
|
|
403
|
+
NaN
|
|
404
|
+
sage: class MyClass:
|
|
405
|
+
....: def median(self):
|
|
406
|
+
....: return 1
|
|
407
|
+
sage: stats.median(MyClass())
|
|
408
|
+
1
|
|
409
|
+
"""
|
|
410
|
+
deprecation(29662, 'sage.stats.basic_stats.median is deprecated; use numpy.median or numpy.nanmedian instead')
|
|
411
|
+
|
|
412
|
+
if hasattr(v, 'median'):
|
|
413
|
+
return v.median()
|
|
414
|
+
|
|
415
|
+
if not v:
|
|
416
|
+
# Median of empty set defined as NaN
|
|
417
|
+
return NaN
|
|
418
|
+
values = sorted(v)
|
|
419
|
+
if len(values) % 2:
|
|
420
|
+
return values[((len(values))+1)//2-1]
|
|
421
|
+
else:
|
|
422
|
+
lower = values[(len(values)+1)//2-1]
|
|
423
|
+
upper = values[len(values)//2]
|
|
424
|
+
return (lower + upper) / ZZ(2)
|
|
425
|
+
|
|
426
|
+
|
|
427
|
+
def moving_average(v, n):
|
|
428
|
+
"""
|
|
429
|
+
Return the moving average of a list `v`.
|
|
430
|
+
|
|
431
|
+
The moving average of a list is often used to smooth out noisy data.
|
|
432
|
+
|
|
433
|
+
If `v` is empty, we define the entries of the moving average to be NaN.
|
|
434
|
+
|
|
435
|
+
This method is deprecated. Use :meth:`pandas.Series.rolling` instead.
|
|
436
|
+
|
|
437
|
+
INPUT:
|
|
438
|
+
|
|
439
|
+
- ``v`` -- list
|
|
440
|
+
|
|
441
|
+
- ``n`` -- the number of values used in computing each average
|
|
442
|
+
|
|
443
|
+
OUTPUT: list of length ``len(v)-n+1``, since we do not fabric any values
|
|
444
|
+
|
|
445
|
+
EXAMPLES::
|
|
446
|
+
|
|
447
|
+
sage: moving_average([1..10], 1)
|
|
448
|
+
doctest:warning...
|
|
449
|
+
DeprecationWarning: sage.stats.basic_stats.moving_average is deprecated;
|
|
450
|
+
use pandas.Series.rolling instead
|
|
451
|
+
See https://github.com/sagemath/sage/issues/29662 for details.
|
|
452
|
+
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
|
|
453
|
+
sage: moving_average([1..10], 4)
|
|
454
|
+
[5/2, 7/2, 9/2, 11/2, 13/2, 15/2, 17/2]
|
|
455
|
+
sage: moving_average([], 1)
|
|
456
|
+
[]
|
|
457
|
+
sage: moving_average([pi, e, I, sqrt(2), 3/5], 2) # needs sage.symbolic
|
|
458
|
+
[1/2*pi + 1/2*e, 1/2*e + 1/2*I, 1/2*sqrt(2) + 1/2*I,
|
|
459
|
+
1/2*sqrt(2) + 3/10]
|
|
460
|
+
|
|
461
|
+
We check if the input is a time series, and if so use the
|
|
462
|
+
optimized :meth:`simple_moving_average` method, but with (slightly
|
|
463
|
+
different) meaning as defined above (the point is that the
|
|
464
|
+
:meth:`simple_moving_average` on time series returns `n` values::
|
|
465
|
+
|
|
466
|
+
sage: a = stats.TimeSeries([1..10]) # needs numpy
|
|
467
|
+
sage: stats.moving_average(a, 3) # needs numpy
|
|
468
|
+
[2.0000, 3.0000, 4.0000, 5.0000, 6.0000, 7.0000, 8.0000, 9.0000]
|
|
469
|
+
sage: stats.moving_average(list(a), 3) # needs numpy
|
|
470
|
+
[2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0]
|
|
471
|
+
"""
|
|
472
|
+
deprecation(29662, 'sage.stats.basic_stats.moving_average is deprecated; use pandas.Series.rolling instead')
|
|
473
|
+
|
|
474
|
+
if not v:
|
|
475
|
+
return v
|
|
476
|
+
if isinstance(v, TimeSeries):
|
|
477
|
+
return v.simple_moving_average(n)[n - 1:]
|
|
478
|
+
n = int(n)
|
|
479
|
+
if n <= 0:
|
|
480
|
+
raise ValueError("n must be positive")
|
|
481
|
+
nn = ZZ(n)
|
|
482
|
+
s = sum(v[:n])
|
|
483
|
+
ans = [s / nn]
|
|
484
|
+
for i in range(n, len(v)):
|
|
485
|
+
# add in the i-th value in v to our running sum,
|
|
486
|
+
# and remove the value n places back.
|
|
487
|
+
s += v[i] - v[i - n]
|
|
488
|
+
ans.append(s / nn)
|
|
489
|
+
return ans
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-modules
|
|
2
|
+
# We lazy_import the following modules since they import numpy which
|
|
3
|
+
# slows down sage startup
|
|
4
|
+
from sage.misc.lazy_import import lazy_import
|
|
5
|
+
lazy_import("sage.stats.distributions.discrete_gaussian_integer", ["DiscreteGaussianDistributionIntegerSampler"])
|
|
6
|
+
lazy_import("sage.stats.distributions.discrete_gaussian_lattice", ["DiscreteGaussianDistributionLatticeSampler"])
|
|
7
|
+
lazy_import("sage.stats.distributions.discrete_gaussian_polynomial", ["DiscreteGaussianDistributionPolynomialSampler"])
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-modules
|
|
2
|
+
r"""
|
|
3
|
+
Index of distributions
|
|
4
|
+
|
|
5
|
+
This catalogue includes the samplers for statistical distributions listed below.
|
|
6
|
+
|
|
7
|
+
Let ``<tab>`` indicate pressing the :kbd:`Tab` key. So begin by typing
|
|
8
|
+
``algebras.<tab>`` to the see the currently implemented named algebras.
|
|
9
|
+
|
|
10
|
+
- :class:`distributions.discrete_gaussian_integer.DiscreteGaussianDistributionIntegerSampler
|
|
11
|
+
<sage.stats.distributions.discrete_gaussian_integer.DiscreteGaussianDistributionIntegerSampler>`
|
|
12
|
+
- :class:`distributions.discrete_gaussian_lattice.DiscreteGaussianDistributionLatticeSampler
|
|
13
|
+
<sage.stats.distributions.discrete_gaussian_lattice.DiscreteGaussianDistributionLatticeSampler>`
|
|
14
|
+
- :class:`distributions.discrete_gaussian_polynomial.DiscreteGaussianDistributionPolynomialSampler
|
|
15
|
+
<sage.stats.distributions.discrete_gaussian_polynomial.DiscreteGaussianDistributionPolynomialSampler>`
|
|
16
|
+
|
|
17
|
+
To import these names into the global namespace, use::
|
|
18
|
+
|
|
19
|
+
sage: from sage.stats.distributions.catalog import *
|
|
20
|
+
"""
|
|
21
|
+
# ****************************************************************************
|
|
22
|
+
# Copyright (C) 2024 Gareth Ma <grhkm21@gmail.com>
|
|
23
|
+
#
|
|
24
|
+
# Distributed under the terms of the GNU General Public License (GPL),
|
|
25
|
+
# version 2 or later (at your preference).
|
|
26
|
+
#
|
|
27
|
+
# https://www.gnu.org/licenses/
|
|
28
|
+
# ****************************************************************************
|
|
29
|
+
|
|
30
|
+
from sage.misc.lazy_import import lazy_import
|
|
31
|
+
lazy_import("sage.stats.distributions.discrete_gaussian_integer", ["DiscreteGaussianDistributionIntegerSampler"])
|
|
32
|
+
lazy_import("sage.stats.distributions.discrete_gaussian_lattice", ["DiscreteGaussianDistributionLatticeSampler"])
|
|
33
|
+
lazy_import("sage.stats.distributions.discrete_gaussian_polynomial", ["DiscreteGaussianDistributionPolynomialSampler"])
|
|
34
|
+
del lazy_import
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/* sage_setup: distribution = sagemath-modules
|
|
2
|
+
*/
|
|
3
|
+
/**
|
|
4
|
+
* \file dgs.h
|
|
5
|
+
*
|
|
6
|
+
* \brief Discrete Gaussian Samplers over the Integers
|
|
7
|
+
*
|
|
8
|
+
* \author Martin Albrecht <martinralbrecht+dgs@googlemail.com>
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/******************************************************************************
|
|
12
|
+
*
|
|
13
|
+
* DGS - Discrete Gaussian Samplers
|
|
14
|
+
*
|
|
15
|
+
* Copyright (c) 2014, Martin Albrecht <martinralbrecht+dgs@googlemail.com>
|
|
16
|
+
* All rights reserved.
|
|
17
|
+
*
|
|
18
|
+
* Redistribution and use in source and binary forms, with or without
|
|
19
|
+
* modification, are permitted provided that the following conditions are met:
|
|
20
|
+
*
|
|
21
|
+
* 1. Redistributions of source code must retain the above copyright notice, this
|
|
22
|
+
* list of conditions and the following disclaimer.
|
|
23
|
+
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
24
|
+
* this list of conditions and the following disclaimer in the documentation
|
|
25
|
+
* and/or other materials provided with the distribution.
|
|
26
|
+
*
|
|
27
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
28
|
+
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
29
|
+
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
30
|
+
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
|
|
31
|
+
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
32
|
+
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
33
|
+
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
34
|
+
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
35
|
+
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
36
|
+
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
37
|
+
*
|
|
38
|
+
* The views and conclusions contained in the software and documentation are
|
|
39
|
+
* those of the authors and should not be interpreted as representing official
|
|
40
|
+
* policies, either expressed or implied, of the FreeBSD Project.
|
|
41
|
+
******************************************************************************/
|
|
42
|
+
|
|
43
|
+
#ifndef DGS__H
|
|
44
|
+
#define DGS__H
|
|
45
|
+
|
|
46
|
+
#include "dgs_misc.h"
|
|
47
|
+
#include "dgs_bern.h"
|
|
48
|
+
#include "dgs_gauss.h"
|
|
49
|
+
|
|
50
|
+
#endif //DGS__H
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-modules
|
|
2
|
+
"""
|
|
3
|
+
AUTHOR: Martin Albrecht <martinralbrecht@googlemail.com>
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
from sage.libs.gmp.mpz cimport mpz_t
|
|
7
|
+
from sage.libs.gmp.random cimport gmp_randstate_t
|
|
8
|
+
from sage.libs.mpfr.types cimport mpfr_t
|
|
9
|
+
from libc.stdint cimport uint64_t
|
|
10
|
+
|
|
11
|
+
cdef extern from "dgs.h":
|
|
12
|
+
int DGS_BERN_UNIFORM_DEFAULT_LENGTH
|
|
13
|
+
int DGS_BERN_UNIFORM_MAX_LENGTH
|
|
14
|
+
|
|
15
|
+
ctypedef struct dgs_bern_uniform_t:
|
|
16
|
+
size_t length
|
|
17
|
+
size_t count
|
|
18
|
+
mpz_t tmp
|
|
19
|
+
uint64_t pool
|
|
20
|
+
|
|
21
|
+
dgs_bern_uniform_t *dgs_bern_uniform_init(int length)
|
|
22
|
+
unsigned long dgs_bern_uniform_call(dgs_bern_uniform_t *self, gmp_randstate_t state)
|
|
23
|
+
void dgs_bern_uniform_clear(dgs_bern_uniform_t *self)
|
|
24
|
+
|
|
25
|
+
ctypedef struct dgs_bern_mp_t:
|
|
26
|
+
mpfr_t c
|
|
27
|
+
mpfr_t tmp
|
|
28
|
+
|
|
29
|
+
dgs_bern_mp_t *dgs_bern_mp_init(mpfr_t c)
|
|
30
|
+
unsigned long dgs_bern_mp_call(dgs_bern_mp_t *self, gmp_randstate_t state)
|
|
31
|
+
void dgs_bern_mp_clear(dgs_bern_mp_t *self)
|
|
32
|
+
|
|
33
|
+
ctypedef struct dgs_bern_exp_mp_t:
|
|
34
|
+
size_t l
|
|
35
|
+
mpfr_t *c
|
|
36
|
+
dgs_bern_mp_t **B
|
|
37
|
+
|
|
38
|
+
dgs_bern_exp_mp_t* dgs_bern_exp_mp_init(mpfr_t f, size_t l)
|
|
39
|
+
unsigned long dgs_bern_exp_mp_call(dgs_bern_exp_mp_t *self, mpz_t x, gmp_randstate_t state)
|
|
40
|
+
void dgs_bern_exp_mp_clear(dgs_bern_exp_mp_t *self)
|
|
41
|
+
|
|
42
|
+
ctypedef struct dgs_bern_dp_t:
|
|
43
|
+
double p
|
|
44
|
+
|
|
45
|
+
dgs_bern_dp_t *dgs_bern_dp_init(double p)
|
|
46
|
+
long dgs_bern_dp_call(dgs_bern_dp_t *self)
|
|
47
|
+
void dgs_bern_dp_clear(dgs_bern_dp_t *self)
|
|
48
|
+
|
|
49
|
+
ctypedef struct dgs_bern_exp_dp_t:
|
|
50
|
+
size_t l
|
|
51
|
+
double *p
|
|
52
|
+
dgs_bern_dp_t **B
|
|
53
|
+
|
|
54
|
+
dgs_bern_exp_dp_t* dgs_bern_exp_dp_init(double f, size_t l)
|
|
55
|
+
long dgs_bern_exp_dp_call(dgs_bern_exp_dp_t *self, long x)
|
|
56
|
+
void dgs_bern_exp_dp_clear(dgs_bern_exp_dp_t *self)
|
|
57
|
+
|
|
58
|
+
ctypedef enum dgs_disc_gauss_alg_t:
|
|
59
|
+
DGS_DISC_GAUSS_UNIFORM_TABLE
|
|
60
|
+
DGS_DISC_GAUSS_UNIFORM_ONLINE
|
|
61
|
+
DGS_DISC_GAUSS_UNIFORM_LOGTABLE
|
|
62
|
+
DGS_DISC_GAUSS_SIGMA2_LOGTABLE
|
|
63
|
+
|
|
64
|
+
ctypedef struct dgs_disc_gauss_sigma2p_t:
|
|
65
|
+
dgs_bern_uniform_t *B
|
|
66
|
+
|
|
67
|
+
dgs_disc_gauss_sigma2p_t *dgs_disc_gauss_sigma2p_init()
|
|
68
|
+
void dgs_disc_gauss_sigma2p_call(mpz_t rop, dgs_disc_gauss_sigma2p_t *self, gmp_randstate_t state)
|
|
69
|
+
void dgs_disc_gauss_sigma2p_clear(dgs_disc_gauss_sigma2p_t *self)
|
|
70
|
+
|
|
71
|
+
ctypedef struct dgs_disc_gauss_mp_t:
|
|
72
|
+
mpfr_t sigma
|
|
73
|
+
mpfr_t c
|
|
74
|
+
size_t tailcut
|
|
75
|
+
dgs_disc_gauss_alg_t algorithm
|
|
76
|
+
dgs_bern_mp_t *B
|
|
77
|
+
void call(mpz_t rop, dgs_disc_gauss_mp_t *self, gmp_randstate_t state)
|
|
78
|
+
|
|
79
|
+
unsigned long upper_bound
|
|
80
|
+
mpz_t x
|
|
81
|
+
mpfr_t y
|
|
82
|
+
mpfr_t *rho
|
|
83
|
+
|
|
84
|
+
dgs_disc_gauss_mp_t *dgs_disc_gauss_mp_init(mpfr_t sigma, mpfr_t c, size_t tailcut, dgs_disc_gauss_alg_t algorithm)
|
|
85
|
+
void dgs_disc_gauss_mp_call_uniform_table(mpz_t rop, dgs_disc_gauss_mp_t *self, gmp_randstate_t state)
|
|
86
|
+
void dgs_disc_gauss_mp_flush_cache(dgs_disc_gauss_mp_t *self)
|
|
87
|
+
void dgs_disc_gauss_mp_clear(dgs_disc_gauss_mp_t *self)
|
|
88
|
+
|
|
89
|
+
ctypedef struct dgs_disc_gauss_dp_t:
|
|
90
|
+
double sigma
|
|
91
|
+
double c
|
|
92
|
+
size_t tailcut
|
|
93
|
+
dgs_disc_gauss_alg_t algorithm
|
|
94
|
+
dgs_bern_uniform_t *B
|
|
95
|
+
dgs_bern_exp_dp_t *Bexp
|
|
96
|
+
dgs_disc_gauss_sigma2p_t *D2
|
|
97
|
+
long (*call)(dgs_disc_gauss_dp_t *self)
|
|
98
|
+
|
|
99
|
+
double f
|
|
100
|
+
long upper_bound
|
|
101
|
+
long two_upper_bound_plus_one
|
|
102
|
+
long k
|
|
103
|
+
double *rho
|
|
104
|
+
|
|
105
|
+
dgs_disc_gauss_dp_t *dgs_disc_gauss_dp_init(double sigma, double c, size_t tailcut, dgs_disc_gauss_alg_t algorithm)
|
|
106
|
+
long dgs_disc_gauss_dp_call_uniform_table(dgs_disc_gauss_dp_t *self)
|
|
107
|
+
long dgs_disc_gauss_dp_call_uniform_logtable(dgs_disc_gauss_dp_t *self)
|
|
108
|
+
long dgs_disc_gauss_dp_call_uniform_online(dgs_disc_gauss_dp_t *self)
|
|
109
|
+
long dgs_disc_gauss_dp_call_sigma2_logtable(dgs_disc_gauss_dp_t *self)
|
|
110
|
+
void dgs_disc_gauss_dp_flush_cache(dgs_disc_gauss_dp_t *self)
|
|
111
|
+
void dgs_disc_gauss_dp_clear(dgs_disc_gauss_dp_t *self)
|