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,683 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-modules
|
|
2
|
+
# sage.doctest: needs sage.graphs
|
|
3
|
+
"""
|
|
4
|
+
Examples of Lie Algebras
|
|
5
|
+
|
|
6
|
+
There are the following examples of Lie algebras:
|
|
7
|
+
|
|
8
|
+
- A rather comprehensive family of 3-dimensional Lie algebras
|
|
9
|
+
- The Lie algebra of affine transformations of the line
|
|
10
|
+
- All abelian Lie algebras on free modules
|
|
11
|
+
- The Lie algebra of upper triangular matrices
|
|
12
|
+
- The Lie algebra of strictly upper triangular matrices
|
|
13
|
+
- The symplectic derivation Lie algebra
|
|
14
|
+
- The rank two Heisenberg Virasoro algebra
|
|
15
|
+
|
|
16
|
+
See also
|
|
17
|
+
:class:`sage.algebras.lie_algebras.virasoro.LieAlgebraRegularVectorFields`
|
|
18
|
+
and
|
|
19
|
+
:class:`sage.algebras.lie_algebras.virasoro.VirasoroAlgebra` for
|
|
20
|
+
other examples.
|
|
21
|
+
|
|
22
|
+
AUTHORS:
|
|
23
|
+
|
|
24
|
+
- Travis Scrimshaw (07-15-2013): Initial implementation
|
|
25
|
+
"""
|
|
26
|
+
# ****************************************************************************
|
|
27
|
+
# Copyright (C) 2013-2017 Travis Scrimshaw <tcscrims at gmail.com>
|
|
28
|
+
#
|
|
29
|
+
# This program is free software: you can redistribute it and/or modify
|
|
30
|
+
# it under the terms of the GNU General Public License as published by
|
|
31
|
+
# the Free Software Foundation, either version 2 of the License, or
|
|
32
|
+
# (at your option) any later version.
|
|
33
|
+
# https://www.gnu.org/licenses/
|
|
34
|
+
# ****************************************************************************
|
|
35
|
+
|
|
36
|
+
from sage.algebras.lie_algebras.virasoro import VirasoroAlgebra
|
|
37
|
+
from sage.algebras.lie_algebras.rank_two_heisenberg_virasoro import RankTwoHeisenbergVirasoro
|
|
38
|
+
from sage.algebras.lie_algebras.symplectic_derivation import SymplecticDerivationLieAlgebra as SymplecticDerivation
|
|
39
|
+
from sage.algebras.lie_algebras.onsager import OnsagerAlgebra
|
|
40
|
+
from sage.algebras.lie_algebras.onsager import OnsagerAlgebraACE as AlternatingCentralExtensionOnsagerAlgebra
|
|
41
|
+
from sage.algebras.lie_algebras.affine_lie_algebra import AffineLieAlgebra as Affine
|
|
42
|
+
from sage.algebras.lie_algebras.classical_lie_algebra import gl
|
|
43
|
+
from sage.algebras.lie_algebras.classical_lie_algebra import ClassicalMatrixLieAlgebra as ClassicalMatrix
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
# the next 6 lines are here to silence pyflakes warnings
|
|
47
|
+
assert VirasoroAlgebra
|
|
48
|
+
assert RankTwoHeisenbergVirasoro
|
|
49
|
+
assert OnsagerAlgebra
|
|
50
|
+
assert SymplecticDerivation
|
|
51
|
+
assert Affine
|
|
52
|
+
assert gl
|
|
53
|
+
assert ClassicalMatrix
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
def three_dimensional(R, a, b, c, d, names=['X', 'Y', 'Z']):
|
|
57
|
+
r"""
|
|
58
|
+
The 3-dimensional Lie algebra over a given commutative ring `R`
|
|
59
|
+
with basis `\{X, Y, Z\}` subject to the relations:
|
|
60
|
+
|
|
61
|
+
.. MATH::
|
|
62
|
+
|
|
63
|
+
[X, Y] = aZ + dY, \quad [Y, Z] = bX, \quad [Z, X] = cY + dZ
|
|
64
|
+
|
|
65
|
+
where `a,b,c,d \in R`.
|
|
66
|
+
|
|
67
|
+
This is always a well-defined 3-dimensional Lie algebra, as can
|
|
68
|
+
be easily proven by computation.
|
|
69
|
+
|
|
70
|
+
EXAMPLES::
|
|
71
|
+
|
|
72
|
+
sage: L = lie_algebras.three_dimensional(QQ, 4, 1, -1, 2)
|
|
73
|
+
sage: L.structure_coefficients()
|
|
74
|
+
Finite family {('X', 'Y'): 2*Y + 4*Z, ('X', 'Z'): Y - 2*Z, ('Y', 'Z'): X}
|
|
75
|
+
sage: TestSuite(L).run()
|
|
76
|
+
sage: L = lie_algebras.three_dimensional(QQ, 1, 0, 0, 0)
|
|
77
|
+
sage: L.structure_coefficients()
|
|
78
|
+
Finite family {('X', 'Y'): Z}
|
|
79
|
+
sage: L = lie_algebras.three_dimensional(QQ, 0, 0, -1, -1)
|
|
80
|
+
sage: L.structure_coefficients()
|
|
81
|
+
Finite family {('X', 'Y'): -Y, ('X', 'Z'): Y + Z}
|
|
82
|
+
sage: L = lie_algebras.three_dimensional(QQ, 0, 1, 0, 0)
|
|
83
|
+
sage: L.structure_coefficients()
|
|
84
|
+
Finite family {('Y', 'Z'): X}
|
|
85
|
+
sage: lie_algebras.three_dimensional(QQ, 0, 0, 0, 0)
|
|
86
|
+
Abelian Lie algebra on 3 generators (X, Y, Z) over Rational Field
|
|
87
|
+
sage: Q.<a,b,c,d> = PolynomialRing(QQ)
|
|
88
|
+
sage: L = lie_algebras.three_dimensional(Q, a, b, c, d)
|
|
89
|
+
sage: L.structure_coefficients()
|
|
90
|
+
Finite family {('X', 'Y'): d*Y + a*Z, ('X', 'Z'): -c*Y - d*Z, ('Y', 'Z'): b*X}
|
|
91
|
+
sage: TestSuite(L).run()
|
|
92
|
+
"""
|
|
93
|
+
if isinstance(names, str):
|
|
94
|
+
names = names.split(',')
|
|
95
|
+
X = names[0]
|
|
96
|
+
Y = names[1]
|
|
97
|
+
Z = names[2]
|
|
98
|
+
from sage.algebras.lie_algebras.structure_coefficients import LieAlgebraWithStructureCoefficients
|
|
99
|
+
s_coeff = {(X,Y): {Z:a, Y:d}, (Y,Z): {X:b}, (Z,X): {Y:c, Z:d}}
|
|
100
|
+
return LieAlgebraWithStructureCoefficients(R, s_coeff, tuple(names))
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
def cross_product(R, names=['X', 'Y', 'Z']):
|
|
104
|
+
r"""
|
|
105
|
+
The Lie algebra of `\RR^3` defined by the usual cross product
|
|
106
|
+
`\times`.
|
|
107
|
+
|
|
108
|
+
EXAMPLES::
|
|
109
|
+
|
|
110
|
+
sage: L = lie_algebras.cross_product(QQ)
|
|
111
|
+
sage: L.structure_coefficients()
|
|
112
|
+
Finite family {('X', 'Y'): Z, ('X', 'Z'): -Y, ('Y', 'Z'): X}
|
|
113
|
+
sage: TestSuite(L).run()
|
|
114
|
+
"""
|
|
115
|
+
L = three_dimensional(R, 1, 1, 1, 0, names=names)
|
|
116
|
+
L.rename("Lie algebra of RR^3 under cross product over {}".format(R))
|
|
117
|
+
return L
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
def three_dimensional_by_rank(R, n, a=None, names=['X', 'Y', 'Z']):
|
|
121
|
+
r"""
|
|
122
|
+
Return a 3-dimensional Lie algebra of rank ``n``, where `0 \leq n \leq 3`.
|
|
123
|
+
|
|
124
|
+
Here, the *rank* of a Lie algebra `L` is defined as the dimension
|
|
125
|
+
of its derived subalgebra `[L, L]`. (We are assuming that `R` is
|
|
126
|
+
a field of characteristic `0`; otherwise the Lie algebras
|
|
127
|
+
constructed by this function are still well-defined but no longer
|
|
128
|
+
might have the correct ranks.) This is not to be confused with
|
|
129
|
+
the other standard definition of a rank (namely, as the
|
|
130
|
+
dimension of a Cartan subalgebra, when `L` is semisimple).
|
|
131
|
+
|
|
132
|
+
INPUT:
|
|
133
|
+
|
|
134
|
+
- ``R`` -- the base ring
|
|
135
|
+
- ``n`` -- the rank
|
|
136
|
+
- ``a`` -- the deformation parameter (used for `n = 2`); this should
|
|
137
|
+
be a nonzero element of `R` in order for the resulting Lie
|
|
138
|
+
algebra to actually have the right rank(?)
|
|
139
|
+
- ``names`` -- (optional) the generator names
|
|
140
|
+
|
|
141
|
+
EXAMPLES::
|
|
142
|
+
|
|
143
|
+
sage: lie_algebras.three_dimensional_by_rank(QQ, 0)
|
|
144
|
+
Abelian Lie algebra on 3 generators (X, Y, Z) over Rational Field
|
|
145
|
+
sage: L = lie_algebras.three_dimensional_by_rank(QQ, 1)
|
|
146
|
+
sage: L.structure_coefficients()
|
|
147
|
+
Finite family {('Y', 'Z'): X}
|
|
148
|
+
sage: L = lie_algebras.three_dimensional_by_rank(QQ, 2, 4)
|
|
149
|
+
sage: L.structure_coefficients()
|
|
150
|
+
Finite family {('X', 'Y'): Y, ('X', 'Z'): Y + Z}
|
|
151
|
+
sage: L = lie_algebras.three_dimensional_by_rank(QQ, 2, 0)
|
|
152
|
+
sage: L.structure_coefficients()
|
|
153
|
+
Finite family {('X', 'Y'): Y}
|
|
154
|
+
sage: lie_algebras.three_dimensional_by_rank(QQ, 3)
|
|
155
|
+
sl2 over Rational Field
|
|
156
|
+
"""
|
|
157
|
+
if isinstance(names, str):
|
|
158
|
+
names = names.split(',')
|
|
159
|
+
names = tuple(names)
|
|
160
|
+
|
|
161
|
+
if n == 0:
|
|
162
|
+
from sage.algebras.lie_algebras.abelian import AbelianLieAlgebra
|
|
163
|
+
return AbelianLieAlgebra(R, names=names)
|
|
164
|
+
|
|
165
|
+
if n == 1:
|
|
166
|
+
L = three_dimensional(R, 0, 1, 0, 0, names=names) # Strictly upper triangular matrices
|
|
167
|
+
L.rename("Lie algebra of 3x3 strictly upper triangular matrices over {}".format(R))
|
|
168
|
+
return L
|
|
169
|
+
|
|
170
|
+
if n == 2:
|
|
171
|
+
if a is None:
|
|
172
|
+
raise ValueError("the parameter 'a' must be specified")
|
|
173
|
+
X = names[0]
|
|
174
|
+
Y = names[1]
|
|
175
|
+
Z = names[2]
|
|
176
|
+
from sage.algebras.lie_algebras.structure_coefficients import LieAlgebraWithStructureCoefficients
|
|
177
|
+
if a == 0:
|
|
178
|
+
s_coeff = {(X,Y): {Y:R.one()}, (X,Z): {Y:R(a)}}
|
|
179
|
+
# Why use R(a) here if R == 0 ? Also this has rank 1.
|
|
180
|
+
L = LieAlgebraWithStructureCoefficients(R, s_coeff, tuple(names))
|
|
181
|
+
L.rename("Degenerate Lie algebra of dimension 3 and rank 2 over {}".format(R))
|
|
182
|
+
else:
|
|
183
|
+
s_coeff = {(X,Y): {Y:R.one()}, (X,Z): {Y:R.one(), Z:R.one()}}
|
|
184
|
+
# a doesn't appear here :/
|
|
185
|
+
L = LieAlgebraWithStructureCoefficients(R, s_coeff, tuple(names))
|
|
186
|
+
L.rename("Lie algebra of dimension 3 and rank 2 with parameter {} over {}".format(a, R))
|
|
187
|
+
return L
|
|
188
|
+
|
|
189
|
+
if n == 3:
|
|
190
|
+
# return sl(R, 2)
|
|
191
|
+
from sage.algebras.lie_algebras.structure_coefficients import LieAlgebraWithStructureCoefficients
|
|
192
|
+
E = names[0]
|
|
193
|
+
F = names[1]
|
|
194
|
+
H = names[2]
|
|
195
|
+
s_coeff = {(E, F): {H: R.one()}, (H, E): {E: R(2)}, (H, F): {F: R(-2)}}
|
|
196
|
+
L = LieAlgebraWithStructureCoefficients(R, s_coeff, tuple(names))
|
|
197
|
+
L.rename("sl2 over {}".format(R))
|
|
198
|
+
return L
|
|
199
|
+
|
|
200
|
+
raise ValueError("invalid rank")
|
|
201
|
+
|
|
202
|
+
|
|
203
|
+
def affine_transformations_line(R, names=['X', 'Y'], representation='bracket'):
|
|
204
|
+
"""
|
|
205
|
+
The Lie algebra of affine transformations of the line.
|
|
206
|
+
|
|
207
|
+
EXAMPLES::
|
|
208
|
+
|
|
209
|
+
sage: L = lie_algebras.affine_transformations_line(QQ)
|
|
210
|
+
sage: L.structure_coefficients()
|
|
211
|
+
Finite family {('X', 'Y'): Y}
|
|
212
|
+
sage: X, Y = L.lie_algebra_generators()
|
|
213
|
+
sage: L[X, Y] == Y
|
|
214
|
+
True
|
|
215
|
+
sage: TestSuite(L).run()
|
|
216
|
+
sage: L = lie_algebras.affine_transformations_line(QQ, representation='matrix')
|
|
217
|
+
sage: X, Y = L.lie_algebra_generators()
|
|
218
|
+
sage: L[X, Y] == Y
|
|
219
|
+
True
|
|
220
|
+
sage: TestSuite(L).run()
|
|
221
|
+
"""
|
|
222
|
+
if isinstance(names, str):
|
|
223
|
+
names = names.split(',')
|
|
224
|
+
names = tuple(names)
|
|
225
|
+
if representation == 'matrix':
|
|
226
|
+
from sage.matrix.matrix_space import MatrixSpace
|
|
227
|
+
MS = MatrixSpace(R, 2, sparse=True)
|
|
228
|
+
one = R.one()
|
|
229
|
+
gens = tuple(MS({(0,i):one}) for i in range(2))
|
|
230
|
+
from sage.algebras.lie_algebras.lie_algebra import LieAlgebraFromAssociative
|
|
231
|
+
return LieAlgebraFromAssociative(MS, gens, names=names)
|
|
232
|
+
X = names[0]
|
|
233
|
+
Y = names[1]
|
|
234
|
+
from sage.algebras.lie_algebras.structure_coefficients import LieAlgebraWithStructureCoefficients
|
|
235
|
+
s_coeff = {(X,Y): {Y:R.one()}}
|
|
236
|
+
L = LieAlgebraWithStructureCoefficients(R, s_coeff, names=names)
|
|
237
|
+
L.rename("Lie algebra of affine transformations of a line over {}".format(R))
|
|
238
|
+
return L
|
|
239
|
+
|
|
240
|
+
|
|
241
|
+
def abelian(R, names=None, index_set=None):
|
|
242
|
+
"""
|
|
243
|
+
Return the abelian Lie algebra generated by ``names``.
|
|
244
|
+
|
|
245
|
+
EXAMPLES::
|
|
246
|
+
|
|
247
|
+
sage: lie_algebras.abelian(QQ, 'x, y, z')
|
|
248
|
+
Abelian Lie algebra on 3 generators (x, y, z) over Rational Field
|
|
249
|
+
"""
|
|
250
|
+
if isinstance(names, str):
|
|
251
|
+
names = names.split(',')
|
|
252
|
+
elif isinstance(names, (list, tuple)):
|
|
253
|
+
names = tuple(names)
|
|
254
|
+
elif names is not None:
|
|
255
|
+
if index_set is not None:
|
|
256
|
+
raise ValueError("invalid generator names")
|
|
257
|
+
index_set = names
|
|
258
|
+
names = None
|
|
259
|
+
from sage.rings.infinity import infinity
|
|
260
|
+
if (index_set is not None
|
|
261
|
+
and not isinstance(index_set, (list, tuple))
|
|
262
|
+
and index_set.cardinality() == infinity):
|
|
263
|
+
from sage.algebras.lie_algebras.abelian import InfiniteDimensionalAbelianLieAlgebra
|
|
264
|
+
return InfiniteDimensionalAbelianLieAlgebra(R, index_set=index_set)
|
|
265
|
+
from sage.algebras.lie_algebras.abelian import AbelianLieAlgebra
|
|
266
|
+
return AbelianLieAlgebra(R, names=names, index_set=index_set)
|
|
267
|
+
|
|
268
|
+
|
|
269
|
+
def Heisenberg(R, n, representation='structure'):
|
|
270
|
+
"""
|
|
271
|
+
Return the rank ``n`` Heisenberg algebra in the given representation.
|
|
272
|
+
|
|
273
|
+
INPUT:
|
|
274
|
+
|
|
275
|
+
- ``R`` -- the base ring
|
|
276
|
+
- ``n`` -- the rank (a nonnegative integer or infinity)
|
|
277
|
+
- ``representation`` -- (default: ``'structure'``) can be one of the
|
|
278
|
+
following:
|
|
279
|
+
|
|
280
|
+
- ``'structure'`` -- using structure coefficients
|
|
281
|
+
- ``'matrix'`` -- using matrices
|
|
282
|
+
|
|
283
|
+
EXAMPLES::
|
|
284
|
+
|
|
285
|
+
sage: lie_algebras.Heisenberg(QQ, 3)
|
|
286
|
+
Heisenberg algebra of rank 3 over Rational Field
|
|
287
|
+
"""
|
|
288
|
+
from sage.rings.infinity import infinity
|
|
289
|
+
if n == infinity:
|
|
290
|
+
from sage.algebras.lie_algebras.heisenberg import InfiniteHeisenbergAlgebra
|
|
291
|
+
return InfiniteHeisenbergAlgebra(R)
|
|
292
|
+
if representation == "matrix":
|
|
293
|
+
from sage.algebras.lie_algebras.heisenberg import HeisenbergAlgebra_matrix
|
|
294
|
+
return HeisenbergAlgebra_matrix(R, n)
|
|
295
|
+
from sage.algebras.lie_algebras.heisenberg import HeisenbergAlgebra
|
|
296
|
+
return HeisenbergAlgebra(R, n)
|
|
297
|
+
|
|
298
|
+
|
|
299
|
+
def regular_vector_fields(R):
|
|
300
|
+
r"""
|
|
301
|
+
Return the Lie algebra of regular vector fields on `\CC^{\times}`.
|
|
302
|
+
|
|
303
|
+
This is also known as the Witt (Lie) algebra.
|
|
304
|
+
|
|
305
|
+
.. SEEALSO::
|
|
306
|
+
|
|
307
|
+
:class:`~sage.algebras.lie_algebras.virasoro.LieAlgebraRegularVectorFields`
|
|
308
|
+
|
|
309
|
+
EXAMPLES::
|
|
310
|
+
|
|
311
|
+
sage: lie_algebras.regular_vector_fields(QQ)
|
|
312
|
+
The Lie algebra of regular vector fields over Rational Field
|
|
313
|
+
"""
|
|
314
|
+
from sage.algebras.lie_algebras.virasoro import LieAlgebraRegularVectorFields
|
|
315
|
+
return LieAlgebraRegularVectorFields(R)
|
|
316
|
+
|
|
317
|
+
|
|
318
|
+
witt = regular_vector_fields
|
|
319
|
+
|
|
320
|
+
|
|
321
|
+
def pwitt(R, p):
|
|
322
|
+
r"""
|
|
323
|
+
Return the `p`-Witt Lie algebra over `R`.
|
|
324
|
+
|
|
325
|
+
INPUT:
|
|
326
|
+
|
|
327
|
+
- ``R`` -- the base ring
|
|
328
|
+
- ``p`` -- positive integer that is `0` in `R`
|
|
329
|
+
|
|
330
|
+
EXAMPLES::
|
|
331
|
+
|
|
332
|
+
sage: lie_algebras.pwitt(GF(5), 5)
|
|
333
|
+
The 5-Witt Lie algebra over Finite Field of size 5
|
|
334
|
+
"""
|
|
335
|
+
from sage.algebras.lie_algebras.virasoro import WittLieAlgebra_charp
|
|
336
|
+
return WittLieAlgebra_charp(R, p)
|
|
337
|
+
|
|
338
|
+
|
|
339
|
+
def upper_triangular_matrices(R, n):
|
|
340
|
+
r"""
|
|
341
|
+
Return the Lie algebra `\mathfrak{b}_k` of `k \times k` upper
|
|
342
|
+
triangular matrices.
|
|
343
|
+
|
|
344
|
+
.. TODO::
|
|
345
|
+
|
|
346
|
+
This implementation does not know it is finite-dimensional and
|
|
347
|
+
does not know its basis.
|
|
348
|
+
|
|
349
|
+
EXAMPLES::
|
|
350
|
+
|
|
351
|
+
sage: L = lie_algebras.upper_triangular_matrices(QQ, 4); L
|
|
352
|
+
Lie algebra of 4-dimensional upper triangular matrices over Rational Field
|
|
353
|
+
sage: TestSuite(L).run()
|
|
354
|
+
sage: n0, n1, n2, t0, t1, t2, t3 = L.lie_algebra_generators()
|
|
355
|
+
sage: L[n2, t2] == -n2
|
|
356
|
+
True
|
|
357
|
+
|
|
358
|
+
TESTS::
|
|
359
|
+
|
|
360
|
+
sage: L = lie_algebras.upper_triangular_matrices(QQ, 1); L
|
|
361
|
+
Lie algebra of 1-dimensional upper triangular matrices over Rational Field
|
|
362
|
+
sage: TestSuite(L).run()
|
|
363
|
+
sage: L = lie_algebras.upper_triangular_matrices(QQ, 0); L
|
|
364
|
+
Lie algebra of 0-dimensional upper triangular matrices over Rational Field
|
|
365
|
+
sage: TestSuite(L).run()
|
|
366
|
+
"""
|
|
367
|
+
from sage.matrix.matrix_space import MatrixSpace
|
|
368
|
+
from sage.algebras.lie_algebras.lie_algebra import LieAlgebraFromAssociative
|
|
369
|
+
MS = MatrixSpace(R, n, sparse=True)
|
|
370
|
+
one = R.one()
|
|
371
|
+
names = tuple('n{}'.format(i) for i in range(n-1))
|
|
372
|
+
names += tuple('t{}'.format(i) for i in range(n))
|
|
373
|
+
gens = [MS({(i,i+1):one}) for i in range(n-1)]
|
|
374
|
+
gens += [MS({(i,i):one}) for i in range(n)]
|
|
375
|
+
L = LieAlgebraFromAssociative(MS, gens, names=names)
|
|
376
|
+
L.rename("Lie algebra of {}-dimensional upper triangular matrices over {}".format(n, L.base_ring()))
|
|
377
|
+
return L
|
|
378
|
+
|
|
379
|
+
|
|
380
|
+
def strictly_upper_triangular_matrices(R, n):
|
|
381
|
+
r"""
|
|
382
|
+
Return the Lie algebra `\mathfrak{n}_k` of strictly `k \times k` upper
|
|
383
|
+
triangular matrices.
|
|
384
|
+
|
|
385
|
+
.. TODO::
|
|
386
|
+
|
|
387
|
+
This implementation does not know it is finite-dimensional and
|
|
388
|
+
does not know its basis.
|
|
389
|
+
|
|
390
|
+
EXAMPLES::
|
|
391
|
+
|
|
392
|
+
sage: L = lie_algebras.strictly_upper_triangular_matrices(QQ, 4); L
|
|
393
|
+
Lie algebra of 4-dimensional strictly upper triangular matrices over Rational Field
|
|
394
|
+
sage: TestSuite(L).run()
|
|
395
|
+
sage: n0, n1, n2 = L.lie_algebra_generators()
|
|
396
|
+
sage: L[n2, n1]
|
|
397
|
+
[ 0 0 0 0]
|
|
398
|
+
[ 0 0 0 -1]
|
|
399
|
+
[ 0 0 0 0]
|
|
400
|
+
[ 0 0 0 0]
|
|
401
|
+
|
|
402
|
+
TESTS::
|
|
403
|
+
|
|
404
|
+
sage: L = lie_algebras.strictly_upper_triangular_matrices(QQ, 1); L
|
|
405
|
+
Lie algebra of 1-dimensional strictly upper triangular matrices over Rational Field
|
|
406
|
+
sage: TestSuite(L).run()
|
|
407
|
+
sage: L = lie_algebras.strictly_upper_triangular_matrices(QQ, 0); L
|
|
408
|
+
Lie algebra of 0-dimensional strictly upper triangular matrices over Rational Field
|
|
409
|
+
sage: TestSuite(L).run()
|
|
410
|
+
"""
|
|
411
|
+
from sage.matrix.matrix_space import MatrixSpace
|
|
412
|
+
from sage.algebras.lie_algebras.lie_algebra import LieAlgebraFromAssociative
|
|
413
|
+
MS = MatrixSpace(R, n, sparse=True)
|
|
414
|
+
one = R.one()
|
|
415
|
+
names = tuple('n{}'.format(i) for i in range(n-1))
|
|
416
|
+
gens = tuple(MS({(i,i+1): one}) for i in range(n-1))
|
|
417
|
+
L = LieAlgebraFromAssociative(MS, gens, names=names)
|
|
418
|
+
L.rename("Lie algebra of {}-dimensional strictly upper triangular matrices over {}".format(n, L.base_ring()))
|
|
419
|
+
return L
|
|
420
|
+
|
|
421
|
+
#####################################################################
|
|
422
|
+
# Classical Lie algebras
|
|
423
|
+
|
|
424
|
+
|
|
425
|
+
def sl(R, n, representation='bracket'):
|
|
426
|
+
r"""
|
|
427
|
+
The Lie algebra `\mathfrak{sl}_n`.
|
|
428
|
+
|
|
429
|
+
The Lie algebra `\mathfrak{sl}_n` is the type `A_{n-1}` Lie algebra
|
|
430
|
+
and is finite dimensional. As a matrix Lie algebra, it is given by
|
|
431
|
+
the set of all `n \times n` matrices with trace 0.
|
|
432
|
+
|
|
433
|
+
INPUT:
|
|
434
|
+
|
|
435
|
+
- ``R`` -- the base ring
|
|
436
|
+
- ``n`` -- the size of the matrix
|
|
437
|
+
- ``representation`` -- (default: ``'bracket'``) can be one of
|
|
438
|
+
the following:
|
|
439
|
+
|
|
440
|
+
* ``'bracket'`` -- use brackets and the Chevalley basis
|
|
441
|
+
* ``'matrix'`` -- use matrices
|
|
442
|
+
|
|
443
|
+
EXAMPLES:
|
|
444
|
+
|
|
445
|
+
We first construct `\mathfrak{sl}_2` using the Chevalley basis::
|
|
446
|
+
|
|
447
|
+
sage: sl2 = lie_algebras.sl(QQ, 2); sl2
|
|
448
|
+
Lie algebra of ['A', 1] in the Chevalley basis
|
|
449
|
+
sage: E,F,H = sl2.gens()
|
|
450
|
+
sage: E.bracket(F) == H
|
|
451
|
+
True
|
|
452
|
+
sage: H.bracket(E) == 2*E
|
|
453
|
+
True
|
|
454
|
+
sage: H.bracket(F) == -2*F
|
|
455
|
+
True
|
|
456
|
+
|
|
457
|
+
We now construct `\mathfrak{sl}_2` as a matrix Lie algebra::
|
|
458
|
+
|
|
459
|
+
sage: sl2 = lie_algebras.sl(QQ, 2, representation='matrix')
|
|
460
|
+
sage: E,F,H = sl2.gens()
|
|
461
|
+
sage: E.bracket(F) == H
|
|
462
|
+
True
|
|
463
|
+
sage: H.bracket(E) == 2*E
|
|
464
|
+
True
|
|
465
|
+
sage: H.bracket(F) == -2*F
|
|
466
|
+
True
|
|
467
|
+
"""
|
|
468
|
+
if representation == 'bracket':
|
|
469
|
+
from sage.algebras.lie_algebras.classical_lie_algebra import LieAlgebraChevalleyBasis
|
|
470
|
+
return LieAlgebraChevalleyBasis(R, ['A', n-1])
|
|
471
|
+
if representation == 'matrix':
|
|
472
|
+
from sage.algebras.lie_algebras.classical_lie_algebra import sl as sl_matrix
|
|
473
|
+
return sl_matrix(R, n)
|
|
474
|
+
raise ValueError("invalid representation")
|
|
475
|
+
|
|
476
|
+
|
|
477
|
+
def su(R, n, representation='matrix'):
|
|
478
|
+
r"""
|
|
479
|
+
The Lie algebra `\mathfrak{su}_n`.
|
|
480
|
+
|
|
481
|
+
The Lie algebra `\mathfrak{su}_n` is the compact real form of the
|
|
482
|
+
type `A_{n-1}` Lie algebra and is finite-dimensional. As a matrix
|
|
483
|
+
Lie algebra, it is given by the set of all `n \times n` skew-Hermitian
|
|
484
|
+
matrices with trace 0.
|
|
485
|
+
|
|
486
|
+
INPUT:
|
|
487
|
+
|
|
488
|
+
- ``R`` -- the base ring
|
|
489
|
+
- ``n`` -- the size of the matrix
|
|
490
|
+
- ``representation`` -- (default: ``'matrix'``) can be one of
|
|
491
|
+
the following:
|
|
492
|
+
|
|
493
|
+
* ``'bracket'`` -- use brackets and the Chevalley basis
|
|
494
|
+
* ``'matrix'`` -- use matrices
|
|
495
|
+
|
|
496
|
+
EXAMPLES:
|
|
497
|
+
|
|
498
|
+
We construct `\mathfrak{su}_2`, where the default is as a
|
|
499
|
+
matrix Lie algebra::
|
|
500
|
+
|
|
501
|
+
sage: su2 = lie_algebras.su(QQ, 2)
|
|
502
|
+
sage: E,H,F = su2.basis()
|
|
503
|
+
sage: E.bracket(F) == 2*H
|
|
504
|
+
True
|
|
505
|
+
sage: H.bracket(E) == 2*F
|
|
506
|
+
True
|
|
507
|
+
sage: H.bracket(F) == -2*E
|
|
508
|
+
True
|
|
509
|
+
|
|
510
|
+
Since `\mathfrak{su}_n` is the same as the type `A_{n-1}` Lie algebra,
|
|
511
|
+
the bracket is the same as :func:`sl`::
|
|
512
|
+
|
|
513
|
+
sage: su2 = lie_algebras.su(QQ, 2, representation='bracket')
|
|
514
|
+
sage: su2 is lie_algebras.sl(QQ, 2, representation='bracket')
|
|
515
|
+
True
|
|
516
|
+
"""
|
|
517
|
+
if representation == 'bracket':
|
|
518
|
+
from sage.algebras.lie_algebras.classical_lie_algebra import LieAlgebraChevalleyBasis
|
|
519
|
+
return LieAlgebraChevalleyBasis(R, ['A', n-1])
|
|
520
|
+
if representation == 'matrix':
|
|
521
|
+
from sage.algebras.lie_algebras.classical_lie_algebra import MatrixCompactRealForm
|
|
522
|
+
from sage.combinat.root_system.cartan_type import CartanType
|
|
523
|
+
return MatrixCompactRealForm(R, CartanType(['A', n-1]))
|
|
524
|
+
raise ValueError("invalid representation")
|
|
525
|
+
|
|
526
|
+
|
|
527
|
+
def so(R, n, representation='bracket'):
|
|
528
|
+
r"""
|
|
529
|
+
The Lie algebra `\mathfrak{so}_n`.
|
|
530
|
+
|
|
531
|
+
The Lie algebra `\mathfrak{so}_n` is the type `B_k` Lie algebra
|
|
532
|
+
if `n = 2k - 1` or the type `D_k` Lie algebra if `n = 2k`, and in
|
|
533
|
+
either case is finite dimensional.
|
|
534
|
+
|
|
535
|
+
A classical description of this as a matrix Lie algebra is
|
|
536
|
+
the set of all anti-symmetric `n \times n` matrices. However,
|
|
537
|
+
the implementation here uses a different bilinear form for the Lie
|
|
538
|
+
group and follows the description in Chapter 8 of [HK2002]_.
|
|
539
|
+
See :class:`sage.algebras.lie_algebras.classical_lie_algebra.so`
|
|
540
|
+
for a precise description.
|
|
541
|
+
|
|
542
|
+
INPUT:
|
|
543
|
+
|
|
544
|
+
- ``R`` -- the base ring
|
|
545
|
+
- ``n`` -- the size of the matrix
|
|
546
|
+
- ``representation`` -- (default: ``'bracket'``) can be one of
|
|
547
|
+
the following:
|
|
548
|
+
|
|
549
|
+
* ``'bracket'`` -- use brackets and the Chevalley basis
|
|
550
|
+
* ``'matrix'`` -- use matrices
|
|
551
|
+
|
|
552
|
+
EXAMPLES:
|
|
553
|
+
|
|
554
|
+
We first construct `\mathfrak{so}_5` using the Chevalley basis::
|
|
555
|
+
|
|
556
|
+
sage: so5 = lie_algebras.so(QQ, 5); so5
|
|
557
|
+
Lie algebra of ['B', 2] in the Chevalley basis
|
|
558
|
+
sage: E1,E2, F1,F2, H1,H2 = so5.gens()
|
|
559
|
+
sage: so5([E1, [E1, E2]])
|
|
560
|
+
0
|
|
561
|
+
sage: X = so5([E2, [E2, E1]]); X
|
|
562
|
+
-2*E[alpha[1] + 2*alpha[2]]
|
|
563
|
+
sage: H1.bracket(X)
|
|
564
|
+
0
|
|
565
|
+
sage: H2.bracket(X)
|
|
566
|
+
-4*E[alpha[1] + 2*alpha[2]]
|
|
567
|
+
sage: so5([H1, [E1, E2]])
|
|
568
|
+
-E[alpha[1] + alpha[2]]
|
|
569
|
+
sage: so5([H2, [E1, E2]])
|
|
570
|
+
0
|
|
571
|
+
|
|
572
|
+
We do the same construction of `\mathfrak{so}_4` using the Chevalley
|
|
573
|
+
basis::
|
|
574
|
+
|
|
575
|
+
sage: so4 = lie_algebras.so(QQ, 4); so4
|
|
576
|
+
Lie algebra of ['D', 2] in the Chevalley basis
|
|
577
|
+
sage: E1,E2, F1,F2, H1,H2 = so4.gens()
|
|
578
|
+
sage: H1.bracket(E1)
|
|
579
|
+
2*E[alpha[1]]
|
|
580
|
+
sage: H2.bracket(E1) == so4.zero()
|
|
581
|
+
True
|
|
582
|
+
sage: E1.bracket(E2) == so4.zero()
|
|
583
|
+
True
|
|
584
|
+
|
|
585
|
+
We now construct `\mathfrak{so}_4` as a matrix Lie algebra::
|
|
586
|
+
|
|
587
|
+
sage: sl2 = lie_algebras.sl(QQ, 2, representation='matrix')
|
|
588
|
+
sage: E1,E2, F1,F2, H1,H2 = so4.gens()
|
|
589
|
+
sage: H2.bracket(E1) == so4.zero()
|
|
590
|
+
True
|
|
591
|
+
sage: E1.bracket(E2) == so4.zero()
|
|
592
|
+
True
|
|
593
|
+
"""
|
|
594
|
+
if representation == 'bracket':
|
|
595
|
+
from sage.algebras.lie_algebras.classical_lie_algebra import LieAlgebraChevalleyBasis
|
|
596
|
+
if n % 2 == 0:
|
|
597
|
+
return LieAlgebraChevalleyBasis(R, ['D', n//2])
|
|
598
|
+
else:
|
|
599
|
+
return LieAlgebraChevalleyBasis(R, ['B', (n-1)//2])
|
|
600
|
+
if representation == 'matrix':
|
|
601
|
+
from sage.algebras.lie_algebras.classical_lie_algebra import so as so_matrix
|
|
602
|
+
return so_matrix(R, n)
|
|
603
|
+
raise ValueError("invalid representation")
|
|
604
|
+
|
|
605
|
+
|
|
606
|
+
def sp(R, n, representation='bracket'):
|
|
607
|
+
r"""
|
|
608
|
+
The Lie algebra `\mathfrak{sp}_n`.
|
|
609
|
+
|
|
610
|
+
The Lie algebra `\mathfrak{sp}_n` where `n = 2k` is the type `C_k`
|
|
611
|
+
Lie algebra and is finite dimensional. As a matrix Lie algebra, it
|
|
612
|
+
is given by the set of all matrices `X` that satisfy the equation:
|
|
613
|
+
|
|
614
|
+
.. MATH::
|
|
615
|
+
|
|
616
|
+
X^T M - M X = 0
|
|
617
|
+
|
|
618
|
+
where
|
|
619
|
+
|
|
620
|
+
.. MATH::
|
|
621
|
+
|
|
622
|
+
M = \begin{pmatrix}
|
|
623
|
+
0 & I_k \\
|
|
624
|
+
-I_k & 0
|
|
625
|
+
\end{pmatrix}.
|
|
626
|
+
|
|
627
|
+
This is the Lie algebra of type `C_k`.
|
|
628
|
+
|
|
629
|
+
INPUT:
|
|
630
|
+
|
|
631
|
+
- ``R`` -- the base ring
|
|
632
|
+
- ``n`` -- the size of the matrix
|
|
633
|
+
- ``representation`` -- (default: ``'bracket'``) can be one of
|
|
634
|
+
the following:
|
|
635
|
+
|
|
636
|
+
* ``'bracket'`` -- use brackets and the Chevalley basis
|
|
637
|
+
* ``'matrix'`` -- use matrices
|
|
638
|
+
|
|
639
|
+
EXAMPLES:
|
|
640
|
+
|
|
641
|
+
We first construct `\mathfrak{sp}_4` using the Chevalley basis::
|
|
642
|
+
|
|
643
|
+
sage: sp4 = lie_algebras.sp(QQ, 4); sp4
|
|
644
|
+
Lie algebra of ['C', 2] in the Chevalley basis
|
|
645
|
+
sage: E1,E2, F1,F2, H1,H2 = sp4.gens()
|
|
646
|
+
sage: sp4([E2, [E2, E1]])
|
|
647
|
+
0
|
|
648
|
+
sage: X = sp4([E1, [E1, E2]]); X
|
|
649
|
+
2*E[2*alpha[1] + alpha[2]]
|
|
650
|
+
sage: H1.bracket(X)
|
|
651
|
+
4*E[2*alpha[1] + alpha[2]]
|
|
652
|
+
sage: H2.bracket(X)
|
|
653
|
+
0
|
|
654
|
+
sage: sp4([H1, [E1, E2]])
|
|
655
|
+
0
|
|
656
|
+
sage: sp4([H2, [E1, E2]])
|
|
657
|
+
-E[alpha[1] + alpha[2]]
|
|
658
|
+
|
|
659
|
+
We now construct `\mathfrak{sp}_4` as a matrix Lie algebra::
|
|
660
|
+
|
|
661
|
+
sage: sp4 = lie_algebras.sp(QQ, 4, representation='matrix'); sp4
|
|
662
|
+
Symplectic Lie algebra of rank 4 over Rational Field
|
|
663
|
+
sage: E1,E2, F1,F2, H1,H2 = sp4.gens()
|
|
664
|
+
sage: H1.bracket(E1)
|
|
665
|
+
[ 0 2 0 0]
|
|
666
|
+
[ 0 0 0 0]
|
|
667
|
+
[ 0 0 0 0]
|
|
668
|
+
[ 0 0 -2 0]
|
|
669
|
+
sage: sp4([E1, [E1, E2]])
|
|
670
|
+
[0 0 2 0]
|
|
671
|
+
[0 0 0 0]
|
|
672
|
+
[0 0 0 0]
|
|
673
|
+
[0 0 0 0]
|
|
674
|
+
"""
|
|
675
|
+
if n % 2:
|
|
676
|
+
raise ValueError("n must be even")
|
|
677
|
+
if representation == 'bracket':
|
|
678
|
+
from sage.algebras.lie_algebras.classical_lie_algebra import LieAlgebraChevalleyBasis
|
|
679
|
+
return LieAlgebraChevalleyBasis(R, ['C', n//2])
|
|
680
|
+
if representation == 'matrix':
|
|
681
|
+
from sage.algebras.lie_algebras.classical_lie_algebra import sp as sp_matrix
|
|
682
|
+
return sp_matrix(R, n)
|
|
683
|
+
raise ValueError("invalid representation")
|