passagemath-modules 10.6.31rc3__cp314-cp314-musllinux_1_2_x86_64.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 +808 -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-0cd532bd.so.1 +0 -0
- passagemath_modules.libs/libgfortran-2c33b284.so.5.0.0 +0 -0
- passagemath_modules.libs/libgmp-0e7fc84e.so.10.5.0 +0 -0
- passagemath_modules.libs/libgsl-42cda06f.so.28.0.0 +0 -0
- passagemath_modules.libs/libmpc-d8ebe4b5.so.3.3.1 +0 -0
- passagemath_modules.libs/libmpfr-aaecbfc0.so.6.2.1 +0 -0
- passagemath_modules.libs/libopenblasp-r0-905cb27d.3.29.so +0 -0
- passagemath_modules.libs/libquadmath-bb76a5fc.so.0.0.0 +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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-linux-musl.so +0 -0
- sage/calculus/integration.pyx +698 -0
- sage/calculus/interpolation.cpython-314-x86_64-linux-musl.so +0 -0
- sage/calculus/interpolation.pxd +13 -0
- sage/calculus/interpolation.pyx +387 -0
- sage/calculus/interpolators.cpython-314-x86_64-linux-musl.so +0 -0
- sage/calculus/interpolators.pyx +326 -0
- sage/calculus/ode.cpython-314-x86_64-linux-musl.so +0 -0
- sage/calculus/ode.pxd +5 -0
- sage/calculus/ode.pyx +610 -0
- sage/calculus/riemann.cpython-314-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-linux-musl.so +0 -0
- sage/libs/mpmath/utils.pxd +4 -0
- sage/libs/mpmath/utils.pyx +319 -0
- sage/matrix/action.cpython-314-x86_64-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-x86_64-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-x86_64-linux-musl.so +0 -0
- sage/matrix/constructor.pyx +750 -0
- sage/matrix/docs.py +430 -0
- sage/matrix/echelon_matrix.cpython-314-x86_64-linux-musl.so +0 -0
- sage/matrix/echelon_matrix.pyx +155 -0
- sage/matrix/matrix.pxd +2 -0
- sage/matrix/matrix0.cpython-314-x86_64-linux-musl.so +0 -0
- sage/matrix/matrix0.pxd +68 -0
- sage/matrix/matrix0.pyx +6324 -0
- sage/matrix/matrix1.cpython-314-x86_64-linux-musl.so +0 -0
- sage/matrix/matrix1.pxd +8 -0
- sage/matrix/matrix1.pyx +2851 -0
- sage/matrix/matrix2.cpython-314-x86_64-linux-musl.so +0 -0
- sage/matrix/matrix2.pxd +25 -0
- sage/matrix/matrix2.pyx +20181 -0
- sage/matrix/matrix_cdv.cpython-314-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-linux-musl.so +0 -0
- sage/matroids/extension.pxd +34 -0
- sage/matroids/extension.pyx +519 -0
- sage/matroids/flats_matroid.cpython-314-x86_64-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-x86_64-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-x86_64-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-x86_64-linux-musl.so +0 -0
- sage/matroids/linear_matroid.pxd +180 -0
- sage/matroids/linear_matroid.pyx +6649 -0
- sage/matroids/matroid.cpython-314-x86_64-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-x86_64-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-x86_64-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-x86_64-linux-musl.so +0 -0
- sage/matroids/union_matroid.pxd +20 -0
- sage/matroids/union_matroid.pyx +331 -0
- sage/matroids/unpickling.cpython-314-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-linux-musl.so +0 -0
- sage/rings/function_field/hermite_form_polynomial.pyx +188 -0
- sage/rings/function_field/khuri_makdisi.cpython-314-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-linux-musl.so +0 -0
- sage/stats/hmm/chmm.pyx +1595 -0
- sage/stats/hmm/distributions.cpython-314-x86_64-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-x86_64-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-x86_64-linux-musl.so +0 -0
- sage/stats/hmm/util.pxd +7 -0
- sage/stats/hmm/util.pyx +165 -0
- sage/stats/intlist.cpython-314-x86_64-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-x86_64-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,750 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-modules
|
|
2
|
+
# cython: binding=True
|
|
3
|
+
"""
|
|
4
|
+
General matrix Constructor and display options
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
#*****************************************************************************
|
|
8
|
+
# Copyright (C) 2005 William Stein <wstein@gmail.com>
|
|
9
|
+
# Copyright (C) 2016 Jeroen Demeyer <J.Demeyer@UGent.be>
|
|
10
|
+
#
|
|
11
|
+
# This program is free software: you can redistribute it and/or modify
|
|
12
|
+
# it under the terms of the GNU General Public License as published by
|
|
13
|
+
# the Free Software Foundation, either version 2 of the License, or
|
|
14
|
+
# (at your option) any later version.
|
|
15
|
+
# http://www.gnu.org/licenses/
|
|
16
|
+
#*****************************************************************************
|
|
17
|
+
|
|
18
|
+
from sage.matrix.args cimport MatrixArgs
|
|
19
|
+
from sage.structure.global_options import GlobalOptions
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def matrix(*args, **kwds):
|
|
23
|
+
"""
|
|
24
|
+
Create a matrix.
|
|
25
|
+
|
|
26
|
+
This implements the ``matrix`` constructor::
|
|
27
|
+
|
|
28
|
+
sage: matrix([[1,2],[3,4]])
|
|
29
|
+
[1 2]
|
|
30
|
+
[3 4]
|
|
31
|
+
|
|
32
|
+
It also contains methods to create special types of matrices, see
|
|
33
|
+
``matrix.[tab]`` for more options. For example::
|
|
34
|
+
|
|
35
|
+
sage: matrix.identity(2)
|
|
36
|
+
[1 0]
|
|
37
|
+
[0 1]
|
|
38
|
+
|
|
39
|
+
INPUT:
|
|
40
|
+
|
|
41
|
+
The :func:`matrix` command takes the entries of a matrix, optionally
|
|
42
|
+
preceded by a ring and the dimensions of the matrix, and returns a
|
|
43
|
+
matrix.
|
|
44
|
+
|
|
45
|
+
The entries of a matrix can be specified as a flat list of
|
|
46
|
+
elements, a list of lists (i.e., a list of rows), a list of Sage
|
|
47
|
+
vectors, a callable object, or a dictionary having positions as
|
|
48
|
+
keys and matrix entries as values (see the examples). If you pass
|
|
49
|
+
in a callable object, then you must specify the number of rows and
|
|
50
|
+
columns. You can create a matrix of zeros by passing an empty list
|
|
51
|
+
or the integer zero for the entries. To construct a multiple of
|
|
52
|
+
the identity (`cI`), you can specify square dimensions and pass in
|
|
53
|
+
`c`. Calling :func:`matrix` with a Sage object may return something that
|
|
54
|
+
makes sense. Calling :func:`matrix` with a NumPy array will convert the
|
|
55
|
+
array to a matrix.
|
|
56
|
+
|
|
57
|
+
All arguments (even the positional ones) are optional.
|
|
58
|
+
|
|
59
|
+
Positional and keyword arguments:
|
|
60
|
+
|
|
61
|
+
- ``base_ring`` -- parent of the entries of the matrix (despite the
|
|
62
|
+
name, this is not a priori required to be a ring). By default,
|
|
63
|
+
determine this from the given entries, falling back to ``ZZ`` if
|
|
64
|
+
no entries are given.
|
|
65
|
+
|
|
66
|
+
- ``nrows`` -- the number of rows in the matrix, or a finite or
|
|
67
|
+
enumerated family of arbitrary objects that index the rows of the matrix
|
|
68
|
+
|
|
69
|
+
- ``ncols`` -- the number of columns in the matrix, or a finite or
|
|
70
|
+
enumerated family of arbitrary objects that index the columns of the matrix
|
|
71
|
+
|
|
72
|
+
- ``entries`` -- see examples below
|
|
73
|
+
|
|
74
|
+
If any of ``nrows``, ``ncols``, ``row_keys``, ``column_keys`` is
|
|
75
|
+
given as keyword argument, then none of these may be given as
|
|
76
|
+
positional arguments.
|
|
77
|
+
|
|
78
|
+
Keyword-only arguments:
|
|
79
|
+
|
|
80
|
+
- ``sparse`` -- boolean; create a sparse matrix. This defaults to
|
|
81
|
+
``True`` when the entries are given as a dictionary, otherwise
|
|
82
|
+
defaults to ``False``.
|
|
83
|
+
|
|
84
|
+
- ``row_keys`` -- a finite or enumerated family of arbitrary objects
|
|
85
|
+
that index the rows of the matrix
|
|
86
|
+
|
|
87
|
+
- ``column_keys`` -- a finite or enumerated family of arbitrary objects
|
|
88
|
+
that index the columns of the matrix
|
|
89
|
+
|
|
90
|
+
- ``space`` -- matrix space which will be the parent of the output
|
|
91
|
+
matrix. This determines ``base_ring``, ``nrows``, ``row_keys``,
|
|
92
|
+
``ncols``, ``column_keys``, and ``sparse``.
|
|
93
|
+
|
|
94
|
+
- ``immutable`` -- boolean; make the matrix immutable. By default,
|
|
95
|
+
the output matrix is mutable.
|
|
96
|
+
|
|
97
|
+
OUTPUT: a matrix or, more generally, a homomorphism between free
|
|
98
|
+
modules
|
|
99
|
+
|
|
100
|
+
EXAMPLES::
|
|
101
|
+
|
|
102
|
+
sage: m = matrix(2); m; m.parent()
|
|
103
|
+
[0 0]
|
|
104
|
+
[0 0]
|
|
105
|
+
Full MatrixSpace of 2 by 2 dense matrices over Integer Ring
|
|
106
|
+
|
|
107
|
+
::
|
|
108
|
+
|
|
109
|
+
sage: m = matrix(2, 3); m; m.parent()
|
|
110
|
+
[0 0 0]
|
|
111
|
+
[0 0 0]
|
|
112
|
+
Full MatrixSpace of 2 by 3 dense matrices over Integer Ring
|
|
113
|
+
|
|
114
|
+
::
|
|
115
|
+
|
|
116
|
+
sage: m = matrix(QQ, [[1,2,3], [4,5,6]]); m; m.parent()
|
|
117
|
+
[1 2 3]
|
|
118
|
+
[4 5 6]
|
|
119
|
+
Full MatrixSpace of 2 by 3 dense matrices over Rational Field
|
|
120
|
+
|
|
121
|
+
::
|
|
122
|
+
|
|
123
|
+
sage: m = matrix(QQ, 3, 3, lambda i, j: i + j); m
|
|
124
|
+
[0 1 2]
|
|
125
|
+
[1 2 3]
|
|
126
|
+
[2 3 4]
|
|
127
|
+
sage: m = matrix(3, lambda i, j: i - j); m
|
|
128
|
+
[ 0 -1 -2]
|
|
129
|
+
[ 1 0 -1]
|
|
130
|
+
[ 2 1 0]
|
|
131
|
+
|
|
132
|
+
::
|
|
133
|
+
|
|
134
|
+
sage: matrix(QQ, 2, 3, lambda x, y: x + y)
|
|
135
|
+
[0 1 2]
|
|
136
|
+
[1 2 3]
|
|
137
|
+
sage: matrix(QQ, 5, 5, lambda x, y: (x+1) / (y+1))
|
|
138
|
+
[ 1 1/2 1/3 1/4 1/5]
|
|
139
|
+
[ 2 1 2/3 1/2 2/5]
|
|
140
|
+
[ 3 3/2 1 3/4 3/5]
|
|
141
|
+
[ 4 2 4/3 1 4/5]
|
|
142
|
+
[ 5 5/2 5/3 5/4 1]
|
|
143
|
+
|
|
144
|
+
::
|
|
145
|
+
|
|
146
|
+
sage: v1 = vector((1,2,3))
|
|
147
|
+
sage: v2 = vector((4,5,6))
|
|
148
|
+
sage: m = matrix([v1,v2]); m; m.parent()
|
|
149
|
+
[1 2 3]
|
|
150
|
+
[4 5 6]
|
|
151
|
+
Full MatrixSpace of 2 by 3 dense matrices over Integer Ring
|
|
152
|
+
|
|
153
|
+
::
|
|
154
|
+
|
|
155
|
+
sage: m = matrix(QQ, 2, [1,2,3,4,5,6]); m; m.parent()
|
|
156
|
+
[1 2 3]
|
|
157
|
+
[4 5 6]
|
|
158
|
+
Full MatrixSpace of 2 by 3 dense matrices over Rational Field
|
|
159
|
+
|
|
160
|
+
::
|
|
161
|
+
|
|
162
|
+
sage: m = matrix(QQ, 2, 3, [1,2,3,4,5,6]); m; m.parent()
|
|
163
|
+
[1 2 3]
|
|
164
|
+
[4 5 6]
|
|
165
|
+
Full MatrixSpace of 2 by 3 dense matrices over Rational Field
|
|
166
|
+
|
|
167
|
+
::
|
|
168
|
+
|
|
169
|
+
sage: m = matrix({(0,1): 2, (1,1): 2/5}); m; m.parent()
|
|
170
|
+
[ 0 2]
|
|
171
|
+
[ 0 2/5]
|
|
172
|
+
Full MatrixSpace of 2 by 2 sparse matrices over Rational Field
|
|
173
|
+
|
|
174
|
+
::
|
|
175
|
+
|
|
176
|
+
sage: m = matrix(QQ, 2, 3, {(1,1): 2}); m; m.parent()
|
|
177
|
+
[0 0 0]
|
|
178
|
+
[0 2 0]
|
|
179
|
+
Full MatrixSpace of 2 by 3 sparse matrices over Rational Field
|
|
180
|
+
|
|
181
|
+
::
|
|
182
|
+
|
|
183
|
+
sage: import numpy # needs numpy
|
|
184
|
+
sage: n = numpy.array([[1,2], [3,4]], float) # needs numpy
|
|
185
|
+
sage: m = matrix(n); m; m.parent() # needs numpy
|
|
186
|
+
[1.0 2.0]
|
|
187
|
+
[3.0 4.0]
|
|
188
|
+
Full MatrixSpace of 2 by 2 dense matrices over Real Double Field
|
|
189
|
+
|
|
190
|
+
::
|
|
191
|
+
|
|
192
|
+
sage: v = vector(ZZ, [1, 10, 100])
|
|
193
|
+
sage: m = matrix(v); m; m.parent()
|
|
194
|
+
[ 1 10 100]
|
|
195
|
+
Full MatrixSpace of 1 by 3 dense matrices over Integer Ring
|
|
196
|
+
sage: m = matrix(GF(7), v); m; m.parent()
|
|
197
|
+
[1 3 2]
|
|
198
|
+
Full MatrixSpace of 1 by 3 dense matrices over Finite Field of size 7
|
|
199
|
+
sage: m = matrix(GF(7), 3, 1, v); m; m.parent()
|
|
200
|
+
[1]
|
|
201
|
+
[3]
|
|
202
|
+
[2]
|
|
203
|
+
Full MatrixSpace of 3 by 1 dense matrices over Finite Field of size 7
|
|
204
|
+
|
|
205
|
+
::
|
|
206
|
+
|
|
207
|
+
sage: matrix(pari.mathilbert(3)) # needs sage.libs.pari
|
|
208
|
+
[ 1 1/2 1/3]
|
|
209
|
+
[1/2 1/3 1/4]
|
|
210
|
+
[1/3 1/4 1/5]
|
|
211
|
+
|
|
212
|
+
::
|
|
213
|
+
|
|
214
|
+
sage: g = graphs.PetersenGraph() # needs sage.graphs
|
|
215
|
+
sage: m = matrix(g); m; m.parent() # needs sage.graphs
|
|
216
|
+
[0 1 0 0 1 1 0 0 0 0]
|
|
217
|
+
[1 0 1 0 0 0 1 0 0 0]
|
|
218
|
+
[0 1 0 1 0 0 0 1 0 0]
|
|
219
|
+
[0 0 1 0 1 0 0 0 1 0]
|
|
220
|
+
[1 0 0 1 0 0 0 0 0 1]
|
|
221
|
+
[1 0 0 0 0 0 0 1 1 0]
|
|
222
|
+
[0 1 0 0 0 0 0 0 1 1]
|
|
223
|
+
[0 0 1 0 0 1 0 0 0 1]
|
|
224
|
+
[0 0 0 1 0 1 1 0 0 0]
|
|
225
|
+
[0 0 0 0 1 0 1 1 0 0]
|
|
226
|
+
Full MatrixSpace of 10 by 10 dense matrices over Integer Ring
|
|
227
|
+
|
|
228
|
+
::
|
|
229
|
+
|
|
230
|
+
sage: matrix(ZZ, 10, 10, range(100), sparse=True).parent()
|
|
231
|
+
Full MatrixSpace of 10 by 10 sparse matrices over Integer Ring
|
|
232
|
+
|
|
233
|
+
::
|
|
234
|
+
|
|
235
|
+
sage: R = PolynomialRing(QQ, 9, 'x')
|
|
236
|
+
sage: A = matrix(R, 3, 3, R.gens()); A
|
|
237
|
+
[x0 x1 x2]
|
|
238
|
+
[x3 x4 x5]
|
|
239
|
+
[x6 x7 x8]
|
|
240
|
+
sage: det(A)
|
|
241
|
+
-x2*x4*x6 + x1*x5*x6 + x2*x3*x7 - x0*x5*x7 - x1*x3*x8 + x0*x4*x8
|
|
242
|
+
|
|
243
|
+
::
|
|
244
|
+
|
|
245
|
+
sage: M = Matrix([[1,2,3], [4,5,6], [7,8,9]], immutable=True)
|
|
246
|
+
sage: M[0] = [9,9,9]
|
|
247
|
+
Traceback (most recent call last):
|
|
248
|
+
...
|
|
249
|
+
ValueError: matrix is immutable; please change a copy instead
|
|
250
|
+
(i.e., use copy(M) to change a copy of M).
|
|
251
|
+
|
|
252
|
+
Using ``row_keys`` and ``column_keys``::
|
|
253
|
+
|
|
254
|
+
sage: M = matrix([[1,2,3], [4,5,6]],
|
|
255
|
+
....: column_keys=['a','b','c'], row_keys=['u','v']); M
|
|
256
|
+
Generic morphism:
|
|
257
|
+
From: Free module generated by {'a', 'b', 'c'} over Integer Ring
|
|
258
|
+
To: Free module generated by {'u', 'v'} over Integer Ring
|
|
259
|
+
sage: print(M._unicode_art_matrix())
|
|
260
|
+
a b c
|
|
261
|
+
u⎛1 2 3⎞
|
|
262
|
+
v⎝4 5 6⎠
|
|
263
|
+
|
|
264
|
+
It is allowed to specify dimensions redundantly::
|
|
265
|
+
|
|
266
|
+
sage: M = matrix(2, 3, [[1,2,3], [4,5,6]],
|
|
267
|
+
....: column_keys=['a','b','c'], row_keys=['u','v']); M
|
|
268
|
+
Generic morphism:
|
|
269
|
+
From: Free module generated by {'a', 'b', 'c'} over Integer Ring
|
|
270
|
+
To: Free module generated by {'u', 'v'} over Integer Ring
|
|
271
|
+
|
|
272
|
+
TESTS:
|
|
273
|
+
|
|
274
|
+
There are many ways to create an empty matrix::
|
|
275
|
+
|
|
276
|
+
sage: m = matrix(); m; m.parent()
|
|
277
|
+
[]
|
|
278
|
+
Full MatrixSpace of 0 by 0 dense matrices over Integer Ring
|
|
279
|
+
sage: m = matrix(sparse=True); m; m.parent()
|
|
280
|
+
[]
|
|
281
|
+
Full MatrixSpace of 0 by 0 sparse matrices over Integer Ring
|
|
282
|
+
sage: m = matrix(QQ); m; m.parent()
|
|
283
|
+
[]
|
|
284
|
+
Full MatrixSpace of 0 by 0 dense matrices over Rational Field
|
|
285
|
+
sage: m = matrix(base_ring=QQ); m; m.parent()
|
|
286
|
+
[]
|
|
287
|
+
Full MatrixSpace of 0 by 0 dense matrices over Rational Field
|
|
288
|
+
sage: m = matrix(0); m; m.parent()
|
|
289
|
+
[]
|
|
290
|
+
Full MatrixSpace of 0 by 0 dense matrices over Integer Ring
|
|
291
|
+
sage: m = matrix(0, 0, base_ring=QQ); m; m.parent()
|
|
292
|
+
[]
|
|
293
|
+
Full MatrixSpace of 0 by 0 dense matrices over Rational Field
|
|
294
|
+
sage: m = matrix([]); m; m.parent()
|
|
295
|
+
[]
|
|
296
|
+
Full MatrixSpace of 0 by 0 dense matrices over Integer Ring
|
|
297
|
+
sage: m = matrix(QQ, []); m; m.parent()
|
|
298
|
+
[]
|
|
299
|
+
Full MatrixSpace of 0 by 0 dense matrices over Rational Field
|
|
300
|
+
sage: m = matrix(QQ, {}); m; m.parent()
|
|
301
|
+
[]
|
|
302
|
+
Full MatrixSpace of 0 by 0 sparse matrices over Rational Field
|
|
303
|
+
|
|
304
|
+
Only a ring and dimensions::
|
|
305
|
+
|
|
306
|
+
sage: m = matrix(2); m; m.parent()
|
|
307
|
+
[0 0]
|
|
308
|
+
[0 0]
|
|
309
|
+
Full MatrixSpace of 2 by 2 dense matrices over Integer Ring
|
|
310
|
+
sage: m = matrix(QQ, 2); m; m.parent()
|
|
311
|
+
[0 0]
|
|
312
|
+
[0 0]
|
|
313
|
+
Full MatrixSpace of 2 by 2 dense matrices over Rational Field
|
|
314
|
+
sage: m = matrix(QQ, 2, 3); m; m.parent()
|
|
315
|
+
[0 0 0]
|
|
316
|
+
[0 0 0]
|
|
317
|
+
Full MatrixSpace of 2 by 3 dense matrices over Rational Field
|
|
318
|
+
|
|
319
|
+
A ring, dimensions and a scalar::
|
|
320
|
+
|
|
321
|
+
sage: m = matrix(2,2,1); m; m.parent()
|
|
322
|
+
[1 0]
|
|
323
|
+
[0 1]
|
|
324
|
+
Full MatrixSpace of 2 by 2 dense matrices over Integer Ring
|
|
325
|
+
sage: m = matrix(QQ,2,2,5); m; m.parent()
|
|
326
|
+
[5 0]
|
|
327
|
+
[0 5]
|
|
328
|
+
Full MatrixSpace of 2 by 2 dense matrices over Rational Field
|
|
329
|
+
|
|
330
|
+
For non-square matrices, only zero works::
|
|
331
|
+
|
|
332
|
+
sage: m = matrix(2,3,0); m; m.parent()
|
|
333
|
+
[0 0 0]
|
|
334
|
+
[0 0 0]
|
|
335
|
+
Full MatrixSpace of 2 by 3 dense matrices over Integer Ring
|
|
336
|
+
sage: m = matrix(QQ,2,3,0); m; m.parent()
|
|
337
|
+
[0 0 0]
|
|
338
|
+
[0 0 0]
|
|
339
|
+
Full MatrixSpace of 2 by 3 dense matrices over Rational Field
|
|
340
|
+
sage: matrix(QQ,2,3,1)
|
|
341
|
+
Traceback (most recent call last):
|
|
342
|
+
...
|
|
343
|
+
TypeError: nonzero scalar matrix must be square
|
|
344
|
+
sage: matrix(QQ,2,3,5)
|
|
345
|
+
Traceback (most recent call last):
|
|
346
|
+
...
|
|
347
|
+
TypeError: nonzero scalar matrix must be square
|
|
348
|
+
|
|
349
|
+
Matrices specified by a list of entries::
|
|
350
|
+
|
|
351
|
+
sage: m = matrix([[1,2,3],[4,5,6]]); m; m.parent()
|
|
352
|
+
[1 2 3]
|
|
353
|
+
[4 5 6]
|
|
354
|
+
Full MatrixSpace of 2 by 3 dense matrices over Integer Ring
|
|
355
|
+
sage: m = matrix(QQ, 2, [[1,2,3],[4,5,6]]); m; m.parent()
|
|
356
|
+
[1 2 3]
|
|
357
|
+
[4 5 6]
|
|
358
|
+
Full MatrixSpace of 2 by 3 dense matrices over Rational Field
|
|
359
|
+
sage: m = matrix(QQ, 3, [[1,2,3],[4,5,6]]); m; m.parent()
|
|
360
|
+
Traceback (most recent call last):
|
|
361
|
+
...
|
|
362
|
+
ValueError: inconsistent number of rows: should be 3 but got 2
|
|
363
|
+
sage: m = matrix(QQ, 2, 3, [[1,2,3],[4,5,6]]); m; m.parent()
|
|
364
|
+
[1 2 3]
|
|
365
|
+
[4 5 6]
|
|
366
|
+
Full MatrixSpace of 2 by 3 dense matrices over Rational Field
|
|
367
|
+
sage: m = matrix(QQ, 2, 4, [[1,2,3],[4,5,6]]); m; m.parent()
|
|
368
|
+
Traceback (most recent call last):
|
|
369
|
+
...
|
|
370
|
+
ValueError: sequence too short (expected length 4, got 3)
|
|
371
|
+
sage: m = matrix([(1,2,3),(4,5,6)]); m; m.parent()
|
|
372
|
+
[1 2 3]
|
|
373
|
+
[4 5 6]
|
|
374
|
+
Full MatrixSpace of 2 by 3 dense matrices over Integer Ring
|
|
375
|
+
sage: m = matrix([1,2,3,4,5,6]); m; m.parent()
|
|
376
|
+
[1 2 3 4 5 6]
|
|
377
|
+
Full MatrixSpace of 1 by 6 dense matrices over Integer Ring
|
|
378
|
+
sage: m = matrix((1,2,3,4,5,6)); m; m.parent()
|
|
379
|
+
[1 2 3 4 5 6]
|
|
380
|
+
Full MatrixSpace of 1 by 6 dense matrices over Integer Ring
|
|
381
|
+
sage: m = matrix(QQ, [1,2,3,4,5,6]); m; m.parent()
|
|
382
|
+
[1 2 3 4 5 6]
|
|
383
|
+
Full MatrixSpace of 1 by 6 dense matrices over Rational Field
|
|
384
|
+
sage: m = matrix(QQ, 3, 2, [1,2,3,4,5,6]); m; m.parent()
|
|
385
|
+
[1 2]
|
|
386
|
+
[3 4]
|
|
387
|
+
[5 6]
|
|
388
|
+
Full MatrixSpace of 3 by 2 dense matrices over Rational Field
|
|
389
|
+
sage: m = matrix(QQ, 2, 4, [1,2,3,4,5,6]); m; m.parent()
|
|
390
|
+
Traceback (most recent call last):
|
|
391
|
+
...
|
|
392
|
+
ValueError: sequence too short (expected length 8, got 6)
|
|
393
|
+
sage: m = matrix(QQ, 5, [1,2,3,4,5,6]); m; m.parent()
|
|
394
|
+
Traceback (most recent call last):
|
|
395
|
+
...
|
|
396
|
+
ValueError: sequence too long (expected length 5, got more)
|
|
397
|
+
|
|
398
|
+
Matrices specified by a dict of entries::
|
|
399
|
+
|
|
400
|
+
sage: m = matrix({(1,1): 2}); m; m.parent()
|
|
401
|
+
[0 0]
|
|
402
|
+
[0 2]
|
|
403
|
+
Full MatrixSpace of 2 by 2 sparse matrices over Integer Ring
|
|
404
|
+
sage: m = matrix({(1,1): 2}, sparse=False); m; m.parent()
|
|
405
|
+
[0 0]
|
|
406
|
+
[0 2]
|
|
407
|
+
Full MatrixSpace of 2 by 2 dense matrices over Integer Ring
|
|
408
|
+
sage: m = matrix(QQ, {(1,1): 2}); m; m.parent()
|
|
409
|
+
[0 0]
|
|
410
|
+
[0 2]
|
|
411
|
+
Full MatrixSpace of 2 by 2 sparse matrices over Rational Field
|
|
412
|
+
sage: m = matrix(QQ, 3, {(1,1): 2}); m; m.parent()
|
|
413
|
+
[0 0 0]
|
|
414
|
+
[0 2 0]
|
|
415
|
+
[0 0 0]
|
|
416
|
+
Full MatrixSpace of 3 by 3 sparse matrices over Rational Field
|
|
417
|
+
sage: m = matrix(QQ, 3, 4, {(1,1): 2}); m; m.parent()
|
|
418
|
+
[0 0 0 0]
|
|
419
|
+
[0 2 0 0]
|
|
420
|
+
[0 0 0 0]
|
|
421
|
+
Full MatrixSpace of 3 by 4 sparse matrices over Rational Field
|
|
422
|
+
sage: m = matrix(QQ, 2, {(1,1): 2}); m; m.parent()
|
|
423
|
+
[0 0]
|
|
424
|
+
[0 2]
|
|
425
|
+
Full MatrixSpace of 2 by 2 sparse matrices over Rational Field
|
|
426
|
+
sage: m = matrix(QQ, 1, {(1,1): 2}); m; m.parent()
|
|
427
|
+
Traceback (most recent call last):
|
|
428
|
+
...
|
|
429
|
+
IndexError: invalid row index 1
|
|
430
|
+
sage: m = matrix({}); m; m.parent()
|
|
431
|
+
[]
|
|
432
|
+
Full MatrixSpace of 0 by 0 sparse matrices over Integer Ring
|
|
433
|
+
sage: m = matrix(QQ, {}); m; m.parent()
|
|
434
|
+
[]
|
|
435
|
+
Full MatrixSpace of 0 by 0 sparse matrices over Rational Field
|
|
436
|
+
sage: m = matrix(QQ, 2, {}); m; m.parent()
|
|
437
|
+
[0 0]
|
|
438
|
+
[0 0]
|
|
439
|
+
Full MatrixSpace of 2 by 2 sparse matrices over Rational Field
|
|
440
|
+
sage: m = matrix(QQ, 2, 3, {}); m; m.parent()
|
|
441
|
+
[0 0 0]
|
|
442
|
+
[0 0 0]
|
|
443
|
+
Full MatrixSpace of 2 by 3 sparse matrices over Rational Field
|
|
444
|
+
sage: m = matrix(2, {}); m; m.parent()
|
|
445
|
+
[0 0]
|
|
446
|
+
[0 0]
|
|
447
|
+
Full MatrixSpace of 2 by 2 sparse matrices over Integer Ring
|
|
448
|
+
sage: m = matrix(2, 3, {}); m; m.parent()
|
|
449
|
+
[0 0 0]
|
|
450
|
+
[0 0 0]
|
|
451
|
+
Full MatrixSpace of 2 by 3 sparse matrices over Integer Ring
|
|
452
|
+
|
|
453
|
+
Matrices with zero rows or columns::
|
|
454
|
+
|
|
455
|
+
sage: m = matrix(0,2); m; m.parent()
|
|
456
|
+
[]
|
|
457
|
+
Full MatrixSpace of 0 by 2 dense matrices over Integer Ring
|
|
458
|
+
sage: m = matrix(2,0); m; m.parent()
|
|
459
|
+
[]
|
|
460
|
+
Full MatrixSpace of 2 by 0 dense matrices over Integer Ring
|
|
461
|
+
sage: m = matrix(0, [1]); m; m.parent()
|
|
462
|
+
Traceback (most recent call last):
|
|
463
|
+
...
|
|
464
|
+
ValueError: sequence too long (expected length 0, got more)
|
|
465
|
+
sage: m = matrix(1, 0, []); m; m.parent()
|
|
466
|
+
[]
|
|
467
|
+
Full MatrixSpace of 1 by 0 dense matrices over Integer Ring
|
|
468
|
+
sage: m = matrix(0, 1, []); m; m.parent()
|
|
469
|
+
[]
|
|
470
|
+
Full MatrixSpace of 0 by 1 dense matrices over Integer Ring
|
|
471
|
+
sage: m = matrix(0, []); m; m.parent()
|
|
472
|
+
[]
|
|
473
|
+
Full MatrixSpace of 0 by 0 dense matrices over Integer Ring
|
|
474
|
+
sage: m = matrix(0, {}); m; m.parent()
|
|
475
|
+
[]
|
|
476
|
+
Full MatrixSpace of 0 by 0 sparse matrices over Integer Ring
|
|
477
|
+
sage: m = matrix(0, {(1,1): 2}); m; m.parent()
|
|
478
|
+
Traceback (most recent call last):
|
|
479
|
+
...
|
|
480
|
+
IndexError: invalid row index 1
|
|
481
|
+
sage: m = matrix(2, 0, {(1,1): 2}); m; m.parent()
|
|
482
|
+
Traceback (most recent call last):
|
|
483
|
+
...
|
|
484
|
+
IndexError: invalid column index 1
|
|
485
|
+
|
|
486
|
+
Check conversion from numpy::
|
|
487
|
+
|
|
488
|
+
sage: # needs numpy
|
|
489
|
+
sage: import numpy
|
|
490
|
+
sage: n = numpy.array([[complex(0,1),complex(0,2)], [3,4]], complex)
|
|
491
|
+
sage: m = matrix(n); m; m.parent()
|
|
492
|
+
[1.0*I 2.0*I]
|
|
493
|
+
[ 3.0 4.0]
|
|
494
|
+
Full MatrixSpace of 2 by 2 dense matrices over Complex Double Field
|
|
495
|
+
sage: n = numpy.array([[1,2], [3,4]], 'int32')
|
|
496
|
+
sage: m = matrix(n); m; m.parent()
|
|
497
|
+
[1 2]
|
|
498
|
+
[3 4]
|
|
499
|
+
Full MatrixSpace of 2 by 2 dense matrices over Integer Ring
|
|
500
|
+
sage: n = numpy.array([[1,2,3], [4,5,6], [7,8,9]], 'float32')
|
|
501
|
+
sage: m = matrix(n); m; m.parent()
|
|
502
|
+
[1.0 2.0 3.0]
|
|
503
|
+
[4.0 5.0 6.0]
|
|
504
|
+
[7.0 8.0 9.0]
|
|
505
|
+
Full MatrixSpace of 3 by 3 dense matrices over Real Double Field
|
|
506
|
+
sage: n = numpy.matrix([[1,2,3], [4,5,6], [7,8,9]], 'float64')
|
|
507
|
+
sage: m = matrix(n); m; m.parent()
|
|
508
|
+
[1.0 2.0 3.0]
|
|
509
|
+
[4.0 5.0 6.0]
|
|
510
|
+
[7.0 8.0 9.0]
|
|
511
|
+
Full MatrixSpace of 3 by 3 dense matrices over Real Double Field
|
|
512
|
+
sage: n = numpy.array([[1,2,3], [4,5,6], [7,8,9]], 'complex64')
|
|
513
|
+
sage: m = matrix(n); m; m.parent()
|
|
514
|
+
[1.0 2.0 3.0]
|
|
515
|
+
[4.0 5.0 6.0]
|
|
516
|
+
[7.0 8.0 9.0]
|
|
517
|
+
Full MatrixSpace of 3 by 3 dense matrices over Complex Double Field
|
|
518
|
+
sage: n = numpy.matrix([[1,2,3], [4,5,6], [7,8,9]], 'complex128')
|
|
519
|
+
sage: m = matrix(n); m; m.parent()
|
|
520
|
+
[1.0 2.0 3.0]
|
|
521
|
+
[4.0 5.0 6.0]
|
|
522
|
+
[7.0 8.0 9.0]
|
|
523
|
+
Full MatrixSpace of 3 by 3 dense matrices over Complex Double Field
|
|
524
|
+
sage: a = matrix([[1,2], [3,4]])
|
|
525
|
+
sage: b = matrix(a.numpy()); b
|
|
526
|
+
[1 2]
|
|
527
|
+
[3 4]
|
|
528
|
+
sage: a == b
|
|
529
|
+
True
|
|
530
|
+
sage: c = matrix(a.numpy('float32')); c
|
|
531
|
+
[1.0 2.0]
|
|
532
|
+
[3.0 4.0]
|
|
533
|
+
sage: matrix(numpy.array([[5]]))
|
|
534
|
+
[5]
|
|
535
|
+
sage: matrix(numpy.matrix([[5]]))
|
|
536
|
+
[5]
|
|
537
|
+
|
|
538
|
+
A ring and a numpy array::
|
|
539
|
+
|
|
540
|
+
sage: # needs numpy
|
|
541
|
+
sage: n = numpy.array([[1,2,3], [4,5,6], [7,8,9]], 'float32')
|
|
542
|
+
sage: m = matrix(ZZ, n); m; m.parent()
|
|
543
|
+
[1 2 3]
|
|
544
|
+
[4 5 6]
|
|
545
|
+
[7 8 9]
|
|
546
|
+
Full MatrixSpace of 3 by 3 dense matrices over Integer Ring
|
|
547
|
+
sage: n = matrix(QQ, 2, 2, [1, 1/2, 1/3, 1/4]).numpy(); n
|
|
548
|
+
array([[1. , 0.5 ],
|
|
549
|
+
[0.33333333, 0.25 ]])
|
|
550
|
+
sage: matrix(QQ, n)
|
|
551
|
+
[ 1 1/2]
|
|
552
|
+
[1/3 1/4]
|
|
553
|
+
|
|
554
|
+
The dimensions of a matrix may be given as numpy types::
|
|
555
|
+
|
|
556
|
+
sage: matrix(numpy.int32(2), numpy.int32(3)) # needs numpy
|
|
557
|
+
[0 0 0]
|
|
558
|
+
[0 0 0]
|
|
559
|
+
|
|
560
|
+
sage: matrix(nrows=numpy.int32(2), ncols=numpy.int32(3)) # needs numpy
|
|
561
|
+
[0 0 0]
|
|
562
|
+
[0 0 0]
|
|
563
|
+
|
|
564
|
+
The dimensions of a matrix must have an integral type::
|
|
565
|
+
|
|
566
|
+
sage: matrix(RR, 2.0, 2.0)
|
|
567
|
+
Traceback (most recent call last):
|
|
568
|
+
...
|
|
569
|
+
TypeError: too many arguments in matrix constructor
|
|
570
|
+
|
|
571
|
+
More tests::
|
|
572
|
+
|
|
573
|
+
sage: v = vector(ZZ, [1, 10, 100])
|
|
574
|
+
sage: m = matrix(ZZ['x'], v); m; m.parent()
|
|
575
|
+
[ 1 10 100]
|
|
576
|
+
Full MatrixSpace of 1 by 3 dense matrices
|
|
577
|
+
over Univariate Polynomial Ring in x over Integer Ring
|
|
578
|
+
sage: matrix(ZZ, 10, 10, range(100)).parent()
|
|
579
|
+
Full MatrixSpace of 10 by 10 dense matrices over Integer Ring
|
|
580
|
+
sage: m = matrix(GF(7), [[1/3,2/3,1/2], [3/4,4/5,7]]); m; m.parent()
|
|
581
|
+
[5 3 4]
|
|
582
|
+
[6 5 0]
|
|
583
|
+
Full MatrixSpace of 2 by 3 dense matrices over Finite Field of size 7
|
|
584
|
+
sage: m = matrix([[1,2,3], [RDF(2), CDF(1,2), 3]]); m; m.parent()
|
|
585
|
+
[ 1.0 2.0 3.0]
|
|
586
|
+
[ 2.0 1.0 + 2.0*I 3.0]
|
|
587
|
+
Full MatrixSpace of 2 by 3 dense matrices over Complex Double Field
|
|
588
|
+
sage: m = matrix(3, 3, 1/2); m; m.parent()
|
|
589
|
+
[1/2 0 0]
|
|
590
|
+
[ 0 1/2 0]
|
|
591
|
+
[ 0 0 1/2]
|
|
592
|
+
Full MatrixSpace of 3 by 3 dense matrices over Rational Field
|
|
593
|
+
sage: matrix([[1],[2,3]])
|
|
594
|
+
Traceback (most recent call last):
|
|
595
|
+
...
|
|
596
|
+
ValueError: inconsistent number of columns: should be 1 but got 2
|
|
597
|
+
sage: matrix([[1],2])
|
|
598
|
+
Traceback (most recent call last):
|
|
599
|
+
...
|
|
600
|
+
TypeError: 'sage.rings.integer.Integer' object is not iterable
|
|
601
|
+
sage: matrix(vector(RR, [1,2,3])).parent()
|
|
602
|
+
Full MatrixSpace of 1 by 3 dense matrices over Real Field with 53 bits of precision
|
|
603
|
+
|
|
604
|
+
Check :issue:`10158`::
|
|
605
|
+
|
|
606
|
+
sage: matrix(ZZ, [[0] for i in range(10^5)]).is_zero()
|
|
607
|
+
True
|
|
608
|
+
|
|
609
|
+
Check :issue:`24459`::
|
|
610
|
+
|
|
611
|
+
sage: # needs sage.libs.linbox
|
|
612
|
+
sage: Matrix(ZZ, sys.maxsize, sys.maxsize)
|
|
613
|
+
Traceback (most recent call last):
|
|
614
|
+
...
|
|
615
|
+
RuntimeError...
|
|
616
|
+
|
|
617
|
+
Test a simple ``_matrix_`` method. Note that we are ignoring
|
|
618
|
+
``base`` which is inefficient but allowed::
|
|
619
|
+
|
|
620
|
+
sage: class MatrixTest():
|
|
621
|
+
....: def _matrix_(self, base=None):
|
|
622
|
+
....: return matrix(ZZ, 2, 2, [1,2,3,4])
|
|
623
|
+
sage: e = MatrixTest()
|
|
624
|
+
sage: matrix(e)
|
|
625
|
+
[1 2]
|
|
626
|
+
[3 4]
|
|
627
|
+
sage: S = MatrixSpace(ZZ, 2, 2)
|
|
628
|
+
sage: M = S(e); M
|
|
629
|
+
[1 2]
|
|
630
|
+
[3 4]
|
|
631
|
+
sage: parent(M) is S
|
|
632
|
+
True
|
|
633
|
+
sage: matrix(RDF, e)
|
|
634
|
+
[1.0 2.0]
|
|
635
|
+
[3.0 4.0]
|
|
636
|
+
sage: S = MatrixSpace(RDF, 2, 2)
|
|
637
|
+
sage: M = S(e); M
|
|
638
|
+
[1.0 2.0]
|
|
639
|
+
[3.0 4.0]
|
|
640
|
+
sage: parent(M) is S
|
|
641
|
+
True
|
|
642
|
+
|
|
643
|
+
A redundant ``base_ring`` argument::
|
|
644
|
+
|
|
645
|
+
sage: matrix(ZZ, 3, 3, base_ring=ZZ)
|
|
646
|
+
Traceback (most recent call last):
|
|
647
|
+
...
|
|
648
|
+
TypeError: too many arguments in matrix constructor
|
|
649
|
+
|
|
650
|
+
Some calls using an iterator::
|
|
651
|
+
|
|
652
|
+
sage: matrix(QQ, 3, 6, range(18), sparse=true)
|
|
653
|
+
[ 0 1 2 3 4 5]
|
|
654
|
+
[ 6 7 8 9 10 11]
|
|
655
|
+
[12 13 14 15 16 17]
|
|
656
|
+
sage: matrix(4, 4, range(16))
|
|
657
|
+
[ 0 1 2 3]
|
|
658
|
+
[ 4 5 6 7]
|
|
659
|
+
[ 8 9 10 11]
|
|
660
|
+
[12 13 14 15]
|
|
661
|
+
|
|
662
|
+
AUTHORS:
|
|
663
|
+
|
|
664
|
+
- William Stein: Initial implementation
|
|
665
|
+
|
|
666
|
+
- Jason Grout (2008-03): almost a complete rewrite, with bits and
|
|
667
|
+
pieces from the original implementation
|
|
668
|
+
|
|
669
|
+
- Jeroen Demeyer (2016-02-05): major clean up, see :issue:`20015`
|
|
670
|
+
and :issue:`20016`
|
|
671
|
+
|
|
672
|
+
- Jeroen Demeyer (2018-02-20): completely rewritten using
|
|
673
|
+
:class:`MatrixArgs`, see :issue:`24742`
|
|
674
|
+
"""
|
|
675
|
+
immutable = kwds.pop('immutable', False)
|
|
676
|
+
return MatrixArgs(*args, **kwds).element(immutable=immutable)
|
|
677
|
+
|
|
678
|
+
|
|
679
|
+
from sage.matrix.special import *
|
|
680
|
+
|
|
681
|
+
|
|
682
|
+
Matrix = matrix
|
|
683
|
+
|
|
684
|
+
|
|
685
|
+
@matrix_method
|
|
686
|
+
class options(GlobalOptions):
|
|
687
|
+
r"""
|
|
688
|
+
Global options for matrices.
|
|
689
|
+
|
|
690
|
+
@OPTIONS@
|
|
691
|
+
|
|
692
|
+
EXAMPLES::
|
|
693
|
+
|
|
694
|
+
sage: matrix.options.max_cols = 6
|
|
695
|
+
sage: matrix.options.max_rows = 3
|
|
696
|
+
sage: matrix(ZZ, 3, 6)
|
|
697
|
+
[0 0 0 0 0 0]
|
|
698
|
+
[0 0 0 0 0 0]
|
|
699
|
+
[0 0 0 0 0 0]
|
|
700
|
+
sage: matrix(ZZ, 3, 7)
|
|
701
|
+
3 x 7 dense matrix over Integer Ring...
|
|
702
|
+
sage: matrix(ZZ, 4, 6)
|
|
703
|
+
4 x 6 dense matrix over Integer Ring...
|
|
704
|
+
sage: matrix.options._reset()
|
|
705
|
+
|
|
706
|
+
The precision can also be set via the IPython magic::
|
|
707
|
+
|
|
708
|
+
sage: from sage.repl.interpreter import get_test_shell
|
|
709
|
+
sage: shell = get_test_shell()
|
|
710
|
+
sage: shell.run_cell('%precision 5')
|
|
711
|
+
'%.5f'
|
|
712
|
+
sage: matrix.options.precision
|
|
713
|
+
5
|
|
714
|
+
sage: A = matrix(RR, [[200/3]]); A
|
|
715
|
+
[66.667]
|
|
716
|
+
|
|
717
|
+
The number format can be specified as well::
|
|
718
|
+
|
|
719
|
+
sage: matrix.options.format_numeric = '{:.{prec}e}'
|
|
720
|
+
sage: A
|
|
721
|
+
[6.66667e+1]
|
|
722
|
+
sage: matrix.options.format_numeric = '{:.{prec}f}'
|
|
723
|
+
sage: A
|
|
724
|
+
[66.66667]
|
|
725
|
+
sage: matrix.options.format_numeric = '{:+.{prec}g}'
|
|
726
|
+
sage: A
|
|
727
|
+
[+66.667]
|
|
728
|
+
sage: matrix.options._reset()
|
|
729
|
+
"""
|
|
730
|
+
NAME = 'Matrix'
|
|
731
|
+
max_cols = dict(default=49,
|
|
732
|
+
description='maximum number of columns to display',
|
|
733
|
+
checker=lambda val: val >= 0)
|
|
734
|
+
max_rows = dict(default=19,
|
|
735
|
+
description='maximum number of rows to display',
|
|
736
|
+
checker=lambda val: val >= 0)
|
|
737
|
+
precision = \
|
|
738
|
+
dict(default=None,
|
|
739
|
+
description='number of digits to display for floating point '
|
|
740
|
+
'entries; if ``None``, the exact representation is '
|
|
741
|
+
'used instead. This option is also set by the '
|
|
742
|
+
'`IPython magic <https://ipython.readthedocs.io/en/stable/interactive/magics.html#magic-precision>`_ '
|
|
743
|
+
'``%precision``.',
|
|
744
|
+
checker=lambda val: val is None or val >= 0)
|
|
745
|
+
format_numeric = \
|
|
746
|
+
dict(default='{:.{prec}}',
|
|
747
|
+
description='string used for formatting floating point numbers of'
|
|
748
|
+
' an (optional) precision ``prec``; only supported '
|
|
749
|
+
'for entry types implementing ``__format__``',
|
|
750
|
+
checker=lambda val: isinstance(val.format(3.1415, prec=3), str))
|