passagemath-modules 10.6.31__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.31.dist-info/METADATA +281 -0
- passagemath_modules-10.6.31.dist-info/RECORD +808 -0
- passagemath_modules-10.6.31.dist-info/WHEEL +5 -0
- passagemath_modules-10.6.31.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
|
Binary file
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-modules
|
|
2
|
+
from sage.structure.element cimport ModuleElement
|
|
3
|
+
|
|
4
|
+
cdef class FiniteZZsubmodule_iterator:
|
|
5
|
+
#### Global Data
|
|
6
|
+
cdef FiniteZZsubmodule_iterator _other_ZZ
|
|
7
|
+
cdef ModuleElement _basis
|
|
8
|
+
cdef ModuleElement _cw
|
|
9
|
+
cdef ModuleElement _coset_rep
|
|
10
|
+
cdef ModuleElement _other
|
|
11
|
+
cdef list _basis_all
|
|
12
|
+
cdef list _plus
|
|
13
|
+
cdef int _basis_length
|
|
14
|
+
cdef int _count
|
|
15
|
+
cdef int _order
|
|
16
|
+
cdef bint _immutable
|
|
17
|
+
cdef ModuleElement _iteration(FiniteZZsubmodule_iterator self)
|
|
18
|
+
|
|
19
|
+
cdef class FiniteFieldsubspace_iterator(FiniteZZsubmodule_iterator):
|
|
20
|
+
pass
|
|
21
|
+
|
|
22
|
+
cdef class FiniteFieldsubspace_projPoint_iterator:
|
|
23
|
+
cdef int _basis_length, _normalized_pos
|
|
24
|
+
cdef int _one_dimensional_case # takes the values 0, 1, 2
|
|
25
|
+
cdef list _basis
|
|
26
|
+
cdef bint _immutable
|
|
27
|
+
cdef FiniteFieldsubspace_iterator _it
|
|
@@ -0,0 +1,452 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-modules
|
|
2
|
+
# sage.doctest: needs sage.combinat sage.rings.finite_rings
|
|
3
|
+
r"""
|
|
4
|
+
Iterators over finite submodules of a `\ZZ`-module
|
|
5
|
+
|
|
6
|
+
We iterate over the elements of a finite `\ZZ`-module. The action
|
|
7
|
+
of `\ZZ` must be the natural one.
|
|
8
|
+
|
|
9
|
+
This class is intended to provide optimizations for the
|
|
10
|
+
:meth:`sage.free_module.FreeModule_generic:__iter__` method.
|
|
11
|
+
|
|
12
|
+
AUTHORS:
|
|
13
|
+
|
|
14
|
+
- Thomas Feulner (2012-08-31): initial version
|
|
15
|
+
- Punarbasu Purkayastha (2012-11-09): replaced the loop with recursion
|
|
16
|
+
- Thomas Feulner (2012-11-09): added functionality to enumerate cosets, FiniteFieldsubspace_projPoint_iterator
|
|
17
|
+
|
|
18
|
+
EXAMPLES::
|
|
19
|
+
|
|
20
|
+
sage: from sage.modules.finite_submodule_iter import FiniteZZsubmodule_iterator
|
|
21
|
+
sage: F.<x,y,z> = FreeAlgebra(GF(3),3)
|
|
22
|
+
sage: iter = FiniteZZsubmodule_iterator([x,y], [3,3])
|
|
23
|
+
sage: list(iter)
|
|
24
|
+
[0, x, 2*x, y, x + y, 2*x + y, 2*y, x + 2*y, 2*x + 2*y]
|
|
25
|
+
|
|
26
|
+
There is a specialization for subspaces over finite fields::
|
|
27
|
+
|
|
28
|
+
sage: from sage.modules.finite_submodule_iter import FiniteFieldsubspace_iterator
|
|
29
|
+
sage: A = random_matrix(GF(4, 'a'), 5, 100)
|
|
30
|
+
sage: iter = FiniteFieldsubspace_iterator(A)
|
|
31
|
+
sage: len(list(iter))
|
|
32
|
+
1024
|
|
33
|
+
|
|
34
|
+
The module also allows the iteration over cosets::
|
|
35
|
+
|
|
36
|
+
sage: from sage.modules.finite_submodule_iter import FiniteFieldsubspace_iterator
|
|
37
|
+
sage: A = random_matrix(GF(4, 'a'), 5, 100)
|
|
38
|
+
sage: v = random_vector(GF(4, 'a'), 100)
|
|
39
|
+
sage: iter = FiniteFieldsubspace_iterator(A, v)
|
|
40
|
+
sage: len(list(iter))
|
|
41
|
+
1024
|
|
42
|
+
|
|
43
|
+
TESTS::
|
|
44
|
+
|
|
45
|
+
sage: from sage.modules.finite_submodule_iter import FiniteFieldsubspace_iterator
|
|
46
|
+
sage: A = random_matrix(GF(4, 'a'), 5, 100)
|
|
47
|
+
sage: iter = FiniteFieldsubspace_iterator(A)
|
|
48
|
+
sage: TestSuite(iter).run(skip='_test_pickling')
|
|
49
|
+
|
|
50
|
+
In a second step, we will replace all calls to ``__iter__`` for finite submodules. This
|
|
51
|
+
will result in improved running times::
|
|
52
|
+
|
|
53
|
+
sage: A = random_matrix(GF(2), 15, 100)
|
|
54
|
+
sage: X = A.row_space()
|
|
55
|
+
sage: x = [0 for _ in X] #long time #takes 7.12 seconds
|
|
56
|
+
sage: y = [0 for _ in FiniteFieldsubspace_iterator(A)] # takes 0.05 seconds
|
|
57
|
+
sage: sorted(x) == sorted(y) #long time
|
|
58
|
+
True
|
|
59
|
+
"""
|
|
60
|
+
|
|
61
|
+
#*****************************************************************************
|
|
62
|
+
# Copyright (C) 2012 Thomas Feulner <thomas.feulner@uni-bayreuth.de>
|
|
63
|
+
#
|
|
64
|
+
# Distributed under the terms of the GNU General Public License (GPL)
|
|
65
|
+
# as published by the Free Software Foundation; either version 2 of
|
|
66
|
+
# the License, or (at your option) any later version.
|
|
67
|
+
# http://www.gnu.org/licenses/
|
|
68
|
+
#*****************************************************************************
|
|
69
|
+
|
|
70
|
+
cdef class FiniteZZsubmodule_iterator:
|
|
71
|
+
r"""
|
|
72
|
+
Let `G` be an abelian group and suppose that `(g_0, \ldots, g_n)`
|
|
73
|
+
is a list of elements of `G`, whose additive orders are equal to `m_i`
|
|
74
|
+
and `\sum_{i=0}^n x_i g_i = 0` for `x_i \in \ZZ_{m_i}` for
|
|
75
|
+
`i \in \{0, \dots, n\}` implies `x_i=0` for all `i`.
|
|
76
|
+
|
|
77
|
+
This class implements an iterator over the `\ZZ`-submodule
|
|
78
|
+
`M = \{\sum_{i=0}^n x_i g_i\}`. If the independence condition from
|
|
79
|
+
above is not fulfilled, we can still use this iterator to run over the
|
|
80
|
+
elements. In this case the elements will occur multiple times.
|
|
81
|
+
|
|
82
|
+
Getting from one element of the submodule to another is performed by
|
|
83
|
+
one single addition in `G`.
|
|
84
|
+
|
|
85
|
+
INPUT:
|
|
86
|
+
|
|
87
|
+
- ``basis`` -- the elements `(g_0, \ldots, g_n)`
|
|
88
|
+
- ``order`` -- (optional) the additive_orders `m_i` of `g_i`
|
|
89
|
+
- ``coset_rep`` -- (optional) an element of `g`,
|
|
90
|
+
if one aims to compute a coset of the `\ZZ`-submodule `M`
|
|
91
|
+
- ``immutable`` -- boolean (default: ``False``); set it to
|
|
92
|
+
``True`` to return immutable elements. Setting this to
|
|
93
|
+
``True`` makes sense if the elements are vectors. See
|
|
94
|
+
:class:`FiniteFieldsubspace_iterator` for examples.
|
|
95
|
+
|
|
96
|
+
EXAMPLES::
|
|
97
|
+
|
|
98
|
+
sage: from sage.modules.finite_submodule_iter import FiniteZZsubmodule_iterator
|
|
99
|
+
sage: F.<x,y,z> = FreeAlgebra(GF(3),3)
|
|
100
|
+
sage: iter = FiniteZZsubmodule_iterator([x,y], [3,3])
|
|
101
|
+
sage: list(iter)
|
|
102
|
+
[0, x, 2*x, y, x + y, 2*x + y, 2*y, x + 2*y, 2*x + 2*y]
|
|
103
|
+
sage: iter = FiniteZZsubmodule_iterator([x,y], [3,3], z)
|
|
104
|
+
sage: list(iter)
|
|
105
|
+
[z, x + z, 2*x + z, y + z, x + y + z, 2*x + y + z, 2*y + z, x + 2*y + z, 2*x + 2*y + z]
|
|
106
|
+
"""
|
|
107
|
+
|
|
108
|
+
def __init__(self, basis, order=None, coset_rep=None, immutable=False):
|
|
109
|
+
"""
|
|
110
|
+
See :class:`FiniteZZsubmodule_iterator`.
|
|
111
|
+
|
|
112
|
+
EXAMPLES::
|
|
113
|
+
|
|
114
|
+
sage: from sage.modules.finite_submodule_iter import FiniteZZsubmodule_iterator
|
|
115
|
+
sage: F.<x,y,z> = FreeAlgebra(GF(3),3)
|
|
116
|
+
sage: iter = FiniteZZsubmodule_iterator([x,y], [3,3])
|
|
117
|
+
sage: list(iter)
|
|
118
|
+
[0, x, 2*x, y, x + y, 2*x + y, 2*y, x + 2*y, 2*x + 2*y]
|
|
119
|
+
"""
|
|
120
|
+
if order is None:
|
|
121
|
+
try:
|
|
122
|
+
order = [b.additive_order() for b in basis]
|
|
123
|
+
except (AttributeError, NotImplementedError):
|
|
124
|
+
raise ValueError("Unable to determine the additive order "
|
|
125
|
+
"of a basis element. Use the optional "
|
|
126
|
+
"parameter `order`.")
|
|
127
|
+
|
|
128
|
+
self._basis = basis[0]
|
|
129
|
+
self._basis_all = basis
|
|
130
|
+
self._basis_length = len(basis)
|
|
131
|
+
self._count = 0
|
|
132
|
+
self._immutable = immutable
|
|
133
|
+
|
|
134
|
+
if coset_rep is None:
|
|
135
|
+
self._coset_rep = self._basis.parent().zero()
|
|
136
|
+
else:
|
|
137
|
+
self._coset_rep = self._basis.parent()(coset_rep)
|
|
138
|
+
if self._basis_length == 1:
|
|
139
|
+
self._cw = self._coset_rep
|
|
140
|
+
else:
|
|
141
|
+
self._cw = self._basis.parent().zero()
|
|
142
|
+
self._other_ZZ = FiniteZZsubmodule_iterator(basis[1:], order[1:], coset_rep)
|
|
143
|
+
|
|
144
|
+
self._order = order[0]
|
|
145
|
+
self._other = self._basis.parent().zero() # dummy initialization
|
|
146
|
+
self._plus = [self._cw] # storing this provides about 20% speedup
|
|
147
|
+
for _ in range(self._order - 1):
|
|
148
|
+
self._cw += self._basis
|
|
149
|
+
self._plus.append(self._cw)
|
|
150
|
+
|
|
151
|
+
def __next__(self):
|
|
152
|
+
"""
|
|
153
|
+
Return the next submodule element. This will just add/subtract
|
|
154
|
+
another element of the ``basis``.
|
|
155
|
+
|
|
156
|
+
EXAMPLES::
|
|
157
|
+
|
|
158
|
+
sage: from sage.modules.finite_submodule_iter import FiniteZZsubmodule_iterator
|
|
159
|
+
sage: F.<x,y,z> = FreeAlgebra(GF(3),3)
|
|
160
|
+
sage: iter = FiniteZZsubmodule_iterator([x,y], [3,3])
|
|
161
|
+
sage: next(iter) #indirect doctest
|
|
162
|
+
0
|
|
163
|
+
sage: next(iter) #indirect doctest
|
|
164
|
+
x
|
|
165
|
+
"""
|
|
166
|
+
self._iteration()
|
|
167
|
+
v = self._cw
|
|
168
|
+
if self._immutable:
|
|
169
|
+
v.set_immutable()
|
|
170
|
+
return v
|
|
171
|
+
|
|
172
|
+
def __repr__(self):
|
|
173
|
+
"""
|
|
174
|
+
EXAMPLES::
|
|
175
|
+
|
|
176
|
+
sage: from sage.modules.finite_submodule_iter import FiniteZZsubmodule_iterator
|
|
177
|
+
sage: F.<x,y,z> = FreeAlgebra(GF(3),3)
|
|
178
|
+
sage: FiniteZZsubmodule_iterator([x,y], [3,3])
|
|
179
|
+
Iterator over ZZ-submodule generated by [x, y]
|
|
180
|
+
"""
|
|
181
|
+
return "Iterator over ZZ-submodule generated by {0}".format(self._basis_all)
|
|
182
|
+
|
|
183
|
+
def __iter__(self):
|
|
184
|
+
"""
|
|
185
|
+
EXAMPLES::
|
|
186
|
+
|
|
187
|
+
sage: from sage.modules.finite_submodule_iter import FiniteZZsubmodule_iterator
|
|
188
|
+
sage: F.<x,y,z> = FreeAlgebra(GF(3),3)
|
|
189
|
+
sage: list(FiniteZZsubmodule_iterator([x,y], [3,3])) #indirect doctest
|
|
190
|
+
[0, x, 2*x, y, x + y, 2*x + y, 2*y, x + 2*y, 2*x + 2*y]
|
|
191
|
+
"""
|
|
192
|
+
return self
|
|
193
|
+
|
|
194
|
+
cdef ModuleElement _iteration(FiniteZZsubmodule_iterator self):
|
|
195
|
+
"""
|
|
196
|
+
This is the core implementation of the iteration.
|
|
197
|
+
|
|
198
|
+
EXAMPLES::
|
|
199
|
+
|
|
200
|
+
sage: from sage.modules.finite_submodule_iter import FiniteZZsubmodule_iterator
|
|
201
|
+
sage: F.<x,y,z> = FreeAlgebra(GF(3),3)
|
|
202
|
+
sage: iter = FiniteZZsubmodule_iterator([x,y], [3,3])
|
|
203
|
+
sage: next(iter) #indirect doctest
|
|
204
|
+
0
|
|
205
|
+
sage: next(iter), next(iter), next(iter) #indirect doctest
|
|
206
|
+
(x, 2*x, y)
|
|
207
|
+
"""
|
|
208
|
+
if self._basis_length == 1:
|
|
209
|
+
if self._count < self._order:
|
|
210
|
+
self._cw = self._plus[self._count]
|
|
211
|
+
self._count += 1
|
|
212
|
+
else:
|
|
213
|
+
raise StopIteration
|
|
214
|
+
else:
|
|
215
|
+
if self._count == 0 or self._count == self._order:
|
|
216
|
+
self._other = next(self._other_ZZ)
|
|
217
|
+
self._cw = < ModuleElement > self._other
|
|
218
|
+
self._count = 1
|
|
219
|
+
else:
|
|
220
|
+
self._cw = self._other + self._plus[self._count]
|
|
221
|
+
self._count += 1
|
|
222
|
+
|
|
223
|
+
|
|
224
|
+
cdef class FiniteFieldsubspace_iterator(FiniteZZsubmodule_iterator):
|
|
225
|
+
"""
|
|
226
|
+
This class implements an iterator over the subspace of a vector
|
|
227
|
+
space over a finite field. The subspace is generated by ``basis``.
|
|
228
|
+
|
|
229
|
+
INPUT:
|
|
230
|
+
|
|
231
|
+
- ``basis`` -- list of vectors or a matrix with elements over
|
|
232
|
+
a finite field. If a matrix is provided then it is not checked
|
|
233
|
+
whether the matrix is full ranked. Similarly, if a list of
|
|
234
|
+
vectors is provided, then the linear independence of the vectors
|
|
235
|
+
is not checked.
|
|
236
|
+
|
|
237
|
+
- ``coset_rep`` -- (optional) a vector in the same ambient space,
|
|
238
|
+
if one aims to compute a coset of the vector space given by ``basis``
|
|
239
|
+
|
|
240
|
+
- ``immutable`` -- boolean (default: ``False``); set it to
|
|
241
|
+
``True`` to return immutable vectors
|
|
242
|
+
|
|
243
|
+
EXAMPLES::
|
|
244
|
+
|
|
245
|
+
sage: from sage.modules.finite_submodule_iter import FiniteFieldsubspace_iterator
|
|
246
|
+
sage: A = random_matrix(GF(2), 10, 100)
|
|
247
|
+
sage: iter = FiniteFieldsubspace_iterator(A)
|
|
248
|
+
sage: len(list(iter))
|
|
249
|
+
1024
|
|
250
|
+
sage: X = random_matrix(GF(4, 'a'), 7, 100).row_space()
|
|
251
|
+
sage: s = list(X) # long time (5s on sage.math, 2013)
|
|
252
|
+
sage: t = list(FiniteFieldsubspace_iterator(X.basis())) # takes 0.31s
|
|
253
|
+
sage: sorted(t) == sorted(s) # long time
|
|
254
|
+
True
|
|
255
|
+
|
|
256
|
+
TESTS:
|
|
257
|
+
|
|
258
|
+
We test whether we get immutable vectors if immutable=True::
|
|
259
|
+
|
|
260
|
+
sage: iter = FiniteFieldsubspace_iterator(A, immutable=True)
|
|
261
|
+
sage: c = next(iter)
|
|
262
|
+
sage: c.is_immutable()
|
|
263
|
+
True
|
|
264
|
+
"""
|
|
265
|
+
|
|
266
|
+
def __init__(self, basis, coset_rep=None, immutable=False):
|
|
267
|
+
"""
|
|
268
|
+
See :class:`FiniteFieldsubspace_iterator`.
|
|
269
|
+
|
|
270
|
+
EXAMPLES::
|
|
271
|
+
|
|
272
|
+
sage: from sage.modules.finite_submodule_iter import FiniteFieldsubspace_iterator
|
|
273
|
+
sage: A = random_matrix(GF(2), 10, 100)
|
|
274
|
+
sage: iter = FiniteFieldsubspace_iterator(A)
|
|
275
|
+
sage: X = list(iter)
|
|
276
|
+
sage: len(X)
|
|
277
|
+
1024
|
|
278
|
+
sage: v = random_vector(GF(2), 100)
|
|
279
|
+
sage: iter = FiniteFieldsubspace_iterator(A, v)
|
|
280
|
+
sage: Y = list(iter)
|
|
281
|
+
sage: len(Y)
|
|
282
|
+
1024
|
|
283
|
+
sage: all(Y[i]-X[i] == v for i in range(len(X)))
|
|
284
|
+
True
|
|
285
|
+
"""
|
|
286
|
+
cdef Py_ssize_t i, p
|
|
287
|
+
cdef list pows, order
|
|
288
|
+
|
|
289
|
+
F = basis[0].base_ring()
|
|
290
|
+
P = F.prime_subfield()
|
|
291
|
+
p = P.order()
|
|
292
|
+
alpha = F.primitive_element()
|
|
293
|
+
degree = F.degree()
|
|
294
|
+
|
|
295
|
+
pows = [alpha ** i for i in range(degree)]
|
|
296
|
+
basis = [_p * x for x in basis for _p in pows] # a ZZ_p-basis for the vectorspace
|
|
297
|
+
order = [p] * (len(basis))
|
|
298
|
+
|
|
299
|
+
FiniteZZsubmodule_iterator.__init__(self, basis, order, coset_rep,
|
|
300
|
+
immutable=immutable)
|
|
301
|
+
|
|
302
|
+
cdef class FiniteFieldsubspace_projPoint_iterator:
|
|
303
|
+
"""
|
|
304
|
+
This class implements an iterator over the projective points of a vector
|
|
305
|
+
space over a finite field. The vector space is generated by ``basis`` and
|
|
306
|
+
need not to be equal to the full ambient space.
|
|
307
|
+
|
|
308
|
+
A projective point (= one dimensional subspace) `P` will be represented by a
|
|
309
|
+
generator `p`. To ensure that all `p` will be normalized you can set the
|
|
310
|
+
optional argument ``normalize`` to ``True``.
|
|
311
|
+
|
|
312
|
+
INPUT:
|
|
313
|
+
|
|
314
|
+
- ``basis`` -- list of vectors or a matrix with elements over
|
|
315
|
+
a finite field. If a matrix is provided then it is not checked
|
|
316
|
+
whether the matrix is full ranked. Similarly, if a list of
|
|
317
|
+
vectors is provided, then the linear independence of the vectors
|
|
318
|
+
is not checked.
|
|
319
|
+
|
|
320
|
+
- ``normalize`` -- boolean (default: ``False``); whether the returned
|
|
321
|
+
vectors should be normalized, i.e. the first nonzero coordinate is
|
|
322
|
+
equal to 1
|
|
323
|
+
|
|
324
|
+
- ``immutable`` -- boolean (default: ``False``); set it to
|
|
325
|
+
``True`` to return immutable vectors
|
|
326
|
+
|
|
327
|
+
EXAMPLES::
|
|
328
|
+
|
|
329
|
+
sage: from sage.modules.finite_submodule_iter import FiniteFieldsubspace_iterator, FiniteFieldsubspace_projPoint_iterator
|
|
330
|
+
sage: A = random_matrix(GF(4, 'a'), 5, 100)
|
|
331
|
+
sage: a = len(list(FiniteFieldsubspace_iterator(A)))
|
|
332
|
+
sage: b = len(list(FiniteFieldsubspace_projPoint_iterator(A)))
|
|
333
|
+
sage: b == (a-1)/3
|
|
334
|
+
True
|
|
335
|
+
|
|
336
|
+
Prove that the option ``normalize == True`` will only return normalized vectors.
|
|
337
|
+
|
|
338
|
+
sage: all(x.monic() == x for x in FiniteFieldsubspace_projPoint_iterator(A, True))
|
|
339
|
+
True
|
|
340
|
+
|
|
341
|
+
TESTS::
|
|
342
|
+
|
|
343
|
+
sage: from sage.modules.finite_submodule_iter import FiniteFieldsubspace_projPoint_iterator
|
|
344
|
+
sage: A = MatrixSpace(GF(7), 10, 10).one()
|
|
345
|
+
sage: len(list(FiniteFieldsubspace_projPoint_iterator(A[:0]))) #indirect doctest
|
|
346
|
+
0
|
|
347
|
+
sage: len(list(FiniteFieldsubspace_projPoint_iterator(A[:1]))) #indirect doctest
|
|
348
|
+
1
|
|
349
|
+
sage: len(list(FiniteFieldsubspace_projPoint_iterator(A[:2]))) #indirect doctest
|
|
350
|
+
8
|
|
351
|
+
sage: iter = FiniteFieldsubspace_projPoint_iterator(A[:2], immutable=True)
|
|
352
|
+
sage: next(iter).is_immutable()
|
|
353
|
+
True
|
|
354
|
+
"""
|
|
355
|
+
|
|
356
|
+
def __init__(self, basis, normalize=False, immutable=False):
|
|
357
|
+
"""
|
|
358
|
+
See :class:`FiniteFieldsubspace_projPoint_iterator`.
|
|
359
|
+
|
|
360
|
+
EXAMPLES::
|
|
361
|
+
|
|
362
|
+
sage: from sage.modules.finite_submodule_iter import FiniteFieldsubspace_projPoint_iterator
|
|
363
|
+
sage: A = random_matrix(GF(4, 'a'), 4, 100)
|
|
364
|
+
sage: iter = FiniteFieldsubspace_projPoint_iterator(A)
|
|
365
|
+
sage: len(list(iter))
|
|
366
|
+
85
|
|
367
|
+
"""
|
|
368
|
+
from sage.matrix.constructor import matrix
|
|
369
|
+
self._basis = list(basis)
|
|
370
|
+
self._basis_length = len(self._basis)
|
|
371
|
+
self._immutable = immutable
|
|
372
|
+
if immutable:
|
|
373
|
+
for b in self._basis:
|
|
374
|
+
b.set_immutable()
|
|
375
|
+
if normalize:
|
|
376
|
+
B = matrix(self._basis)
|
|
377
|
+
B.echelonize()
|
|
378
|
+
self._basis = B.rows()
|
|
379
|
+
self._basis.reverse()
|
|
380
|
+
|
|
381
|
+
if self._basis_length == 0:
|
|
382
|
+
self._one_dimensional_case = 2
|
|
383
|
+
else:
|
|
384
|
+
self._one_dimensional_case = 1
|
|
385
|
+
|
|
386
|
+
def __next__(self):
|
|
387
|
+
"""
|
|
388
|
+
Return the next projective point. This will just add/subtract
|
|
389
|
+
another element of the ``basis`` except for the cases when the rank will
|
|
390
|
+
increase.
|
|
391
|
+
|
|
392
|
+
EXAMPLES::
|
|
393
|
+
|
|
394
|
+
sage: from sage.modules.finite_submodule_iter import FiniteFieldsubspace_projPoint_iterator
|
|
395
|
+
sage: A = MatrixSpace(GF(3), 10,10).one()
|
|
396
|
+
sage: iter = FiniteFieldsubspace_projPoint_iterator(A)
|
|
397
|
+
sage: next(iter) #indirect doctest
|
|
398
|
+
(1, 0, 0, 0, 0, 0, 0, 0, 0, 0)
|
|
399
|
+
sage: next(iter) #indirect doctest
|
|
400
|
+
(0, 1, 0, 0, 0, 0, 0, 0, 0, 0)
|
|
401
|
+
"""
|
|
402
|
+
if self._one_dimensional_case > 0:
|
|
403
|
+
if self._one_dimensional_case == 1:
|
|
404
|
+
self._one_dimensional_case = 2
|
|
405
|
+
# this returns immutable vectors if immutable is True
|
|
406
|
+
return self._basis[0]
|
|
407
|
+
else:
|
|
408
|
+
if self._basis_length > 1:
|
|
409
|
+
self._it = FiniteFieldsubspace_iterator(self._basis[:1],
|
|
410
|
+
self._basis[1],
|
|
411
|
+
immutable=self._immutable)
|
|
412
|
+
self._normalized_pos = 1
|
|
413
|
+
self._one_dimensional_case = 0
|
|
414
|
+
else:
|
|
415
|
+
raise StopIteration
|
|
416
|
+
try:
|
|
417
|
+
return next(self._it)
|
|
418
|
+
except StopIteration:
|
|
419
|
+
self._normalized_pos += 1
|
|
420
|
+
if self._normalized_pos == self._basis_length:
|
|
421
|
+
raise StopIteration
|
|
422
|
+
else:
|
|
423
|
+
self._it = FiniteFieldsubspace_iterator(self._basis[:self._normalized_pos],
|
|
424
|
+
self._basis[self._normalized_pos],
|
|
425
|
+
immutable=self._immutable)
|
|
426
|
+
return next(self._it)
|
|
427
|
+
|
|
428
|
+
def __repr__(self):
|
|
429
|
+
"""
|
|
430
|
+
EXAMPLES::
|
|
431
|
+
|
|
432
|
+
sage: from sage.modules.finite_submodule_iter import FiniteFieldsubspace_projPoint_iterator
|
|
433
|
+
sage: A = MatrixSpace(GF(3), 2, 2).one()
|
|
434
|
+
sage: FiniteFieldsubspace_projPoint_iterator(A)
|
|
435
|
+
Iterator over the projective points of a subspace generated by [(1, 0), (0, 1)]
|
|
436
|
+
"""
|
|
437
|
+
|
|
438
|
+
return "Iterator over the projective points of a subspace generated by {0}".format(self._basis)
|
|
439
|
+
|
|
440
|
+
def __iter__(self):
|
|
441
|
+
"""
|
|
442
|
+
EXAMPLES::
|
|
443
|
+
|
|
444
|
+
sage: from sage.modules.finite_submodule_iter import FiniteFieldsubspace_projPoint_iterator
|
|
445
|
+
sage: A = MatrixSpace(GF(3), 10,10).one()
|
|
446
|
+
sage: len(list(FiniteFieldsubspace_projPoint_iterator(A))) #indirect doctest
|
|
447
|
+
29524
|
|
448
|
+
sage: A = MatrixSpace(GF(3), 1,1).one()
|
|
449
|
+
sage: len(list(FiniteFieldsubspace_projPoint_iterator(A))) #indirect doctest
|
|
450
|
+
1
|
|
451
|
+
"""
|
|
452
|
+
return self
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-modules
|