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,169 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-modules
|
|
2
|
+
"""
|
|
3
|
+
Koszul Complexes
|
|
4
|
+
"""
|
|
5
|
+
########################################################################
|
|
6
|
+
# Copyright (C) 2014 Travis Scrimshaw <tscrim at ucdavis.edu>
|
|
7
|
+
#
|
|
8
|
+
# Distributed under the terms of the GNU General Public License (GPL)
|
|
9
|
+
# as published by the Free Software Foundation; either version 2 of
|
|
10
|
+
# the License, or (at your option) any later version.
|
|
11
|
+
#
|
|
12
|
+
# https://www.gnu.org/licenses/
|
|
13
|
+
########################################################################
|
|
14
|
+
|
|
15
|
+
from sage.structure.unique_representation import UniqueRepresentation
|
|
16
|
+
from sage.structure.parent import Parent
|
|
17
|
+
from sage.combinat.combination import rank
|
|
18
|
+
from sage.arith.misc import binomial
|
|
19
|
+
from sage.rings.integer_ring import ZZ
|
|
20
|
+
from sage.matrix.constructor import matrix
|
|
21
|
+
from sage.homology.chain_complex import ChainComplex_class
|
|
22
|
+
|
|
23
|
+
import itertools
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
class KoszulComplex(ChainComplex_class, UniqueRepresentation):
|
|
27
|
+
r"""
|
|
28
|
+
A Koszul complex.
|
|
29
|
+
|
|
30
|
+
Let `R` be a ring and consider `x_1, x_2, \ldots, x_n \in R`. The
|
|
31
|
+
*Koszul complex* `K_*(x_1, \ldots, x_n)` is given by defining a
|
|
32
|
+
chain complex structure on the exterior algebra `\bigwedge^n R` with
|
|
33
|
+
the basis `e_{i_1} \wedge \cdots \wedge e_{i_a}`. The differential is
|
|
34
|
+
given by
|
|
35
|
+
|
|
36
|
+
.. MATH::
|
|
37
|
+
|
|
38
|
+
\partial(e_{i_1} \wedge \cdots \wedge e_{i_a}) =
|
|
39
|
+
\sum_{r=1}^a (-1)^{r-1} x_{i_r} e_{i_1} \wedge \cdots \wedge
|
|
40
|
+
\hat{e}_{i_r} \wedge \cdots \wedge e_{i_a},
|
|
41
|
+
|
|
42
|
+
where `\hat{e}_{i_r}` denotes the omitted factor.
|
|
43
|
+
|
|
44
|
+
Alternatively we can describe the Koszul complex by considering the
|
|
45
|
+
basic complex `K_{x_i}`
|
|
46
|
+
|
|
47
|
+
.. MATH::
|
|
48
|
+
|
|
49
|
+
0 \rightarrow R \xrightarrow{x_i} R \rightarrow 0.
|
|
50
|
+
|
|
51
|
+
Then the Koszul complex is given by
|
|
52
|
+
`K_*(x_1, \ldots, x_n) = \bigotimes_i K_{x_i}`.
|
|
53
|
+
|
|
54
|
+
INPUT:
|
|
55
|
+
|
|
56
|
+
- ``R`` -- the base ring
|
|
57
|
+
- ``elements`` -- tuple of elements of `R`
|
|
58
|
+
|
|
59
|
+
EXAMPLES::
|
|
60
|
+
|
|
61
|
+
sage: R.<x,y,z> = QQ[]
|
|
62
|
+
sage: K = KoszulComplex(R, [x,y])
|
|
63
|
+
sage: ascii_art(K)
|
|
64
|
+
[-y]
|
|
65
|
+
[x y] [ x]
|
|
66
|
+
0 <-- C_0 <------ C_1 <----- C_2 <-- 0
|
|
67
|
+
sage: K = KoszulComplex(R, [x,y,z])
|
|
68
|
+
sage: ascii_art(K)
|
|
69
|
+
[-y -z 0] [ z]
|
|
70
|
+
[ x 0 -z] [-y]
|
|
71
|
+
[x y z] [ 0 x y] [ x]
|
|
72
|
+
0 <-- C_0 <-------- C_1 <----------- C_2 <----- C_3 <-- 0
|
|
73
|
+
sage: K = KoszulComplex(R, [x+y*z,x+y-z])
|
|
74
|
+
sage: ascii_art(K)
|
|
75
|
+
[-x - y + z]
|
|
76
|
+
[ y*z + x x + y - z] [ y*z + x]
|
|
77
|
+
0 <-- C_0 <---------------------- C_1 <------------- C_2 <-- 0
|
|
78
|
+
|
|
79
|
+
REFERENCES:
|
|
80
|
+
|
|
81
|
+
- :wikipedia:`Koszul_complex`
|
|
82
|
+
"""
|
|
83
|
+
@staticmethod
|
|
84
|
+
def __classcall_private__(cls, R=None, elements=None):
|
|
85
|
+
"""
|
|
86
|
+
Normalize input to ensure a unique representation.
|
|
87
|
+
|
|
88
|
+
TESTS::
|
|
89
|
+
|
|
90
|
+
sage: R.<x,y,z> = QQ[]
|
|
91
|
+
sage: K1 = KoszulComplex(R, [x,y,z])
|
|
92
|
+
sage: K2 = KoszulComplex(R, (x,y,z))
|
|
93
|
+
sage: K3 = KoszulComplex((x,y,z))
|
|
94
|
+
sage: K1 is K2 and K2 is K3
|
|
95
|
+
True
|
|
96
|
+
|
|
97
|
+
Check some corner cases::
|
|
98
|
+
|
|
99
|
+
sage: K1 = KoszulComplex(ZZ)
|
|
100
|
+
sage: K2 = KoszulComplex(())
|
|
101
|
+
sage: K3 = KoszulComplex(ZZ, [])
|
|
102
|
+
sage: K1 is K2 and K2 is K3
|
|
103
|
+
True
|
|
104
|
+
sage: K1 is KoszulComplex()
|
|
105
|
+
True
|
|
106
|
+
"""
|
|
107
|
+
if elements is None:
|
|
108
|
+
if R is None:
|
|
109
|
+
R = ()
|
|
110
|
+
elements = R
|
|
111
|
+
if not elements:
|
|
112
|
+
R = ZZ # default to ZZ as the base ring if no elements are given
|
|
113
|
+
elif isinstance(R, Parent):
|
|
114
|
+
elements = ()
|
|
115
|
+
else:
|
|
116
|
+
R = elements[0].parent()
|
|
117
|
+
elif R is None: # elements is not None
|
|
118
|
+
R = elements[0].parent()
|
|
119
|
+
return super().__classcall__(cls, R, tuple(elements))
|
|
120
|
+
|
|
121
|
+
def __init__(self, R, elements):
|
|
122
|
+
"""
|
|
123
|
+
Initialize ``self``.
|
|
124
|
+
|
|
125
|
+
EXAMPLES::
|
|
126
|
+
|
|
127
|
+
sage: R.<x,y,z> = QQ[]
|
|
128
|
+
sage: K = KoszulComplex(R, [x,y])
|
|
129
|
+
sage: TestSuite(K).run()
|
|
130
|
+
"""
|
|
131
|
+
# Generate the differentials
|
|
132
|
+
self._elements = elements
|
|
133
|
+
n = len(elements)
|
|
134
|
+
I = list(range(n))
|
|
135
|
+
diff = {}
|
|
136
|
+
zero = R.zero()
|
|
137
|
+
for i in I:
|
|
138
|
+
M = matrix(R, binomial(n, i), binomial(n, i+1), zero)
|
|
139
|
+
j = 0
|
|
140
|
+
for comb in itertools.combinations(I, i+1):
|
|
141
|
+
for k, val in enumerate(comb):
|
|
142
|
+
r = rank(comb[:k] + comb[k+1:], n, False)
|
|
143
|
+
M[r, j] = (-1)**k * elements[val]
|
|
144
|
+
j += 1
|
|
145
|
+
M.set_immutable()
|
|
146
|
+
diff[i+1] = M
|
|
147
|
+
diff[0] = matrix(R, 0, 1, zero)
|
|
148
|
+
diff[0].set_immutable()
|
|
149
|
+
diff[n+1] = matrix(R, 1, 0, zero)
|
|
150
|
+
diff[n+1].set_immutable()
|
|
151
|
+
ChainComplex_class.__init__(self, ZZ, ZZ(-1), R, diff)
|
|
152
|
+
|
|
153
|
+
def _repr_(self):
|
|
154
|
+
"""
|
|
155
|
+
Return a string representation of ``self``.
|
|
156
|
+
|
|
157
|
+
EXAMPLES::
|
|
158
|
+
|
|
159
|
+
sage: R.<x,y,z> = QQ[]
|
|
160
|
+
sage: KoszulComplex(R, [x,y,z])
|
|
161
|
+
Koszul complex defined by (x, y, z) over
|
|
162
|
+
Multivariate Polynomial Ring in x, y, z over Rational Field
|
|
163
|
+
|
|
164
|
+
sage: KoszulComplex(ZZ, [])
|
|
165
|
+
Trivial Koszul complex over Integer Ring
|
|
166
|
+
"""
|
|
167
|
+
if not self._elements:
|
|
168
|
+
return "Trivial Koszul complex over {}".format(self.base_ring())
|
|
169
|
+
return "Koszul complex defined by {} over {}".format(self._elements, self.base_ring())
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-modules
|
|
2
|
+
"""
|
|
3
|
+
Utility Functions for Matrices
|
|
4
|
+
|
|
5
|
+
The actual computation of homology groups ends up being linear algebra
|
|
6
|
+
with the differentials thought of as matrices. This module contains
|
|
7
|
+
some utility functions for this purpose.
|
|
8
|
+
"""
|
|
9
|
+
########################################################################
|
|
10
|
+
# Copyright (C) 2013 John H. Palmieri <palmieri@math.washington.edu>
|
|
11
|
+
#
|
|
12
|
+
# Distributed under the terms of the GNU General Public License (GPL)
|
|
13
|
+
# as published by the Free Software Foundation; either version 2 of
|
|
14
|
+
# the License, or (at your option) any later version.
|
|
15
|
+
#
|
|
16
|
+
# https://www.gnu.org/licenses/
|
|
17
|
+
########################################################################
|
|
18
|
+
|
|
19
|
+
# TODO: this module is a clear candidate for cythonizing. Need to
|
|
20
|
+
# evaluate speed benefits.
|
|
21
|
+
|
|
22
|
+
from sage.matrix.constructor import matrix
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def dhsw_snf(mat, verbose=False):
|
|
26
|
+
"""
|
|
27
|
+
Preprocess a matrix using the "Elimination algorithm" described by
|
|
28
|
+
Dumas et al. [DHSW2003]_, and then call ``elementary_divisors`` on the
|
|
29
|
+
resulting (smaller) matrix.
|
|
30
|
+
|
|
31
|
+
.. NOTE::
|
|
32
|
+
|
|
33
|
+
'snf' stands for 'Smith Normal Form'.
|
|
34
|
+
|
|
35
|
+
INPUT:
|
|
36
|
+
|
|
37
|
+
- ``mat`` -- integer matrix, either sparse or dense
|
|
38
|
+
|
|
39
|
+
(They use the transpose of the matrix considered here, so they use
|
|
40
|
+
rows instead of columns.)
|
|
41
|
+
|
|
42
|
+
ALGORITHM:
|
|
43
|
+
|
|
44
|
+
Go through ``mat`` one column at a time. For each
|
|
45
|
+
column, add multiples of previous columns to it until either
|
|
46
|
+
|
|
47
|
+
- it's zero, in which case it should be deleted.
|
|
48
|
+
- its first nonzero entry is 1 or -1, in which case it should be kept.
|
|
49
|
+
- its first nonzero entry is something else, in which case it is
|
|
50
|
+
deferred until the second pass.
|
|
51
|
+
|
|
52
|
+
Then do a second pass on the deferred columns.
|
|
53
|
+
|
|
54
|
+
At this point, the columns with 1 or -1 in the first entry
|
|
55
|
+
contribute to the rank of the matrix, and these can be counted and
|
|
56
|
+
then deleted (after using the 1 or -1 entry to clear out its row).
|
|
57
|
+
Suppose that there were `N` of these.
|
|
58
|
+
|
|
59
|
+
The resulting matrix should be much smaller; we then feed it
|
|
60
|
+
to Sage's ``elementary_divisors`` function, and prepend `N` 1s to
|
|
61
|
+
account for the rows deleted in the previous step.
|
|
62
|
+
|
|
63
|
+
EXAMPLES::
|
|
64
|
+
|
|
65
|
+
sage: from sage.homology.matrix_utils import dhsw_snf
|
|
66
|
+
sage: mat = matrix(ZZ, 3, 4, range(12))
|
|
67
|
+
sage: dhsw_snf(mat) # needs sage.libs.pari
|
|
68
|
+
[1, 4, 0]
|
|
69
|
+
sage: mat = random_matrix(ZZ, 20, 20, x=-1, y=2)
|
|
70
|
+
sage: mat.elementary_divisors() == dhsw_snf(mat) # needs sage.libs.pari
|
|
71
|
+
True
|
|
72
|
+
"""
|
|
73
|
+
ring = mat.base_ring()
|
|
74
|
+
rows = mat.nrows()
|
|
75
|
+
cols = mat.ncols()
|
|
76
|
+
new_data = {}
|
|
77
|
+
new_mat = matrix(ring, rows, cols, new_data)
|
|
78
|
+
add_to_rank = 0
|
|
79
|
+
zero_cols = 0
|
|
80
|
+
if verbose:
|
|
81
|
+
print("old matrix: %s by %s" % (rows, cols))
|
|
82
|
+
# leading_positions: dictionary of lists indexed by row: if first
|
|
83
|
+
# nonzero entry in column c is in row r, then leading_positions[r]
|
|
84
|
+
# should contain c
|
|
85
|
+
leading_positions = {}
|
|
86
|
+
# pass 1:
|
|
87
|
+
if verbose:
|
|
88
|
+
print("starting pass 1")
|
|
89
|
+
for j in range(cols):
|
|
90
|
+
# new_col is a matrix with one column: sparse matrices seem to
|
|
91
|
+
# be less buggy than sparse vectors (#5184, #5185), and
|
|
92
|
+
# perhaps also faster.
|
|
93
|
+
new_col = mat.matrix_from_columns([j])
|
|
94
|
+
if new_col.is_zero():
|
|
95
|
+
zero_cols += 1
|
|
96
|
+
else:
|
|
97
|
+
check_leading = True
|
|
98
|
+
while check_leading:
|
|
99
|
+
i = new_col.nonzero_positions_in_column(0)[0]
|
|
100
|
+
entry = new_col[i, 0]
|
|
101
|
+
check_leading = False
|
|
102
|
+
if i in leading_positions:
|
|
103
|
+
for c in leading_positions[i]:
|
|
104
|
+
earlier = new_mat[i, c]
|
|
105
|
+
# right now we don't check to see if entry divides
|
|
106
|
+
# earlier, because we don't want to modify the
|
|
107
|
+
# earlier columns of the matrix. Deal with this
|
|
108
|
+
# in pass 2.
|
|
109
|
+
if entry and earlier.divides(entry):
|
|
110
|
+
quo = entry.divide_knowing_divisible_by(earlier)
|
|
111
|
+
new_col = new_col - quo * new_mat.matrix_from_columns([c])
|
|
112
|
+
entry = 0
|
|
113
|
+
if not new_col.is_zero():
|
|
114
|
+
check_leading = True
|
|
115
|
+
if not new_col.is_zero():
|
|
116
|
+
new_mat.set_column(j-zero_cols, new_col.column(0))
|
|
117
|
+
i = new_col.nonzero_positions_in_column(0)[0]
|
|
118
|
+
if i in leading_positions:
|
|
119
|
+
leading_positions[i].append(j-zero_cols)
|
|
120
|
+
else:
|
|
121
|
+
leading_positions[i] = [j-zero_cols]
|
|
122
|
+
else:
|
|
123
|
+
zero_cols += 1
|
|
124
|
+
# pass 2:
|
|
125
|
+
# first eliminate the zero columns at the end
|
|
126
|
+
cols = cols - zero_cols
|
|
127
|
+
zero_cols = 0
|
|
128
|
+
new_mat = new_mat.matrix_from_columns(range(cols))
|
|
129
|
+
if verbose:
|
|
130
|
+
print("starting pass 2")
|
|
131
|
+
keep_columns = list(range(cols))
|
|
132
|
+
check_leading = True
|
|
133
|
+
while check_leading:
|
|
134
|
+
check_leading = False
|
|
135
|
+
new_leading = leading_positions.copy()
|
|
136
|
+
for i in leading_positions:
|
|
137
|
+
if len(leading_positions[i]) > 1:
|
|
138
|
+
j = leading_positions[i][0]
|
|
139
|
+
jth = new_mat[i, j]
|
|
140
|
+
for n in leading_positions[i][1:]:
|
|
141
|
+
nth = new_mat[i, n]
|
|
142
|
+
if jth.divides(nth):
|
|
143
|
+
quo = nth.divide_knowing_divisible_by(jth)
|
|
144
|
+
new_mat.add_multiple_of_column(n, j, -quo)
|
|
145
|
+
elif nth.divides(jth):
|
|
146
|
+
quo = jth.divide_knowing_divisible_by(nth)
|
|
147
|
+
jth = nth
|
|
148
|
+
new_mat.swap_columns(n, j)
|
|
149
|
+
new_mat.add_multiple_of_column(n, j, -quo)
|
|
150
|
+
else:
|
|
151
|
+
g, r, s = jth.xgcd(nth)
|
|
152
|
+
unit, A, B = r.xgcd(-s) # unit ought to be 1 here
|
|
153
|
+
jth_col = new_mat.column(j)
|
|
154
|
+
nth_col = new_mat.column(n)
|
|
155
|
+
new_mat.set_column(j, r*jth_col + s*nth_col)
|
|
156
|
+
new_mat.set_column(n, B*jth_col + A*nth_col)
|
|
157
|
+
nth = B*jth + A*nth
|
|
158
|
+
jth = g
|
|
159
|
+
# at this point, jth should divide nth
|
|
160
|
+
quo = nth.divide_knowing_divisible_by(jth)
|
|
161
|
+
new_mat.add_multiple_of_column(n, j, -quo)
|
|
162
|
+
new_leading[i].remove(n)
|
|
163
|
+
if new_mat.column(n).is_zero():
|
|
164
|
+
keep_columns.remove(n)
|
|
165
|
+
zero_cols += 1
|
|
166
|
+
else:
|
|
167
|
+
new_r = new_mat.column(n).nonzero_positions()[0]
|
|
168
|
+
if new_r in new_leading:
|
|
169
|
+
new_leading[new_r].append(n)
|
|
170
|
+
else:
|
|
171
|
+
new_leading[new_r] = [n]
|
|
172
|
+
check_leading = True
|
|
173
|
+
leading_positions = new_leading
|
|
174
|
+
# pass 3: get rid of columns which start with 1 or -1
|
|
175
|
+
if verbose:
|
|
176
|
+
print("starting pass 3")
|
|
177
|
+
max_leading = 1
|
|
178
|
+
for i in leading_positions:
|
|
179
|
+
j = leading_positions[i][0]
|
|
180
|
+
entry = new_mat[i, j]
|
|
181
|
+
if entry.abs() == 1:
|
|
182
|
+
add_to_rank += 1
|
|
183
|
+
keep_columns.remove(j)
|
|
184
|
+
for c in new_mat.nonzero_positions_in_row(i):
|
|
185
|
+
if c in keep_columns:
|
|
186
|
+
new_mat.add_multiple_of_column(c, j, -entry * new_mat[i, c])
|
|
187
|
+
else:
|
|
188
|
+
max_leading = max(max_leading, new_mat[i, j].abs())
|
|
189
|
+
# form the new matrix
|
|
190
|
+
if max_leading != 1:
|
|
191
|
+
new_mat = new_mat.matrix_from_columns(keep_columns)
|
|
192
|
+
if verbose:
|
|
193
|
+
print("new matrix: %s by %s" % (new_mat.nrows(), new_mat.ncols()))
|
|
194
|
+
if new_mat.is_sparse():
|
|
195
|
+
ed = [1]*add_to_rank + new_mat.dense_matrix().elementary_divisors()
|
|
196
|
+
else:
|
|
197
|
+
ed = [1]*add_to_rank + new_mat.elementary_divisors()
|
|
198
|
+
else:
|
|
199
|
+
if verbose:
|
|
200
|
+
print("new matrix: all pivots are 1 or -1")
|
|
201
|
+
ed = [1]*add_to_rank
|
|
202
|
+
|
|
203
|
+
if len(ed) < rows:
|
|
204
|
+
return ed + [0]*(rows - len(ed))
|
|
205
|
+
return ed[:rows]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-modules
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-modules
|
sage/libs/gsl/airy.pxd
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-modules
|
|
2
|
+
# distutils: libraries = GSL_LIBRARIES
|
|
3
|
+
# distutils: library_dirs = GSL_LIBDIR
|
|
4
|
+
# distutils: include_dirs = GSL_INCDIR
|
|
5
|
+
from sage.libs.gsl.types cimport *
|
|
6
|
+
|
|
7
|
+
cdef extern from "gsl/gsl_sf_airy.h":
|
|
8
|
+
|
|
9
|
+
double gsl_sf_airy_Ai(double x, gsl_mode_t mode)
|
|
10
|
+
|
|
11
|
+
int gsl_sf_airy_Ai_e(double x, gsl_mode_t mode, gsl_sf_result * result)
|
|
12
|
+
|
|
13
|
+
double gsl_sf_airy_Bi(double x, gsl_mode_t mode)
|
|
14
|
+
|
|
15
|
+
int gsl_sf_airy_Bi_e(double x, gsl_mode_t mode, gsl_sf_result * result)
|
|
16
|
+
|
|
17
|
+
double gsl_sf_airy_Ai_scaled(double x, gsl_mode_t mode)
|
|
18
|
+
|
|
19
|
+
int gsl_sf_airy_Ai_scaled_e(double x, gsl_mode_t mode, gsl_sf_result * result)
|
|
20
|
+
|
|
21
|
+
double gsl_sf_airy_Bi_scaled(double x, gsl_mode_t mode)
|
|
22
|
+
|
|
23
|
+
int gsl_sf_airy_Bi_scaled_e(double x, gsl_mode_t mode, gsl_sf_result * result)
|
|
24
|
+
|
|
25
|
+
double gsl_sf_airy_Ai_deriv(double x, gsl_mode_t mode)
|
|
26
|
+
|
|
27
|
+
int gsl_sf_airy_Ai_deriv_e(double x, gsl_mode_t mode, gsl_sf_result * result)
|
|
28
|
+
|
|
29
|
+
double gsl_sf_airy_Bi_deriv(double x, gsl_mode_t mode)
|
|
30
|
+
|
|
31
|
+
int gsl_sf_airy_Bi_deriv_e(double x, gsl_mode_t mode, gsl_sf_result * result)
|
|
32
|
+
|
|
33
|
+
double gsl_sf_airy_Ai_deriv_scaled(double x, gsl_mode_t mode)
|
|
34
|
+
|
|
35
|
+
int gsl_sf_airy_Ai_deriv_scaled_e(double x, gsl_mode_t mode, gsl_sf_result * result)
|
|
36
|
+
|
|
37
|
+
double gsl_sf_airy_Bi_deriv_scaled(double x, gsl_mode_t mode)
|
|
38
|
+
|
|
39
|
+
int gsl_sf_airy_Bi_deriv_scaled_e(double x, gsl_mode_t mode, gsl_sf_result * result)
|
|
40
|
+
|
|
41
|
+
double gsl_sf_airy_zero_Ai(unsigned int s)
|
|
42
|
+
|
|
43
|
+
int gsl_sf_airy_zero_Ai_e(unsigned int s, gsl_sf_result * result)
|
|
44
|
+
|
|
45
|
+
double gsl_sf_airy_zero_Bi(unsigned int s)
|
|
46
|
+
|
|
47
|
+
int gsl_sf_airy_zero_Bi_e(unsigned int s, gsl_sf_result * result)
|
|
48
|
+
|
|
49
|
+
double gsl_sf_airy_zero_Ai_deriv(unsigned int s)
|
|
50
|
+
|
|
51
|
+
int gsl_sf_airy_zero_Ai_deriv_e(unsigned int s, gsl_sf_result * result)
|
|
52
|
+
|
|
53
|
+
double gsl_sf_airy_zero_Bi_deriv(unsigned int s)
|
|
54
|
+
|
|
55
|
+
int gsl_sf_airy_zero_Bi_deriv_e(unsigned int s, gsl_sf_result * result)
|
|
56
|
+
|
sage/libs/gsl/all.pxd
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-modules
|
|
2
|
+
from sage.libs.gsl.types cimport *
|
|
3
|
+
|
|
4
|
+
from sage.libs.gsl.math cimport *
|
|
5
|
+
from sage.libs.gsl.complex cimport *
|
|
6
|
+
from sage.libs.gsl.poly cimport *
|
|
7
|
+
from sage.libs.gsl.airy cimport *
|
|
8
|
+
from sage.libs.gsl.bessel cimport *
|
|
9
|
+
from sage.libs.gsl.clausen cimport *
|
|
10
|
+
from sage.libs.gsl.coulomb cimport *
|
|
11
|
+
from sage.libs.gsl.coupling cimport *
|
|
12
|
+
from sage.libs.gsl.dawson cimport *
|
|
13
|
+
from sage.libs.gsl.debye cimport *
|
|
14
|
+
from sage.libs.gsl.dilog cimport *
|
|
15
|
+
from sage.libs.gsl.elementary cimport *
|
|
16
|
+
from sage.libs.gsl.ellint cimport *
|
|
17
|
+
from sage.libs.gsl.elljac cimport *
|
|
18
|
+
from sage.libs.gsl.erf cimport *
|
|
19
|
+
from sage.libs.gsl.exp cimport *
|
|
20
|
+
from sage.libs.gsl.expint cimport *
|
|
21
|
+
from sage.libs.gsl.fermi_dirac cimport *
|
|
22
|
+
from sage.libs.gsl.gamma cimport *
|
|
23
|
+
from sage.libs.gsl.gegenbauer cimport *
|
|
24
|
+
from sage.libs.gsl.hyperg cimport *
|
|
25
|
+
from sage.libs.gsl.laguerre cimport *
|
|
26
|
+
from sage.libs.gsl.lambert cimport *
|
|
27
|
+
from sage.libs.gsl.legendre cimport *
|
|
28
|
+
from sage.libs.gsl.log cimport *
|
|
29
|
+
from sage.libs.gsl.pow_int cimport *
|
|
30
|
+
from sage.libs.gsl.psi cimport *
|
|
31
|
+
from sage.libs.gsl.synchrotron cimport *
|
|
32
|
+
from sage.libs.gsl.transport cimport *
|
|
33
|
+
from sage.libs.gsl.trig cimport *
|
|
34
|
+
from sage.libs.gsl.wavelet cimport *
|
|
35
|
+
from sage.libs.gsl.zeta cimport *
|
|
36
|
+
|
|
37
|
+
from sage.libs.gsl.block cimport *
|
|
38
|
+
from sage.libs.gsl.vector cimport *
|
|
39
|
+
from sage.libs.gsl.vector_complex cimport *
|
|
40
|
+
from sage.libs.gsl.matrix cimport *
|
|
41
|
+
from sage.libs.gsl.matrix_complex cimport *
|
|
42
|
+
|
|
43
|
+
from sage.libs.gsl.permutation cimport *
|
|
44
|
+
from sage.libs.gsl.combination cimport *
|
|
45
|
+
from sage.libs.gsl.sort cimport *
|
|
46
|
+
|
|
47
|
+
from sage.libs.gsl.blas cimport *
|
|
48
|
+
from sage.libs.gsl.linalg cimport *
|
|
49
|
+
from sage.libs.gsl.eigen cimport *
|
|
50
|
+
from sage.libs.gsl.fft cimport *
|
|
51
|
+
from sage.libs.gsl.integration cimport *
|
|
52
|
+
from sage.libs.gsl.rng cimport *
|
|
53
|
+
from sage.libs.gsl.qrng cimport *
|
|
54
|
+
from sage.libs.gsl.random cimport *
|
|
55
|
+
from sage.libs.gsl.statistics cimport *
|
|
56
|
+
from sage.libs.gsl.histogram cimport *
|
|
57
|
+
from sage.libs.gsl.ntuple cimport *
|
|
58
|
+
from sage.libs.gsl.monte cimport *
|
|
59
|
+
from sage.libs.gsl.odeiv cimport *
|
|
60
|
+
from sage.libs.gsl.interp cimport *
|
|
61
|
+
from sage.libs.gsl.chebyshev cimport *
|
|
62
|
+
from sage.libs.gsl.sum cimport *
|
|
63
|
+
from sage.libs.gsl.roots cimport *
|
|
64
|
+
from sage.libs.gsl.min cimport *
|
|
65
|
+
from sage.libs.gsl.fit cimport *
|
|
66
|
+
from sage.libs.gsl.errno cimport *
|
|
Binary file
|
sage/libs/gsl/array.pxd
ADDED
sage/libs/gsl/array.pyx
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-modules
|
|
2
|
+
"""
|
|
3
|
+
GSL arrays
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
from cysignals.memory cimport sig_malloc, sig_free
|
|
7
|
+
|
|
8
|
+
cdef class GSLDoubleArray:
|
|
9
|
+
"""
|
|
10
|
+
EXAMPLES::
|
|
11
|
+
|
|
12
|
+
sage: a = WaveletTransform(128,'daubechies',4)
|
|
13
|
+
sage: for i in range(1, 11):
|
|
14
|
+
....: a[i] = 1
|
|
15
|
+
sage: a[:6:2]
|
|
16
|
+
[0.0, 1.0, 1.0]
|
|
17
|
+
"""
|
|
18
|
+
def __init__(self, size_t n, size_t stride=1, data=None):
|
|
19
|
+
"""
|
|
20
|
+
EXAMPLES::
|
|
21
|
+
|
|
22
|
+
sage: from sage.libs.gsl.array import GSLDoubleArray
|
|
23
|
+
sage: a = GSLDoubleArray(10)
|
|
24
|
+
"""
|
|
25
|
+
cdef int i
|
|
26
|
+
|
|
27
|
+
self.n = n
|
|
28
|
+
self.stride = stride
|
|
29
|
+
self.data = <double *> sig_malloc(sizeof(double)*n)
|
|
30
|
+
if data is not None:
|
|
31
|
+
for i from 0 <= i < n:
|
|
32
|
+
self.data[i] = data[i]
|
|
33
|
+
else:
|
|
34
|
+
for i from 0 <= i < n:
|
|
35
|
+
self.data[i] = 0
|
|
36
|
+
|
|
37
|
+
def __dealloc__(self):
|
|
38
|
+
"""
|
|
39
|
+
EXAMPLES::
|
|
40
|
+
|
|
41
|
+
sage: from sage.libs.gsl.array import GSLDoubleArray
|
|
42
|
+
sage: a = GSLDoubleArray(10)
|
|
43
|
+
sage: del a
|
|
44
|
+
"""
|
|
45
|
+
sig_free(self.data)
|
|
46
|
+
|
|
47
|
+
def __len__(self):
|
|
48
|
+
"""
|
|
49
|
+
EXAMPLES::
|
|
50
|
+
|
|
51
|
+
sage: from sage.libs.gsl.array import GSLDoubleArray
|
|
52
|
+
sage: a = GSLDoubleArray(10)
|
|
53
|
+
sage: len(a)
|
|
54
|
+
10
|
|
55
|
+
"""
|
|
56
|
+
return self.n
|
|
57
|
+
|
|
58
|
+
def __repr__(self):
|
|
59
|
+
"""
|
|
60
|
+
EXAMPLES::
|
|
61
|
+
|
|
62
|
+
sage: from sage.libs.gsl.array import GSLDoubleArray
|
|
63
|
+
sage: a = GSLDoubleArray(10)
|
|
64
|
+
sage: a
|
|
65
|
+
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
|
|
66
|
+
"""
|
|
67
|
+
return str(list(self))
|
|
68
|
+
|
|
69
|
+
def __setitem__(self, size_t i, x):
|
|
70
|
+
"""
|
|
71
|
+
EXAMPLES::
|
|
72
|
+
|
|
73
|
+
sage: from sage.libs.gsl.array import GSLDoubleArray
|
|
74
|
+
sage: a = GSLDoubleArray(10)
|
|
75
|
+
sage: a[5] = 3
|
|
76
|
+
sage: a
|
|
77
|
+
[0.0, 0.0, 0.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0]
|
|
78
|
+
"""
|
|
79
|
+
# just set real for now
|
|
80
|
+
if i < 0 or i >= self.n:
|
|
81
|
+
raise IndexError
|
|
82
|
+
self.data[i] = x
|
|
83
|
+
|
|
84
|
+
def __getitem__(self, i):
|
|
85
|
+
"""
|
|
86
|
+
EXAMPLES::
|
|
87
|
+
|
|
88
|
+
sage: from sage.libs.gsl.array import GSLDoubleArray
|
|
89
|
+
sage: a = GSLDoubleArray(10)
|
|
90
|
+
sage: for i in range(10):
|
|
91
|
+
....: a[i] = i
|
|
92
|
+
sage: a[3:7]
|
|
93
|
+
[3.0, 4.0, 5.0, 6.0]
|
|
94
|
+
"""
|
|
95
|
+
if isinstance(i, slice):
|
|
96
|
+
start, stop, step = i.indices(len(self))
|
|
97
|
+
# TODO -- make this actually fast.
|
|
98
|
+
return list(self)[start:stop:step]
|
|
99
|
+
else:
|
|
100
|
+
if i < 0 or i >= self.n:
|
|
101
|
+
raise IndexError
|
|
102
|
+
return self.data[i]
|