passagemath-modules 10.6.31rc3__cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of passagemath-modules might be problematic. Click here for more details.
- passagemath_modules-10.6.31rc3.dist-info/METADATA +281 -0
- passagemath_modules-10.6.31rc3.dist-info/RECORD +806 -0
- passagemath_modules-10.6.31rc3.dist-info/WHEEL +6 -0
- passagemath_modules-10.6.31rc3.dist-info/top_level.txt +2 -0
- passagemath_modules.libs/libgfortran-e1b7dfc8.so.5.0.0 +0 -0
- passagemath_modules.libs/libgmp-93ebf16a.so.10.5.0 +0 -0
- passagemath_modules.libs/libgsl-e3525837.so.28.0.0 +0 -0
- passagemath_modules.libs/libmpc-c5c421e1.so.3.3.1 +0 -0
- passagemath_modules.libs/libmpfr-e0f11cf3.so.6.2.1 +0 -0
- passagemath_modules.libs/libopenblasp-r0-4c5b64b1.3.29.so +0 -0
- sage/algebras/all__sagemath_modules.py +20 -0
- sage/algebras/catalog.py +148 -0
- sage/algebras/clifford_algebra.py +3107 -0
- sage/algebras/clifford_algebra_element.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/algebras/clifford_algebra_element.pxd +16 -0
- sage/algebras/clifford_algebra_element.pyx +997 -0
- sage/algebras/commutative_dga.py +4252 -0
- sage/algebras/exterior_algebra_groebner.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/algebras/exterior_algebra_groebner.pxd +55 -0
- sage/algebras/exterior_algebra_groebner.pyx +727 -0
- sage/algebras/finite_dimensional_algebras/all.py +2 -0
- sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra.py +1029 -0
- sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra_element.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra_element.pxd +12 -0
- sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra_element.pyx +706 -0
- sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra_ideal.py +196 -0
- sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra_morphism.py +255 -0
- sage/algebras/finite_gca.py +528 -0
- sage/algebras/group_algebra.py +232 -0
- sage/algebras/lie_algebras/abelian.py +197 -0
- sage/algebras/lie_algebras/affine_lie_algebra.py +1213 -0
- sage/algebras/lie_algebras/all.py +25 -0
- sage/algebras/lie_algebras/all__sagemath_modules.py +1 -0
- sage/algebras/lie_algebras/bch.py +177 -0
- sage/algebras/lie_algebras/bgg_dual_module.py +1184 -0
- sage/algebras/lie_algebras/bgg_resolution.py +232 -0
- sage/algebras/lie_algebras/center_uea.py +767 -0
- sage/algebras/lie_algebras/classical_lie_algebra.py +2516 -0
- sage/algebras/lie_algebras/examples.py +683 -0
- sage/algebras/lie_algebras/free_lie_algebra.py +973 -0
- sage/algebras/lie_algebras/heisenberg.py +820 -0
- sage/algebras/lie_algebras/lie_algebra.py +1562 -0
- sage/algebras/lie_algebras/lie_algebra_element.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/algebras/lie_algebras/lie_algebra_element.pxd +68 -0
- sage/algebras/lie_algebras/lie_algebra_element.pyx +2122 -0
- sage/algebras/lie_algebras/morphism.py +661 -0
- sage/algebras/lie_algebras/nilpotent_lie_algebra.py +457 -0
- sage/algebras/lie_algebras/onsager.py +1324 -0
- sage/algebras/lie_algebras/poincare_birkhoff_witt.py +816 -0
- sage/algebras/lie_algebras/quotient.py +462 -0
- sage/algebras/lie_algebras/rank_two_heisenberg_virasoro.py +355 -0
- sage/algebras/lie_algebras/representation.py +1040 -0
- sage/algebras/lie_algebras/structure_coefficients.py +459 -0
- sage/algebras/lie_algebras/subalgebra.py +967 -0
- sage/algebras/lie_algebras/symplectic_derivation.py +289 -0
- sage/algebras/lie_algebras/verma_module.py +1630 -0
- sage/algebras/lie_algebras/virasoro.py +1186 -0
- sage/algebras/octonion_algebra.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/algebras/octonion_algebra.pxd +20 -0
- sage/algebras/octonion_algebra.pyx +987 -0
- sage/algebras/orlik_solomon.py +907 -0
- sage/algebras/orlik_terao.py +779 -0
- sage/algebras/steenrod/all.py +7 -0
- sage/algebras/steenrod/steenrod_algebra.py +4258 -0
- sage/algebras/steenrod/steenrod_algebra_bases.py +1179 -0
- sage/algebras/steenrod/steenrod_algebra_misc.py +1167 -0
- sage/algebras/steenrod/steenrod_algebra_mult.py +954 -0
- sage/algebras/weyl_algebra.py +1126 -0
- sage/all__sagemath_modules.py +62 -0
- sage/calculus/all__sagemath_modules.py +19 -0
- sage/calculus/expr.py +205 -0
- sage/calculus/integration.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/calculus/integration.pyx +698 -0
- sage/calculus/interpolation.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/calculus/interpolation.pxd +13 -0
- sage/calculus/interpolation.pyx +387 -0
- sage/calculus/interpolators.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/calculus/interpolators.pyx +326 -0
- sage/calculus/ode.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/calculus/ode.pxd +5 -0
- sage/calculus/ode.pyx +610 -0
- sage/calculus/riemann.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/calculus/riemann.pyx +1521 -0
- sage/calculus/test_sympy.py +201 -0
- sage/calculus/transforms/all.py +7 -0
- sage/calculus/transforms/dft.py +844 -0
- sage/calculus/transforms/dwt.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/calculus/transforms/dwt.pxd +7 -0
- sage/calculus/transforms/dwt.pyx +160 -0
- sage/calculus/transforms/fft.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/calculus/transforms/fft.pxd +12 -0
- sage/calculus/transforms/fft.pyx +487 -0
- sage/calculus/wester.py +662 -0
- sage/coding/abstract_code.py +1108 -0
- sage/coding/ag_code.py +868 -0
- sage/coding/ag_code_decoders.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/coding/ag_code_decoders.pyx +2639 -0
- sage/coding/all.py +15 -0
- sage/coding/bch_code.py +494 -0
- sage/coding/binary_code.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/coding/binary_code.pxd +124 -0
- sage/coding/binary_code.pyx +4139 -0
- sage/coding/bounds_catalog.py +43 -0
- sage/coding/channel.py +819 -0
- sage/coding/channels_catalog.py +29 -0
- sage/coding/code_bounds.py +755 -0
- sage/coding/code_constructions.py +804 -0
- sage/coding/codes_catalog.py +111 -0
- sage/coding/cyclic_code.py +1329 -0
- sage/coding/databases.py +316 -0
- sage/coding/decoder.py +373 -0
- sage/coding/decoders_catalog.py +88 -0
- sage/coding/delsarte_bounds.py +709 -0
- sage/coding/encoder.py +390 -0
- sage/coding/encoders_catalog.py +64 -0
- sage/coding/extended_code.py +468 -0
- sage/coding/gabidulin_code.py +1058 -0
- sage/coding/golay_code.py +404 -0
- sage/coding/goppa_code.py +441 -0
- sage/coding/grs_code.py +2371 -0
- sage/coding/guava.py +107 -0
- sage/coding/guruswami_sudan/all.py +1 -0
- sage/coding/guruswami_sudan/gs_decoder.py +897 -0
- sage/coding/guruswami_sudan/interpolation.py +409 -0
- sage/coding/guruswami_sudan/utils.py +176 -0
- sage/coding/hamming_code.py +176 -0
- sage/coding/information_set_decoder.py +1032 -0
- sage/coding/kasami_codes.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/coding/kasami_codes.pyx +351 -0
- sage/coding/linear_code.py +3067 -0
- sage/coding/linear_code_no_metric.py +1354 -0
- sage/coding/linear_rank_metric.py +961 -0
- sage/coding/parity_check_code.py +353 -0
- sage/coding/punctured_code.py +719 -0
- sage/coding/reed_muller_code.py +999 -0
- sage/coding/self_dual_codes.py +942 -0
- sage/coding/source_coding/all.py +2 -0
- sage/coding/source_coding/huffman.py +553 -0
- sage/coding/subfield_subcode.py +423 -0
- sage/coding/two_weight_db.py +399 -0
- sage/combinat/all__sagemath_modules.py +7 -0
- sage/combinat/cartesian_product.py +347 -0
- sage/combinat/family.py +11 -0
- sage/combinat/free_module.py +1977 -0
- sage/combinat/root_system/all.py +147 -0
- sage/combinat/root_system/ambient_space.py +527 -0
- sage/combinat/root_system/associahedron.py +471 -0
- sage/combinat/root_system/braid_move_calculator.py +143 -0
- sage/combinat/root_system/braid_orbit.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/combinat/root_system/braid_orbit.pyx +144 -0
- sage/combinat/root_system/branching_rules.py +2301 -0
- sage/combinat/root_system/cartan_matrix.py +1245 -0
- sage/combinat/root_system/cartan_type.py +3069 -0
- sage/combinat/root_system/coxeter_group.py +162 -0
- sage/combinat/root_system/coxeter_matrix.py +1261 -0
- sage/combinat/root_system/coxeter_type.py +681 -0
- sage/combinat/root_system/dynkin_diagram.py +900 -0
- sage/combinat/root_system/extended_affine_weyl_group.py +2993 -0
- sage/combinat/root_system/fundamental_group.py +795 -0
- sage/combinat/root_system/hecke_algebra_representation.py +1203 -0
- sage/combinat/root_system/integrable_representations.py +1227 -0
- sage/combinat/root_system/non_symmetric_macdonald_polynomials.py +1965 -0
- sage/combinat/root_system/pieri_factors.py +1147 -0
- sage/combinat/root_system/plot.py +1615 -0
- sage/combinat/root_system/root_lattice_realization_algebras.py +1214 -0
- sage/combinat/root_system/root_lattice_realizations.py +4628 -0
- sage/combinat/root_system/root_space.py +487 -0
- sage/combinat/root_system/root_system.py +882 -0
- sage/combinat/root_system/type_A.py +348 -0
- sage/combinat/root_system/type_A_affine.py +227 -0
- sage/combinat/root_system/type_A_infinity.py +241 -0
- sage/combinat/root_system/type_B.py +347 -0
- sage/combinat/root_system/type_BC_affine.py +287 -0
- sage/combinat/root_system/type_B_affine.py +216 -0
- sage/combinat/root_system/type_C.py +317 -0
- sage/combinat/root_system/type_C_affine.py +188 -0
- sage/combinat/root_system/type_D.py +357 -0
- sage/combinat/root_system/type_D_affine.py +208 -0
- sage/combinat/root_system/type_E.py +641 -0
- sage/combinat/root_system/type_E_affine.py +231 -0
- sage/combinat/root_system/type_F.py +387 -0
- sage/combinat/root_system/type_F_affine.py +137 -0
- sage/combinat/root_system/type_G.py +293 -0
- sage/combinat/root_system/type_G_affine.py +132 -0
- sage/combinat/root_system/type_H.py +105 -0
- sage/combinat/root_system/type_I.py +110 -0
- sage/combinat/root_system/type_Q.py +150 -0
- sage/combinat/root_system/type_affine.py +509 -0
- sage/combinat/root_system/type_dual.py +704 -0
- sage/combinat/root_system/type_folded.py +301 -0
- sage/combinat/root_system/type_marked.py +748 -0
- sage/combinat/root_system/type_reducible.py +601 -0
- sage/combinat/root_system/type_relabel.py +730 -0
- sage/combinat/root_system/type_super_A.py +837 -0
- sage/combinat/root_system/weight_lattice_realizations.py +1188 -0
- sage/combinat/root_system/weight_space.py +639 -0
- sage/combinat/root_system/weyl_characters.py +2238 -0
- sage/crypto/__init__.py +4 -0
- sage/crypto/all.py +28 -0
- sage/crypto/block_cipher/all.py +7 -0
- sage/crypto/block_cipher/des.py +1065 -0
- sage/crypto/block_cipher/miniaes.py +2171 -0
- sage/crypto/block_cipher/present.py +909 -0
- sage/crypto/block_cipher/sdes.py +1527 -0
- sage/crypto/boolean_function.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/crypto/boolean_function.pxd +10 -0
- sage/crypto/boolean_function.pyx +1487 -0
- sage/crypto/cipher.py +78 -0
- sage/crypto/classical.py +3668 -0
- sage/crypto/classical_cipher.py +569 -0
- sage/crypto/cryptosystem.py +387 -0
- sage/crypto/key_exchange/all.py +7 -0
- sage/crypto/key_exchange/catalog.py +24 -0
- sage/crypto/key_exchange/diffie_hellman.py +323 -0
- sage/crypto/key_exchange/key_exchange_scheme.py +107 -0
- sage/crypto/lattice.py +312 -0
- sage/crypto/lfsr.py +295 -0
- sage/crypto/lwe.py +840 -0
- sage/crypto/mq/__init__.py +4 -0
- sage/crypto/mq/mpolynomialsystemgenerator.py +204 -0
- sage/crypto/mq/rijndael_gf.py +2345 -0
- sage/crypto/mq/sbox.py +7 -0
- sage/crypto/mq/sr.py +3344 -0
- sage/crypto/public_key/all.py +5 -0
- sage/crypto/public_key/blum_goldwasser.py +776 -0
- sage/crypto/sbox.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/crypto/sbox.pyx +2090 -0
- sage/crypto/sboxes.py +2090 -0
- sage/crypto/stream.py +390 -0
- sage/crypto/stream_cipher.py +297 -0
- sage/crypto/util.py +519 -0
- sage/ext/all__sagemath_modules.py +1 -0
- sage/ext/interpreters/__init__.py +1 -0
- sage/ext/interpreters/all__sagemath_modules.py +2 -0
- sage/ext/interpreters/wrapper_cc.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/ext/interpreters/wrapper_cc.pxd +30 -0
- sage/ext/interpreters/wrapper_cc.pyx +252 -0
- sage/ext/interpreters/wrapper_cdf.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/ext/interpreters/wrapper_cdf.pxd +26 -0
- sage/ext/interpreters/wrapper_cdf.pyx +245 -0
- sage/ext/interpreters/wrapper_rdf.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/ext/interpreters/wrapper_rdf.pxd +23 -0
- sage/ext/interpreters/wrapper_rdf.pyx +221 -0
- sage/ext/interpreters/wrapper_rr.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/ext/interpreters/wrapper_rr.pxd +28 -0
- sage/ext/interpreters/wrapper_rr.pyx +335 -0
- sage/geometry/all__sagemath_modules.py +5 -0
- sage/geometry/toric_lattice.py +1745 -0
- sage/geometry/toric_lattice_element.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/geometry/toric_lattice_element.pyx +432 -0
- sage/groups/abelian_gps/abelian_group.py +1925 -0
- sage/groups/abelian_gps/abelian_group_element.py +164 -0
- sage/groups/abelian_gps/all__sagemath_modules.py +5 -0
- sage/groups/abelian_gps/dual_abelian_group.py +421 -0
- sage/groups/abelian_gps/dual_abelian_group_element.py +179 -0
- sage/groups/abelian_gps/element_base.py +341 -0
- sage/groups/abelian_gps/values.py +488 -0
- sage/groups/additive_abelian/additive_abelian_group.py +476 -0
- sage/groups/additive_abelian/additive_abelian_wrapper.py +857 -0
- sage/groups/additive_abelian/all.py +4 -0
- sage/groups/additive_abelian/qmodnz.py +231 -0
- sage/groups/additive_abelian/qmodnz_element.py +349 -0
- sage/groups/affine_gps/affine_group.py +535 -0
- sage/groups/affine_gps/all.py +1 -0
- sage/groups/affine_gps/catalog.py +17 -0
- sage/groups/affine_gps/euclidean_group.py +246 -0
- sage/groups/affine_gps/group_element.py +562 -0
- sage/groups/all__sagemath_modules.py +12 -0
- sage/groups/galois_group.py +479 -0
- sage/groups/matrix_gps/all.py +4 -0
- sage/groups/matrix_gps/all__sagemath_modules.py +13 -0
- sage/groups/matrix_gps/catalog.py +26 -0
- sage/groups/matrix_gps/coxeter_group.py +927 -0
- sage/groups/matrix_gps/finitely_generated.py +487 -0
- sage/groups/matrix_gps/group_element.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/groups/matrix_gps/group_element.pxd +11 -0
- sage/groups/matrix_gps/group_element.pyx +431 -0
- sage/groups/matrix_gps/linear.py +440 -0
- sage/groups/matrix_gps/matrix_group.py +617 -0
- sage/groups/matrix_gps/named_group.py +296 -0
- sage/groups/matrix_gps/orthogonal.py +544 -0
- sage/groups/matrix_gps/symplectic.py +251 -0
- sage/groups/matrix_gps/unitary.py +436 -0
- sage/groups/misc_gps/all__sagemath_modules.py +1 -0
- sage/groups/misc_gps/argument_groups.py +1905 -0
- sage/groups/misc_gps/imaginary_groups.py +479 -0
- sage/groups/perm_gps/all__sagemath_modules.py +1 -0
- sage/groups/perm_gps/partn_ref/all__sagemath_modules.py +1 -0
- sage/groups/perm_gps/partn_ref/refinement_binary.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/groups/perm_gps/partn_ref/refinement_binary.pxd +41 -0
- sage/groups/perm_gps/partn_ref/refinement_binary.pyx +1167 -0
- sage/groups/perm_gps/partn_ref/refinement_matrices.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/groups/perm_gps/partn_ref/refinement_matrices.pxd +31 -0
- sage/groups/perm_gps/partn_ref/refinement_matrices.pyx +385 -0
- sage/homology/algebraic_topological_model.py +595 -0
- sage/homology/all.py +2 -0
- sage/homology/all__sagemath_modules.py +8 -0
- sage/homology/chain_complex.py +2148 -0
- sage/homology/chain_complex_homspace.py +165 -0
- sage/homology/chain_complex_morphism.py +629 -0
- sage/homology/chain_homotopy.py +604 -0
- sage/homology/chains.py +653 -0
- sage/homology/free_resolution.py +923 -0
- sage/homology/graded_resolution.py +567 -0
- sage/homology/hochschild_complex.py +756 -0
- sage/homology/homology_group.py +188 -0
- sage/homology/homology_morphism.py +422 -0
- sage/homology/homology_vector_space_with_basis.py +1454 -0
- sage/homology/koszul_complex.py +169 -0
- sage/homology/matrix_utils.py +205 -0
- sage/libs/all__sagemath_modules.py +1 -0
- sage/libs/gsl/__init__.py +1 -0
- sage/libs/gsl/airy.pxd +56 -0
- sage/libs/gsl/all.pxd +66 -0
- sage/libs/gsl/array.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/libs/gsl/array.pxd +5 -0
- sage/libs/gsl/array.pyx +102 -0
- sage/libs/gsl/bessel.pxd +208 -0
- sage/libs/gsl/blas.pxd +116 -0
- sage/libs/gsl/blas_types.pxd +34 -0
- sage/libs/gsl/block.pxd +52 -0
- sage/libs/gsl/chebyshev.pxd +37 -0
- sage/libs/gsl/clausen.pxd +12 -0
- sage/libs/gsl/combination.pxd +47 -0
- sage/libs/gsl/complex.pxd +151 -0
- sage/libs/gsl/coulomb.pxd +30 -0
- sage/libs/gsl/coupling.pxd +21 -0
- sage/libs/gsl/dawson.pxd +12 -0
- sage/libs/gsl/debye.pxd +24 -0
- sage/libs/gsl/dilog.pxd +14 -0
- sage/libs/gsl/eigen.pxd +46 -0
- sage/libs/gsl/elementary.pxd +12 -0
- sage/libs/gsl/ellint.pxd +48 -0
- sage/libs/gsl/elljac.pxd +8 -0
- sage/libs/gsl/erf.pxd +32 -0
- sage/libs/gsl/errno.pxd +26 -0
- sage/libs/gsl/exp.pxd +44 -0
- sage/libs/gsl/expint.pxd +44 -0
- sage/libs/gsl/fermi_dirac.pxd +44 -0
- sage/libs/gsl/fft.pxd +121 -0
- sage/libs/gsl/fit.pxd +50 -0
- sage/libs/gsl/gamma.pxd +94 -0
- sage/libs/gsl/gegenbauer.pxd +26 -0
- sage/libs/gsl/histogram.pxd +176 -0
- sage/libs/gsl/hyperg.pxd +52 -0
- sage/libs/gsl/integration.pxd +69 -0
- sage/libs/gsl/interp.pxd +109 -0
- sage/libs/gsl/laguerre.pxd +24 -0
- sage/libs/gsl/lambert.pxd +16 -0
- sage/libs/gsl/legendre.pxd +90 -0
- sage/libs/gsl/linalg.pxd +185 -0
- sage/libs/gsl/log.pxd +26 -0
- sage/libs/gsl/math.pxd +43 -0
- sage/libs/gsl/matrix.pxd +143 -0
- sage/libs/gsl/matrix_complex.pxd +130 -0
- sage/libs/gsl/min.pxd +67 -0
- sage/libs/gsl/monte.pxd +56 -0
- sage/libs/gsl/ntuple.pxd +32 -0
- sage/libs/gsl/odeiv.pxd +70 -0
- sage/libs/gsl/permutation.pxd +78 -0
- sage/libs/gsl/poly.pxd +40 -0
- sage/libs/gsl/pow_int.pxd +12 -0
- sage/libs/gsl/psi.pxd +28 -0
- sage/libs/gsl/qrng.pxd +29 -0
- sage/libs/gsl/random.pxd +257 -0
- sage/libs/gsl/rng.pxd +100 -0
- sage/libs/gsl/roots.pxd +72 -0
- sage/libs/gsl/sort.pxd +36 -0
- sage/libs/gsl/statistics.pxd +59 -0
- sage/libs/gsl/sum.pxd +55 -0
- sage/libs/gsl/synchrotron.pxd +16 -0
- sage/libs/gsl/transport.pxd +24 -0
- sage/libs/gsl/trig.pxd +58 -0
- sage/libs/gsl/types.pxd +137 -0
- sage/libs/gsl/vector.pxd +101 -0
- sage/libs/gsl/vector_complex.pxd +83 -0
- sage/libs/gsl/wavelet.pxd +49 -0
- sage/libs/gsl/zeta.pxd +28 -0
- sage/libs/mpc/__init__.pxd +114 -0
- sage/libs/mpc/types.pxd +28 -0
- sage/libs/mpfr/__init__.pxd +299 -0
- sage/libs/mpfr/types.pxd +26 -0
- sage/libs/mpmath/__init__.py +1 -0
- sage/libs/mpmath/all.py +27 -0
- sage/libs/mpmath/all__sagemath_modules.py +1 -0
- sage/libs/mpmath/utils.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/libs/mpmath/utils.pxd +4 -0
- sage/libs/mpmath/utils.pyx +319 -0
- sage/matrix/action.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/matrix/action.pxd +26 -0
- sage/matrix/action.pyx +596 -0
- sage/matrix/all.py +9 -0
- sage/matrix/args.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/matrix/args.pxd +144 -0
- sage/matrix/args.pyx +1668 -0
- sage/matrix/benchmark.py +1258 -0
- sage/matrix/berlekamp_massey.py +95 -0
- sage/matrix/compute_J_ideal.py +926 -0
- sage/matrix/constructor.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/matrix/constructor.pyx +750 -0
- sage/matrix/docs.py +430 -0
- sage/matrix/echelon_matrix.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/matrix/echelon_matrix.pyx +155 -0
- sage/matrix/matrix.pxd +2 -0
- sage/matrix/matrix0.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/matrix/matrix0.pxd +68 -0
- sage/matrix/matrix0.pyx +6324 -0
- sage/matrix/matrix1.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/matrix/matrix1.pxd +8 -0
- sage/matrix/matrix1.pyx +2851 -0
- sage/matrix/matrix2.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/matrix/matrix2.pxd +25 -0
- sage/matrix/matrix2.pyx +20181 -0
- sage/matrix/matrix_cdv.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/matrix/matrix_cdv.pxd +4 -0
- sage/matrix/matrix_cdv.pyx +93 -0
- sage/matrix/matrix_complex_double_dense.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/matrix/matrix_complex_double_dense.pxd +5 -0
- sage/matrix/matrix_complex_double_dense.pyx +98 -0
- sage/matrix/matrix_dense.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/matrix/matrix_dense.pxd +5 -0
- sage/matrix/matrix_dense.pyx +343 -0
- sage/matrix/matrix_domain_dense.pxd +5 -0
- sage/matrix/matrix_domain_sparse.pxd +5 -0
- sage/matrix/matrix_double_dense.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/matrix/matrix_double_dense.pxd +7 -0
- sage/matrix/matrix_double_dense.pyx +3906 -0
- sage/matrix/matrix_double_sparse.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/matrix/matrix_double_sparse.pxd +6 -0
- sage/matrix/matrix_double_sparse.pyx +248 -0
- sage/matrix/matrix_generic_dense.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/matrix/matrix_generic_dense.pxd +7 -0
- sage/matrix/matrix_generic_dense.pyx +354 -0
- sage/matrix/matrix_generic_sparse.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/matrix/matrix_generic_sparse.pxd +7 -0
- sage/matrix/matrix_generic_sparse.pyx +461 -0
- sage/matrix/matrix_laurent_mpolynomial_dense.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/matrix/matrix_laurent_mpolynomial_dense.pxd +5 -0
- sage/matrix/matrix_laurent_mpolynomial_dense.pyx +115 -0
- sage/matrix/matrix_misc.py +313 -0
- sage/matrix/matrix_numpy_dense.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/matrix/matrix_numpy_dense.pxd +14 -0
- sage/matrix/matrix_numpy_dense.pyx +450 -0
- sage/matrix/matrix_numpy_integer_dense.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/matrix/matrix_numpy_integer_dense.pxd +7 -0
- sage/matrix/matrix_numpy_integer_dense.pyx +59 -0
- sage/matrix/matrix_polynomial_dense.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/matrix/matrix_polynomial_dense.pxd +5 -0
- sage/matrix/matrix_polynomial_dense.pyx +5341 -0
- sage/matrix/matrix_real_double_dense.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/matrix/matrix_real_double_dense.pxd +7 -0
- sage/matrix/matrix_real_double_dense.pyx +122 -0
- sage/matrix/matrix_space.py +2848 -0
- sage/matrix/matrix_sparse.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/matrix/matrix_sparse.pxd +5 -0
- sage/matrix/matrix_sparse.pyx +1222 -0
- sage/matrix/matrix_window.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/matrix/matrix_window.pxd +37 -0
- sage/matrix/matrix_window.pyx +242 -0
- sage/matrix/misc_mpfr.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/matrix/misc_mpfr.pyx +80 -0
- sage/matrix/operation_table.py +1182 -0
- sage/matrix/special.py +3666 -0
- sage/matrix/strassen.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/matrix/strassen.pyx +851 -0
- sage/matrix/symplectic_basis.py +541 -0
- sage/matrix/template.pxd +6 -0
- sage/matrix/tests.py +71 -0
- sage/matroids/advanced.py +77 -0
- sage/matroids/all.py +13 -0
- sage/matroids/basis_exchange_matroid.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/matroids/basis_exchange_matroid.pxd +96 -0
- sage/matroids/basis_exchange_matroid.pyx +2344 -0
- sage/matroids/basis_matroid.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/matroids/basis_matroid.pxd +45 -0
- sage/matroids/basis_matroid.pyx +1217 -0
- sage/matroids/catalog.py +44 -0
- sage/matroids/chow_ring.py +473 -0
- sage/matroids/chow_ring_ideal.py +849 -0
- sage/matroids/circuit_closures_matroid.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/matroids/circuit_closures_matroid.pxd +16 -0
- sage/matroids/circuit_closures_matroid.pyx +559 -0
- sage/matroids/circuits_matroid.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/matroids/circuits_matroid.pxd +38 -0
- sage/matroids/circuits_matroid.pyx +947 -0
- sage/matroids/constructor.py +1086 -0
- sage/matroids/database_collections.py +365 -0
- sage/matroids/database_matroids.py +5338 -0
- sage/matroids/dual_matroid.py +583 -0
- sage/matroids/extension.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/matroids/extension.pxd +34 -0
- sage/matroids/extension.pyx +519 -0
- sage/matroids/flats_matroid.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/matroids/flats_matroid.pxd +28 -0
- sage/matroids/flats_matroid.pyx +715 -0
- sage/matroids/gammoid.py +600 -0
- sage/matroids/graphic_matroid.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/matroids/graphic_matroid.pxd +39 -0
- sage/matroids/graphic_matroid.pyx +2024 -0
- sage/matroids/lean_matrix.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/matroids/lean_matrix.pxd +126 -0
- sage/matroids/lean_matrix.pyx +3667 -0
- sage/matroids/linear_matroid.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/matroids/linear_matroid.pxd +180 -0
- sage/matroids/linear_matroid.pyx +6649 -0
- sage/matroids/matroid.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/matroids/matroid.pxd +243 -0
- sage/matroids/matroid.pyx +8759 -0
- sage/matroids/matroids_catalog.py +190 -0
- sage/matroids/matroids_plot_helpers.py +890 -0
- sage/matroids/minor_matroid.py +480 -0
- sage/matroids/minorfix.h +9 -0
- sage/matroids/named_matroids.py +5 -0
- sage/matroids/rank_matroid.py +268 -0
- sage/matroids/set_system.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/matroids/set_system.pxd +38 -0
- sage/matroids/set_system.pyx +800 -0
- sage/matroids/transversal_matroid.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/matroids/transversal_matroid.pxd +14 -0
- sage/matroids/transversal_matroid.pyx +893 -0
- sage/matroids/union_matroid.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/matroids/union_matroid.pxd +20 -0
- sage/matroids/union_matroid.pyx +331 -0
- sage/matroids/unpickling.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/matroids/unpickling.pyx +843 -0
- sage/matroids/utilities.py +809 -0
- sage/misc/all__sagemath_modules.py +20 -0
- sage/misc/c3.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/misc/c3.pyx +238 -0
- sage/misc/compat.py +87 -0
- sage/misc/element_with_label.py +173 -0
- sage/misc/func_persist.py +79 -0
- sage/misc/pickle_old.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/misc/pickle_old.pyx +19 -0
- sage/misc/proof.py +7 -0
- sage/misc/replace_dot_all.py +472 -0
- sage/misc/sagedoc_conf.py +168 -0
- sage/misc/sphinxify.py +167 -0
- sage/misc/test_class_pickling.py +85 -0
- sage/modules/all.py +42 -0
- sage/modules/complex_double_vector.py +25 -0
- sage/modules/diamond_cutting.py +380 -0
- sage/modules/fg_pid/all.py +1 -0
- sage/modules/fg_pid/fgp_element.py +456 -0
- sage/modules/fg_pid/fgp_module.py +2091 -0
- sage/modules/fg_pid/fgp_morphism.py +550 -0
- sage/modules/filtered_vector_space.py +1271 -0
- sage/modules/finite_submodule_iter.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/modules/finite_submodule_iter.pxd +27 -0
- sage/modules/finite_submodule_iter.pyx +452 -0
- sage/modules/fp_graded/all.py +1 -0
- sage/modules/fp_graded/element.py +346 -0
- sage/modules/fp_graded/free_element.py +298 -0
- sage/modules/fp_graded/free_homspace.py +53 -0
- sage/modules/fp_graded/free_module.py +1060 -0
- sage/modules/fp_graded/free_morphism.py +217 -0
- sage/modules/fp_graded/homspace.py +563 -0
- sage/modules/fp_graded/module.py +1340 -0
- sage/modules/fp_graded/morphism.py +1990 -0
- sage/modules/fp_graded/steenrod/all.py +1 -0
- sage/modules/fp_graded/steenrod/homspace.py +65 -0
- sage/modules/fp_graded/steenrod/module.py +477 -0
- sage/modules/fp_graded/steenrod/morphism.py +404 -0
- sage/modules/fp_graded/steenrod/profile.py +241 -0
- sage/modules/free_module.py +8447 -0
- sage/modules/free_module_element.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/modules/free_module_element.pxd +22 -0
- sage/modules/free_module_element.pyx +5445 -0
- sage/modules/free_module_homspace.py +369 -0
- sage/modules/free_module_integer.py +896 -0
- sage/modules/free_module_morphism.py +823 -0
- sage/modules/free_module_pseudohomspace.py +352 -0
- sage/modules/free_module_pseudomorphism.py +578 -0
- sage/modules/free_quadratic_module.py +1706 -0
- sage/modules/free_quadratic_module_integer_symmetric.py +1790 -0
- sage/modules/matrix_morphism.py +1745 -0
- sage/modules/misc.py +103 -0
- sage/modules/module_functors.py +192 -0
- sage/modules/multi_filtered_vector_space.py +719 -0
- sage/modules/ore_module.py +2208 -0
- sage/modules/ore_module_element.py +178 -0
- sage/modules/ore_module_homspace.py +147 -0
- sage/modules/ore_module_morphism.py +968 -0
- sage/modules/quotient_module.py +699 -0
- sage/modules/real_double_vector.py +22 -0
- sage/modules/submodule.py +255 -0
- sage/modules/tensor_operations.py +567 -0
- sage/modules/torsion_quadratic_module.py +1352 -0
- sage/modules/tutorial_free_modules.py +248 -0
- sage/modules/vector_complex_double_dense.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/modules/vector_complex_double_dense.pxd +6 -0
- sage/modules/vector_complex_double_dense.pyx +117 -0
- sage/modules/vector_double_dense.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/modules/vector_double_dense.pxd +6 -0
- sage/modules/vector_double_dense.pyx +604 -0
- sage/modules/vector_integer_dense.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/modules/vector_integer_dense.pxd +15 -0
- sage/modules/vector_integer_dense.pyx +361 -0
- sage/modules/vector_integer_sparse.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/modules/vector_integer_sparse.pxd +29 -0
- sage/modules/vector_integer_sparse.pyx +406 -0
- sage/modules/vector_modn_dense.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/modules/vector_modn_dense.pxd +12 -0
- sage/modules/vector_modn_dense.pyx +394 -0
- sage/modules/vector_modn_sparse.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/modules/vector_modn_sparse.pxd +21 -0
- sage/modules/vector_modn_sparse.pyx +298 -0
- sage/modules/vector_numpy_dense.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/modules/vector_numpy_dense.pxd +15 -0
- sage/modules/vector_numpy_dense.pyx +304 -0
- sage/modules/vector_numpy_integer_dense.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/modules/vector_numpy_integer_dense.pxd +7 -0
- sage/modules/vector_numpy_integer_dense.pyx +54 -0
- sage/modules/vector_rational_dense.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/modules/vector_rational_dense.pxd +15 -0
- sage/modules/vector_rational_dense.pyx +387 -0
- sage/modules/vector_rational_sparse.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/modules/vector_rational_sparse.pxd +30 -0
- sage/modules/vector_rational_sparse.pyx +413 -0
- sage/modules/vector_real_double_dense.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/modules/vector_real_double_dense.pxd +6 -0
- sage/modules/vector_real_double_dense.pyx +126 -0
- sage/modules/vector_space_homspace.py +430 -0
- sage/modules/vector_space_morphism.py +989 -0
- sage/modules/with_basis/all.py +15 -0
- sage/modules/with_basis/cell_module.py +494 -0
- sage/modules/with_basis/indexed_element.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/modules/with_basis/indexed_element.pxd +13 -0
- sage/modules/with_basis/indexed_element.pyx +1058 -0
- sage/modules/with_basis/invariant.py +1075 -0
- sage/modules/with_basis/morphism.py +1636 -0
- sage/modules/with_basis/representation.py +2939 -0
- sage/modules/with_basis/subquotient.py +685 -0
- sage/numerical/all__sagemath_modules.py +6 -0
- sage/numerical/gauss_legendre.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/numerical/gauss_legendre.pyx +381 -0
- sage/numerical/optimize.py +910 -0
- sage/probability/all.py +10 -0
- sage/probability/probability_distribution.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/probability/probability_distribution.pyx +1242 -0
- sage/probability/random_variable.py +411 -0
- sage/quadratic_forms/all.py +4 -0
- sage/quadratic_forms/all__sagemath_modules.py +15 -0
- sage/quadratic_forms/binary_qf.py +2042 -0
- sage/quadratic_forms/bqf_class_group.py +748 -0
- sage/quadratic_forms/constructions.py +93 -0
- sage/quadratic_forms/count_local_2.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/quadratic_forms/count_local_2.pyx +365 -0
- sage/quadratic_forms/extras.py +195 -0
- sage/quadratic_forms/quadratic_form.py +1753 -0
- sage/quadratic_forms/quadratic_form__count_local_2.py +221 -0
- sage/quadratic_forms/quadratic_form__equivalence_testing.py +708 -0
- sage/quadratic_forms/quadratic_form__evaluate.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/quadratic_forms/quadratic_form__evaluate.pyx +139 -0
- sage/quadratic_forms/quadratic_form__local_density_congruence.py +977 -0
- sage/quadratic_forms/quadratic_form__local_field_invariants.py +1072 -0
- sage/quadratic_forms/quadratic_form__neighbors.py +424 -0
- sage/quadratic_forms/quadratic_form__reduction_theory.py +488 -0
- sage/quadratic_forms/quadratic_form__split_local_covering.py +416 -0
- sage/quadratic_forms/quadratic_form__ternary_Tornaria.py +657 -0
- sage/quadratic_forms/quadratic_form__theta.py +352 -0
- sage/quadratic_forms/quadratic_form__variable_substitutions.py +370 -0
- sage/quadratic_forms/random_quadraticform.py +209 -0
- sage/quadratic_forms/ternary.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/quadratic_forms/ternary.pyx +1154 -0
- sage/quadratic_forms/ternary_qf.py +2027 -0
- sage/rings/all__sagemath_modules.py +28 -0
- sage/rings/asymptotic/all__sagemath_modules.py +1 -0
- sage/rings/asymptotic/misc.py +1252 -0
- sage/rings/cc.py +4 -0
- sage/rings/cfinite_sequence.py +1306 -0
- sage/rings/complex_conversion.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/rings/complex_conversion.pxd +8 -0
- sage/rings/complex_conversion.pyx +23 -0
- sage/rings/complex_double.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/rings/complex_double.pxd +21 -0
- sage/rings/complex_double.pyx +2654 -0
- sage/rings/complex_mpc.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/rings/complex_mpc.pxd +21 -0
- sage/rings/complex_mpc.pyx +2576 -0
- sage/rings/complex_mpfr.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/rings/complex_mpfr.pxd +18 -0
- sage/rings/complex_mpfr.pyx +3602 -0
- sage/rings/derivation.py +2334 -0
- sage/rings/finite_rings/all__sagemath_modules.py +1 -0
- sage/rings/finite_rings/maps_finite_field.py +191 -0
- sage/rings/function_field/all__sagemath_modules.py +8 -0
- sage/rings/function_field/derivations.py +102 -0
- sage/rings/function_field/derivations_rational.py +132 -0
- sage/rings/function_field/differential.py +853 -0
- sage/rings/function_field/divisor.py +1107 -0
- sage/rings/function_field/drinfeld_modules/action.py +199 -0
- sage/rings/function_field/drinfeld_modules/all.py +1 -0
- sage/rings/function_field/drinfeld_modules/charzero_drinfeld_module.py +673 -0
- sage/rings/function_field/drinfeld_modules/drinfeld_module.py +2087 -0
- sage/rings/function_field/drinfeld_modules/finite_drinfeld_module.py +1131 -0
- sage/rings/function_field/drinfeld_modules/homset.py +420 -0
- sage/rings/function_field/drinfeld_modules/morphism.py +820 -0
- sage/rings/function_field/hermite_form_polynomial.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/rings/function_field/hermite_form_polynomial.pyx +188 -0
- sage/rings/function_field/khuri_makdisi.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/rings/function_field/khuri_makdisi.pyx +935 -0
- sage/rings/invariants/all.py +4 -0
- sage/rings/invariants/invariant_theory.py +4597 -0
- sage/rings/invariants/reconstruction.py +395 -0
- sage/rings/polynomial/all__sagemath_modules.py +17 -0
- sage/rings/polynomial/integer_valued_polynomials.py +1230 -0
- sage/rings/polynomial/laurent_polynomial_mpair.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/rings/polynomial/laurent_polynomial_mpair.pxd +15 -0
- sage/rings/polynomial/laurent_polynomial_mpair.pyx +2023 -0
- sage/rings/polynomial/ore_function_element.py +952 -0
- sage/rings/polynomial/ore_function_field.py +1028 -0
- sage/rings/polynomial/ore_polynomial_element.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/rings/polynomial/ore_polynomial_element.pxd +48 -0
- sage/rings/polynomial/ore_polynomial_element.pyx +3145 -0
- sage/rings/polynomial/ore_polynomial_ring.py +1334 -0
- sage/rings/polynomial/polynomial_real_mpfr_dense.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/rings/polynomial/polynomial_real_mpfr_dense.pyx +788 -0
- sage/rings/polynomial/q_integer_valued_polynomials.py +1264 -0
- sage/rings/polynomial/skew_polynomial_element.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/rings/polynomial/skew_polynomial_element.pxd +9 -0
- sage/rings/polynomial/skew_polynomial_element.pyx +684 -0
- sage/rings/polynomial/skew_polynomial_finite_field.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/rings/polynomial/skew_polynomial_finite_field.pxd +19 -0
- sage/rings/polynomial/skew_polynomial_finite_field.pyx +1093 -0
- sage/rings/polynomial/skew_polynomial_finite_order.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/rings/polynomial/skew_polynomial_finite_order.pxd +10 -0
- sage/rings/polynomial/skew_polynomial_finite_order.pyx +567 -0
- sage/rings/polynomial/skew_polynomial_ring.py +908 -0
- sage/rings/real_double_element_gsl.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/rings/real_double_element_gsl.pxd +8 -0
- sage/rings/real_double_element_gsl.pyx +794 -0
- sage/rings/real_field.py +58 -0
- sage/rings/real_mpfr.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/rings/real_mpfr.pxd +29 -0
- sage/rings/real_mpfr.pyx +6122 -0
- sage/rings/ring_extension.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/rings/ring_extension.pxd +42 -0
- sage/rings/ring_extension.pyx +2779 -0
- sage/rings/ring_extension_conversion.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/rings/ring_extension_conversion.pxd +16 -0
- sage/rings/ring_extension_conversion.pyx +462 -0
- sage/rings/ring_extension_element.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/rings/ring_extension_element.pxd +21 -0
- sage/rings/ring_extension_element.pyx +1635 -0
- sage/rings/ring_extension_homset.py +64 -0
- sage/rings/ring_extension_morphism.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/rings/ring_extension_morphism.pxd +35 -0
- sage/rings/ring_extension_morphism.pyx +920 -0
- sage/schemes/all__sagemath_modules.py +1 -0
- sage/schemes/projective/all__sagemath_modules.py +1 -0
- sage/schemes/projective/coherent_sheaf.py +300 -0
- sage/schemes/projective/cohomology.py +510 -0
- sage/stats/all.py +15 -0
- sage/stats/basic_stats.py +489 -0
- sage/stats/distributions/all.py +7 -0
- sage/stats/distributions/catalog.py +34 -0
- sage/stats/distributions/dgs.h +50 -0
- sage/stats/distributions/dgs.pxd +111 -0
- sage/stats/distributions/dgs_bern.h +400 -0
- sage/stats/distributions/dgs_gauss.h +614 -0
- sage/stats/distributions/dgs_misc.h +104 -0
- sage/stats/distributions/discrete_gaussian_integer.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/stats/distributions/discrete_gaussian_integer.pxd +14 -0
- sage/stats/distributions/discrete_gaussian_integer.pyx +498 -0
- sage/stats/distributions/discrete_gaussian_lattice.py +908 -0
- sage/stats/distributions/discrete_gaussian_polynomial.py +141 -0
- sage/stats/hmm/all.py +15 -0
- sage/stats/hmm/chmm.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/stats/hmm/chmm.pyx +1595 -0
- sage/stats/hmm/distributions.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/stats/hmm/distributions.pxd +29 -0
- sage/stats/hmm/distributions.pyx +531 -0
- sage/stats/hmm/hmm.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/stats/hmm/hmm.pxd +17 -0
- sage/stats/hmm/hmm.pyx +1388 -0
- sage/stats/hmm/util.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/stats/hmm/util.pxd +7 -0
- sage/stats/hmm/util.pyx +165 -0
- sage/stats/intlist.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/stats/intlist.pxd +14 -0
- sage/stats/intlist.pyx +588 -0
- sage/stats/r.py +49 -0
- sage/stats/time_series.cpython-314-aarch64-linux-gnu.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,519 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-modules
|
|
2
|
+
"""
|
|
3
|
+
Iterators for linear subclasses
|
|
4
|
+
|
|
5
|
+
The classes below are iterators returned by the functions
|
|
6
|
+
:func:`M.linear_subclasses() <sage.matroids.matroid.Matroid.linear_subclasses>`
|
|
7
|
+
and :func:`M.extensions() <sage.matroids.matroid.Matroid.extensions>`.
|
|
8
|
+
See the documentation of these methods for more detail.
|
|
9
|
+
For direct access to these classes, run::
|
|
10
|
+
|
|
11
|
+
sage: from sage.matroids.advanced import *
|
|
12
|
+
|
|
13
|
+
See also :mod:`sage.matroids.advanced`.
|
|
14
|
+
|
|
15
|
+
AUTHORS:
|
|
16
|
+
|
|
17
|
+
- Rudi Pendavingh, Stefan van Zwam (2013-04-01): initial version
|
|
18
|
+
|
|
19
|
+
Methods
|
|
20
|
+
=======
|
|
21
|
+
"""
|
|
22
|
+
# ****************************************************************************
|
|
23
|
+
# Copyright (C) 2013 Rudi Pendavingh <rudi.pendavingh@gmail.com>
|
|
24
|
+
# Copyright (C) 2013 Stefan van Zwam <stefanvanzwam@gmail.com>
|
|
25
|
+
#
|
|
26
|
+
#
|
|
27
|
+
# Distributed under the terms of the GNU General Public License (GPL)
|
|
28
|
+
# as published by the Free Software Foundation; either version 2 of
|
|
29
|
+
# the License, or (at your option) any later version.
|
|
30
|
+
# https://www.gnu.org/licenses/
|
|
31
|
+
# ****************************************************************************
|
|
32
|
+
|
|
33
|
+
from sage.data_structures.bitset_base cimport *
|
|
34
|
+
from sage.matroids.basis_matroid cimport BasisMatroid
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
cdef class CutNode:
|
|
38
|
+
"""
|
|
39
|
+
An internal class used for creating linear subclasses of a matroids in a
|
|
40
|
+
depth-first manner.
|
|
41
|
+
|
|
42
|
+
A linear subclass is a set of hyperplanes `mc` with the property that
|
|
43
|
+
certain sets of hyperplanes must either be fully contained in `mc` or
|
|
44
|
+
intersect `mc` in at most 1 element. The way we generate them is by a
|
|
45
|
+
depth-first search. This class represents a node in the search tree.
|
|
46
|
+
|
|
47
|
+
It contains the set of hyperplanes selected so far, as well as a
|
|
48
|
+
collection of hyperplanes whose insertion has been explored elsewhere in
|
|
49
|
+
the search tree.
|
|
50
|
+
|
|
51
|
+
The class has methods for selecting a hyperplane to insert, for inserting
|
|
52
|
+
hyperplanes and closing the set to become a linear subclass again, and for
|
|
53
|
+
adding a hyperplane to the set of *forbidden* hyperplanes, and similarly
|
|
54
|
+
closing that set.
|
|
55
|
+
"""
|
|
56
|
+
def __cinit__(self, MC, N=None):
|
|
57
|
+
"""
|
|
58
|
+
Internal data structure init.
|
|
59
|
+
|
|
60
|
+
EXAMPLES::
|
|
61
|
+
|
|
62
|
+
sage: len(list(matroids.catalog.Fano().linear_subclasses())) # indirect doctest
|
|
63
|
+
16
|
|
64
|
+
"""
|
|
65
|
+
cdef CutNode node
|
|
66
|
+
self._MC = MC
|
|
67
|
+
bitset_init(self._p_free, self._MC._hyperplanes_count + 1)
|
|
68
|
+
bitset_init(self._p_in, self._MC._hyperplanes_count + 1)
|
|
69
|
+
bitset_init(self._l0, self._MC._hyperlines_count + 1)
|
|
70
|
+
bitset_init(self._l1, self._MC._hyperlines_count + 1)
|
|
71
|
+
if N is None:
|
|
72
|
+
bitset_set_first_n(self._p_free, self._MC._hyperplanes_count)
|
|
73
|
+
bitset_clear(self._p_in)
|
|
74
|
+
bitset_set_first_n(self._l0, self._MC._hyperlines_count)
|
|
75
|
+
bitset_clear(self._l1)
|
|
76
|
+
else:
|
|
77
|
+
node = N
|
|
78
|
+
bitset_copy(self._p_free, node._p_free)
|
|
79
|
+
bitset_copy(self._p_in, node._p_in)
|
|
80
|
+
bitset_copy(self._l0, node._l0)
|
|
81
|
+
bitset_copy(self._l1, node._l1)
|
|
82
|
+
self._ml = node._ml
|
|
83
|
+
|
|
84
|
+
def __dealloc__(self):
|
|
85
|
+
bitset_free(self._p_free)
|
|
86
|
+
bitset_free(self._p_in)
|
|
87
|
+
bitset_free(self._l0)
|
|
88
|
+
bitset_free(self._l1)
|
|
89
|
+
|
|
90
|
+
cdef CutNode copy(self):
|
|
91
|
+
return CutNode(self._MC, self)
|
|
92
|
+
|
|
93
|
+
cdef bint insert_plane(self, long p0) noexcept:
|
|
94
|
+
"""
|
|
95
|
+
Add a hyperplane to the linear subclass.
|
|
96
|
+
"""
|
|
97
|
+
cdef long l, p
|
|
98
|
+
cdef list p_stack, l_stack
|
|
99
|
+
if bitset_in(self._p_in, p0):
|
|
100
|
+
return True
|
|
101
|
+
if not bitset_in(self._p_free, p0):
|
|
102
|
+
return False
|
|
103
|
+
bitset_discard(self._p_free, p0)
|
|
104
|
+
bitset_add(self._p_in, p0)
|
|
105
|
+
p_stack = [p0]
|
|
106
|
+
l_stack = []
|
|
107
|
+
while len(p_stack) > 0:
|
|
108
|
+
while len(p_stack) > 0:
|
|
109
|
+
p = p_stack.pop()
|
|
110
|
+
for l in self._MC._lines_on_plane[p]:
|
|
111
|
+
if bitset_in(self._l0, l):
|
|
112
|
+
bitset_discard(self._l0, l)
|
|
113
|
+
bitset_add(self._l1, l)
|
|
114
|
+
else:
|
|
115
|
+
if bitset_in(self._l1, l):
|
|
116
|
+
bitset_discard(self._l1, l)
|
|
117
|
+
l_stack.append(l)
|
|
118
|
+
while len(l_stack) > 0:
|
|
119
|
+
l = l_stack.pop()
|
|
120
|
+
for p in self._MC._planes_on_line[l]:
|
|
121
|
+
if bitset_in(self._p_in, p):
|
|
122
|
+
continue
|
|
123
|
+
if bitset_in(self._p_free, p):
|
|
124
|
+
bitset_discard(self._p_free, p)
|
|
125
|
+
bitset_add(self._p_in, p)
|
|
126
|
+
p_stack.append(p)
|
|
127
|
+
else:
|
|
128
|
+
return False
|
|
129
|
+
return True
|
|
130
|
+
|
|
131
|
+
cdef bint remove_plane(self, long p0) noexcept:
|
|
132
|
+
"""
|
|
133
|
+
Remove a hyperplane from the linear subclass.
|
|
134
|
+
"""
|
|
135
|
+
cdef long p, l
|
|
136
|
+
cdef list p_stack, l_stack
|
|
137
|
+
bitset_discard(self._p_free, p0)
|
|
138
|
+
p_stack = [p0]
|
|
139
|
+
l_stack = []
|
|
140
|
+
while len(p_stack) > 0:
|
|
141
|
+
while len(p_stack) > 0:
|
|
142
|
+
p = p_stack.pop()
|
|
143
|
+
for l in self._MC._lines_on_plane[p]:
|
|
144
|
+
if bitset_in(self._l1, l):
|
|
145
|
+
l_stack.append(l)
|
|
146
|
+
while len(l_stack) > 0:
|
|
147
|
+
l = l_stack.pop()
|
|
148
|
+
for p in self._MC._planes_on_line[l]:
|
|
149
|
+
if bitset_in(self._p_free, p):
|
|
150
|
+
bitset_discard(self._p_free, p)
|
|
151
|
+
p_stack.append(p)
|
|
152
|
+
else:
|
|
153
|
+
return False
|
|
154
|
+
return True
|
|
155
|
+
|
|
156
|
+
cdef select_plane(self):
|
|
157
|
+
"""
|
|
158
|
+
Choose a hyperplane from the linear subclass.
|
|
159
|
+
"""
|
|
160
|
+
cdef long l, p
|
|
161
|
+
while self._ml >= 0:
|
|
162
|
+
l = self._MC._mandatory_lines[self._ml]
|
|
163
|
+
if bitset_in(self._l0, l):
|
|
164
|
+
for p in self._MC._planes_on_line[l]:
|
|
165
|
+
if bitset_in(self._p_free, p):
|
|
166
|
+
return p
|
|
167
|
+
return None
|
|
168
|
+
self._ml -= 1
|
|
169
|
+
|
|
170
|
+
return bitset_first(self._p_free)
|
|
171
|
+
|
|
172
|
+
cdef list planes(self):
|
|
173
|
+
"""
|
|
174
|
+
Return all hyperplanes from the linear subclass.
|
|
175
|
+
"""
|
|
176
|
+
return bitset_list(self._p_in)
|
|
177
|
+
|
|
178
|
+
cdef class LinearSubclassesIter:
|
|
179
|
+
"""
|
|
180
|
+
An iterator for a set of linear subclass.
|
|
181
|
+
"""
|
|
182
|
+
def __init__(self, MC):
|
|
183
|
+
"""
|
|
184
|
+
Create a linear subclass iterator.
|
|
185
|
+
|
|
186
|
+
Auxiliary to class LinearSubclasses.
|
|
187
|
+
|
|
188
|
+
INPUT:
|
|
189
|
+
|
|
190
|
+
- ``MC`` -- a member of class LinearSubclasses
|
|
191
|
+
|
|
192
|
+
EXAMPLES::
|
|
193
|
+
|
|
194
|
+
sage: from sage.matroids.extension import LinearSubclasses
|
|
195
|
+
sage: M = matroids.Uniform(3, 6)
|
|
196
|
+
sage: type(LinearSubclasses(M).__iter__())
|
|
197
|
+
<... 'sage.matroids.extension.LinearSubclassesIter'>
|
|
198
|
+
"""
|
|
199
|
+
cdef CutNode first_cut = CutNode(MC)
|
|
200
|
+
self._MC = MC
|
|
201
|
+
self._nodes = []
|
|
202
|
+
|
|
203
|
+
for i in self._MC._forbidden_planes:
|
|
204
|
+
if not first_cut.remove_plane(i):
|
|
205
|
+
return
|
|
206
|
+
|
|
207
|
+
for i in self._MC._mandatory_planes:
|
|
208
|
+
if not first_cut.insert_plane(i):
|
|
209
|
+
return
|
|
210
|
+
|
|
211
|
+
first_cut._ml = len(self._MC._mandatory_lines) - 1
|
|
212
|
+
|
|
213
|
+
self._nodes = [first_cut]
|
|
214
|
+
|
|
215
|
+
def __iter__(self):
|
|
216
|
+
return self
|
|
217
|
+
|
|
218
|
+
def __next__(self):
|
|
219
|
+
"""
|
|
220
|
+
Return the next linear subclass.
|
|
221
|
+
|
|
222
|
+
EXAMPLES::
|
|
223
|
+
|
|
224
|
+
sage: from sage.matroids.advanced import *
|
|
225
|
+
sage: from sage.matroids.extension import LinearSubclasses
|
|
226
|
+
sage: M = BasisMatroid(matroids.Uniform(3, 6))
|
|
227
|
+
sage: I = LinearSubclasses(M).__iter__()
|
|
228
|
+
sage: M.extension('x', I.__next__())
|
|
229
|
+
Matroid of rank 3 on 7 elements with 35 bases
|
|
230
|
+
sage: M.extension('x', I.__next__())
|
|
231
|
+
Matroid of rank 3 on 7 elements with 34 bases
|
|
232
|
+
"""
|
|
233
|
+
cdef CutNode node, node2
|
|
234
|
+
while True:
|
|
235
|
+
if len(self._nodes) == 0:
|
|
236
|
+
raise StopIteration
|
|
237
|
+
node = self._nodes.pop()
|
|
238
|
+
p0 = node.select_plane()
|
|
239
|
+
while p0 is not None and p0 >= 0:
|
|
240
|
+
node2 = node.copy()
|
|
241
|
+
if node2.insert_plane(p0):
|
|
242
|
+
self._nodes.append(node2)
|
|
243
|
+
node.remove_plane(p0)
|
|
244
|
+
p0 = node.select_plane()
|
|
245
|
+
|
|
246
|
+
if p0 is not None:
|
|
247
|
+
res = self._MC[node]
|
|
248
|
+
if res is not None:
|
|
249
|
+
return res
|
|
250
|
+
|
|
251
|
+
|
|
252
|
+
cdef class LinearSubclasses:
|
|
253
|
+
r"""
|
|
254
|
+
An iterable set of linear subclasses of a matroid.
|
|
255
|
+
|
|
256
|
+
Enumerate linear subclasses of a given matroid. A *linear subclass* is a
|
|
257
|
+
collection of hyperplanes (flats of rank `r - 1` where `r` is the rank of
|
|
258
|
+
the matroid) with the property that no modular triple of hyperplanes has
|
|
259
|
+
exactly two members in the linear subclass. A triple of hyperplanes in a
|
|
260
|
+
matroid of rank `r` is *modular* if its intersection has rank `r - 2`.
|
|
261
|
+
|
|
262
|
+
INPUT:
|
|
263
|
+
|
|
264
|
+
- ``M`` -- matroid
|
|
265
|
+
- ``line_length`` -- integer (default: ``None``)
|
|
266
|
+
- ``subsets`` -- (default: ``None``) a set of subsets of the groundset of
|
|
267
|
+
``M``
|
|
268
|
+
- ``splice`` -- (default: ``None``) a matroid `N` such that for some
|
|
269
|
+
`e \in E(N)` and some `f \in E(M)`, we have
|
|
270
|
+
`N\setminus e= M\setminus f`
|
|
271
|
+
|
|
272
|
+
OUTPUT: an enumerator for the linear subclasses of M
|
|
273
|
+
|
|
274
|
+
If ``line_length`` is not ``None``, the enumeration is restricted to
|
|
275
|
+
linear subclasses ``mc`` so containing at least one of each set of
|
|
276
|
+
``line_length`` hyperplanes which have a common intersection of
|
|
277
|
+
rank `r - 2`.
|
|
278
|
+
|
|
279
|
+
If ``subsets`` is not ``None``, the enumeration is restricted to linear
|
|
280
|
+
subclasses ``mc`` containing all hyperplanes which fully contain some set
|
|
281
|
+
from ``subsets``.
|
|
282
|
+
|
|
283
|
+
If ``splice`` is not ``None``, then the enumeration is restricted to
|
|
284
|
+
linear subclasses `mc` such that if `M'` is the extension of `M` by `e`
|
|
285
|
+
that arises from `mc`, then `M'\setminus f = N`.
|
|
286
|
+
|
|
287
|
+
EXAMPLES::
|
|
288
|
+
|
|
289
|
+
sage: from sage.matroids.extension import LinearSubclasses
|
|
290
|
+
sage: M = matroids.Uniform(3, 6)
|
|
291
|
+
sage: len([mc for mc in LinearSubclasses(M)])
|
|
292
|
+
83
|
|
293
|
+
sage: len([mc for mc in LinearSubclasses(M, line_length=5)])
|
|
294
|
+
22
|
|
295
|
+
sage: for mc in LinearSubclasses(M, subsets=[[0, 1], [2, 3], [4, 5]]):
|
|
296
|
+
....: print(len(mc))
|
|
297
|
+
3
|
|
298
|
+
15
|
|
299
|
+
|
|
300
|
+
Note that this class is intended for runtime, internal use, so no
|
|
301
|
+
loads/dumps mechanism was implemented.
|
|
302
|
+
"""
|
|
303
|
+
def __init__(self, M, line_length=None, subsets=None, splice=None):
|
|
304
|
+
"""
|
|
305
|
+
See the class docstring for full documentation.
|
|
306
|
+
|
|
307
|
+
EXAMPLES::
|
|
308
|
+
|
|
309
|
+
sage: from sage.matroids.advanced import * # LinearSubclasses, BasisMatroid
|
|
310
|
+
sage: M = matroids.Uniform(3, 6)
|
|
311
|
+
sage: len([mc for mc in LinearSubclasses(M)])
|
|
312
|
+
83
|
|
313
|
+
sage: len([mc for mc in LinearSubclasses(M, line_length=5)])
|
|
314
|
+
22
|
|
315
|
+
sage: for mc in LinearSubclasses(M,
|
|
316
|
+
....: subsets=[[0, 1], [2, 3], [4, 5]]):
|
|
317
|
+
....: print(len(mc))
|
|
318
|
+
3
|
|
319
|
+
15
|
|
320
|
+
sage: M = BasisMatroid(matroids.catalog.BetsyRoss()); M
|
|
321
|
+
Matroid of rank 3 on 11 elements with 140 bases
|
|
322
|
+
sage: e = 'k'; f = 'h'; Me = M.delete(e); Mf=M.delete(f)
|
|
323
|
+
sage: for mc in LinearSubclasses(Mf, splice=Me):
|
|
324
|
+
....: print(Mf.extension(f, mc))
|
|
325
|
+
Matroid of rank 3 on 11 elements with 141 bases
|
|
326
|
+
Matroid of rank 3 on 11 elements with 140 bases
|
|
327
|
+
sage: for mc in LinearSubclasses(Me, splice=Mf):
|
|
328
|
+
....: print(Me.extension(e, mc))
|
|
329
|
+
Matroid of rank 3 on 11 elements with 141 bases
|
|
330
|
+
Matroid of rank 3 on 11 elements with 140 bases
|
|
331
|
+
"""
|
|
332
|
+
# set up hyperplanes/ hyperlines
|
|
333
|
+
E = M.groundset()
|
|
334
|
+
R = M.full_rank()
|
|
335
|
+
|
|
336
|
+
self._hyperlines = M.flats(R - 2)
|
|
337
|
+
self._hyperlines_count = len(self._hyperlines)
|
|
338
|
+
|
|
339
|
+
self._hyperplanes = M.flats(R - 1)
|
|
340
|
+
self._hyperplanes_count = len(self._hyperplanes)
|
|
341
|
+
|
|
342
|
+
self._planes_on_line = [[] for l in range(self._hyperlines_count)]
|
|
343
|
+
self._lines_on_plane = [[] for l in range(self._hyperplanes_count)]
|
|
344
|
+
for l in range(self._hyperlines_count):
|
|
345
|
+
for h in range(self._hyperplanes_count):
|
|
346
|
+
if self._hyperplanes[h] >= self._hyperlines[l]:
|
|
347
|
+
self._lines_on_plane[h].append(l)
|
|
348
|
+
self._planes_on_line[l].append(h)
|
|
349
|
+
|
|
350
|
+
self._mandatory_planes = []
|
|
351
|
+
self._forbidden_planes = []
|
|
352
|
+
self._mandatory_lines = []
|
|
353
|
+
self._line_length = -1
|
|
354
|
+
|
|
355
|
+
if line_length is not None:
|
|
356
|
+
self._line_length = line_length
|
|
357
|
+
self._mandatory_lines = [l for l in range(self._hyperlines_count) if len(self._planes_on_line[l]) >= line_length]
|
|
358
|
+
|
|
359
|
+
if subsets is not None:
|
|
360
|
+
for p in range(self._hyperplanes_count):
|
|
361
|
+
H = self._hyperplanes[p]
|
|
362
|
+
for S in subsets:
|
|
363
|
+
if frozenset(S).issubset(H):
|
|
364
|
+
self._mandatory_planes.append(p)
|
|
365
|
+
break
|
|
366
|
+
|
|
367
|
+
if splice is not None:
|
|
368
|
+
E2 = splice.groundset()
|
|
369
|
+
F = frozenset(E - E2)
|
|
370
|
+
F2 = frozenset(E2 - E)
|
|
371
|
+
if len(E) != len(E2) or len(F) != 1:
|
|
372
|
+
raise ValueError("LinearSubclasses: the ground set of the splice matroid is not of the form E + e-f")
|
|
373
|
+
|
|
374
|
+
for p in range(self._hyperplanes_count):
|
|
375
|
+
X = self._hyperplanes[p] - F
|
|
376
|
+
if splice._rank(X) == splice.full_rank() - 1:
|
|
377
|
+
if splice._rank(X | F2) == splice.full_rank() - 1:
|
|
378
|
+
self._mandatory_planes.append(p)
|
|
379
|
+
else:
|
|
380
|
+
self._forbidden_planes.append(p)
|
|
381
|
+
|
|
382
|
+
def __iter__(self):
|
|
383
|
+
"""
|
|
384
|
+
Return an iterator for the linear subclasses.
|
|
385
|
+
|
|
386
|
+
EXAMPLES::
|
|
387
|
+
|
|
388
|
+
sage: from sage.matroids.extension import LinearSubclasses
|
|
389
|
+
sage: M = matroids.Uniform(3, 6)
|
|
390
|
+
sage: for mc in LinearSubclasses(M, subsets=[[0, 1], [2, 3], [4, 5]]):
|
|
391
|
+
....: print(len(mc))
|
|
392
|
+
3
|
|
393
|
+
15
|
|
394
|
+
"""
|
|
395
|
+
return LinearSubclassesIter(self)
|
|
396
|
+
|
|
397
|
+
def __getitem__(self, CutNode node):
|
|
398
|
+
"""
|
|
399
|
+
Return a linear subclass stored in a given CutNode.
|
|
400
|
+
|
|
401
|
+
Internal function.
|
|
402
|
+
|
|
403
|
+
EXAMPLES::
|
|
404
|
+
|
|
405
|
+
sage: from sage.matroids.extension import LinearSubclasses
|
|
406
|
+
sage: M = matroids.Uniform(3, 6)
|
|
407
|
+
sage: len([mc for mc in LinearSubclasses(M)])
|
|
408
|
+
83
|
|
409
|
+
"""
|
|
410
|
+
cdef long p
|
|
411
|
+
return [self._hyperplanes[p] for p in node.planes()]
|
|
412
|
+
|
|
413
|
+
|
|
414
|
+
cdef class MatroidExtensions(LinearSubclasses):
|
|
415
|
+
r"""
|
|
416
|
+
An iterable set of single-element extensions of a given matroid.
|
|
417
|
+
|
|
418
|
+
INPUT:
|
|
419
|
+
|
|
420
|
+
- ``M`` -- matroid
|
|
421
|
+
- ``e`` -- an element
|
|
422
|
+
- ``line_length`` -- integer (default: ``None``)
|
|
423
|
+
- ``subsets`` -- (default: ``None``) a set of subsets of the groundset of
|
|
424
|
+
``M``
|
|
425
|
+
- ``splice`` -- a matroid `N` such that for some `f \in E(M)`, we have
|
|
426
|
+
`N\setminus e= M\setminus f`
|
|
427
|
+
|
|
428
|
+
OUTPUT:
|
|
429
|
+
|
|
430
|
+
An enumerator for the extensions of ``M`` to a matroid ``N`` so that
|
|
431
|
+
`N\setminus e = M`. If ``line_length`` is not ``None``, the enumeration
|
|
432
|
+
is restricted to extensions `N` without `U(2, k)`-minors, where
|
|
433
|
+
``k > line_length``.
|
|
434
|
+
|
|
435
|
+
If ``subsets`` is not ``None``, the enumeration is restricted to
|
|
436
|
+
extensions `N` of `M` by element `e` so that all hyperplanes of `M`
|
|
437
|
+
which fully contain some set from ``subsets``, will also span `e`.
|
|
438
|
+
|
|
439
|
+
If ``splice`` is not ``None``, then the enumeration is restricted to
|
|
440
|
+
extensions `M'` such that `M'\setminus f = N`, where
|
|
441
|
+
`E(M)\setminus E(N)=\{f\}`.
|
|
442
|
+
|
|
443
|
+
EXAMPLES::
|
|
444
|
+
|
|
445
|
+
sage: from sage.matroids.advanced import *
|
|
446
|
+
sage: M = matroids.Uniform(3, 6)
|
|
447
|
+
sage: len([N for N in MatroidExtensions(M, 'x')])
|
|
448
|
+
83
|
|
449
|
+
sage: len([N for N in MatroidExtensions(M, 'x', line_length=5)])
|
|
450
|
+
22
|
|
451
|
+
sage: for N in MatroidExtensions(M, 'x', subsets=[[0, 1], [2, 3],
|
|
452
|
+
....: [4, 5]]): print(N)
|
|
453
|
+
Matroid of rank 3 on 7 elements with 32 bases
|
|
454
|
+
Matroid of rank 3 on 7 elements with 20 bases
|
|
455
|
+
sage: M = BasisMatroid(matroids.catalog.BetsyRoss()); M
|
|
456
|
+
Matroid of rank 3 on 11 elements with 140 bases
|
|
457
|
+
sage: e = 'k'; f = 'h'; Me = M.delete(e); Mf=M.delete(f)
|
|
458
|
+
sage: for N in MatroidExtensions(Mf, f, splice=Me): print(N)
|
|
459
|
+
Matroid of rank 3 on 11 elements with 141 bases
|
|
460
|
+
Matroid of rank 3 on 11 elements with 140 bases
|
|
461
|
+
sage: for N in MatroidExtensions(Me, e, splice=Mf): print(N)
|
|
462
|
+
Matroid of rank 3 on 11 elements with 141 bases
|
|
463
|
+
Matroid of rank 3 on 11 elements with 140 bases
|
|
464
|
+
|
|
465
|
+
Note that this class is intended for runtime, internal use, so no
|
|
466
|
+
loads/dumps mechanism was implemented.
|
|
467
|
+
"""
|
|
468
|
+
def __init__(self, M, e, line_length=None, subsets=None, splice=None, orderly=False):
|
|
469
|
+
"""
|
|
470
|
+
See the class docstring for full documentation.
|
|
471
|
+
|
|
472
|
+
EXAMPLES::
|
|
473
|
+
|
|
474
|
+
sage: from sage.matroids.advanced import *
|
|
475
|
+
sage: M = matroids.Uniform(3, 6)
|
|
476
|
+
sage: len([N for N in MatroidExtensions(M, 'x')])
|
|
477
|
+
83
|
|
478
|
+
sage: len([N for N in MatroidExtensions(M, 'x', line_length=5)])
|
|
479
|
+
22
|
|
480
|
+
sage: for N in MatroidExtensions(M, 'x', subsets=[[0, 1], [2, 3],
|
|
481
|
+
....: [4, 5]]): print(N)
|
|
482
|
+
Matroid of rank 3 on 7 elements with 32 bases
|
|
483
|
+
Matroid of rank 3 on 7 elements with 20 bases
|
|
484
|
+
"""
|
|
485
|
+
if M.full_rank() == 0:
|
|
486
|
+
pass
|
|
487
|
+
if isinstance(M, BasisMatroid):
|
|
488
|
+
BM = M
|
|
489
|
+
else:
|
|
490
|
+
BM = BasisMatroid(M)
|
|
491
|
+
LinearSubclasses.__init__(self, BM, line_length=line_length, subsets=subsets, splice=splice)
|
|
492
|
+
self._BX = BM._extension(e, [])
|
|
493
|
+
self._BH = [BM._extension(e, [self._hyperplanes[i]]) for i in range(len(self._hyperplanes))]
|
|
494
|
+
if orderly:
|
|
495
|
+
self._orderly = True
|
|
496
|
+
|
|
497
|
+
def __getitem__(self, CutNode node):
|
|
498
|
+
"""
|
|
499
|
+
Return a single-element extension determined by a given CutNode.
|
|
500
|
+
|
|
501
|
+
Internal function.
|
|
502
|
+
|
|
503
|
+
EXAMPLES::
|
|
504
|
+
|
|
505
|
+
sage: from sage.matroids.advanced import *
|
|
506
|
+
sage: M = matroids.Uniform(3, 6)
|
|
507
|
+
sage: len([N for N in MatroidExtensions(M, 'x')])
|
|
508
|
+
83
|
|
509
|
+
"""
|
|
510
|
+
cdef long i
|
|
511
|
+
X = BasisMatroid(self._BX)
|
|
512
|
+
for i in node.planes():
|
|
513
|
+
bitset_intersection(X._bb, X._bb, (<BasisMatroid>self._BH[i])._bb)
|
|
514
|
+
X._reset_invariants()
|
|
515
|
+
if self._orderly and not X.is_distinguished(len(X) - 1):
|
|
516
|
+
return None
|
|
517
|
+
if self._line_length > 0 and X.has_line_minor(self._line_length + 1):
|
|
518
|
+
return None
|
|
519
|
+
return X
|
|
Binary file
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-modules
|
|
2
|
+
from sage.matroids.matroid cimport Matroid
|
|
3
|
+
from sage.matroids.set_system cimport SetSystem
|
|
4
|
+
|
|
5
|
+
cdef class FlatsMatroid(Matroid):
|
|
6
|
+
cdef frozenset _groundset
|
|
7
|
+
cdef int _matroid_rank
|
|
8
|
+
cdef dict _F # flats
|
|
9
|
+
cdef object _L # lattice of flats
|
|
10
|
+
cpdef frozenset groundset(self)
|
|
11
|
+
|
|
12
|
+
cpdef int _rank(self, frozenset X) except? -1
|
|
13
|
+
cpdef frozenset _closure(self, frozenset X)
|
|
14
|
+
cpdef bint _is_closed(self, frozenset X) noexcept
|
|
15
|
+
|
|
16
|
+
cpdef full_rank(self)
|
|
17
|
+
|
|
18
|
+
# enumeration
|
|
19
|
+
cpdef SetSystem flats(self, long k)
|
|
20
|
+
cpdef list whitney_numbers(self)
|
|
21
|
+
cpdef list whitney_numbers2(self)
|
|
22
|
+
|
|
23
|
+
# isomorphism and relabeling
|
|
24
|
+
cpdef _is_isomorphic(self, other, certificate=*)
|
|
25
|
+
cpdef relabel(self, mapping)
|
|
26
|
+
|
|
27
|
+
# verification
|
|
28
|
+
cpdef is_valid(self, certificate=*)
|