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,843 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-modules
|
|
2
|
+
"""
|
|
3
|
+
Unpickling methods
|
|
4
|
+
|
|
5
|
+
Python saves objects by providing a pair ``(f, data)`` such that ``f(data)``
|
|
6
|
+
reconstructs the object. This module collects the loading (_unpickling_ in
|
|
7
|
+
Python terminology) functions for Sage's matroids.
|
|
8
|
+
|
|
9
|
+
.. NOTE::
|
|
10
|
+
|
|
11
|
+
The reason this code was separated out from the classes was to make it
|
|
12
|
+
play nice with lazy importing of the ``Matroid()`` and ``matroids``
|
|
13
|
+
keywords.
|
|
14
|
+
|
|
15
|
+
AUTHORS:
|
|
16
|
+
|
|
17
|
+
- Rudi Pendavingh, Stefan van Zwam (2013-07-01): initial version
|
|
18
|
+
- Giorgos Mousa (2024-01-01): add CircuitsMatroid and FlatsMatroid
|
|
19
|
+
"""
|
|
20
|
+
# ****************************************************************************
|
|
21
|
+
# Copyright (C) 2013 Rudi Pendavingh <rudi.pendavingh@gmail.com>
|
|
22
|
+
# Copyright (C) 2013 Stefan van Zwam <stefanvanzwam@gmail.com>
|
|
23
|
+
#
|
|
24
|
+
# Distributed under the terms of the GNU General Public License (GPL)
|
|
25
|
+
# as published by the Free Software Foundation; either version 2 of
|
|
26
|
+
# the License, or (at your option) any later version.
|
|
27
|
+
# https://www.gnu.org/licenses/
|
|
28
|
+
# ****************************************************************************
|
|
29
|
+
|
|
30
|
+
from sage.data_structures.bitset_base cimport *
|
|
31
|
+
from sage.libs.gmp.mpq cimport mpq_set
|
|
32
|
+
from sage.rings.rational cimport Rational
|
|
33
|
+
|
|
34
|
+
from sage.matroids.basis_matroid cimport BasisMatroid
|
|
35
|
+
from sage.matroids.circuits_matroid cimport CircuitsMatroid
|
|
36
|
+
from sage.matroids.circuit_closures_matroid cimport CircuitClosuresMatroid
|
|
37
|
+
from sage.matroids.dual_matroid import DualMatroid
|
|
38
|
+
from sage.matroids.lean_matrix cimport GenericMatrix, BinaryMatrix, TernaryMatrix, QuaternaryMatrix, PlusMinusOneMatrix, RationalMatrix
|
|
39
|
+
from sage.matroids.linear_matroid cimport LinearMatroid, RegularMatroid, BinaryMatroid, TernaryMatroid, QuaternaryMatroid
|
|
40
|
+
from sage.matroids.minor_matroid import MinorMatroid
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
# ------------
|
|
44
|
+
# BasisMatroid
|
|
45
|
+
# ------------
|
|
46
|
+
|
|
47
|
+
def unpickle_basis_matroid(version, data):
|
|
48
|
+
"""
|
|
49
|
+
Unpickle a BasisMatroid.
|
|
50
|
+
|
|
51
|
+
*Pickling* is Python's term for the loading and saving of objects.
|
|
52
|
+
Functions like these serve to reconstruct a saved object. This all happens
|
|
53
|
+
transparently through the ``load`` and ``save`` commands, and you should
|
|
54
|
+
never have to call this function directly.
|
|
55
|
+
|
|
56
|
+
INPUT:
|
|
57
|
+
|
|
58
|
+
- ``version`` -- integer; expected to be 0
|
|
59
|
+
- ``data`` -- tuple ``(E, R, name, BB)`` in which ``E`` is the groundset
|
|
60
|
+
of the matroid, ``R`` is the rank, ``name`` is a custom name, and ``BB``
|
|
61
|
+
is the bitpacked list of bases, as pickled by Sage's ``bitset_pickle``.
|
|
62
|
+
|
|
63
|
+
OUTPUT: matroid
|
|
64
|
+
|
|
65
|
+
.. WARNING::
|
|
66
|
+
|
|
67
|
+
Users should never call this function directly.
|
|
68
|
+
|
|
69
|
+
EXAMPLES::
|
|
70
|
+
|
|
71
|
+
sage: from sage.matroids.advanced import *
|
|
72
|
+
sage: M = BasisMatroid(matroids.catalog.Vamos())
|
|
73
|
+
sage: M == loads(dumps(M)) # indirect doctest
|
|
74
|
+
True
|
|
75
|
+
"""
|
|
76
|
+
cdef BasisMatroid M
|
|
77
|
+
if version != 0:
|
|
78
|
+
raise TypeError("object was created with newer version of Sage. Please upgrade.")
|
|
79
|
+
E, R, name, BB = data
|
|
80
|
+
M = BasisMatroid(groundset=E, rank=R)
|
|
81
|
+
bitset_unpickle(M._bb, BB)
|
|
82
|
+
M._reset_invariants()
|
|
83
|
+
M.reset_current_basis()
|
|
84
|
+
if name is not None:
|
|
85
|
+
M.rename(name)
|
|
86
|
+
return M
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
# ---------------
|
|
90
|
+
# CircuitsMatroid
|
|
91
|
+
# ---------------
|
|
92
|
+
|
|
93
|
+
def unpickle_circuits_matroid(version, data):
|
|
94
|
+
"""
|
|
95
|
+
Unpickle a CircuitsMatroid.
|
|
96
|
+
|
|
97
|
+
*Pickling* is Python's term for the loading and saving of objects.
|
|
98
|
+
Functions like these serve to reconstruct a saved object. This all happens
|
|
99
|
+
transparently through the ``load`` and ``save`` commands, and you should
|
|
100
|
+
never have to call this function directly.
|
|
101
|
+
|
|
102
|
+
INPUT:
|
|
103
|
+
|
|
104
|
+
- ``version`` -- integer; expected to be 0
|
|
105
|
+
- ``data`` -- tuple ``(E, C, name)`` in which ``E`` is the groundset
|
|
106
|
+
of the matroid, ``C`` is the list of circuits , and ``name`` is a custom
|
|
107
|
+
name.
|
|
108
|
+
|
|
109
|
+
OUTPUT: matroid
|
|
110
|
+
|
|
111
|
+
.. WARNING::
|
|
112
|
+
|
|
113
|
+
Users should never call this function directly.
|
|
114
|
+
|
|
115
|
+
EXAMPLES::
|
|
116
|
+
|
|
117
|
+
sage: M = matroids.Theta(5)
|
|
118
|
+
sage: M == loads(dumps(M)) # indirect doctest
|
|
119
|
+
True
|
|
120
|
+
"""
|
|
121
|
+
cdef CircuitsMatroid M
|
|
122
|
+
if version != 0:
|
|
123
|
+
raise TypeError("object was created with newer version of Sage. Please upgrade.")
|
|
124
|
+
M = CircuitsMatroid(groundset=data[0], circuits=data[1])
|
|
125
|
+
if data[2] is not None:
|
|
126
|
+
M.rename(data[2])
|
|
127
|
+
return M
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
# ----------------------
|
|
131
|
+
# CircuitClosuresMatroid
|
|
132
|
+
# ----------------------
|
|
133
|
+
|
|
134
|
+
def unpickle_circuit_closures_matroid(version, data):
|
|
135
|
+
"""
|
|
136
|
+
Unpickle a CircuitClosuresMatroid.
|
|
137
|
+
|
|
138
|
+
*Pickling* is Python's term for the loading and saving of objects.
|
|
139
|
+
Functions like these serve to reconstruct a saved object. This all happens
|
|
140
|
+
transparently through the ``load`` and ``save`` commands, and you should
|
|
141
|
+
never have to call this function directly.
|
|
142
|
+
|
|
143
|
+
INPUT:
|
|
144
|
+
|
|
145
|
+
- ``version`` -- integer; expected to be 0
|
|
146
|
+
- ``data`` -- tuple ``(E, CC, name)`` in which ``E`` is the groundset
|
|
147
|
+
of the matroid, ``CC`` is the dictionary of circuit closures, and
|
|
148
|
+
``name`` is a custom name.
|
|
149
|
+
|
|
150
|
+
OUTPUT: matroid
|
|
151
|
+
|
|
152
|
+
.. WARNING::
|
|
153
|
+
|
|
154
|
+
Users should never call this function directly.
|
|
155
|
+
|
|
156
|
+
EXAMPLES::
|
|
157
|
+
|
|
158
|
+
sage: M = matroids.catalog.Vamos()
|
|
159
|
+
sage: M == loads(dumps(M)) # indirect doctest
|
|
160
|
+
True
|
|
161
|
+
"""
|
|
162
|
+
cdef CircuitClosuresMatroid M
|
|
163
|
+
if version != 0:
|
|
164
|
+
raise TypeError("object was created with newer version of Sage. Please upgrade.")
|
|
165
|
+
M = CircuitClosuresMatroid(groundset=data[0], circuit_closures=data[1])
|
|
166
|
+
if data[2] is not None:
|
|
167
|
+
M.rename(data[2])
|
|
168
|
+
return M
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
# ------------
|
|
172
|
+
# FlatsMatroid
|
|
173
|
+
# ------------
|
|
174
|
+
|
|
175
|
+
def unpickle_flats_matroid(version, data):
|
|
176
|
+
"""
|
|
177
|
+
Unpickle a :class:`FlatsMatroid`.
|
|
178
|
+
|
|
179
|
+
*Pickling* is Python's term for the loading and saving of objects.
|
|
180
|
+
Functions like these serve to reconstruct a saved object. This all happens
|
|
181
|
+
transparently through the ``load`` and ``save`` commands, and you should
|
|
182
|
+
never have to call this function directly.
|
|
183
|
+
|
|
184
|
+
INPUT:
|
|
185
|
+
|
|
186
|
+
- ``version`` -- integer; expected to be 0
|
|
187
|
+
- ``data`` -- tuple ``(E, F, name)`` in which ``E`` is the groundset of
|
|
188
|
+
the matroid, ``F`` is the dictionary of flats, and ``name`` is a custom
|
|
189
|
+
name.
|
|
190
|
+
|
|
191
|
+
OUTPUT: matroid
|
|
192
|
+
|
|
193
|
+
.. WARNING::
|
|
194
|
+
|
|
195
|
+
Users should never call this function directly.
|
|
196
|
+
|
|
197
|
+
EXAMPLES::
|
|
198
|
+
|
|
199
|
+
sage: # needs sage.graphs
|
|
200
|
+
sage: from sage.matroids.flats_matroid import FlatsMatroid
|
|
201
|
+
sage: M = FlatsMatroid(matroids.catalog.Vamos())
|
|
202
|
+
sage: M == loads(dumps(M)) # indirect doctest
|
|
203
|
+
True
|
|
204
|
+
"""
|
|
205
|
+
from sage.matroids.flats_matroid import FlatsMatroid
|
|
206
|
+
if version != 0:
|
|
207
|
+
raise TypeError("object was created with newer version of Sage. Please upgrade.")
|
|
208
|
+
M = FlatsMatroid(groundset=data[0], flats=data[1])
|
|
209
|
+
if data[2] is not None:
|
|
210
|
+
M.rename(data[2])
|
|
211
|
+
return M
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
# -----------
|
|
215
|
+
# DualMatroid
|
|
216
|
+
# -----------
|
|
217
|
+
|
|
218
|
+
def unpickle_dual_matroid(version, data):
|
|
219
|
+
"""
|
|
220
|
+
Unpickle a DualMatroid.
|
|
221
|
+
|
|
222
|
+
*Pickling* is Python's term for the loading and saving of objects.
|
|
223
|
+
Functions like these serve to reconstruct a saved object. This all happens
|
|
224
|
+
transparently through the ``load`` and ``save`` commands, and you should
|
|
225
|
+
never have to call this function directly.
|
|
226
|
+
|
|
227
|
+
INPUT:
|
|
228
|
+
|
|
229
|
+
- ``version`` -- integer; expected to be 0
|
|
230
|
+
- ``data`` -- tuple ``(M, name)`` in which ``M`` is
|
|
231
|
+
the internal matroid, and ``name`` is a custom name
|
|
232
|
+
|
|
233
|
+
OUTPUT: matroid
|
|
234
|
+
|
|
235
|
+
.. WARNING::
|
|
236
|
+
|
|
237
|
+
Users should not call this function directly. Instead, use load/save.
|
|
238
|
+
|
|
239
|
+
EXAMPLES::
|
|
240
|
+
|
|
241
|
+
sage: M = matroids.catalog.Vamos().dual()
|
|
242
|
+
sage: M == loads(dumps(M)) # indirect doctest
|
|
243
|
+
True
|
|
244
|
+
"""
|
|
245
|
+
if version != 0:
|
|
246
|
+
raise TypeError("object was created with newer version of Sage. Please upgrade.")
|
|
247
|
+
M = DualMatroid(data[0])
|
|
248
|
+
if data[1] is not None:
|
|
249
|
+
M.rename(data[1])
|
|
250
|
+
return M
|
|
251
|
+
|
|
252
|
+
|
|
253
|
+
# -------
|
|
254
|
+
# Gammoid
|
|
255
|
+
# -------
|
|
256
|
+
|
|
257
|
+
def unpickle_gammoid(version, data):
|
|
258
|
+
"""
|
|
259
|
+
Unpickle a :class:`Gammoid`.
|
|
260
|
+
|
|
261
|
+
*Pickling* is Python's term for the loading and saving of objects.
|
|
262
|
+
Functions like these serve to reconstruct a saved object. This all happens
|
|
263
|
+
transparently through the ``load`` and ``save`` commands, and you should
|
|
264
|
+
never have to call this function directly.
|
|
265
|
+
|
|
266
|
+
INPUT:
|
|
267
|
+
|
|
268
|
+
- ``version`` -- integer; expected to be 0
|
|
269
|
+
- ``data`` -- tuple ``(D, roots, E, name)`` in which ``D`` is a loopless
|
|
270
|
+
DiGraph representing the gammoid, ``roots`` is a subset of the vertices,
|
|
271
|
+
``E`` is the groundset of the matroid, and ``name`` is a custom name.
|
|
272
|
+
|
|
273
|
+
OUTPUT: matroid
|
|
274
|
+
|
|
275
|
+
.. WARNING::
|
|
276
|
+
|
|
277
|
+
Users should never call this function directly.
|
|
278
|
+
|
|
279
|
+
EXAMPLES::
|
|
280
|
+
|
|
281
|
+
sage: # needs sage.graphs
|
|
282
|
+
sage: from sage.matroids.gammoid import Gammoid
|
|
283
|
+
sage: M = Gammoid(digraphs.TransitiveTournament(5), roots=[3, 4])
|
|
284
|
+
sage: M == loads(dumps(M)) # indirect doctest
|
|
285
|
+
True
|
|
286
|
+
"""
|
|
287
|
+
from sage.matroids.gammoid import Gammoid
|
|
288
|
+
|
|
289
|
+
if version != 0:
|
|
290
|
+
raise TypeError("object was created with newer version of Sage. Please upgrade.")
|
|
291
|
+
M = Gammoid(D=data[0], roots=data[1], groundset=data[2])
|
|
292
|
+
if data[3] is not None:
|
|
293
|
+
M.rename(data[3])
|
|
294
|
+
return M
|
|
295
|
+
|
|
296
|
+
|
|
297
|
+
# ---------------------
|
|
298
|
+
# LeanMatrix subclasses
|
|
299
|
+
# ---------------------
|
|
300
|
+
|
|
301
|
+
def unpickle_generic_matrix(version, data):
|
|
302
|
+
"""
|
|
303
|
+
Reconstruct a ``GenericMatrix`` object (internal Sage data structure).
|
|
304
|
+
|
|
305
|
+
.. WARNING::
|
|
306
|
+
|
|
307
|
+
Users should not call this method directly.
|
|
308
|
+
|
|
309
|
+
EXAMPLES::
|
|
310
|
+
|
|
311
|
+
sage: from sage.matroids.lean_matrix import *
|
|
312
|
+
sage: A = GenericMatrix(2, 5, ring=QQ)
|
|
313
|
+
sage: A == loads(dumps(A)) # indirect doctest
|
|
314
|
+
True
|
|
315
|
+
"""
|
|
316
|
+
if version != 0:
|
|
317
|
+
raise TypeError("object was created with newer version of Sage. Please upgrade.")
|
|
318
|
+
cdef GenericMatrix A = GenericMatrix(0, 0, ring=data[2])
|
|
319
|
+
A._entries = data[3][:]
|
|
320
|
+
A._nrows = data[0]
|
|
321
|
+
A._ncols = data[1]
|
|
322
|
+
return A
|
|
323
|
+
|
|
324
|
+
|
|
325
|
+
def unpickle_binary_matrix(version, data):
|
|
326
|
+
"""
|
|
327
|
+
Reconstruct a ``BinaryMatrix`` object (internal Sage data structure).
|
|
328
|
+
|
|
329
|
+
.. WARNING::
|
|
330
|
+
|
|
331
|
+
Users should not call this method directly.
|
|
332
|
+
|
|
333
|
+
EXAMPLES::
|
|
334
|
+
|
|
335
|
+
sage: from sage.matroids.lean_matrix import *
|
|
336
|
+
sage: A = BinaryMatrix(2, 5)
|
|
337
|
+
sage: A == loads(dumps(A)) # indirect doctest
|
|
338
|
+
True
|
|
339
|
+
sage: C = BinaryMatrix(2, 2, Matrix(GF(2), [[1, 1], [0, 1]]))
|
|
340
|
+
sage: C == loads(dumps(C))
|
|
341
|
+
True
|
|
342
|
+
"""
|
|
343
|
+
cdef BinaryMatrix A
|
|
344
|
+
cdef long i
|
|
345
|
+
if version != 0:
|
|
346
|
+
raise TypeError("object was created with newer version of Sage. Please upgrade.")
|
|
347
|
+
nrows, ncols, versionB, size, limbs, longsize, M = data
|
|
348
|
+
A = BinaryMatrix(nrows, ncols)
|
|
349
|
+
for i in range(nrows):
|
|
350
|
+
bitset_unpickle(A._M[i], (versionB, size, limbs, longsize, M[i]))
|
|
351
|
+
return A
|
|
352
|
+
|
|
353
|
+
|
|
354
|
+
def unpickle_ternary_matrix(version, data):
|
|
355
|
+
"""
|
|
356
|
+
Reconstruct a ``TernaryMatrix`` object (internal Sage data structure).
|
|
357
|
+
|
|
358
|
+
.. WARNING::
|
|
359
|
+
|
|
360
|
+
Users should not call this method directly.
|
|
361
|
+
|
|
362
|
+
EXAMPLES::
|
|
363
|
+
|
|
364
|
+
sage: from sage.matroids.lean_matrix import *
|
|
365
|
+
sage: A = TernaryMatrix(2, 5)
|
|
366
|
+
sage: A == loads(dumps(A)) # indirect doctest
|
|
367
|
+
True
|
|
368
|
+
sage: C = TernaryMatrix(2, 2, Matrix(GF(3), [[1, 1], [0, 1]]))
|
|
369
|
+
sage: C == loads(dumps(C))
|
|
370
|
+
True
|
|
371
|
+
"""
|
|
372
|
+
cdef TernaryMatrix A
|
|
373
|
+
cdef long i
|
|
374
|
+
if version != 0:
|
|
375
|
+
raise TypeError("object was created with newer version of Sage. Please upgrade.")
|
|
376
|
+
nrows, ncols, versionB, size, limbs, longsize, M0, M1 = data
|
|
377
|
+
A = TernaryMatrix(nrows, ncols)
|
|
378
|
+
for i in range(nrows):
|
|
379
|
+
bitset_unpickle(A._M0[i], (versionB, size, limbs, longsize, M0[i]))
|
|
380
|
+
bitset_unpickle(A._M1[i], (versionB, size, limbs, longsize, M1[i]))
|
|
381
|
+
return A
|
|
382
|
+
|
|
383
|
+
|
|
384
|
+
def unpickle_quaternary_matrix(version, data):
|
|
385
|
+
"""
|
|
386
|
+
Reconstruct a ``QuaternaryMatrix`` object (internal Sage data structure).
|
|
387
|
+
|
|
388
|
+
.. WARNING::
|
|
389
|
+
|
|
390
|
+
Users should not call this method directly.
|
|
391
|
+
|
|
392
|
+
EXAMPLES::
|
|
393
|
+
|
|
394
|
+
sage: # needs sage.rings.finite_rings
|
|
395
|
+
sage: from sage.matroids.lean_matrix import *
|
|
396
|
+
sage: A = QuaternaryMatrix(2, 5, ring=GF(4, 'x'))
|
|
397
|
+
sage: A == loads(dumps(A)) # indirect doctest
|
|
398
|
+
True
|
|
399
|
+
sage: C = QuaternaryMatrix(2, 2, Matrix(GF(4, 'x'), [[1, 1], [0, 1]]))
|
|
400
|
+
sage: C == loads(dumps(C))
|
|
401
|
+
True
|
|
402
|
+
"""
|
|
403
|
+
cdef QuaternaryMatrix A
|
|
404
|
+
cdef long i
|
|
405
|
+
if version != 0:
|
|
406
|
+
raise TypeError("object was created with newer version of Sage. Please upgrade.")
|
|
407
|
+
nrows, ncols, ring, versionB, size, limbs, longsize, M0, M1 = data
|
|
408
|
+
A = QuaternaryMatrix(nrows, ncols, ring=ring)
|
|
409
|
+
for i in range(nrows):
|
|
410
|
+
bitset_unpickle(A._M0[i], (versionB, size, limbs, longsize, M0[i]))
|
|
411
|
+
bitset_unpickle(A._M1[i], (versionB, size, limbs, longsize, M1[i]))
|
|
412
|
+
return A
|
|
413
|
+
|
|
414
|
+
|
|
415
|
+
def unpickle_plus_minus_one_matrix(version, data):
|
|
416
|
+
r"""
|
|
417
|
+
Reconstruct an ``PlusMinusOneMatrix`` object (internal Sage data structure).
|
|
418
|
+
|
|
419
|
+
.. WARNING::
|
|
420
|
+
|
|
421
|
+
Users should not call this method directly.
|
|
422
|
+
|
|
423
|
+
EXAMPLES::
|
|
424
|
+
|
|
425
|
+
sage: from sage.matroids.lean_matrix import *
|
|
426
|
+
sage: A = PlusMinusOneMatrix(2, 5)
|
|
427
|
+
sage: A == loads(dumps(A)) # indirect doctest
|
|
428
|
+
True
|
|
429
|
+
|
|
430
|
+
TESTS:
|
|
431
|
+
|
|
432
|
+
Check that we can unpickle old ``IntegerMatrix`` pickles::
|
|
433
|
+
|
|
434
|
+
sage: p = (b"x\x9ck`J.NLO\xd5\xcbM,)\xca\xcfL)\xd6+\xcd+\xc8L\xce\xce"
|
|
435
|
+
....: b"\xc9\xccK\xe7\x822S\xe33\xf3JR\xd3S\x8b\xe2A\x8a2+\xb8\n"
|
|
436
|
+
....: b"\x19\xbd\x19\xbc\x99\xbc\x99b\x0b\x994\xbc\x81l\xaf\xff@"
|
|
437
|
+
....: b"\xe0\xcd\x98\xda\xde\x16T\xc8\xac\x07\x00\xf0\xe6\x1e\x07")
|
|
438
|
+
sage: M = loads(p)
|
|
439
|
+
sage: M
|
|
440
|
+
PlusMinusOneMatrix instance with 2 rows and 2 columns
|
|
441
|
+
sage: type(M)
|
|
442
|
+
<class 'sage.matroids.lean_matrix.PlusMinusOneMatrix'>
|
|
443
|
+
sage: M.__reduce__()[1][1]
|
|
444
|
+
(2, 2, [1, 0, -1, 1])
|
|
445
|
+
"""
|
|
446
|
+
if version != 0:
|
|
447
|
+
raise TypeError("object was created with newer version of Sage. Please upgrade.")
|
|
448
|
+
cdef PlusMinusOneMatrix A = PlusMinusOneMatrix(data[0], data[1])
|
|
449
|
+
cdef long i
|
|
450
|
+
for i in range(A._nrows * A._ncols):
|
|
451
|
+
A._entries[i] = data[2][i]
|
|
452
|
+
return A
|
|
453
|
+
|
|
454
|
+
|
|
455
|
+
from sage.misc.persist import register_unpickle_override
|
|
456
|
+
register_unpickle_override("sage.matroids.unpickling", "unpickle_integer_matrix", unpickle_plus_minus_one_matrix)
|
|
457
|
+
|
|
458
|
+
|
|
459
|
+
def unpickle_rational_matrix(version, data):
|
|
460
|
+
"""
|
|
461
|
+
Reconstruct a :class:`sage.matroids.lean_matrix.RationalMatrix` object
|
|
462
|
+
(internal Sage data structure).
|
|
463
|
+
|
|
464
|
+
.. WARNING::
|
|
465
|
+
|
|
466
|
+
Users should not call this method directly.
|
|
467
|
+
|
|
468
|
+
EXAMPLES::
|
|
469
|
+
|
|
470
|
+
sage: from sage.matroids.lean_matrix import RationalMatrix
|
|
471
|
+
sage: A = RationalMatrix(2, 5)
|
|
472
|
+
sage: A == loads(dumps(A)) # indirect doctest
|
|
473
|
+
True
|
|
474
|
+
"""
|
|
475
|
+
if version != 0:
|
|
476
|
+
raise TypeError("object was created with newer version of Sage; please upgrade")
|
|
477
|
+
cdef RationalMatrix A = RationalMatrix(data[0], data[1])
|
|
478
|
+
cdef long i
|
|
479
|
+
for i in range(A._nrows * A._ncols):
|
|
480
|
+
mpq_set(A._entries[i], (<Rational?> data[2][i]).value)
|
|
481
|
+
return A
|
|
482
|
+
|
|
483
|
+
|
|
484
|
+
# ----------------------------
|
|
485
|
+
# LinearMatroid and subclasses
|
|
486
|
+
# ----------------------------
|
|
487
|
+
|
|
488
|
+
def unpickle_linear_matroid(version, data):
|
|
489
|
+
"""
|
|
490
|
+
Unpickle a LinearMatroid.
|
|
491
|
+
|
|
492
|
+
*Pickling* is Python's term for the loading and saving of objects.
|
|
493
|
+
Functions like these serve to reconstruct a saved object. This all happens
|
|
494
|
+
transparently through the ``load`` and ``save`` commands, and you should
|
|
495
|
+
never have to call this function directly.
|
|
496
|
+
|
|
497
|
+
INPUT:
|
|
498
|
+
|
|
499
|
+
- ``version`` -- integer (currently 0)
|
|
500
|
+
- ``data`` -- tuple ``(A, E, reduced, name)`` where ``A`` is the
|
|
501
|
+
representation matrix, ``E`` is the groundset of the matroid,
|
|
502
|
+
``reduced`` is a boolean indicating whether ``A`` is a reduced matrix,
|
|
503
|
+
and ``name`` is a custom name.
|
|
504
|
+
|
|
505
|
+
OUTPUT: :class:`LinearMatroid`
|
|
506
|
+
|
|
507
|
+
.. WARNING::
|
|
508
|
+
|
|
509
|
+
Users should never call this function directly.
|
|
510
|
+
|
|
511
|
+
EXAMPLES::
|
|
512
|
+
|
|
513
|
+
sage: M = Matroid(Matrix(GF(7), [[1, 0, 0, 1, 1], [0, 1, 0, 1, 2],
|
|
514
|
+
....: [0, 1, 1, 1, 3]]))
|
|
515
|
+
sage: M == loads(dumps(M)) # indirect doctest
|
|
516
|
+
True
|
|
517
|
+
sage: M.rename('U35')
|
|
518
|
+
sage: loads(dumps(M))
|
|
519
|
+
U35
|
|
520
|
+
"""
|
|
521
|
+
if version != 0:
|
|
522
|
+
raise TypeError("object was created with newer version of Sage. Please upgrade.")
|
|
523
|
+
A, gs, reduced, name = data
|
|
524
|
+
if not reduced:
|
|
525
|
+
M = LinearMatroid(groundset=gs, matrix=A, keep_initial_representation=True)
|
|
526
|
+
else:
|
|
527
|
+
M = LinearMatroid(groundset=gs, reduced_matrix=A)
|
|
528
|
+
if name is not None:
|
|
529
|
+
M.rename(name)
|
|
530
|
+
return M
|
|
531
|
+
|
|
532
|
+
|
|
533
|
+
def unpickle_binary_matroid(version, data):
|
|
534
|
+
"""
|
|
535
|
+
Unpickle a BinaryMatroid.
|
|
536
|
+
|
|
537
|
+
*Pickling* is Python's term for the loading and saving of objects.
|
|
538
|
+
Functions like these serve to reconstruct a saved object. This all happens
|
|
539
|
+
transparently through the ``load`` and ``save`` commands, and you should
|
|
540
|
+
never have to call this function directly.
|
|
541
|
+
|
|
542
|
+
INPUT:
|
|
543
|
+
|
|
544
|
+
- ``version`` -- integer (currently 0)
|
|
545
|
+
- ``data`` -- tuple ``(A, E, B, name)`` where ``A`` is the
|
|
546
|
+
representation matrix, ``E`` is the groundset of the matroid, ``B`` is
|
|
547
|
+
the currently displayed basis, and ``name`` is a custom name.
|
|
548
|
+
|
|
549
|
+
OUTPUT: :class:`BinaryMatroid`
|
|
550
|
+
|
|
551
|
+
.. WARNING::
|
|
552
|
+
|
|
553
|
+
Users should never call this function directly.
|
|
554
|
+
|
|
555
|
+
EXAMPLES::
|
|
556
|
+
|
|
557
|
+
sage: M = Matroid(Matrix(GF(2), [[1, 0, 0, 1], [0, 1, 0, 1],
|
|
558
|
+
....: [0, 0, 1, 1]]))
|
|
559
|
+
sage: M == loads(dumps(M)) # indirect doctest
|
|
560
|
+
True
|
|
561
|
+
sage: M.rename('U34')
|
|
562
|
+
sage: loads(dumps(M))
|
|
563
|
+
U34
|
|
564
|
+
"""
|
|
565
|
+
if version != 0:
|
|
566
|
+
raise TypeError("object was created with newer version of Sage. Please upgrade.")
|
|
567
|
+
A, gs, basis, name = data
|
|
568
|
+
if basis is None:
|
|
569
|
+
M = BinaryMatroid(groundset=gs, matrix=A, keep_initial_representation=True)
|
|
570
|
+
else:
|
|
571
|
+
M = BinaryMatroid(groundset=gs, matrix=A, basis=basis)
|
|
572
|
+
if name is not None:
|
|
573
|
+
M.rename(name)
|
|
574
|
+
return M
|
|
575
|
+
|
|
576
|
+
|
|
577
|
+
def unpickle_ternary_matroid(version, data):
|
|
578
|
+
"""
|
|
579
|
+
Unpickle a TernaryMatroid.
|
|
580
|
+
|
|
581
|
+
*Pickling* is Python's term for the loading and saving of objects.
|
|
582
|
+
Functions like these serve to reconstruct a saved object. This all happens
|
|
583
|
+
transparently through the ``load`` and ``save`` commands, and you should
|
|
584
|
+
never have to call this function directly.
|
|
585
|
+
|
|
586
|
+
INPUT:
|
|
587
|
+
|
|
588
|
+
- ``version`` -- integer (currently 0)
|
|
589
|
+
- ``data`` -- tuple ``(A, E, B, name)`` where ``A`` is the
|
|
590
|
+
representation matrix, ``E`` is the groundset of the matroid, ``B`` is
|
|
591
|
+
the currently displayed basis, and ``name`` is a custom name.
|
|
592
|
+
|
|
593
|
+
OUTPUT: :class:`TernaryMatroid`
|
|
594
|
+
|
|
595
|
+
.. WARNING::
|
|
596
|
+
|
|
597
|
+
Users should never call this function directly.
|
|
598
|
+
|
|
599
|
+
EXAMPLES::
|
|
600
|
+
|
|
601
|
+
sage: from sage.matroids.advanced import *
|
|
602
|
+
sage: M = TernaryMatroid(Matrix(GF(3), [[1, 0, 0, 1], [0, 1, 0, 1],
|
|
603
|
+
....: [0, 0, 1, 1]]))
|
|
604
|
+
sage: M == loads(dumps(M)) # indirect doctest
|
|
605
|
+
True
|
|
606
|
+
sage: M.rename('U34')
|
|
607
|
+
sage: loads(dumps(M))
|
|
608
|
+
U34
|
|
609
|
+
"""
|
|
610
|
+
if version != 0:
|
|
611
|
+
raise TypeError("object was created with newer version of Sage. Please upgrade.")
|
|
612
|
+
A, gs, basis, name = data
|
|
613
|
+
if basis is None:
|
|
614
|
+
M = TernaryMatroid(groundset=gs, matrix=A, keep_initial_representation=True)
|
|
615
|
+
else:
|
|
616
|
+
M = TernaryMatroid(groundset=gs, matrix=A, basis=basis)
|
|
617
|
+
if name is not None:
|
|
618
|
+
M.rename(name)
|
|
619
|
+
return M
|
|
620
|
+
|
|
621
|
+
|
|
622
|
+
def unpickle_quaternary_matroid(version, data):
|
|
623
|
+
"""
|
|
624
|
+
Unpickle a QuaternaryMatroid.
|
|
625
|
+
|
|
626
|
+
*Pickling* is Python's term for the loading and saving of objects.
|
|
627
|
+
Functions like these serve to reconstruct a saved object. This all happens
|
|
628
|
+
transparently through the ``load`` and ``save`` commands, and you should
|
|
629
|
+
never have to call this function directly.
|
|
630
|
+
|
|
631
|
+
INPUT:
|
|
632
|
+
|
|
633
|
+
- ``version`` -- integer (currently 0)
|
|
634
|
+
- ``data`` -- tuple ``(A, E, B, name)`` where ``A`` is the
|
|
635
|
+
representation matrix, ``E`` is the groundset of the matroid, ``B`` is
|
|
636
|
+
the currently displayed basis, and ``name`` is a custom name.
|
|
637
|
+
|
|
638
|
+
OUTPUT: :class:`TernaryMatroid`
|
|
639
|
+
|
|
640
|
+
.. WARNING::
|
|
641
|
+
|
|
642
|
+
Users should never call this function directly.
|
|
643
|
+
|
|
644
|
+
EXAMPLES::
|
|
645
|
+
|
|
646
|
+
sage: from sage.matroids.advanced import *
|
|
647
|
+
sage: M = QuaternaryMatroid(Matrix(GF(3), [[1, 0, 0, 1], [0, 1, 0, 1],
|
|
648
|
+
....: [0, 0, 1, 1]]))
|
|
649
|
+
sage: M == loads(dumps(M)) # indirect doctest
|
|
650
|
+
True
|
|
651
|
+
sage: M.rename('U34')
|
|
652
|
+
sage: loads(dumps(M))
|
|
653
|
+
U34
|
|
654
|
+
sage: M = QuaternaryMatroid(Matrix(GF(4, 'x'), [[1, 0, 1], # needs sage.rings.finite_rings
|
|
655
|
+
....: [1, 0, 1]]))
|
|
656
|
+
sage: loads(dumps(M)).representation() # needs sage.rings.finite_rings
|
|
657
|
+
[1 0 1]
|
|
658
|
+
[1 0 1]
|
|
659
|
+
"""
|
|
660
|
+
if version != 0:
|
|
661
|
+
raise TypeError("object was created with newer version of Sage. Please upgrade.")
|
|
662
|
+
A, gs, basis, name = data
|
|
663
|
+
if basis is None:
|
|
664
|
+
M = QuaternaryMatroid(groundset=gs, matrix=A, keep_initial_representation=True)
|
|
665
|
+
else:
|
|
666
|
+
M = QuaternaryMatroid(groundset=gs, matrix=A, basis=basis)
|
|
667
|
+
if name is not None:
|
|
668
|
+
M.rename(name)
|
|
669
|
+
return M
|
|
670
|
+
|
|
671
|
+
|
|
672
|
+
def unpickle_regular_matroid(version, data):
|
|
673
|
+
"""
|
|
674
|
+
Unpickle a RegularMatroid.
|
|
675
|
+
|
|
676
|
+
*Pickling* is Python's term for the loading and saving of objects.
|
|
677
|
+
Functions like these serve to reconstruct a saved object. This all happens
|
|
678
|
+
transparently through the ``load`` and ``save`` commands, and you should
|
|
679
|
+
never have to call this function directly.
|
|
680
|
+
|
|
681
|
+
INPUT:
|
|
682
|
+
|
|
683
|
+
- ``version`` -- integer (currently 0)
|
|
684
|
+
- ``data`` -- tuple ``(A, E, reduced, name)`` where ``A`` is the
|
|
685
|
+
representation matrix, ``E`` is the groundset of the matroid,
|
|
686
|
+
``reduced`` is a boolean indicating whether ``A`` is a reduced matrix,
|
|
687
|
+
and ``name`` is a custom name.
|
|
688
|
+
|
|
689
|
+
OUTPUT: :class:`RegularMatroid`
|
|
690
|
+
|
|
691
|
+
.. WARNING::
|
|
692
|
+
|
|
693
|
+
Users should never call this function directly.
|
|
694
|
+
|
|
695
|
+
EXAMPLES::
|
|
696
|
+
|
|
697
|
+
sage: M = matroids.catalog.R10()
|
|
698
|
+
sage: M == loads(dumps(M)) # indirect doctest
|
|
699
|
+
True
|
|
700
|
+
sage: M.rename('R_{10}')
|
|
701
|
+
sage: loads(dumps(M))
|
|
702
|
+
R_{10}
|
|
703
|
+
"""
|
|
704
|
+
if version != 0:
|
|
705
|
+
raise TypeError("object was created with newer version of Sage. Please upgrade.")
|
|
706
|
+
A, gs, reduced, name = data
|
|
707
|
+
if not reduced:
|
|
708
|
+
M = RegularMatroid(groundset=gs, matrix=A, keep_initial_representation=True)
|
|
709
|
+
else:
|
|
710
|
+
M = RegularMatroid(groundset=gs, reduced_matrix=A)
|
|
711
|
+
if name is not None:
|
|
712
|
+
M.rename(name)
|
|
713
|
+
return M
|
|
714
|
+
|
|
715
|
+
|
|
716
|
+
# ------------
|
|
717
|
+
# MinorMatroid
|
|
718
|
+
# ------------
|
|
719
|
+
|
|
720
|
+
def unpickle_minor_matroid(version, data):
|
|
721
|
+
"""
|
|
722
|
+
Unpickle a MinorMatroid.
|
|
723
|
+
|
|
724
|
+
*Pickling* is Python's term for the loading and saving of objects.
|
|
725
|
+
Functions like these serve to reconstruct a saved object. This all happens
|
|
726
|
+
transparently through the ``load`` and ``save`` commands, and you should
|
|
727
|
+
never have to call this function directly.
|
|
728
|
+
|
|
729
|
+
INPUT:
|
|
730
|
+
|
|
731
|
+
- ``version`` -- integer; currently `0`
|
|
732
|
+
- ``data`` -- tuple ``(M, C, D, name)``, where ``M`` is the original
|
|
733
|
+
matroid of which the output is a minor, ``C`` is the set of
|
|
734
|
+
contractions, ``D`` is the set of deletions, and ``name`` is a custom
|
|
735
|
+
name.
|
|
736
|
+
|
|
737
|
+
OUTPUT: :class:`MinorMatroid`
|
|
738
|
+
|
|
739
|
+
.. WARNING::
|
|
740
|
+
|
|
741
|
+
Users should never call this function directly.
|
|
742
|
+
|
|
743
|
+
EXAMPLES::
|
|
744
|
+
|
|
745
|
+
sage: M = matroids.catalog.Vamos().minor('abc', 'g')
|
|
746
|
+
sage: M == loads(dumps(M)) # indirect doctest
|
|
747
|
+
True
|
|
748
|
+
"""
|
|
749
|
+
if version != 0:
|
|
750
|
+
raise TypeError("object was created with newer version of Sage. Please upgrade.")
|
|
751
|
+
M = MinorMatroid(matroid=data[0], contractions=data[1], deletions=data[2])
|
|
752
|
+
if data[3] is not None:
|
|
753
|
+
M.rename(data[3])
|
|
754
|
+
return M
|
|
755
|
+
|
|
756
|
+
|
|
757
|
+
# --------------
|
|
758
|
+
# GraphicMatroid
|
|
759
|
+
# --------------
|
|
760
|
+
|
|
761
|
+
def unpickle_graphic_matroid(version, data):
|
|
762
|
+
"""
|
|
763
|
+
Unpickle a GraphicMatroid.
|
|
764
|
+
|
|
765
|
+
*Pickling* is Python's term for the loading and saving of objects.
|
|
766
|
+
Functions like these serve to reconstruct a saved object. This all happens
|
|
767
|
+
transparently through the ``load`` and ``save`` commands, and you should
|
|
768
|
+
never have to call this function directly.
|
|
769
|
+
|
|
770
|
+
INPUT:
|
|
771
|
+
|
|
772
|
+
- ``version`` -- integer (currently 0)
|
|
773
|
+
- ``data`` -- tuple consisting of a SageMath graph and a name
|
|
774
|
+
|
|
775
|
+
OUTPUT: :class:`GraphicMatroid`
|
|
776
|
+
|
|
777
|
+
.. WARNING::
|
|
778
|
+
|
|
779
|
+
Users should never call this function directly.
|
|
780
|
+
|
|
781
|
+
EXAMPLES::
|
|
782
|
+
|
|
783
|
+
sage: M = Matroid(graphs.DiamondGraph()) # needs sage.graphs
|
|
784
|
+
sage: M == loads(dumps(M)) # needs sage.graphs
|
|
785
|
+
True
|
|
786
|
+
"""
|
|
787
|
+
from sage.matroids.graphic_matroid import GraphicMatroid
|
|
788
|
+
if version != 0:
|
|
789
|
+
raise TypeError("object was created with newer version of Sage. Please upgrade.")
|
|
790
|
+
G, name = data
|
|
791
|
+
M = GraphicMatroid(G)
|
|
792
|
+
if name is not None:
|
|
793
|
+
M.rename(name)
|
|
794
|
+
return M
|
|
795
|
+
|
|
796
|
+
|
|
797
|
+
# ------------------
|
|
798
|
+
# TransversalMatroid
|
|
799
|
+
# ------------------
|
|
800
|
+
|
|
801
|
+
def unpickle_transversal_matroid(version, data):
|
|
802
|
+
"""
|
|
803
|
+
Unpickle a TransversalMatroid.
|
|
804
|
+
|
|
805
|
+
*Pickling* is Python's term for the loading and saving of objects.
|
|
806
|
+
Functions like these serve to reconstruct a saved object. This all happens
|
|
807
|
+
transparently through the ``load`` and ``save`` commands, and you should
|
|
808
|
+
never have to call this function directly.
|
|
809
|
+
|
|
810
|
+
INPUT:
|
|
811
|
+
|
|
812
|
+
- ``version`` -- integer (currently `0`)
|
|
813
|
+
- ``data`` -- tuple ``(sets, groundset, name)``, where ``groundset`` is a
|
|
814
|
+
``frozenset`` of elements, and ``sets`` is a ``frozenset`` of tuples
|
|
815
|
+
consisting of a name for the set, and a ``frozenset`` of groundset
|
|
816
|
+
elements it contains.
|
|
817
|
+
|
|
818
|
+
OUTPUT: :class:`TransversalMatroid`
|
|
819
|
+
|
|
820
|
+
.. WARNING::
|
|
821
|
+
|
|
822
|
+
Users should never call this function directly.
|
|
823
|
+
|
|
824
|
+
EXAMPLES::
|
|
825
|
+
|
|
826
|
+
sage: # needs networkx sage.graphs
|
|
827
|
+
sage: from sage.matroids.transversal_matroid import *
|
|
828
|
+
sage: sets = [range(6)] * 3
|
|
829
|
+
sage: M = TransversalMatroid(sets)
|
|
830
|
+
sage: M == loads(dumps(M))
|
|
831
|
+
True
|
|
832
|
+
sage: M.rename('U36')
|
|
833
|
+
sage: loads(dumps(M))
|
|
834
|
+
U36
|
|
835
|
+
"""
|
|
836
|
+
from sage.matroids.transversal_matroid import TransversalMatroid
|
|
837
|
+
if version != 0:
|
|
838
|
+
raise TypeError("object was created with newer version of Sage. Please upgrade.")
|
|
839
|
+
sets, groundset, set_labels, matching, name = data
|
|
840
|
+
M = TransversalMatroid(sets, groundset, set_labels, matching)
|
|
841
|
+
if name is not None:
|
|
842
|
+
M.rename(name)
|
|
843
|
+
return M
|