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 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-modules
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-modules
|
|
2
|
+
r"""
|
|
3
|
+
Homsets of finitely presented graded modules over the Steenrod algebra
|
|
4
|
+
|
|
5
|
+
EXAMPLES::
|
|
6
|
+
|
|
7
|
+
sage: # needs sage.combinat
|
|
8
|
+
sage: from sage.modules.fp_graded.steenrod.module import SteenrodFPModule
|
|
9
|
+
sage: from sage.misc.sage_unittest import TestSuite
|
|
10
|
+
sage: A = SteenrodAlgebra(2, profile=(3,2,1))
|
|
11
|
+
sage: F = SteenrodFPModule(A, [1,3], names='c')
|
|
12
|
+
sage: L = SteenrodFPModule(A, [2,3], [[Sq(2),Sq(1)], [0,Sq(2)]], names='h')
|
|
13
|
+
sage: homset = Hom(F, L); homset
|
|
14
|
+
Set of Morphisms from Free graded left module on 2 generators ...
|
|
15
|
+
sage: homset.an_element()
|
|
16
|
+
Module morphism:
|
|
17
|
+
From: Free graded left module on 2 generators over sub-Hopf algebra of mod 2 Steenrod algebra, milnor basis, profile function [3, 2, 1]
|
|
18
|
+
To: Finitely presented left module on 2 generators and 2 relations over sub-Hopf algebra of mod 2 Steenrod algebra, milnor basis, profile function [3, 2, 1]
|
|
19
|
+
Defn: c[1] |--> 0
|
|
20
|
+
c[3] |--> Sq(1)*h[2]
|
|
21
|
+
sage: f = homset([L((Sq(1), 1)), L((0, Sq(2)))]); f
|
|
22
|
+
Module morphism:
|
|
23
|
+
From: Free graded left module on 2 generators over sub-Hopf algebra of mod 2 Steenrod algebra, milnor basis, profile function [3, 2, 1]
|
|
24
|
+
To: Finitely presented left module on 2 generators and 2 relations over sub-Hopf algebra of mod 2 Steenrod algebra, milnor basis, profile function [3, 2, 1]
|
|
25
|
+
Defn: c[1] |--> Sq(1)*h[2] + h[3]
|
|
26
|
+
c[3] |--> Sq(2)*h[3]
|
|
27
|
+
sage: f.kernel_inclusion()
|
|
28
|
+
Module morphism:
|
|
29
|
+
From: Finitely presented left module on 2 generators and 1 relation over sub-Hopf algebra of mod 2 Steenrod algebra, milnor basis, profile function [3, 2, 1]
|
|
30
|
+
To: Free graded left module on 2 generators over sub-Hopf algebra of mod 2 Steenrod algebra, milnor basis, profile function [3, 2, 1]
|
|
31
|
+
Defn: g[3] |--> c[3]
|
|
32
|
+
g[4] |--> Sq(0,1)*c[1]
|
|
33
|
+
sage: TestSuite(homset).run()
|
|
34
|
+
|
|
35
|
+
AUTHORS:
|
|
36
|
+
|
|
37
|
+
- Robert R. Bruner, Michael J. Catanzaro (2012): Initial version.
|
|
38
|
+
- Sverre Lunoee--Nielsen and Koen van Woerden (2019-11-29): Updated the
|
|
39
|
+
original software to Sage version 8.9.
|
|
40
|
+
- Sverre Lunoee--Nielsen (2020-07-01): Refactored the code and added
|
|
41
|
+
new documentation and tests.
|
|
42
|
+
"""
|
|
43
|
+
|
|
44
|
+
# ****************************************************************************
|
|
45
|
+
# Copyright (C) 2011 Robert R. Bruner <rrb@math.wayne.edu> and
|
|
46
|
+
# Michael J. Catanzaro <mike@math.wayne.edu>
|
|
47
|
+
#
|
|
48
|
+
# This program is free software: you can redistribute it and/or modify
|
|
49
|
+
# it under the terms of the GNU General Public License as published by
|
|
50
|
+
# the Free Software Foundation, either version 2 of the License, or
|
|
51
|
+
# (at your option) any later version.
|
|
52
|
+
# https://www.gnu.org/licenses/
|
|
53
|
+
# ****************************************************************************
|
|
54
|
+
|
|
55
|
+
from sage.modules.fp_graded.homspace import FPModuleHomspace
|
|
56
|
+
from sage.modules.fp_graded.free_homspace import FreeGradedModuleHomspace
|
|
57
|
+
from .morphism import SteenrodFPModuleMorphism, SteenrodFreeModuleMorphism
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
class SteenrodFPModuleHomspace(FPModuleHomspace):
|
|
61
|
+
Element = SteenrodFPModuleMorphism
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
class SteenrodFreeModuleHomspace(SteenrodFPModuleHomspace, FreeGradedModuleHomspace):
|
|
65
|
+
Element = SteenrodFreeModuleMorphism
|
|
@@ -0,0 +1,477 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-modules
|
|
2
|
+
r"""
|
|
3
|
+
Finitely presented graded modules over the Steenrod algebra
|
|
4
|
+
|
|
5
|
+
This package allows the user to define finitely presented modules
|
|
6
|
+
over the mod `p` Steenrod algebra, elements of them, and
|
|
7
|
+
morphisms between them. Methods are provided for doing basic homological
|
|
8
|
+
algebra, e.g. computing kernels and images of homomorphisms, and finding
|
|
9
|
+
free resolutions of modules.
|
|
10
|
+
|
|
11
|
+
.. RUBRIC:: Theoretical background
|
|
12
|
+
|
|
13
|
+
The category of finitely presented graded modules over an arbitrary
|
|
14
|
+
non-Noetherian graded ring `R` is not abelian in general, since
|
|
15
|
+
kernels of homomorphisms are not necessarily finitely presented.
|
|
16
|
+
|
|
17
|
+
The mod `p` Steenrod algebra is non-Noetherian, but it is the
|
|
18
|
+
union of a countable set of finite sub-Hopf algebras
|
|
19
|
+
([Mar1983]_ Ch. 15, Sect. 1, Prop 7). It is therefore an example of a
|
|
20
|
+
`P`-algebra ([Mar1983]_ Ch. 13).
|
|
21
|
+
|
|
22
|
+
Any finitely presented module over the Steenrod algebra is defined
|
|
23
|
+
over one of these finite sub-Hopf algebras. Similarly, any
|
|
24
|
+
homomorphism between finitely presented modules over the Steenrod
|
|
25
|
+
algebra is defined over a finite sub-Hopf algebra of the Steenrod
|
|
26
|
+
algebra. Further, tensoring up from the category of modules over a
|
|
27
|
+
sub-Hopf algebra is an exact functor, since the Steenrod algebra is
|
|
28
|
+
free over any sub-Hopf algebra.
|
|
29
|
+
|
|
30
|
+
It follows that kernels, cokernels, images, and, more generally, any finite
|
|
31
|
+
limits or colimits can be computed in the category of modules over the
|
|
32
|
+
Steenrod algebra by working in the category of modules over an appropriate
|
|
33
|
+
finite sub-Hopf algebra.
|
|
34
|
+
|
|
35
|
+
It is also the case that presentations of modules and the images of the
|
|
36
|
+
generators of the domain of a homomorphism are the same over the sub-Hopf
|
|
37
|
+
algebra and over the whole Steenrod algebra, so that the tensoring up is
|
|
38
|
+
entirely implicit and requires no computation.
|
|
39
|
+
|
|
40
|
+
The definitions and computations carried out by this package are thus done
|
|
41
|
+
as follows. First, find a small finite sub-Hopf algebra over which the
|
|
42
|
+
computation can be done. Then, carry out the calculation there, where it
|
|
43
|
+
is a finite problem and can be reduced to linear algebra over a finite
|
|
44
|
+
prime field.
|
|
45
|
+
|
|
46
|
+
For examples, see the `Steenrod algebra modules
|
|
47
|
+
<../../../../../../thematic_tutorials/steenrod_algebra_modules.html>`_
|
|
48
|
+
thematic tutorial.
|
|
49
|
+
|
|
50
|
+
TESTS::
|
|
51
|
+
|
|
52
|
+
sage: from sage.modules.fp_graded.steenrod.module import SteenrodFPModule
|
|
53
|
+
sage: A = SteenrodAlgebra(2)
|
|
54
|
+
sage: K = SteenrodFPModule(A, [1,3]); K
|
|
55
|
+
Free graded left module on 2 generators over ...
|
|
56
|
+
sage: K.category()
|
|
57
|
+
Category of finite dimensional graded modules with basis over mod 2 Steenrod algebra, milnor basis
|
|
58
|
+
sage: L = SteenrodFPModule(A, [2,3], [[Sq(2),Sq(1)], [0,Sq(2)]]); L
|
|
59
|
+
Finitely presented left module on 2 generators and 2 relations ...
|
|
60
|
+
sage: M = SteenrodFPModule(A, [2,3], [[Sq(2),Sq(1)]]); M
|
|
61
|
+
Finitely presented left module on 2 generators and 1 relation ...
|
|
62
|
+
sage: m = M((0,1)); m
|
|
63
|
+
g[3]
|
|
64
|
+
sage: K.is_parent_of(m)
|
|
65
|
+
False
|
|
66
|
+
sage: L.is_parent_of(m)
|
|
67
|
+
False
|
|
68
|
+
sage: M.is_parent_of(m)
|
|
69
|
+
True
|
|
70
|
+
|
|
71
|
+
sage: SteenrodFPModule(ZZ, [0])
|
|
72
|
+
Traceback (most recent call last):
|
|
73
|
+
...
|
|
74
|
+
AttributeError: 'sage.rings.integer_ring.IntegerRing_class' object has no attribute 'free_graded_module'...
|
|
75
|
+
|
|
76
|
+
AUTHORS:
|
|
77
|
+
|
|
78
|
+
- Robert R. Bruner, Michael J. Catanzaro (2012): Initial version.
|
|
79
|
+
- Sverre Lunoee--Nielsen and Koen van Woerden (2019-11-29): Updated the
|
|
80
|
+
original software to Sage version 8.9.
|
|
81
|
+
- Sverre Lunoee--Nielsen (2020-07-01): Refactored the code and added
|
|
82
|
+
new documentation and tests.
|
|
83
|
+
"""
|
|
84
|
+
|
|
85
|
+
# ****************************************************************************
|
|
86
|
+
# Copyright (C) 2011 Robert R. Bruner <rrb@math.wayne.edu>
|
|
87
|
+
# and Michael J. Catanzaro <mike@math.wayne.edu>
|
|
88
|
+
#
|
|
89
|
+
# This program is free software: you can redistribute it and/or modify
|
|
90
|
+
# it under the terms of the GNU General Public License as published by
|
|
91
|
+
# the Free Software Foundation, either version 2 of the License, or
|
|
92
|
+
# (at your option) any later version.
|
|
93
|
+
# https://www.gnu.org/licenses/
|
|
94
|
+
# ****************************************************************************
|
|
95
|
+
|
|
96
|
+
from sage.rings.infinity import infinity
|
|
97
|
+
from sage.algebras.steenrod.steenrod_algebra import SteenrodAlgebra_generic
|
|
98
|
+
from sage.modules.fp_graded.module import FPModule
|
|
99
|
+
from sage.modules.fp_graded.free_module import FreeGradedModule
|
|
100
|
+
from .profile import enveloping_profile_elements
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
class SteenrodModuleMixin:
|
|
104
|
+
"""
|
|
105
|
+
Mixin class for common methods of the Steenrod algebra modules.
|
|
106
|
+
"""
|
|
107
|
+
def profile(self):
|
|
108
|
+
r"""
|
|
109
|
+
Return a finite profile over which ``self`` can be defined.
|
|
110
|
+
|
|
111
|
+
Any finitely presented module over the Steenrod algebra can be
|
|
112
|
+
defined over a finite-dimensional sub-Hopf algebra, and this
|
|
113
|
+
method identifies such a sub-Hopf algebra and returns its
|
|
114
|
+
profile function.
|
|
115
|
+
|
|
116
|
+
.. NOTE::
|
|
117
|
+
|
|
118
|
+
The profile produced by this function is reasonably small
|
|
119
|
+
but is not guaranteed to be minimal.
|
|
120
|
+
|
|
121
|
+
EXAMPLES::
|
|
122
|
+
|
|
123
|
+
sage: from sage.modules.fp_graded.steenrod.module import SteenrodFPModule
|
|
124
|
+
sage: A = SteenrodAlgebra(2)
|
|
125
|
+
sage: M = SteenrodFPModule(A, [0,1], [[Sq(2),Sq(1)],[0,Sq(2)],[Sq(3),0]])
|
|
126
|
+
sage: M.profile()
|
|
127
|
+
(2, 1)
|
|
128
|
+
|
|
129
|
+
TESTS::
|
|
130
|
+
|
|
131
|
+
sage: from sage.modules.fp_graded.steenrod.module import SteenrodFPModule
|
|
132
|
+
sage: A = SteenrodAlgebra(2)
|
|
133
|
+
sage: X = SteenrodFPModule(A, [0])
|
|
134
|
+
sage: X.profile()
|
|
135
|
+
(0,)
|
|
136
|
+
"""
|
|
137
|
+
elements = [coeffifient for value in self.relations()
|
|
138
|
+
for coeffifient in value.dense_coefficient_list()]
|
|
139
|
+
elements = [a for a in elements if a not in (0, 1)]
|
|
140
|
+
|
|
141
|
+
return enveloping_profile_elements(elements,
|
|
142
|
+
char=self.base_ring().characteristic())
|
|
143
|
+
|
|
144
|
+
def export_module_definition(self, powers_of_two_only=True):
|
|
145
|
+
r"""
|
|
146
|
+
Return the module to the input
|
|
147
|
+
`format used by R. Bruner's Ext software
|
|
148
|
+
<http://www.math.wayne.edu/~rrb/cohom/modfmt.html>`_ as a string.
|
|
149
|
+
|
|
150
|
+
INPUT:
|
|
151
|
+
|
|
152
|
+
- ``powers_of_two_only`` -- boolean (default: ``True``); if the
|
|
153
|
+
output should contain the action of all Steenrod squaring operations
|
|
154
|
+
(restricted by the profile), or only the action of the operations
|
|
155
|
+
of degree equal to a power of two
|
|
156
|
+
|
|
157
|
+
EXAMPLES::
|
|
158
|
+
|
|
159
|
+
sage: # needs sage.combinat
|
|
160
|
+
sage: from sage.modules.fp_graded.steenrod.module import SteenrodFPModule
|
|
161
|
+
sage: A1 = algebra=SteenrodAlgebra(p=2, profile=[2,1])
|
|
162
|
+
sage: M = SteenrodFPModule(A1, [0])
|
|
163
|
+
sage: print(M.export_module_definition())
|
|
164
|
+
8 0 1 2 3 3 4 5 6
|
|
165
|
+
0 1 1 1
|
|
166
|
+
2 1 1 4
|
|
167
|
+
3 1 1 5
|
|
168
|
+
6 1 1 7
|
|
169
|
+
0 2 1 2
|
|
170
|
+
1 2 2 3 4
|
|
171
|
+
2 2 1 5
|
|
172
|
+
3 2 1 6
|
|
173
|
+
4 2 1 6
|
|
174
|
+
5 2 1 7
|
|
175
|
+
sage: N = SteenrodFPModule(A1, [0], [[Sq(1)]])
|
|
176
|
+
sage: print(N.export_module_definition())
|
|
177
|
+
4 0 2 3 5
|
|
178
|
+
1 1 1 2
|
|
179
|
+
0 2 1 1
|
|
180
|
+
2 2 1 3
|
|
181
|
+
sage: print(N.export_module_definition(powers_of_two_only=False))
|
|
182
|
+
4 0 2 3 5
|
|
183
|
+
1 1 1 2
|
|
184
|
+
0 2 1 1
|
|
185
|
+
2 2 1 3
|
|
186
|
+
0 3 1 2
|
|
187
|
+
sage: A2 = SteenrodAlgebra(p=2, profile=[3,2,1])
|
|
188
|
+
sage: Hko = SteenrodFPModule(A2, [0], [[Sq(1)], [Sq(2)]])
|
|
189
|
+
sage: print(Hko.export_module_definition())
|
|
190
|
+
8 0 4 6 7 10 11 13 17
|
|
191
|
+
2 1 1 3
|
|
192
|
+
4 1 1 5
|
|
193
|
+
1 2 1 2
|
|
194
|
+
5 2 1 6
|
|
195
|
+
0 4 1 1
|
|
196
|
+
2 4 1 4
|
|
197
|
+
3 4 1 5
|
|
198
|
+
6 4 1 7
|
|
199
|
+
|
|
200
|
+
TESTS::
|
|
201
|
+
|
|
202
|
+
sage: # needs sage.combinat
|
|
203
|
+
sage: A = SteenrodAlgebra()
|
|
204
|
+
sage: M = A.free_graded_module([])
|
|
205
|
+
sage: M.export_module_definition()
|
|
206
|
+
Traceback (most recent call last):
|
|
207
|
+
...
|
|
208
|
+
ValueError: this module is not defined over a finite algebra
|
|
209
|
+
sage: A1 = SteenrodAlgebra(profile=[2,1])
|
|
210
|
+
sage: M1 = A1.free_graded_module([])
|
|
211
|
+
sage: s = M1.export_module_definition()
|
|
212
|
+
The module connectivity is infinite, so there is nothing to export.
|
|
213
|
+
sage: s
|
|
214
|
+
''
|
|
215
|
+
sage: P1 = SteenrodAlgebra(p=5, profile=[[], [2,1]])
|
|
216
|
+
sage: N = P1.free_graded_module([])
|
|
217
|
+
sage: N.export_module_definition()
|
|
218
|
+
Traceback (most recent call last):
|
|
219
|
+
...
|
|
220
|
+
ValueError: this function is not implemented for odd primes
|
|
221
|
+
"""
|
|
222
|
+
if not self.base_ring().is_finite():
|
|
223
|
+
raise ValueError('this module is not defined over a finite algebra')
|
|
224
|
+
return
|
|
225
|
+
|
|
226
|
+
if self.base_ring().characteristic() != 2:
|
|
227
|
+
raise ValueError('this function is not implemented for odd primes')
|
|
228
|
+
return
|
|
229
|
+
|
|
230
|
+
n = self.connectivity()
|
|
231
|
+
if n == infinity:
|
|
232
|
+
print('The module connectivity is infinite, so there is ' +
|
|
233
|
+
'nothing to export.')
|
|
234
|
+
return ''
|
|
235
|
+
|
|
236
|
+
limit = self.base_ring().top_class().degree() + max(self.generator_degrees())
|
|
237
|
+
|
|
238
|
+
# Create a list of bases, one for every module degree we consider.
|
|
239
|
+
vector_space_basis = [self.basis_elements(i)
|
|
240
|
+
for i in range(n, limit + 1)]
|
|
241
|
+
|
|
242
|
+
additive_generator_degrees = []
|
|
243
|
+
additive_generator_global_indices = [0]
|
|
244
|
+
for dim, basis_vectors in enumerate(vector_space_basis):
|
|
245
|
+
additive_generator_global_indices.append(
|
|
246
|
+
len(basis_vectors) + additive_generator_global_indices[-1])
|
|
247
|
+
additive_generator_degrees += len(basis_vectors) * [dim + n]
|
|
248
|
+
|
|
249
|
+
# Print the degrees of the additive generators.
|
|
250
|
+
ret = '%d %s' % (len(additive_generator_degrees),
|
|
251
|
+
' '.join('%d' % x for x in additive_generator_degrees))
|
|
252
|
+
|
|
253
|
+
# A private function which transforms a vector in a given dimension
|
|
254
|
+
# to a vector of global indices for the basis elements corresponding
|
|
255
|
+
# to the nonzero entries in the vector. E.g.
|
|
256
|
+
# _GetIndices(dim=2, vec=(1,0,1)) will return a vector of length two,
|
|
257
|
+
# (a, b), where a is the index of the first vector in the basis for
|
|
258
|
+
# the 2-dimensional part of the module, and b is the index of the
|
|
259
|
+
# last vector in the same part.
|
|
260
|
+
def _GetIndices(dim, vec):
|
|
261
|
+
if len(vector_space_basis[dim]) != len(vec):
|
|
262
|
+
raise ValueError('the given vector\n%s\nhas the wrong size, it should be %d' % (str(vec), len(vector_space_basis[dim])))
|
|
263
|
+
base_index = additive_generator_global_indices[dim]
|
|
264
|
+
return [base_index + a for a, c in enumerate(vec) if c != 0]
|
|
265
|
+
|
|
266
|
+
profile = self.base_ring()._profile
|
|
267
|
+
if powers_of_two_only:
|
|
268
|
+
powers = [2**i for i in range(profile[0])]
|
|
269
|
+
else:
|
|
270
|
+
powers = range(1, 2**profile[0])
|
|
271
|
+
|
|
272
|
+
R = self.base_ring()
|
|
273
|
+
for k in powers:
|
|
274
|
+
Sqk = R.Sq(k)
|
|
275
|
+
images = [[(Sqk * x).vector_presentation() for x in D]
|
|
276
|
+
for D in vector_space_basis]
|
|
277
|
+
|
|
278
|
+
element_index = 0
|
|
279
|
+
|
|
280
|
+
# Note that the variable dim is relative to the bottom dimension, n.
|
|
281
|
+
for dim, image in enumerate(images):
|
|
282
|
+
for im in image:
|
|
283
|
+
if im != 0 and im is not None:
|
|
284
|
+
values = _GetIndices(dim + k, im)
|
|
285
|
+
|
|
286
|
+
ret += "\n%d %d %d %s" % (
|
|
287
|
+
element_index,
|
|
288
|
+
k,
|
|
289
|
+
len(values),
|
|
290
|
+
" ".join("%d" % x for x in values))
|
|
291
|
+
element_index += 1
|
|
292
|
+
return ret
|
|
293
|
+
|
|
294
|
+
|
|
295
|
+
class SteenrodFPModule(FPModule, SteenrodModuleMixin):
|
|
296
|
+
r"""
|
|
297
|
+
Create a finitely presented module over the Steenrod algebra.
|
|
298
|
+
|
|
299
|
+
.. SEEALSO::
|
|
300
|
+
|
|
301
|
+
The thematic tutorial on `Steenrod algebra modules
|
|
302
|
+
<../../../../../../thematic_tutorials/steenrod_algebra_modules.html>`_.
|
|
303
|
+
|
|
304
|
+
INPUT:
|
|
305
|
+
|
|
306
|
+
One of the following:
|
|
307
|
+
|
|
308
|
+
- ``arg0`` -- a morphism such that the module is the cokernel, or
|
|
309
|
+
a free graded module, in which case the output is the same
|
|
310
|
+
module, viewed as finitely presented
|
|
311
|
+
|
|
312
|
+
Otherwise:
|
|
313
|
+
|
|
314
|
+
- ``arg0`` -- the graded connected algebra over which the module is
|
|
315
|
+
defined; this algebra must be equipped with a graded basis
|
|
316
|
+
|
|
317
|
+
- ``generator_degrees`` -- tuple of integer degrees
|
|
318
|
+
|
|
319
|
+
- ``relations`` -- tuple of relations; a relation is a tuple of
|
|
320
|
+
coefficients `(c_1, \ldots, c_n)`, ordered so that they
|
|
321
|
+
correspond to the module generators, that is, such a tuple
|
|
322
|
+
corresponds to the relation
|
|
323
|
+
|
|
324
|
+
.. MATH::
|
|
325
|
+
|
|
326
|
+
c_1 g_1 + \ldots + c_n g_n = 0
|
|
327
|
+
|
|
328
|
+
if the generators are `(g_1, \ldots, g_n)`
|
|
329
|
+
|
|
330
|
+
TESTS::
|
|
331
|
+
|
|
332
|
+
sage: from sage.modules.fp_graded.steenrod.module import SteenrodFPModule
|
|
333
|
+
sage: SteenrodFPModule(SteenrodAlgebra(2), (0,))
|
|
334
|
+
Free graded left module on 1 generator over mod 2 Steenrod algebra, milnor basis
|
|
335
|
+
"""
|
|
336
|
+
def _Hom_(self, other, category=None):
|
|
337
|
+
"""
|
|
338
|
+
The homset from ``self`` to ``other``.
|
|
339
|
+
|
|
340
|
+
TESTS::
|
|
341
|
+
|
|
342
|
+
sage: from sage.modules.fp_graded.steenrod.module import SteenrodFPModule
|
|
343
|
+
sage: A = SteenrodAlgebra(2)
|
|
344
|
+
sage: F = SteenrodFPModule(A, [1,3])
|
|
345
|
+
sage: L = SteenrodFPModule(A, [2,3], [[Sq(2),Sq(1)], [0,Sq(2)]])
|
|
346
|
+
|
|
347
|
+
sage: Hom(F, L)
|
|
348
|
+
Set of Morphisms from Free graded left module on 2 generators ...
|
|
349
|
+
|
|
350
|
+
sage: M = A.free_graded_module((2,1))
|
|
351
|
+
sage: Hom(F, M)
|
|
352
|
+
Set of Morphisms from Free graded left module on 2 generators ...
|
|
353
|
+
"""
|
|
354
|
+
from .homspace import SteenrodFPModuleHomspace
|
|
355
|
+
return SteenrodFPModuleHomspace(self, other, category=category)
|
|
356
|
+
|
|
357
|
+
def resolution(self, k, top_dim=None, verbose=False):
|
|
358
|
+
r"""
|
|
359
|
+
A free resolution of ``self`` of the given length.
|
|
360
|
+
|
|
361
|
+
INPUT:
|
|
362
|
+
|
|
363
|
+
- ``k`` -- nonnegative integer
|
|
364
|
+
- ``top_dim`` -- (optional) stop the computation at this degree
|
|
365
|
+
- ``verbose`` -- boolean (default: ``False``); whether log messages are
|
|
366
|
+
printed
|
|
367
|
+
|
|
368
|
+
OUTPUT: list of homomorphisms `[\epsilon, f_1, \ldots, f_k]` such that
|
|
369
|
+
|
|
370
|
+
.. MATH::
|
|
371
|
+
|
|
372
|
+
\begin{gathered}
|
|
373
|
+
f_i: F_i \to F_{i-1} \text{ for } 1\leq i\leq k, \\
|
|
374
|
+
\epsilon: F_0\to M,
|
|
375
|
+
\end{gathered}
|
|
376
|
+
|
|
377
|
+
where each `F_i` is a finitely generated free module, and the
|
|
378
|
+
sequence
|
|
379
|
+
|
|
380
|
+
.. MATH::
|
|
381
|
+
|
|
382
|
+
F_k \xrightarrow{f_k} F_{k-1} \xrightarrow{f_{k-1}} \ldots
|
|
383
|
+
\rightarrow F_0 \xrightarrow{\epsilon} M \rightarrow 0
|
|
384
|
+
|
|
385
|
+
is exact. Note that the 0th element in this list is the map
|
|
386
|
+
`\epsilon`, and the rest of the maps are between free
|
|
387
|
+
modules.
|
|
388
|
+
|
|
389
|
+
EXAMPLES::
|
|
390
|
+
|
|
391
|
+
sage: # needs sage.combinat
|
|
392
|
+
sage: from sage.modules.fp_graded.steenrod.module import SteenrodFPModule
|
|
393
|
+
sage: A = SteenrodAlgebra(2)
|
|
394
|
+
sage: Hko = SteenrodFPModule(A, [0], [[Sq(1)], [Sq(2)]])
|
|
395
|
+
sage: res = Hko.resolution(5, verbose=True)
|
|
396
|
+
Computing f_1 (1/5)
|
|
397
|
+
Computing f_2 (2/5)
|
|
398
|
+
Computing using the profile:
|
|
399
|
+
(2, 1)
|
|
400
|
+
Resolving the kernel in the range of dimensions [1, 8]: 1 2 3 4 5 6 7 8.
|
|
401
|
+
Computing f_3 (3/5)
|
|
402
|
+
Computing using the profile:
|
|
403
|
+
(2, 1)
|
|
404
|
+
Resolving the kernel in the range of dimensions [2, 10]: 2 3 4 5 6 7 8 9 10.
|
|
405
|
+
Computing f_4 (4/5)
|
|
406
|
+
Computing using the profile:
|
|
407
|
+
(2, 1)
|
|
408
|
+
Resolving the kernel in the range of dimensions [3, 13]: 3 4 5 6 7 8 9 10 11 12 13.
|
|
409
|
+
Computing f_5 (5/5)
|
|
410
|
+
Computing using the profile:
|
|
411
|
+
(2, 1)
|
|
412
|
+
Resolving the kernel in the range of dimensions [4, 18]: 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18.
|
|
413
|
+
sage: [x.domain() for x in res]
|
|
414
|
+
[Free graded left module on 1 generator over mod 2 Steenrod algebra, milnor basis,
|
|
415
|
+
Free graded left module on 2 generators over mod 2 Steenrod algebra, milnor basis,
|
|
416
|
+
Free graded left module on 2 generators over mod 2 Steenrod algebra, milnor basis,
|
|
417
|
+
Free graded left module on 2 generators over mod 2 Steenrod algebra, milnor basis,
|
|
418
|
+
Free graded left module on 3 generators over mod 2 Steenrod algebra, milnor basis,
|
|
419
|
+
Free graded left module on 4 generators over mod 2 Steenrod algebra, milnor basis]
|
|
420
|
+
|
|
421
|
+
When there are no relations, the resolution is trivial::
|
|
422
|
+
|
|
423
|
+
sage: # needs sage.combinat
|
|
424
|
+
sage: M = SteenrodFPModule(A, [0])
|
|
425
|
+
sage: M.resolution(4)
|
|
426
|
+
[Module endomorphism of Free graded left module on 1 generator over mod 2 Steenrod algebra, milnor basis
|
|
427
|
+
Defn: g[0] |--> g[0],
|
|
428
|
+
Module morphism:
|
|
429
|
+
From: Free graded left module on 0 generators over mod 2 Steenrod algebra, milnor basis
|
|
430
|
+
To: Free graded left module on 1 generator over mod 2 Steenrod algebra, milnor basis,
|
|
431
|
+
Module endomorphism of Free graded left module on 0 generators over mod 2 Steenrod algebra, milnor basis,
|
|
432
|
+
Module endomorphism of Free graded left module on 0 generators over mod 2 Steenrod algebra, milnor basis,
|
|
433
|
+
Module endomorphism of Free graded left module on 0 generators over mod 2 Steenrod algebra, milnor basis]
|
|
434
|
+
"""
|
|
435
|
+
algebra = self.base_ring()
|
|
436
|
+
finite_algebra = SteenrodAlgebra_generic(algebra.prime(),
|
|
437
|
+
profile=self.profile())
|
|
438
|
+
|
|
439
|
+
# Change rings to the finite algebra, and call the base class
|
|
440
|
+
# implementation of this function.
|
|
441
|
+
res = FPModule.resolution(self.change_ring(finite_algebra),
|
|
442
|
+
k,
|
|
443
|
+
top_dim=top_dim,
|
|
444
|
+
verbose=verbose)
|
|
445
|
+
|
|
446
|
+
# Change rings back to the original Steenrod algebra.
|
|
447
|
+
# Also convert the maps and modules from FPModule to SteenrodFPModule.
|
|
448
|
+
return [j.change_ring(self.base_ring()) for j in res]
|
|
449
|
+
|
|
450
|
+
|
|
451
|
+
class SteenrodFreeModule(FreeGradedModule, SteenrodModuleMixin):
|
|
452
|
+
def _Hom_(self, Y, category):
|
|
453
|
+
r"""
|
|
454
|
+
The internal hook used by the free function
|
|
455
|
+
:meth:`sage.categories.homset.hom.Hom` to create homsets
|
|
456
|
+
involving ``self``.
|
|
457
|
+
|
|
458
|
+
TESTS::
|
|
459
|
+
|
|
460
|
+
sage: from sage.modules.fp_graded.free_module import FreeGradedModule
|
|
461
|
+
sage: A = SteenrodAlgebra(2)
|
|
462
|
+
sage: M = FreeGradedModule(A, (0,1))
|
|
463
|
+
sage: M._Hom_(M, category=None)
|
|
464
|
+
Set of Morphisms from Free graded left module on 2 generators
|
|
465
|
+
over mod 2 Steenrod algebra, milnor basis
|
|
466
|
+
to Free graded left module on 2 generators
|
|
467
|
+
over mod 2 Steenrod algebra, milnor basis
|
|
468
|
+
in Category of finite dimensional graded modules with basis
|
|
469
|
+
over mod 2 Steenrod algebra, milnor basis
|
|
470
|
+
|
|
471
|
+
sage: from sage.modules.fp_graded.module import FPModule
|
|
472
|
+
sage: F = FPModule(A, [1,3])
|
|
473
|
+
sage: Hom(M, F)
|
|
474
|
+
Set of Morphisms from Free graded left module on 2 generators ...
|
|
475
|
+
"""
|
|
476
|
+
from sage.modules.fp_graded.steenrod.homspace import SteenrodFreeModuleHomspace
|
|
477
|
+
return SteenrodFreeModuleHomspace(self, Y, category)
|