passagemath-modules 10.6.31__cp314-cp314-macosx_13_0_arm64.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.31.dist-info/METADATA +281 -0
- passagemath_modules-10.6.31.dist-info/RECORD +807 -0
- passagemath_modules-10.6.31.dist-info/WHEEL +6 -0
- passagemath_modules-10.6.31.dist-info/top_level.txt +2 -0
- passagemath_modules.dylibs/libgfortran.5.dylib +0 -0
- passagemath_modules.dylibs/libgmp.10.dylib +0 -0
- passagemath_modules.dylibs/libgsl.28.dylib +0 -0
- passagemath_modules.dylibs/libmpc.3.dylib +0 -0
- passagemath_modules.dylibs/libmpfr.6.dylib +0 -0
- passagemath_modules.dylibs/libopenblasp-r0.3.29.dylib +0 -0
- passagemath_modules.dylibs/libquadmath.0.dylib +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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.so +0 -0
- sage/calculus/integration.pyx +698 -0
- sage/calculus/interpolation.cpython-314-darwin.so +0 -0
- sage/calculus/interpolation.pxd +13 -0
- sage/calculus/interpolation.pyx +387 -0
- sage/calculus/interpolators.cpython-314-darwin.so +0 -0
- sage/calculus/interpolators.pyx +326 -0
- sage/calculus/ode.cpython-314-darwin.so +0 -0
- sage/calculus/ode.pxd +5 -0
- sage/calculus/ode.pyx +610 -0
- sage/calculus/riemann.cpython-314-darwin.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-darwin.so +0 -0
- sage/calculus/transforms/dwt.pxd +7 -0
- sage/calculus/transforms/dwt.pyx +160 -0
- sage/calculus/transforms/fft.cpython-314-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.so +0 -0
- sage/libs/mpmath/utils.pxd +4 -0
- sage/libs/mpmath/utils.pyx +319 -0
- sage/matrix/action.cpython-314-darwin.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-darwin.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-darwin.so +0 -0
- sage/matrix/constructor.pyx +750 -0
- sage/matrix/docs.py +430 -0
- sage/matrix/echelon_matrix.cpython-314-darwin.so +0 -0
- sage/matrix/echelon_matrix.pyx +155 -0
- sage/matrix/matrix.pxd +2 -0
- sage/matrix/matrix0.cpython-314-darwin.so +0 -0
- sage/matrix/matrix0.pxd +68 -0
- sage/matrix/matrix0.pyx +6324 -0
- sage/matrix/matrix1.cpython-314-darwin.so +0 -0
- sage/matrix/matrix1.pxd +8 -0
- sage/matrix/matrix1.pyx +2851 -0
- sage/matrix/matrix2.cpython-314-darwin.so +0 -0
- sage/matrix/matrix2.pxd +25 -0
- sage/matrix/matrix2.pyx +20181 -0
- sage/matrix/matrix_cdv.cpython-314-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.so +0 -0
- sage/matrix/matrix_sparse.pxd +5 -0
- sage/matrix/matrix_sparse.pyx +1222 -0
- sage/matrix/matrix_window.cpython-314-darwin.so +0 -0
- sage/matrix/matrix_window.pxd +37 -0
- sage/matrix/matrix_window.pyx +242 -0
- sage/matrix/misc_mpfr.cpython-314-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.so +0 -0
- sage/matroids/extension.pxd +34 -0
- sage/matroids/extension.pyx +519 -0
- sage/matroids/flats_matroid.cpython-314-darwin.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-darwin.so +0 -0
- sage/matroids/graphic_matroid.pxd +39 -0
- sage/matroids/graphic_matroid.pyx +2024 -0
- sage/matroids/lean_matrix.cpython-314-darwin.so +0 -0
- sage/matroids/lean_matrix.pxd +126 -0
- sage/matroids/lean_matrix.pyx +3667 -0
- sage/matroids/linear_matroid.cpython-314-darwin.so +0 -0
- sage/matroids/linear_matroid.pxd +180 -0
- sage/matroids/linear_matroid.pyx +6649 -0
- sage/matroids/matroid.cpython-314-darwin.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-darwin.so +0 -0
- sage/matroids/set_system.pxd +38 -0
- sage/matroids/set_system.pyx +800 -0
- sage/matroids/transversal_matroid.cpython-314-darwin.so +0 -0
- sage/matroids/transversal_matroid.pxd +14 -0
- sage/matroids/transversal_matroid.pyx +893 -0
- sage/matroids/union_matroid.cpython-314-darwin.so +0 -0
- sage/matroids/union_matroid.pxd +20 -0
- sage/matroids/union_matroid.pyx +331 -0
- sage/matroids/unpickling.cpython-314-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.so +0 -0
- sage/rings/complex_conversion.pxd +8 -0
- sage/rings/complex_conversion.pyx +23 -0
- sage/rings/complex_double.cpython-314-darwin.so +0 -0
- sage/rings/complex_double.pxd +21 -0
- sage/rings/complex_double.pyx +2654 -0
- sage/rings/complex_mpc.cpython-314-darwin.so +0 -0
- sage/rings/complex_mpc.pxd +21 -0
- sage/rings/complex_mpc.pyx +2576 -0
- sage/rings/complex_mpfr.cpython-314-darwin.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-darwin.so +0 -0
- sage/rings/function_field/hermite_form_polynomial.pyx +188 -0
- sage/rings/function_field/khuri_makdisi.cpython-314-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.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-darwin.so +0 -0
- sage/rings/real_mpfr.pxd +29 -0
- sage/rings/real_mpfr.pyx +6122 -0
- sage/rings/ring_extension.cpython-314-darwin.so +0 -0
- sage/rings/ring_extension.pxd +42 -0
- sage/rings/ring_extension.pyx +2779 -0
- sage/rings/ring_extension_conversion.cpython-314-darwin.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-darwin.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-darwin.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-darwin.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-darwin.so +0 -0
- sage/stats/hmm/chmm.pyx +1595 -0
- sage/stats/hmm/distributions.cpython-314-darwin.so +0 -0
- sage/stats/hmm/distributions.pxd +29 -0
- sage/stats/hmm/distributions.pyx +531 -0
- sage/stats/hmm/hmm.cpython-314-darwin.so +0 -0
- sage/stats/hmm/hmm.pxd +17 -0
- sage/stats/hmm/hmm.pyx +1388 -0
- sage/stats/hmm/util.cpython-314-darwin.so +0 -0
- sage/stats/hmm/util.pxd +7 -0
- sage/stats/hmm/util.pyx +165 -0
- sage/stats/intlist.cpython-314-darwin.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-darwin.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,604 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-modules
|
|
2
|
+
# sage.doctest: optional - numpy
|
|
3
|
+
r"""
|
|
4
|
+
Dense vectors using a NumPy backend
|
|
5
|
+
|
|
6
|
+
This serves as a base class for dense vectors over Real Double Field and
|
|
7
|
+
Complex Double Field
|
|
8
|
+
|
|
9
|
+
EXAMPLES::
|
|
10
|
+
|
|
11
|
+
sage: # needs sage.symbolic
|
|
12
|
+
sage: v = vector(CDF,[(1,-1), (2,pi), (3,5)]); v
|
|
13
|
+
(1.0 - 1.0*I, 2.0 + 3.141592653589793*I, 3.0 + 5.0*I)
|
|
14
|
+
sage: type(v)
|
|
15
|
+
<class 'sage.modules.vector_complex_double_dense.Vector_complex_double_dense'>
|
|
16
|
+
sage: parent(v)
|
|
17
|
+
Vector space of dimension 3 over Complex Double Field
|
|
18
|
+
sage: v[0] = 5
|
|
19
|
+
sage: v
|
|
20
|
+
(5.0, 2.0 + 3.141592653589793*I, 3.0 + 5.0*I)
|
|
21
|
+
sage: loads(dumps(v)) == v
|
|
22
|
+
True
|
|
23
|
+
|
|
24
|
+
sage: v = vector(RDF, [1,2,3,4]); v
|
|
25
|
+
(1.0, 2.0, 3.0, 4.0)
|
|
26
|
+
sage: loads(dumps(v)) == v
|
|
27
|
+
True
|
|
28
|
+
|
|
29
|
+
AUTHORS:
|
|
30
|
+
|
|
31
|
+
- Jason Grout, Oct 2008: switch to numpy backend, factored out
|
|
32
|
+
``Vector_double_dense`` class
|
|
33
|
+
- Josh Kantor
|
|
34
|
+
- William Stein
|
|
35
|
+
"""
|
|
36
|
+
|
|
37
|
+
#*****************************************************************************
|
|
38
|
+
# Copyright (C) 2006-2010 William Stein <wstein@gmail.com>
|
|
39
|
+
# Copyright (C) 2009 Alexandru Ghitza
|
|
40
|
+
# Copyright (C) 2020 Antonio Rojas
|
|
41
|
+
# Copyright (C) 2017 Frédéric Chapoton
|
|
42
|
+
# Copyright (C) 2008-2009 Jason Grout
|
|
43
|
+
# Copyright (C) 2014-2016 Jeroen Demeyer
|
|
44
|
+
# Copyright (C) 2011 Mike Hansen
|
|
45
|
+
# Copyright (C) 2011 Rob Beezer
|
|
46
|
+
#
|
|
47
|
+
# This program is free software: you can redistribute it and/or modify
|
|
48
|
+
# it under the terms of the GNU General Public License as published by
|
|
49
|
+
# the Free Software Foundation, either version 2 of the License, or
|
|
50
|
+
# (at your option) any later version.
|
|
51
|
+
# https://www.gnu.org/licenses/
|
|
52
|
+
#*****************************************************************************
|
|
53
|
+
|
|
54
|
+
cimport numpy
|
|
55
|
+
import numpy
|
|
56
|
+
|
|
57
|
+
from sage.structure.element cimport Element, Vector
|
|
58
|
+
|
|
59
|
+
from sage.rings.real_double import RDF
|
|
60
|
+
from sage.rings.complex_double import CDF
|
|
61
|
+
|
|
62
|
+
# This is for the NumPy C API (the PyArray... functions) to work
|
|
63
|
+
numpy.import_array()
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
cdef class Vector_double_dense(Vector_numpy_dense):
|
|
67
|
+
"""
|
|
68
|
+
Base class for vectors over the Real Double Field and the Complex
|
|
69
|
+
Double Field. These are supposed to be fast vector operations
|
|
70
|
+
using C doubles. Most operations are implemented using numpy which
|
|
71
|
+
will call the underlying BLAS, if needed, on the system.
|
|
72
|
+
|
|
73
|
+
This class cannot be instantiated on its own. The numpy vector
|
|
74
|
+
creation depends on several variables that are set in the
|
|
75
|
+
subclasses.
|
|
76
|
+
|
|
77
|
+
EXAMPLES::
|
|
78
|
+
|
|
79
|
+
sage: v = vector(RDF, [1,2,3,4]); v
|
|
80
|
+
(1.0, 2.0, 3.0, 4.0)
|
|
81
|
+
sage: v*v
|
|
82
|
+
30.0
|
|
83
|
+
"""
|
|
84
|
+
|
|
85
|
+
cpdef _add_(self, right):
|
|
86
|
+
"""
|
|
87
|
+
Add two vectors together.
|
|
88
|
+
|
|
89
|
+
EXAMPLES::
|
|
90
|
+
|
|
91
|
+
sage: A = vector(RDF, range(3))
|
|
92
|
+
sage: A+A
|
|
93
|
+
(0.0, 2.0, 4.0)
|
|
94
|
+
"""
|
|
95
|
+
if self._degree == 0:
|
|
96
|
+
from copy import copy
|
|
97
|
+
return copy(self)
|
|
98
|
+
|
|
99
|
+
cdef Vector_double_dense _right, _left
|
|
100
|
+
_right = right
|
|
101
|
+
_left = self
|
|
102
|
+
|
|
103
|
+
return self._new(_left._vector_numpy + _right._vector_numpy)
|
|
104
|
+
|
|
105
|
+
cpdef _sub_(self, right):
|
|
106
|
+
"""
|
|
107
|
+
Return ``self - right``.
|
|
108
|
+
|
|
109
|
+
EXAMPLES::
|
|
110
|
+
|
|
111
|
+
sage: A = vector(RDF, range(3))
|
|
112
|
+
sage: (A-A).is_zero()
|
|
113
|
+
True
|
|
114
|
+
"""
|
|
115
|
+
if self._degree == 0:
|
|
116
|
+
from copy import copy
|
|
117
|
+
return copy(self)
|
|
118
|
+
|
|
119
|
+
cdef Vector_double_dense _right, _left
|
|
120
|
+
_right = right
|
|
121
|
+
_left = self
|
|
122
|
+
|
|
123
|
+
return self._new(_left._vector_numpy - _right._vector_numpy)
|
|
124
|
+
|
|
125
|
+
cpdef _dot_product_(self, Vector right):
|
|
126
|
+
"""
|
|
127
|
+
Dot product of ``self`` and ``right``.
|
|
128
|
+
|
|
129
|
+
EXAMPLES::
|
|
130
|
+
|
|
131
|
+
sage: v = vector(RDF, [1,2,3]); w = vector(RDF, [2, 4, -3])
|
|
132
|
+
sage: v*w
|
|
133
|
+
1.0
|
|
134
|
+
sage: w*v
|
|
135
|
+
1.0
|
|
136
|
+
|
|
137
|
+
This works correctly for zero-dimensional vectors::
|
|
138
|
+
|
|
139
|
+
sage: v = vector(RDF, [])
|
|
140
|
+
sage: v._dot_product_(v)
|
|
141
|
+
0.0
|
|
142
|
+
"""
|
|
143
|
+
cdef Vector_double_dense _right, _left
|
|
144
|
+
_right = right
|
|
145
|
+
_left = self
|
|
146
|
+
|
|
147
|
+
return self._sage_dtype(numpy.dot(_left._vector_numpy, _right._vector_numpy))
|
|
148
|
+
|
|
149
|
+
cpdef _pairwise_product_(self, Vector right):
|
|
150
|
+
"""
|
|
151
|
+
Return the component-wise product of ``self`` and ``right``.
|
|
152
|
+
|
|
153
|
+
EXAMPLES::
|
|
154
|
+
|
|
155
|
+
sage: v = vector(CDF, [1,2,3]); w = vector(CDF, [2, 4, -3])
|
|
156
|
+
sage: v.pairwise_product(w)
|
|
157
|
+
(2.0, 8.0, -9.0)
|
|
158
|
+
"""
|
|
159
|
+
if not right.parent() == self.parent():
|
|
160
|
+
right = self.parent().ambient_module()(right)
|
|
161
|
+
|
|
162
|
+
if self._degree == 0:
|
|
163
|
+
from copy import copy
|
|
164
|
+
return copy(self)
|
|
165
|
+
|
|
166
|
+
cdef Vector_double_dense _right, _left
|
|
167
|
+
_right = right
|
|
168
|
+
_left = self
|
|
169
|
+
|
|
170
|
+
return self._new(_left._vector_numpy * _right._vector_numpy)
|
|
171
|
+
|
|
172
|
+
cpdef _rmul_(self, Element left):
|
|
173
|
+
"""
|
|
174
|
+
Multiply a scalar and vector.
|
|
175
|
+
|
|
176
|
+
EXAMPLES::
|
|
177
|
+
|
|
178
|
+
sage: v = vector(CDF, range(3))
|
|
179
|
+
sage: 3*v
|
|
180
|
+
(0.0, 3.0, 6.0)
|
|
181
|
+
"""
|
|
182
|
+
if self._degree == 0:
|
|
183
|
+
from copy import copy
|
|
184
|
+
return copy(self)
|
|
185
|
+
|
|
186
|
+
return self._new(self._python_dtype(left)*self._vector_numpy)
|
|
187
|
+
|
|
188
|
+
cpdef _lmul_(self, Element right):
|
|
189
|
+
"""
|
|
190
|
+
Multiply a scalar and vector.
|
|
191
|
+
|
|
192
|
+
EXAMPLES::
|
|
193
|
+
|
|
194
|
+
sage: v = vector(CDF, range(3))
|
|
195
|
+
sage: v*3
|
|
196
|
+
(0.0, 3.0, 6.0)
|
|
197
|
+
"""
|
|
198
|
+
if self._degree == 0:
|
|
199
|
+
from copy import copy
|
|
200
|
+
return copy(self)
|
|
201
|
+
|
|
202
|
+
return self._new(self._vector_numpy*self._python_dtype(right))
|
|
203
|
+
|
|
204
|
+
def inv_fft(self, algorithm='radix2', inplace=False):
|
|
205
|
+
"""
|
|
206
|
+
This performs the inverse fast Fourier transform on the vector.
|
|
207
|
+
|
|
208
|
+
The Fourier transform can be done in place using the keyword
|
|
209
|
+
inplace=True
|
|
210
|
+
|
|
211
|
+
This will be fastest if the vector's length is a power of 2.
|
|
212
|
+
|
|
213
|
+
EXAMPLES::
|
|
214
|
+
|
|
215
|
+
sage: # needs scipy
|
|
216
|
+
sage: v = vector(CDF,[1,2,3,4])
|
|
217
|
+
sage: w = v.fft()
|
|
218
|
+
sage: max(v - w.inv_fft()) < 1e-12
|
|
219
|
+
True
|
|
220
|
+
"""
|
|
221
|
+
return self.fft(direction='backward', algorithm=algorithm, inplace=inplace)
|
|
222
|
+
|
|
223
|
+
def fft(self, direction='forward', algorithm='radix2', inplace=False):
|
|
224
|
+
"""
|
|
225
|
+
This performs a fast Fourier transform on the vector.
|
|
226
|
+
|
|
227
|
+
INPUT:
|
|
228
|
+
|
|
229
|
+
- ``direction`` -- string; ``'forward'`` (default) or ``'backward'``
|
|
230
|
+
|
|
231
|
+
The algorithm and inplace arguments are ignored.
|
|
232
|
+
|
|
233
|
+
This function is fastest if the vector's length is a power of 2.
|
|
234
|
+
|
|
235
|
+
EXAMPLES::
|
|
236
|
+
|
|
237
|
+
sage: # needs scipy sage.symbolic
|
|
238
|
+
sage: v = vector(CDF, [1 + 2*I, 2, 3*I, 4])
|
|
239
|
+
sage: v.fft()
|
|
240
|
+
(7.0 + 5.0*I, 1.0 + 1.0*I, -5.0 + 5.0*I, 1.0 - 3.0*I)
|
|
241
|
+
sage: v.fft(direction='backward')
|
|
242
|
+
(1.75 + 1.25*I, 0.25 - 0.75*I, -1.25 + 1.25*I, 0.25 + 0.25*I)
|
|
243
|
+
sage: v.fft().fft(direction='backward')
|
|
244
|
+
(1.0 + 2.0*I, 2.0, 3.0*I, 4.0)
|
|
245
|
+
sage: v.fft().parent()
|
|
246
|
+
Vector space of dimension 4 over Complex Double Field
|
|
247
|
+
sage: v.fft(inplace=True)
|
|
248
|
+
sage: v
|
|
249
|
+
(7.0 + 5.0*I, 1.0 + 1.0*I, -5.0 + 5.0*I, 1.0 - 3.0*I)
|
|
250
|
+
|
|
251
|
+
sage: # needs scipy
|
|
252
|
+
sage: v = vector(RDF,4,range(4)); v
|
|
253
|
+
(0.0, 1.0, 2.0, 3.0)
|
|
254
|
+
sage: v.fft()
|
|
255
|
+
(6.0, -2.0 + 2.0*I, -2.0, -2.0 - 2.0*I)
|
|
256
|
+
sage: v.fft(direction='backward')
|
|
257
|
+
(1.5, -0.5 - 0.5*I, -0.5, -0.5 + 0.5*I)
|
|
258
|
+
sage: v.fft().fft(direction='backward')
|
|
259
|
+
(0.0, 1.0, 2.0, 3.0)
|
|
260
|
+
sage: v.fft().parent()
|
|
261
|
+
Vector space of dimension 4 over Complex Double Field
|
|
262
|
+
sage: v.fft(inplace=True)
|
|
263
|
+
Traceback (most recent call last):
|
|
264
|
+
...
|
|
265
|
+
ValueError: inplace can only be True for CDF vectors
|
|
266
|
+
"""
|
|
267
|
+
if direction not in ('forward', 'backward'):
|
|
268
|
+
raise ValueError("direction must be either 'forward' or 'backward'")
|
|
269
|
+
|
|
270
|
+
if self._degree == 0:
|
|
271
|
+
return self
|
|
272
|
+
|
|
273
|
+
import scipy.fftpack
|
|
274
|
+
|
|
275
|
+
if inplace:
|
|
276
|
+
if self._sage_dtype is not CDF:
|
|
277
|
+
raise ValueError("inplace can only be True for CDF vectors")
|
|
278
|
+
if direction == 'forward':
|
|
279
|
+
self._vector_numpy = scipy.fftpack.fft(self._vector_numpy, overwrite_x = True)
|
|
280
|
+
else:
|
|
281
|
+
self._vector_numpy = scipy.fftpack.ifft(self._vector_numpy, overwrite_x = True)
|
|
282
|
+
else:
|
|
283
|
+
try:
|
|
284
|
+
fft = scipy.fft.fft
|
|
285
|
+
ifft = scipy.fft.ifft
|
|
286
|
+
except AttributeError:
|
|
287
|
+
fft = scipy.fft
|
|
288
|
+
ifft = scipy.ifft
|
|
289
|
+
V = CDF ** self._degree
|
|
290
|
+
from sage.modules.vector_complex_double_dense import Vector_complex_double_dense
|
|
291
|
+
if direction == 'forward':
|
|
292
|
+
return Vector_complex_double_dense(V, fft(self._vector_numpy))
|
|
293
|
+
else:
|
|
294
|
+
return Vector_complex_double_dense(V, ifft(self._vector_numpy))
|
|
295
|
+
|
|
296
|
+
def complex_vector(self):
|
|
297
|
+
"""
|
|
298
|
+
Return the associated complex vector, i.e., this vector but with
|
|
299
|
+
coefficients viewed as complex numbers.
|
|
300
|
+
|
|
301
|
+
EXAMPLES::
|
|
302
|
+
|
|
303
|
+
sage: v = vector(RDF,4,range(4)); v
|
|
304
|
+
(0.0, 1.0, 2.0, 3.0)
|
|
305
|
+
sage: v.complex_vector()
|
|
306
|
+
(0.0, 1.0, 2.0, 3.0)
|
|
307
|
+
sage: v = vector(RDF,0)
|
|
308
|
+
sage: v.complex_vector()
|
|
309
|
+
()
|
|
310
|
+
"""
|
|
311
|
+
return self.change_ring(CDF)
|
|
312
|
+
|
|
313
|
+
def zero_at(self, eps):
|
|
314
|
+
r"""
|
|
315
|
+
Return a copy with small entries replaced by zeros.
|
|
316
|
+
|
|
317
|
+
This is useful for modifying output from algorithms
|
|
318
|
+
which have large relative errors when producing zero
|
|
319
|
+
elements, e.g. to create reliable doctests.
|
|
320
|
+
|
|
321
|
+
INPUT:
|
|
322
|
+
|
|
323
|
+
- ``eps`` -- cutoff value
|
|
324
|
+
|
|
325
|
+
OUTPUT:
|
|
326
|
+
|
|
327
|
+
A modified copy of the vector. Elements smaller than
|
|
328
|
+
or equal to ``eps`` are replaced with zeroes. For
|
|
329
|
+
complex vectors, the real and imaginary parts are
|
|
330
|
+
considered individually.
|
|
331
|
+
|
|
332
|
+
EXAMPLES::
|
|
333
|
+
|
|
334
|
+
sage: v = vector(RDF, [1.0, 2.0, 10^-10, 3.0])
|
|
335
|
+
sage: v.zero_at(1e-8)
|
|
336
|
+
(1.0, 2.0, 0.0, 3.0)
|
|
337
|
+
sage: v.zero_at(1e-12)
|
|
338
|
+
(1.0, 2.0, 1e-10, 3.0)
|
|
339
|
+
|
|
340
|
+
For complex numbers the real and imaginary parts are considered
|
|
341
|
+
separately. ::
|
|
342
|
+
|
|
343
|
+
sage: # needs sage.symbolic
|
|
344
|
+
sage: w = vector(CDF, [10^-6 + 5*I, 5 + 10^-6*I, 5 + 5*I, 10^-6 + 10^-6*I])
|
|
345
|
+
sage: w.zero_at(1.0e-4)
|
|
346
|
+
(5.0*I, 5.0, 5.0 + 5.0*I, 0.0)
|
|
347
|
+
sage: w.zero_at(1.0e-8)
|
|
348
|
+
(1e-06 + 5.0*I, 5.0 + 1e-06*I, 5.0 + 5.0*I, 1e-06 + 1e-06*I)
|
|
349
|
+
"""
|
|
350
|
+
import sage.rings.complex_double
|
|
351
|
+
cdef Vector_double_dense v
|
|
352
|
+
eps = float(eps)
|
|
353
|
+
out = self._vector_numpy.copy()
|
|
354
|
+
if self._sage_dtype is sage.rings.complex_double.CDF:
|
|
355
|
+
out.real[numpy.abs(out.real) <= eps] = 0
|
|
356
|
+
out.imag[numpy.abs(out.imag) <= eps] = 0
|
|
357
|
+
else:
|
|
358
|
+
out[numpy.abs(out) <= eps] = 0
|
|
359
|
+
v = self._new(out)
|
|
360
|
+
return v
|
|
361
|
+
|
|
362
|
+
def norm(self, p=2):
|
|
363
|
+
r"""
|
|
364
|
+
Return the norm (or related computations) of the vector.
|
|
365
|
+
|
|
366
|
+
INPUT:
|
|
367
|
+
|
|
368
|
+
- ``p`` -- (default: 2) controls which norm is computed,
|
|
369
|
+
allowable values are any real number and positive and
|
|
370
|
+
negative infinity. See output discussion for specifics.
|
|
371
|
+
|
|
372
|
+
OUTPUT:
|
|
373
|
+
|
|
374
|
+
Returned value is a double precision floating point value
|
|
375
|
+
in ``RDF`` (or an integer when ``p=0``). The default value
|
|
376
|
+
of ``p = 2`` is the "usual" Euclidean norm. For other values:
|
|
377
|
+
|
|
378
|
+
- ``p = Infinity`` or ``p = oo``: the maximum of the
|
|
379
|
+
absolute values of the entries, where the absolute value
|
|
380
|
+
of the complex number `a+bi` is `\sqrt{a^2+b^2}`
|
|
381
|
+
- ``p = -Infinity`` or ``p = -oo``: the minimum of the
|
|
382
|
+
absolute values of the entries
|
|
383
|
+
- ``p = 0``: the number of nonzero entries in the vector
|
|
384
|
+
- ``p`` any other real number: for a vector `\vec{x}` this method computes
|
|
385
|
+
|
|
386
|
+
.. MATH::
|
|
387
|
+
|
|
388
|
+
\left(\sum_i x_i^p\right)^{1/p}
|
|
389
|
+
|
|
390
|
+
For ``p < 0`` this function is not a norm, but the above
|
|
391
|
+
computation may be useful for other purposes.
|
|
392
|
+
|
|
393
|
+
ALGORITHM:
|
|
394
|
+
|
|
395
|
+
Computation is performed by the :func:`~scipy:scipy.linalg.norm`
|
|
396
|
+
function of the SciPy/NumPy library.
|
|
397
|
+
|
|
398
|
+
EXAMPLES:
|
|
399
|
+
|
|
400
|
+
First over the reals. ::
|
|
401
|
+
|
|
402
|
+
sage: v = vector(RDF, range(9))
|
|
403
|
+
sage: v.norm()
|
|
404
|
+
14.28285685...
|
|
405
|
+
sage: v.norm(p=2)
|
|
406
|
+
14.28285685...
|
|
407
|
+
sage: v.norm(p=6)
|
|
408
|
+
8.744039097...
|
|
409
|
+
sage: v.norm(p=Infinity)
|
|
410
|
+
8.0
|
|
411
|
+
sage: v.norm(p=-oo)
|
|
412
|
+
0.0
|
|
413
|
+
sage: v.norm(p=0)
|
|
414
|
+
8.0
|
|
415
|
+
sage: v.norm(p=0.3)
|
|
416
|
+
4099.153615...
|
|
417
|
+
|
|
418
|
+
And over the complex numbers. ::
|
|
419
|
+
|
|
420
|
+
sage: # needs sage.symbolic
|
|
421
|
+
sage: w = vector(CDF, [3 - 4*I, 0, 5 + 12*I])
|
|
422
|
+
sage: w.norm()
|
|
423
|
+
13.9283882...
|
|
424
|
+
sage: w.norm(p=2)
|
|
425
|
+
13.9283882...
|
|
426
|
+
sage: w.norm(p=0)
|
|
427
|
+
2.0
|
|
428
|
+
sage: w.norm(p=4.2)
|
|
429
|
+
13.0555695...
|
|
430
|
+
sage: w.norm(p=oo)
|
|
431
|
+
13.0
|
|
432
|
+
|
|
433
|
+
Negative values of ``p`` are allowed and will
|
|
434
|
+
provide the same computation as for positive values.
|
|
435
|
+
A zero entry in the vector will raise a warning and return
|
|
436
|
+
zero. ::
|
|
437
|
+
|
|
438
|
+
sage: v = vector(CDF, range(1,10))
|
|
439
|
+
sage: v.norm(p=-3.2)
|
|
440
|
+
0.953760808...
|
|
441
|
+
sage: w = vector(CDF, [-1,0,1])
|
|
442
|
+
sage: w.norm(p=-1.6)
|
|
443
|
+
doctest:...: RuntimeWarning: divide by zero encountered in power
|
|
444
|
+
0.0
|
|
445
|
+
|
|
446
|
+
Return values are in ``RDF``, or an integer when ``p = 0``. ::
|
|
447
|
+
|
|
448
|
+
sage: v = vector(RDF, [1,2,4,8])
|
|
449
|
+
sage: v.norm() in RDF
|
|
450
|
+
True
|
|
451
|
+
sage: v.norm(p=0) in ZZ
|
|
452
|
+
True
|
|
453
|
+
|
|
454
|
+
Improper values of ``p`` are caught. ::
|
|
455
|
+
|
|
456
|
+
sage: w = vector(CDF, [-1,0,1])
|
|
457
|
+
sage: w.norm(p='junk')
|
|
458
|
+
Traceback (most recent call last):
|
|
459
|
+
...
|
|
460
|
+
ValueError: vector norm 'p' must be +/- infinity or a real number, not junk
|
|
461
|
+
"""
|
|
462
|
+
import sage.rings.infinity
|
|
463
|
+
import sage.rings.integer
|
|
464
|
+
if p == sage.rings.infinity.Infinity:
|
|
465
|
+
p = numpy.inf
|
|
466
|
+
elif p == -sage.rings.infinity.Infinity:
|
|
467
|
+
p = -numpy.inf
|
|
468
|
+
else:
|
|
469
|
+
try:
|
|
470
|
+
p = RDF(p)
|
|
471
|
+
except Exception:
|
|
472
|
+
raise ValueError("vector norm 'p' must be +/- infinity or a real number, not %s" % p)
|
|
473
|
+
n = numpy.linalg.norm(self._vector_numpy, ord=p)
|
|
474
|
+
# p = 0 returns integer *count* of nonzero entries
|
|
475
|
+
return RDF(n)
|
|
476
|
+
|
|
477
|
+
#############################
|
|
478
|
+
# statistics
|
|
479
|
+
#############################
|
|
480
|
+
|
|
481
|
+
def mean(self):
|
|
482
|
+
"""
|
|
483
|
+
Calculate the arithmetic mean of the vector.
|
|
484
|
+
|
|
485
|
+
EXAMPLES::
|
|
486
|
+
|
|
487
|
+
sage: # needs sage.symbolic
|
|
488
|
+
sage: v = vector(RDF, range(9))
|
|
489
|
+
sage: w = vector(CDF, [k + (9-k)*I for k in range(9)])
|
|
490
|
+
sage: v.mean()
|
|
491
|
+
4.0
|
|
492
|
+
sage: w.mean()
|
|
493
|
+
4.0 + 5.0*I
|
|
494
|
+
"""
|
|
495
|
+
return self._sage_dtype(numpy.mean(self._vector_numpy))
|
|
496
|
+
|
|
497
|
+
def variance(self, population=True):
|
|
498
|
+
"""
|
|
499
|
+
Calculate the variance of entries of the vector.
|
|
500
|
+
|
|
501
|
+
INPUT:
|
|
502
|
+
|
|
503
|
+
- ``population`` -- if ``False``, calculate the sample variance
|
|
504
|
+
|
|
505
|
+
EXAMPLES::
|
|
506
|
+
|
|
507
|
+
sage: # needs sage.symbolic
|
|
508
|
+
sage: v = vector(RDF, range(9))
|
|
509
|
+
sage: w = vector(CDF, [k + (9-k)*I for k in range(9)])
|
|
510
|
+
sage: v.variance()
|
|
511
|
+
7.5
|
|
512
|
+
sage: v.variance(population=False)
|
|
513
|
+
6.666666666666667
|
|
514
|
+
sage: w.variance()
|
|
515
|
+
15.0
|
|
516
|
+
sage: w.variance(population=False)
|
|
517
|
+
13.333333333333334
|
|
518
|
+
"""
|
|
519
|
+
if population is True:
|
|
520
|
+
return self._sage_dtype(numpy.var(self._vector_numpy, ddof=1))
|
|
521
|
+
else:
|
|
522
|
+
return self._sage_dtype(numpy.var(self._vector_numpy, ddof=0))
|
|
523
|
+
|
|
524
|
+
def standard_deviation(self, population=True):
|
|
525
|
+
"""
|
|
526
|
+
Calculate the standard deviation of entries of the vector.
|
|
527
|
+
|
|
528
|
+
INPUT:
|
|
529
|
+
|
|
530
|
+
- ``population`` -- If ``False``, calculate the sample standard
|
|
531
|
+
deviation
|
|
532
|
+
|
|
533
|
+
EXAMPLES::
|
|
534
|
+
|
|
535
|
+
sage: # needs sage.symbolic
|
|
536
|
+
sage: v = vector(RDF, range(9))
|
|
537
|
+
sage: w = vector(CDF, [k + (9-k)*I for k in range(9)])
|
|
538
|
+
sage: v.standard_deviation()
|
|
539
|
+
2.7386127875258306
|
|
540
|
+
sage: v.standard_deviation(population=False)
|
|
541
|
+
2.581988897471611
|
|
542
|
+
sage: w.standard_deviation()
|
|
543
|
+
3.872983346207417
|
|
544
|
+
sage: w.standard_deviation(population=False)
|
|
545
|
+
3.6514837167011076
|
|
546
|
+
"""
|
|
547
|
+
if population is True:
|
|
548
|
+
return self._sage_dtype(numpy.std(self._vector_numpy, ddof=1))
|
|
549
|
+
else:
|
|
550
|
+
return self._sage_dtype(numpy.std(self._vector_numpy, ddof=0))
|
|
551
|
+
|
|
552
|
+
def stats_kurtosis(self):
|
|
553
|
+
"""
|
|
554
|
+
Compute the kurtosis of a dataset.
|
|
555
|
+
|
|
556
|
+
Kurtosis is the fourth central moment divided by the square of
|
|
557
|
+
the variance. Since we use Fisher's definition, 3.0 is
|
|
558
|
+
subtracted from the result to give 0.0 for a normal
|
|
559
|
+
distribution. (Paragraph from the scipy.stats docstring.)
|
|
560
|
+
|
|
561
|
+
EXAMPLES::
|
|
562
|
+
|
|
563
|
+
sage: # needs scipy sage.symbolic
|
|
564
|
+
sage: v = vector(RDF, range(9))
|
|
565
|
+
sage: w = vector(CDF, [k + (9-k)*I for k in range(9)])
|
|
566
|
+
sage: v.stats_kurtosis() # rel tol 5e-15
|
|
567
|
+
-1.2300000000000000
|
|
568
|
+
sage: w.stats_kurtosis() # rel tol 5e-15
|
|
569
|
+
-1.2300000000000000
|
|
570
|
+
"""
|
|
571
|
+
import scipy.stats
|
|
572
|
+
return self._sage_dtype(scipy.stats.kurtosis(self._vector_numpy))
|
|
573
|
+
|
|
574
|
+
def prod(self):
|
|
575
|
+
"""
|
|
576
|
+
Return the product of the entries of ``self``.
|
|
577
|
+
|
|
578
|
+
EXAMPLES::
|
|
579
|
+
|
|
580
|
+
sage: # needs sage.symbolic
|
|
581
|
+
sage: v = vector(RDF, range(9))
|
|
582
|
+
sage: w = vector(CDF, [k + (9-k)*I for k in range(9)])
|
|
583
|
+
sage: v.prod()
|
|
584
|
+
0.0
|
|
585
|
+
sage: w.prod()
|
|
586
|
+
57204225.0*I
|
|
587
|
+
"""
|
|
588
|
+
return self._sage_dtype(self._vector_numpy.prod())
|
|
589
|
+
|
|
590
|
+
def sum(self):
|
|
591
|
+
"""
|
|
592
|
+
Return the sum of the entries of ``self``.
|
|
593
|
+
|
|
594
|
+
EXAMPLES::
|
|
595
|
+
|
|
596
|
+
sage: # needs sage.symbolic
|
|
597
|
+
sage: v = vector(RDF, range(9))
|
|
598
|
+
sage: w = vector(CDF, [k + (9-k)*I for k in range(9)])
|
|
599
|
+
sage: v.sum()
|
|
600
|
+
36.0
|
|
601
|
+
sage: w.sum()
|
|
602
|
+
36.0 + 45.0*I
|
|
603
|
+
"""
|
|
604
|
+
return self._sage_dtype(self._vector_numpy.sum())
|
|
Binary file
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-modules
|
|
2
|
+
from sage.libs.gmp.types cimport mpz_t
|
|
3
|
+
from sage.modules.free_module_element cimport FreeModuleElement
|
|
4
|
+
from sage.structure.parent cimport Parent
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
cdef class Vector_integer_dense(FreeModuleElement):
|
|
8
|
+
cdef mpz_t* _entries
|
|
9
|
+
cdef int _init(self, Py_ssize_t degree, Parent parent) except -1
|
|
10
|
+
|
|
11
|
+
cdef inline Vector_integer_dense _new_c(self):
|
|
12
|
+
cdef type t = type(self)
|
|
13
|
+
cdef Vector_integer_dense x = <Vector_integer_dense>(t.__new__(t))
|
|
14
|
+
x._init(self._degree, self._parent)
|
|
15
|
+
return x
|