passagemath-modules 10.6.31rc3__cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_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 +807 -0
- passagemath_modules-10.6.31rc3.dist-info/WHEEL +6 -0
- passagemath_modules-10.6.31rc3.dist-info/top_level.txt +2 -0
- passagemath_modules.libs/libgfortran-83c28eba.so.5.0.0 +0 -0
- passagemath_modules.libs/libgmp-6e109695.so.10.5.0 +0 -0
- passagemath_modules.libs/libgsl-cda90e79.so.28.0.0 +0 -0
- passagemath_modules.libs/libmpc-7f678fcf.so.3.3.1 +0 -0
- passagemath_modules.libs/libmpfr-82690d50.so.6.2.1 +0 -0
- passagemath_modules.libs/libopenblasp-r0-6dcb67f9.3.29.so +0 -0
- passagemath_modules.libs/libquadmath-2284e583.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-gnu.so +0 -0
- sage/algebras/clifford_algebra_element.pxd +16 -0
- sage/algebras/clifford_algebra_element.pyx +997 -0
- sage/algebras/commutative_dga.py +4252 -0
- sage/algebras/exterior_algebra_groebner.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/algebras/exterior_algebra_groebner.pxd +55 -0
- sage/algebras/exterior_algebra_groebner.pyx +727 -0
- sage/algebras/finite_dimensional_algebras/all.py +2 -0
- sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra.py +1029 -0
- sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra_element.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra_element.pxd +12 -0
- sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra_element.pyx +706 -0
- sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra_ideal.py +196 -0
- sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra_morphism.py +255 -0
- sage/algebras/finite_gca.py +528 -0
- sage/algebras/group_algebra.py +232 -0
- sage/algebras/lie_algebras/abelian.py +197 -0
- sage/algebras/lie_algebras/affine_lie_algebra.py +1213 -0
- sage/algebras/lie_algebras/all.py +25 -0
- sage/algebras/lie_algebras/all__sagemath_modules.py +1 -0
- sage/algebras/lie_algebras/bch.py +177 -0
- sage/algebras/lie_algebras/bgg_dual_module.py +1184 -0
- sage/algebras/lie_algebras/bgg_resolution.py +232 -0
- sage/algebras/lie_algebras/center_uea.py +767 -0
- sage/algebras/lie_algebras/classical_lie_algebra.py +2516 -0
- sage/algebras/lie_algebras/examples.py +683 -0
- sage/algebras/lie_algebras/free_lie_algebra.py +973 -0
- sage/algebras/lie_algebras/heisenberg.py +820 -0
- sage/algebras/lie_algebras/lie_algebra.py +1562 -0
- sage/algebras/lie_algebras/lie_algebra_element.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/algebras/lie_algebras/lie_algebra_element.pxd +68 -0
- sage/algebras/lie_algebras/lie_algebra_element.pyx +2122 -0
- sage/algebras/lie_algebras/morphism.py +661 -0
- sage/algebras/lie_algebras/nilpotent_lie_algebra.py +457 -0
- sage/algebras/lie_algebras/onsager.py +1324 -0
- sage/algebras/lie_algebras/poincare_birkhoff_witt.py +816 -0
- sage/algebras/lie_algebras/quotient.py +462 -0
- sage/algebras/lie_algebras/rank_two_heisenberg_virasoro.py +355 -0
- sage/algebras/lie_algebras/representation.py +1040 -0
- sage/algebras/lie_algebras/structure_coefficients.py +459 -0
- sage/algebras/lie_algebras/subalgebra.py +967 -0
- sage/algebras/lie_algebras/symplectic_derivation.py +289 -0
- sage/algebras/lie_algebras/verma_module.py +1630 -0
- sage/algebras/lie_algebras/virasoro.py +1186 -0
- sage/algebras/octonion_algebra.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/algebras/octonion_algebra.pxd +20 -0
- sage/algebras/octonion_algebra.pyx +987 -0
- sage/algebras/orlik_solomon.py +907 -0
- sage/algebras/orlik_terao.py +779 -0
- sage/algebras/steenrod/all.py +7 -0
- sage/algebras/steenrod/steenrod_algebra.py +4258 -0
- sage/algebras/steenrod/steenrod_algebra_bases.py +1179 -0
- sage/algebras/steenrod/steenrod_algebra_misc.py +1167 -0
- sage/algebras/steenrod/steenrod_algebra_mult.py +954 -0
- sage/algebras/weyl_algebra.py +1126 -0
- sage/all__sagemath_modules.py +62 -0
- sage/calculus/all__sagemath_modules.py +19 -0
- sage/calculus/expr.py +205 -0
- sage/calculus/integration.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/calculus/integration.pyx +698 -0
- sage/calculus/interpolation.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/calculus/interpolation.pxd +13 -0
- sage/calculus/interpolation.pyx +387 -0
- sage/calculus/interpolators.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/calculus/interpolators.pyx +326 -0
- sage/calculus/ode.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/calculus/ode.pxd +5 -0
- sage/calculus/ode.pyx +610 -0
- sage/calculus/riemann.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/calculus/riemann.pyx +1521 -0
- sage/calculus/test_sympy.py +201 -0
- sage/calculus/transforms/all.py +7 -0
- sage/calculus/transforms/dft.py +844 -0
- sage/calculus/transforms/dwt.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/calculus/transforms/dwt.pxd +7 -0
- sage/calculus/transforms/dwt.pyx +160 -0
- sage/calculus/transforms/fft.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/calculus/transforms/fft.pxd +12 -0
- sage/calculus/transforms/fft.pyx +487 -0
- sage/calculus/wester.py +662 -0
- sage/coding/abstract_code.py +1108 -0
- sage/coding/ag_code.py +868 -0
- sage/coding/ag_code_decoders.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/coding/ag_code_decoders.pyx +2639 -0
- sage/coding/all.py +15 -0
- sage/coding/bch_code.py +494 -0
- sage/coding/binary_code.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/coding/binary_code.pxd +124 -0
- sage/coding/binary_code.pyx +4139 -0
- sage/coding/bounds_catalog.py +43 -0
- sage/coding/channel.py +819 -0
- sage/coding/channels_catalog.py +29 -0
- sage/coding/code_bounds.py +755 -0
- sage/coding/code_constructions.py +804 -0
- sage/coding/codes_catalog.py +111 -0
- sage/coding/cyclic_code.py +1329 -0
- sage/coding/databases.py +316 -0
- sage/coding/decoder.py +373 -0
- sage/coding/decoders_catalog.py +88 -0
- sage/coding/delsarte_bounds.py +709 -0
- sage/coding/encoder.py +390 -0
- sage/coding/encoders_catalog.py +64 -0
- sage/coding/extended_code.py +468 -0
- sage/coding/gabidulin_code.py +1058 -0
- sage/coding/golay_code.py +404 -0
- sage/coding/goppa_code.py +441 -0
- sage/coding/grs_code.py +2371 -0
- sage/coding/guava.py +107 -0
- sage/coding/guruswami_sudan/all.py +1 -0
- sage/coding/guruswami_sudan/gs_decoder.py +897 -0
- sage/coding/guruswami_sudan/interpolation.py +409 -0
- sage/coding/guruswami_sudan/utils.py +176 -0
- sage/coding/hamming_code.py +176 -0
- sage/coding/information_set_decoder.py +1032 -0
- sage/coding/kasami_codes.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/coding/kasami_codes.pyx +351 -0
- sage/coding/linear_code.py +3067 -0
- sage/coding/linear_code_no_metric.py +1354 -0
- sage/coding/linear_rank_metric.py +961 -0
- sage/coding/parity_check_code.py +353 -0
- sage/coding/punctured_code.py +719 -0
- sage/coding/reed_muller_code.py +999 -0
- sage/coding/self_dual_codes.py +942 -0
- sage/coding/source_coding/all.py +2 -0
- sage/coding/source_coding/huffman.py +553 -0
- sage/coding/subfield_subcode.py +423 -0
- sage/coding/two_weight_db.py +399 -0
- sage/combinat/all__sagemath_modules.py +7 -0
- sage/combinat/cartesian_product.py +347 -0
- sage/combinat/family.py +11 -0
- sage/combinat/free_module.py +1977 -0
- sage/combinat/root_system/all.py +147 -0
- sage/combinat/root_system/ambient_space.py +527 -0
- sage/combinat/root_system/associahedron.py +471 -0
- sage/combinat/root_system/braid_move_calculator.py +143 -0
- sage/combinat/root_system/braid_orbit.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/combinat/root_system/braid_orbit.pyx +144 -0
- sage/combinat/root_system/branching_rules.py +2301 -0
- sage/combinat/root_system/cartan_matrix.py +1245 -0
- sage/combinat/root_system/cartan_type.py +3069 -0
- sage/combinat/root_system/coxeter_group.py +162 -0
- sage/combinat/root_system/coxeter_matrix.py +1261 -0
- sage/combinat/root_system/coxeter_type.py +681 -0
- sage/combinat/root_system/dynkin_diagram.py +900 -0
- sage/combinat/root_system/extended_affine_weyl_group.py +2993 -0
- sage/combinat/root_system/fundamental_group.py +795 -0
- sage/combinat/root_system/hecke_algebra_representation.py +1203 -0
- sage/combinat/root_system/integrable_representations.py +1227 -0
- sage/combinat/root_system/non_symmetric_macdonald_polynomials.py +1965 -0
- sage/combinat/root_system/pieri_factors.py +1147 -0
- sage/combinat/root_system/plot.py +1615 -0
- sage/combinat/root_system/root_lattice_realization_algebras.py +1214 -0
- sage/combinat/root_system/root_lattice_realizations.py +4628 -0
- sage/combinat/root_system/root_space.py +487 -0
- sage/combinat/root_system/root_system.py +882 -0
- sage/combinat/root_system/type_A.py +348 -0
- sage/combinat/root_system/type_A_affine.py +227 -0
- sage/combinat/root_system/type_A_infinity.py +241 -0
- sage/combinat/root_system/type_B.py +347 -0
- sage/combinat/root_system/type_BC_affine.py +287 -0
- sage/combinat/root_system/type_B_affine.py +216 -0
- sage/combinat/root_system/type_C.py +317 -0
- sage/combinat/root_system/type_C_affine.py +188 -0
- sage/combinat/root_system/type_D.py +357 -0
- sage/combinat/root_system/type_D_affine.py +208 -0
- sage/combinat/root_system/type_E.py +641 -0
- sage/combinat/root_system/type_E_affine.py +231 -0
- sage/combinat/root_system/type_F.py +387 -0
- sage/combinat/root_system/type_F_affine.py +137 -0
- sage/combinat/root_system/type_G.py +293 -0
- sage/combinat/root_system/type_G_affine.py +132 -0
- sage/combinat/root_system/type_H.py +105 -0
- sage/combinat/root_system/type_I.py +110 -0
- sage/combinat/root_system/type_Q.py +150 -0
- sage/combinat/root_system/type_affine.py +509 -0
- sage/combinat/root_system/type_dual.py +704 -0
- sage/combinat/root_system/type_folded.py +301 -0
- sage/combinat/root_system/type_marked.py +748 -0
- sage/combinat/root_system/type_reducible.py +601 -0
- sage/combinat/root_system/type_relabel.py +730 -0
- sage/combinat/root_system/type_super_A.py +837 -0
- sage/combinat/root_system/weight_lattice_realizations.py +1188 -0
- sage/combinat/root_system/weight_space.py +639 -0
- sage/combinat/root_system/weyl_characters.py +2238 -0
- sage/crypto/__init__.py +4 -0
- sage/crypto/all.py +28 -0
- sage/crypto/block_cipher/all.py +7 -0
- sage/crypto/block_cipher/des.py +1065 -0
- sage/crypto/block_cipher/miniaes.py +2171 -0
- sage/crypto/block_cipher/present.py +909 -0
- sage/crypto/block_cipher/sdes.py +1527 -0
- sage/crypto/boolean_function.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/crypto/boolean_function.pxd +10 -0
- sage/crypto/boolean_function.pyx +1487 -0
- sage/crypto/cipher.py +78 -0
- sage/crypto/classical.py +3668 -0
- sage/crypto/classical_cipher.py +569 -0
- sage/crypto/cryptosystem.py +387 -0
- sage/crypto/key_exchange/all.py +7 -0
- sage/crypto/key_exchange/catalog.py +24 -0
- sage/crypto/key_exchange/diffie_hellman.py +323 -0
- sage/crypto/key_exchange/key_exchange_scheme.py +107 -0
- sage/crypto/lattice.py +312 -0
- sage/crypto/lfsr.py +295 -0
- sage/crypto/lwe.py +840 -0
- sage/crypto/mq/__init__.py +4 -0
- sage/crypto/mq/mpolynomialsystemgenerator.py +204 -0
- sage/crypto/mq/rijndael_gf.py +2345 -0
- sage/crypto/mq/sbox.py +7 -0
- sage/crypto/mq/sr.py +3344 -0
- sage/crypto/public_key/all.py +5 -0
- sage/crypto/public_key/blum_goldwasser.py +776 -0
- sage/crypto/sbox.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/crypto/sbox.pyx +2090 -0
- sage/crypto/sboxes.py +2090 -0
- sage/crypto/stream.py +390 -0
- sage/crypto/stream_cipher.py +297 -0
- sage/crypto/util.py +519 -0
- sage/ext/all__sagemath_modules.py +1 -0
- sage/ext/interpreters/__init__.py +1 -0
- sage/ext/interpreters/all__sagemath_modules.py +2 -0
- sage/ext/interpreters/wrapper_cc.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/ext/interpreters/wrapper_cc.pxd +30 -0
- sage/ext/interpreters/wrapper_cc.pyx +252 -0
- sage/ext/interpreters/wrapper_cdf.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/ext/interpreters/wrapper_cdf.pxd +26 -0
- sage/ext/interpreters/wrapper_cdf.pyx +245 -0
- sage/ext/interpreters/wrapper_rdf.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/ext/interpreters/wrapper_rdf.pxd +23 -0
- sage/ext/interpreters/wrapper_rdf.pyx +221 -0
- sage/ext/interpreters/wrapper_rr.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/ext/interpreters/wrapper_rr.pxd +28 -0
- sage/ext/interpreters/wrapper_rr.pyx +335 -0
- sage/geometry/all__sagemath_modules.py +5 -0
- sage/geometry/toric_lattice.py +1745 -0
- sage/geometry/toric_lattice_element.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/geometry/toric_lattice_element.pyx +432 -0
- sage/groups/abelian_gps/abelian_group.py +1925 -0
- sage/groups/abelian_gps/abelian_group_element.py +164 -0
- sage/groups/abelian_gps/all__sagemath_modules.py +5 -0
- sage/groups/abelian_gps/dual_abelian_group.py +421 -0
- sage/groups/abelian_gps/dual_abelian_group_element.py +179 -0
- sage/groups/abelian_gps/element_base.py +341 -0
- sage/groups/abelian_gps/values.py +488 -0
- sage/groups/additive_abelian/additive_abelian_group.py +476 -0
- sage/groups/additive_abelian/additive_abelian_wrapper.py +857 -0
- sage/groups/additive_abelian/all.py +4 -0
- sage/groups/additive_abelian/qmodnz.py +231 -0
- sage/groups/additive_abelian/qmodnz_element.py +349 -0
- sage/groups/affine_gps/affine_group.py +535 -0
- sage/groups/affine_gps/all.py +1 -0
- sage/groups/affine_gps/catalog.py +17 -0
- sage/groups/affine_gps/euclidean_group.py +246 -0
- sage/groups/affine_gps/group_element.py +562 -0
- sage/groups/all__sagemath_modules.py +12 -0
- sage/groups/galois_group.py +479 -0
- sage/groups/matrix_gps/all.py +4 -0
- sage/groups/matrix_gps/all__sagemath_modules.py +13 -0
- sage/groups/matrix_gps/catalog.py +26 -0
- sage/groups/matrix_gps/coxeter_group.py +927 -0
- sage/groups/matrix_gps/finitely_generated.py +487 -0
- sage/groups/matrix_gps/group_element.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/groups/matrix_gps/group_element.pxd +11 -0
- sage/groups/matrix_gps/group_element.pyx +431 -0
- sage/groups/matrix_gps/linear.py +440 -0
- sage/groups/matrix_gps/matrix_group.py +617 -0
- sage/groups/matrix_gps/named_group.py +296 -0
- sage/groups/matrix_gps/orthogonal.py +544 -0
- sage/groups/matrix_gps/symplectic.py +251 -0
- sage/groups/matrix_gps/unitary.py +436 -0
- sage/groups/misc_gps/all__sagemath_modules.py +1 -0
- sage/groups/misc_gps/argument_groups.py +1905 -0
- sage/groups/misc_gps/imaginary_groups.py +479 -0
- sage/groups/perm_gps/all__sagemath_modules.py +1 -0
- sage/groups/perm_gps/partn_ref/all__sagemath_modules.py +1 -0
- sage/groups/perm_gps/partn_ref/refinement_binary.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/groups/perm_gps/partn_ref/refinement_binary.pxd +41 -0
- sage/groups/perm_gps/partn_ref/refinement_binary.pyx +1167 -0
- sage/groups/perm_gps/partn_ref/refinement_matrices.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/groups/perm_gps/partn_ref/refinement_matrices.pxd +31 -0
- sage/groups/perm_gps/partn_ref/refinement_matrices.pyx +385 -0
- sage/homology/algebraic_topological_model.py +595 -0
- sage/homology/all.py +2 -0
- sage/homology/all__sagemath_modules.py +8 -0
- sage/homology/chain_complex.py +2148 -0
- sage/homology/chain_complex_homspace.py +165 -0
- sage/homology/chain_complex_morphism.py +629 -0
- sage/homology/chain_homotopy.py +604 -0
- sage/homology/chains.py +653 -0
- sage/homology/free_resolution.py +923 -0
- sage/homology/graded_resolution.py +567 -0
- sage/homology/hochschild_complex.py +756 -0
- sage/homology/homology_group.py +188 -0
- sage/homology/homology_morphism.py +422 -0
- sage/homology/homology_vector_space_with_basis.py +1454 -0
- sage/homology/koszul_complex.py +169 -0
- sage/homology/matrix_utils.py +205 -0
- sage/libs/all__sagemath_modules.py +1 -0
- sage/libs/gsl/__init__.py +1 -0
- sage/libs/gsl/airy.pxd +56 -0
- sage/libs/gsl/all.pxd +66 -0
- sage/libs/gsl/array.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/libs/gsl/array.pxd +5 -0
- sage/libs/gsl/array.pyx +102 -0
- sage/libs/gsl/bessel.pxd +208 -0
- sage/libs/gsl/blas.pxd +116 -0
- sage/libs/gsl/blas_types.pxd +34 -0
- sage/libs/gsl/block.pxd +52 -0
- sage/libs/gsl/chebyshev.pxd +37 -0
- sage/libs/gsl/clausen.pxd +12 -0
- sage/libs/gsl/combination.pxd +47 -0
- sage/libs/gsl/complex.pxd +151 -0
- sage/libs/gsl/coulomb.pxd +30 -0
- sage/libs/gsl/coupling.pxd +21 -0
- sage/libs/gsl/dawson.pxd +12 -0
- sage/libs/gsl/debye.pxd +24 -0
- sage/libs/gsl/dilog.pxd +14 -0
- sage/libs/gsl/eigen.pxd +46 -0
- sage/libs/gsl/elementary.pxd +12 -0
- sage/libs/gsl/ellint.pxd +48 -0
- sage/libs/gsl/elljac.pxd +8 -0
- sage/libs/gsl/erf.pxd +32 -0
- sage/libs/gsl/errno.pxd +26 -0
- sage/libs/gsl/exp.pxd +44 -0
- sage/libs/gsl/expint.pxd +44 -0
- sage/libs/gsl/fermi_dirac.pxd +44 -0
- sage/libs/gsl/fft.pxd +121 -0
- sage/libs/gsl/fit.pxd +50 -0
- sage/libs/gsl/gamma.pxd +94 -0
- sage/libs/gsl/gegenbauer.pxd +26 -0
- sage/libs/gsl/histogram.pxd +176 -0
- sage/libs/gsl/hyperg.pxd +52 -0
- sage/libs/gsl/integration.pxd +69 -0
- sage/libs/gsl/interp.pxd +109 -0
- sage/libs/gsl/laguerre.pxd +24 -0
- sage/libs/gsl/lambert.pxd +16 -0
- sage/libs/gsl/legendre.pxd +90 -0
- sage/libs/gsl/linalg.pxd +185 -0
- sage/libs/gsl/log.pxd +26 -0
- sage/libs/gsl/math.pxd +43 -0
- sage/libs/gsl/matrix.pxd +143 -0
- sage/libs/gsl/matrix_complex.pxd +130 -0
- sage/libs/gsl/min.pxd +67 -0
- sage/libs/gsl/monte.pxd +56 -0
- sage/libs/gsl/ntuple.pxd +32 -0
- sage/libs/gsl/odeiv.pxd +70 -0
- sage/libs/gsl/permutation.pxd +78 -0
- sage/libs/gsl/poly.pxd +40 -0
- sage/libs/gsl/pow_int.pxd +12 -0
- sage/libs/gsl/psi.pxd +28 -0
- sage/libs/gsl/qrng.pxd +29 -0
- sage/libs/gsl/random.pxd +257 -0
- sage/libs/gsl/rng.pxd +100 -0
- sage/libs/gsl/roots.pxd +72 -0
- sage/libs/gsl/sort.pxd +36 -0
- sage/libs/gsl/statistics.pxd +59 -0
- sage/libs/gsl/sum.pxd +55 -0
- sage/libs/gsl/synchrotron.pxd +16 -0
- sage/libs/gsl/transport.pxd +24 -0
- sage/libs/gsl/trig.pxd +58 -0
- sage/libs/gsl/types.pxd +137 -0
- sage/libs/gsl/vector.pxd +101 -0
- sage/libs/gsl/vector_complex.pxd +83 -0
- sage/libs/gsl/wavelet.pxd +49 -0
- sage/libs/gsl/zeta.pxd +28 -0
- sage/libs/mpc/__init__.pxd +114 -0
- sage/libs/mpc/types.pxd +28 -0
- sage/libs/mpfr/__init__.pxd +299 -0
- sage/libs/mpfr/types.pxd +26 -0
- sage/libs/mpmath/__init__.py +1 -0
- sage/libs/mpmath/all.py +27 -0
- sage/libs/mpmath/all__sagemath_modules.py +1 -0
- sage/libs/mpmath/utils.cpython-314-x86_64-linux-gnu.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-gnu.so +0 -0
- sage/matrix/action.pxd +26 -0
- sage/matrix/action.pyx +596 -0
- sage/matrix/all.py +9 -0
- sage/matrix/args.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/matrix/args.pxd +144 -0
- sage/matrix/args.pyx +1668 -0
- sage/matrix/benchmark.py +1258 -0
- sage/matrix/berlekamp_massey.py +95 -0
- sage/matrix/compute_J_ideal.py +926 -0
- sage/matrix/constructor.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/matrix/constructor.pyx +750 -0
- sage/matrix/docs.py +430 -0
- sage/matrix/echelon_matrix.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/matrix/echelon_matrix.pyx +155 -0
- sage/matrix/matrix.pxd +2 -0
- sage/matrix/matrix0.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/matrix/matrix0.pxd +68 -0
- sage/matrix/matrix0.pyx +6324 -0
- sage/matrix/matrix1.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/matrix/matrix1.pxd +8 -0
- sage/matrix/matrix1.pyx +2851 -0
- sage/matrix/matrix2.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/matrix/matrix2.pxd +25 -0
- sage/matrix/matrix2.pyx +20181 -0
- sage/matrix/matrix_cdv.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/matrix/matrix_cdv.pxd +4 -0
- sage/matrix/matrix_cdv.pyx +93 -0
- sage/matrix/matrix_complex_double_dense.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/matrix/matrix_complex_double_dense.pxd +5 -0
- sage/matrix/matrix_complex_double_dense.pyx +98 -0
- sage/matrix/matrix_dense.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/matrix/matrix_dense.pxd +5 -0
- sage/matrix/matrix_dense.pyx +343 -0
- sage/matrix/matrix_domain_dense.pxd +5 -0
- sage/matrix/matrix_domain_sparse.pxd +5 -0
- sage/matrix/matrix_double_dense.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/matrix/matrix_double_dense.pxd +7 -0
- sage/matrix/matrix_double_dense.pyx +3906 -0
- sage/matrix/matrix_double_sparse.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/matrix/matrix_double_sparse.pxd +6 -0
- sage/matrix/matrix_double_sparse.pyx +248 -0
- sage/matrix/matrix_generic_dense.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/matrix/matrix_generic_dense.pxd +7 -0
- sage/matrix/matrix_generic_dense.pyx +354 -0
- sage/matrix/matrix_generic_sparse.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/matrix/matrix_generic_sparse.pxd +7 -0
- sage/matrix/matrix_generic_sparse.pyx +461 -0
- sage/matrix/matrix_laurent_mpolynomial_dense.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/matrix/matrix_laurent_mpolynomial_dense.pxd +5 -0
- sage/matrix/matrix_laurent_mpolynomial_dense.pyx +115 -0
- sage/matrix/matrix_misc.py +313 -0
- sage/matrix/matrix_numpy_dense.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/matrix/matrix_numpy_dense.pxd +14 -0
- sage/matrix/matrix_numpy_dense.pyx +450 -0
- sage/matrix/matrix_numpy_integer_dense.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/matrix/matrix_numpy_integer_dense.pxd +7 -0
- sage/matrix/matrix_numpy_integer_dense.pyx +59 -0
- sage/matrix/matrix_polynomial_dense.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/matrix/matrix_polynomial_dense.pxd +5 -0
- sage/matrix/matrix_polynomial_dense.pyx +5341 -0
- sage/matrix/matrix_real_double_dense.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/matrix/matrix_real_double_dense.pxd +7 -0
- sage/matrix/matrix_real_double_dense.pyx +122 -0
- sage/matrix/matrix_space.py +2848 -0
- sage/matrix/matrix_sparse.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/matrix/matrix_sparse.pxd +5 -0
- sage/matrix/matrix_sparse.pyx +1222 -0
- sage/matrix/matrix_window.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/matrix/matrix_window.pxd +37 -0
- sage/matrix/matrix_window.pyx +242 -0
- sage/matrix/misc_mpfr.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/matrix/misc_mpfr.pyx +80 -0
- sage/matrix/operation_table.py +1182 -0
- sage/matrix/special.py +3666 -0
- sage/matrix/strassen.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/matrix/strassen.pyx +851 -0
- sage/matrix/symplectic_basis.py +541 -0
- sage/matrix/template.pxd +6 -0
- sage/matrix/tests.py +71 -0
- sage/matroids/advanced.py +77 -0
- sage/matroids/all.py +13 -0
- sage/matroids/basis_exchange_matroid.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/matroids/basis_exchange_matroid.pxd +96 -0
- sage/matroids/basis_exchange_matroid.pyx +2344 -0
- sage/matroids/basis_matroid.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/matroids/basis_matroid.pxd +45 -0
- sage/matroids/basis_matroid.pyx +1217 -0
- sage/matroids/catalog.py +44 -0
- sage/matroids/chow_ring.py +473 -0
- sage/matroids/chow_ring_ideal.py +849 -0
- sage/matroids/circuit_closures_matroid.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/matroids/circuit_closures_matroid.pxd +16 -0
- sage/matroids/circuit_closures_matroid.pyx +559 -0
- sage/matroids/circuits_matroid.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/matroids/circuits_matroid.pxd +38 -0
- sage/matroids/circuits_matroid.pyx +947 -0
- sage/matroids/constructor.py +1086 -0
- sage/matroids/database_collections.py +365 -0
- sage/matroids/database_matroids.py +5338 -0
- sage/matroids/dual_matroid.py +583 -0
- sage/matroids/extension.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/matroids/extension.pxd +34 -0
- sage/matroids/extension.pyx +519 -0
- sage/matroids/flats_matroid.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/matroids/flats_matroid.pxd +28 -0
- sage/matroids/flats_matroid.pyx +715 -0
- sage/matroids/gammoid.py +600 -0
- sage/matroids/graphic_matroid.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/matroids/graphic_matroid.pxd +39 -0
- sage/matroids/graphic_matroid.pyx +2024 -0
- sage/matroids/lean_matrix.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/matroids/lean_matrix.pxd +126 -0
- sage/matroids/lean_matrix.pyx +3667 -0
- sage/matroids/linear_matroid.cpython-314-x86_64-linux-gnu.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-gnu.so +0 -0
- sage/matroids/matroid.pxd +243 -0
- sage/matroids/matroid.pyx +8759 -0
- sage/matroids/matroids_catalog.py +190 -0
- sage/matroids/matroids_plot_helpers.py +890 -0
- sage/matroids/minor_matroid.py +480 -0
- sage/matroids/minorfix.h +9 -0
- sage/matroids/named_matroids.py +5 -0
- sage/matroids/rank_matroid.py +268 -0
- sage/matroids/set_system.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/matroids/set_system.pxd +38 -0
- sage/matroids/set_system.pyx +800 -0
- sage/matroids/transversal_matroid.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/matroids/transversal_matroid.pxd +14 -0
- sage/matroids/transversal_matroid.pyx +893 -0
- sage/matroids/union_matroid.cpython-314-x86_64-linux-gnu.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-gnu.so +0 -0
- sage/matroids/unpickling.pyx +843 -0
- sage/matroids/utilities.py +809 -0
- sage/misc/all__sagemath_modules.py +20 -0
- sage/misc/c3.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/misc/c3.pyx +238 -0
- sage/misc/compat.py +87 -0
- sage/misc/element_with_label.py +173 -0
- sage/misc/func_persist.py +79 -0
- sage/misc/pickle_old.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/misc/pickle_old.pyx +19 -0
- sage/misc/proof.py +7 -0
- sage/misc/replace_dot_all.py +472 -0
- sage/misc/sagedoc_conf.py +168 -0
- sage/misc/sphinxify.py +167 -0
- sage/misc/test_class_pickling.py +85 -0
- sage/modules/all.py +42 -0
- sage/modules/complex_double_vector.py +25 -0
- sage/modules/diamond_cutting.py +380 -0
- sage/modules/fg_pid/all.py +1 -0
- sage/modules/fg_pid/fgp_element.py +456 -0
- sage/modules/fg_pid/fgp_module.py +2091 -0
- sage/modules/fg_pid/fgp_morphism.py +550 -0
- sage/modules/filtered_vector_space.py +1271 -0
- sage/modules/finite_submodule_iter.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/modules/finite_submodule_iter.pxd +27 -0
- sage/modules/finite_submodule_iter.pyx +452 -0
- sage/modules/fp_graded/all.py +1 -0
- sage/modules/fp_graded/element.py +346 -0
- sage/modules/fp_graded/free_element.py +298 -0
- sage/modules/fp_graded/free_homspace.py +53 -0
- sage/modules/fp_graded/free_module.py +1060 -0
- sage/modules/fp_graded/free_morphism.py +217 -0
- sage/modules/fp_graded/homspace.py +563 -0
- sage/modules/fp_graded/module.py +1340 -0
- sage/modules/fp_graded/morphism.py +1990 -0
- sage/modules/fp_graded/steenrod/all.py +1 -0
- sage/modules/fp_graded/steenrod/homspace.py +65 -0
- sage/modules/fp_graded/steenrod/module.py +477 -0
- sage/modules/fp_graded/steenrod/morphism.py +404 -0
- sage/modules/fp_graded/steenrod/profile.py +241 -0
- sage/modules/free_module.py +8447 -0
- sage/modules/free_module_element.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/modules/free_module_element.pxd +22 -0
- sage/modules/free_module_element.pyx +5445 -0
- sage/modules/free_module_homspace.py +369 -0
- sage/modules/free_module_integer.py +896 -0
- sage/modules/free_module_morphism.py +823 -0
- sage/modules/free_module_pseudohomspace.py +352 -0
- sage/modules/free_module_pseudomorphism.py +578 -0
- sage/modules/free_quadratic_module.py +1706 -0
- sage/modules/free_quadratic_module_integer_symmetric.py +1790 -0
- sage/modules/matrix_morphism.py +1745 -0
- sage/modules/misc.py +103 -0
- sage/modules/module_functors.py +192 -0
- sage/modules/multi_filtered_vector_space.py +719 -0
- sage/modules/ore_module.py +2208 -0
- sage/modules/ore_module_element.py +178 -0
- sage/modules/ore_module_homspace.py +147 -0
- sage/modules/ore_module_morphism.py +968 -0
- sage/modules/quotient_module.py +699 -0
- sage/modules/real_double_vector.py +22 -0
- sage/modules/submodule.py +255 -0
- sage/modules/tensor_operations.py +567 -0
- sage/modules/torsion_quadratic_module.py +1352 -0
- sage/modules/tutorial_free_modules.py +248 -0
- sage/modules/vector_complex_double_dense.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/modules/vector_complex_double_dense.pxd +6 -0
- sage/modules/vector_complex_double_dense.pyx +117 -0
- sage/modules/vector_double_dense.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/modules/vector_double_dense.pxd +6 -0
- sage/modules/vector_double_dense.pyx +604 -0
- sage/modules/vector_integer_dense.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/modules/vector_integer_dense.pxd +15 -0
- sage/modules/vector_integer_dense.pyx +361 -0
- sage/modules/vector_integer_sparse.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/modules/vector_integer_sparse.pxd +29 -0
- sage/modules/vector_integer_sparse.pyx +406 -0
- sage/modules/vector_modn_dense.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/modules/vector_modn_dense.pxd +12 -0
- sage/modules/vector_modn_dense.pyx +394 -0
- sage/modules/vector_modn_sparse.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/modules/vector_modn_sparse.pxd +21 -0
- sage/modules/vector_modn_sparse.pyx +298 -0
- sage/modules/vector_numpy_dense.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/modules/vector_numpy_dense.pxd +15 -0
- sage/modules/vector_numpy_dense.pyx +304 -0
- sage/modules/vector_numpy_integer_dense.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/modules/vector_numpy_integer_dense.pxd +7 -0
- sage/modules/vector_numpy_integer_dense.pyx +54 -0
- sage/modules/vector_rational_dense.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/modules/vector_rational_dense.pxd +15 -0
- sage/modules/vector_rational_dense.pyx +387 -0
- sage/modules/vector_rational_sparse.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/modules/vector_rational_sparse.pxd +30 -0
- sage/modules/vector_rational_sparse.pyx +413 -0
- sage/modules/vector_real_double_dense.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/modules/vector_real_double_dense.pxd +6 -0
- sage/modules/vector_real_double_dense.pyx +126 -0
- sage/modules/vector_space_homspace.py +430 -0
- sage/modules/vector_space_morphism.py +989 -0
- sage/modules/with_basis/all.py +15 -0
- sage/modules/with_basis/cell_module.py +494 -0
- sage/modules/with_basis/indexed_element.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/modules/with_basis/indexed_element.pxd +13 -0
- sage/modules/with_basis/indexed_element.pyx +1058 -0
- sage/modules/with_basis/invariant.py +1075 -0
- sage/modules/with_basis/morphism.py +1636 -0
- sage/modules/with_basis/representation.py +2939 -0
- sage/modules/with_basis/subquotient.py +685 -0
- sage/numerical/all__sagemath_modules.py +6 -0
- sage/numerical/gauss_legendre.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/numerical/gauss_legendre.pyx +381 -0
- sage/numerical/optimize.py +910 -0
- sage/probability/all.py +10 -0
- sage/probability/probability_distribution.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/probability/probability_distribution.pyx +1242 -0
- sage/probability/random_variable.py +411 -0
- sage/quadratic_forms/all.py +4 -0
- sage/quadratic_forms/all__sagemath_modules.py +15 -0
- sage/quadratic_forms/binary_qf.py +2042 -0
- sage/quadratic_forms/bqf_class_group.py +748 -0
- sage/quadratic_forms/constructions.py +93 -0
- sage/quadratic_forms/count_local_2.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/quadratic_forms/count_local_2.pyx +365 -0
- sage/quadratic_forms/extras.py +195 -0
- sage/quadratic_forms/quadratic_form.py +1753 -0
- sage/quadratic_forms/quadratic_form__count_local_2.py +221 -0
- sage/quadratic_forms/quadratic_form__equivalence_testing.py +708 -0
- sage/quadratic_forms/quadratic_form__evaluate.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/quadratic_forms/quadratic_form__evaluate.pyx +139 -0
- sage/quadratic_forms/quadratic_form__local_density_congruence.py +977 -0
- sage/quadratic_forms/quadratic_form__local_field_invariants.py +1072 -0
- sage/quadratic_forms/quadratic_form__neighbors.py +424 -0
- sage/quadratic_forms/quadratic_form__reduction_theory.py +488 -0
- sage/quadratic_forms/quadratic_form__split_local_covering.py +416 -0
- sage/quadratic_forms/quadratic_form__ternary_Tornaria.py +657 -0
- sage/quadratic_forms/quadratic_form__theta.py +352 -0
- sage/quadratic_forms/quadratic_form__variable_substitutions.py +370 -0
- sage/quadratic_forms/random_quadraticform.py +209 -0
- sage/quadratic_forms/ternary.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/quadratic_forms/ternary.pyx +1154 -0
- sage/quadratic_forms/ternary_qf.py +2027 -0
- sage/rings/all__sagemath_modules.py +28 -0
- sage/rings/asymptotic/all__sagemath_modules.py +1 -0
- sage/rings/asymptotic/misc.py +1252 -0
- sage/rings/cc.py +4 -0
- sage/rings/cfinite_sequence.py +1306 -0
- sage/rings/complex_conversion.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/rings/complex_conversion.pxd +8 -0
- sage/rings/complex_conversion.pyx +23 -0
- sage/rings/complex_double.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/rings/complex_double.pxd +21 -0
- sage/rings/complex_double.pyx +2654 -0
- sage/rings/complex_mpc.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/rings/complex_mpc.pxd +21 -0
- sage/rings/complex_mpc.pyx +2576 -0
- sage/rings/complex_mpfr.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/rings/complex_mpfr.pxd +18 -0
- sage/rings/complex_mpfr.pyx +3602 -0
- sage/rings/derivation.py +2334 -0
- sage/rings/finite_rings/all__sagemath_modules.py +1 -0
- sage/rings/finite_rings/maps_finite_field.py +191 -0
- sage/rings/function_field/all__sagemath_modules.py +8 -0
- sage/rings/function_field/derivations.py +102 -0
- sage/rings/function_field/derivations_rational.py +132 -0
- sage/rings/function_field/differential.py +853 -0
- sage/rings/function_field/divisor.py +1107 -0
- sage/rings/function_field/drinfeld_modules/action.py +199 -0
- sage/rings/function_field/drinfeld_modules/all.py +1 -0
- sage/rings/function_field/drinfeld_modules/charzero_drinfeld_module.py +673 -0
- sage/rings/function_field/drinfeld_modules/drinfeld_module.py +2087 -0
- sage/rings/function_field/drinfeld_modules/finite_drinfeld_module.py +1131 -0
- sage/rings/function_field/drinfeld_modules/homset.py +420 -0
- sage/rings/function_field/drinfeld_modules/morphism.py +820 -0
- sage/rings/function_field/hermite_form_polynomial.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/rings/function_field/hermite_form_polynomial.pyx +188 -0
- sage/rings/function_field/khuri_makdisi.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/rings/function_field/khuri_makdisi.pyx +935 -0
- sage/rings/invariants/all.py +4 -0
- sage/rings/invariants/invariant_theory.py +4597 -0
- sage/rings/invariants/reconstruction.py +395 -0
- sage/rings/polynomial/all__sagemath_modules.py +17 -0
- sage/rings/polynomial/integer_valued_polynomials.py +1230 -0
- sage/rings/polynomial/laurent_polynomial_mpair.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/rings/polynomial/laurent_polynomial_mpair.pxd +15 -0
- sage/rings/polynomial/laurent_polynomial_mpair.pyx +2023 -0
- sage/rings/polynomial/ore_function_element.py +952 -0
- sage/rings/polynomial/ore_function_field.py +1028 -0
- sage/rings/polynomial/ore_polynomial_element.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/rings/polynomial/ore_polynomial_element.pxd +48 -0
- sage/rings/polynomial/ore_polynomial_element.pyx +3145 -0
- sage/rings/polynomial/ore_polynomial_ring.py +1334 -0
- sage/rings/polynomial/polynomial_real_mpfr_dense.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/rings/polynomial/polynomial_real_mpfr_dense.pyx +788 -0
- sage/rings/polynomial/q_integer_valued_polynomials.py +1264 -0
- sage/rings/polynomial/skew_polynomial_element.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/rings/polynomial/skew_polynomial_element.pxd +9 -0
- sage/rings/polynomial/skew_polynomial_element.pyx +684 -0
- sage/rings/polynomial/skew_polynomial_finite_field.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/rings/polynomial/skew_polynomial_finite_field.pxd +19 -0
- sage/rings/polynomial/skew_polynomial_finite_field.pyx +1093 -0
- sage/rings/polynomial/skew_polynomial_finite_order.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/rings/polynomial/skew_polynomial_finite_order.pxd +10 -0
- sage/rings/polynomial/skew_polynomial_finite_order.pyx +567 -0
- sage/rings/polynomial/skew_polynomial_ring.py +908 -0
- sage/rings/real_double_element_gsl.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/rings/real_double_element_gsl.pxd +8 -0
- sage/rings/real_double_element_gsl.pyx +794 -0
- sage/rings/real_field.py +58 -0
- sage/rings/real_mpfr.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/rings/real_mpfr.pxd +29 -0
- sage/rings/real_mpfr.pyx +6122 -0
- sage/rings/ring_extension.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/rings/ring_extension.pxd +42 -0
- sage/rings/ring_extension.pyx +2779 -0
- sage/rings/ring_extension_conversion.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/rings/ring_extension_conversion.pxd +16 -0
- sage/rings/ring_extension_conversion.pyx +462 -0
- sage/rings/ring_extension_element.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/rings/ring_extension_element.pxd +21 -0
- sage/rings/ring_extension_element.pyx +1635 -0
- sage/rings/ring_extension_homset.py +64 -0
- sage/rings/ring_extension_morphism.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/rings/ring_extension_morphism.pxd +35 -0
- sage/rings/ring_extension_morphism.pyx +920 -0
- sage/schemes/all__sagemath_modules.py +1 -0
- sage/schemes/projective/all__sagemath_modules.py +1 -0
- sage/schemes/projective/coherent_sheaf.py +300 -0
- sage/schemes/projective/cohomology.py +510 -0
- sage/stats/all.py +15 -0
- sage/stats/basic_stats.py +489 -0
- sage/stats/distributions/all.py +7 -0
- sage/stats/distributions/catalog.py +34 -0
- sage/stats/distributions/dgs.h +50 -0
- sage/stats/distributions/dgs.pxd +111 -0
- sage/stats/distributions/dgs_bern.h +400 -0
- sage/stats/distributions/dgs_gauss.h +614 -0
- sage/stats/distributions/dgs_misc.h +104 -0
- sage/stats/distributions/discrete_gaussian_integer.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/stats/distributions/discrete_gaussian_integer.pxd +14 -0
- sage/stats/distributions/discrete_gaussian_integer.pyx +498 -0
- sage/stats/distributions/discrete_gaussian_lattice.py +908 -0
- sage/stats/distributions/discrete_gaussian_polynomial.py +141 -0
- sage/stats/hmm/all.py +15 -0
- sage/stats/hmm/chmm.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/stats/hmm/chmm.pyx +1595 -0
- sage/stats/hmm/distributions.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/stats/hmm/distributions.pxd +29 -0
- sage/stats/hmm/distributions.pyx +531 -0
- sage/stats/hmm/hmm.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/stats/hmm/hmm.pxd +17 -0
- sage/stats/hmm/hmm.pyx +1388 -0
- sage/stats/hmm/util.cpython-314-x86_64-linux-gnu.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-gnu.so +0 -0
- sage/stats/intlist.pxd +14 -0
- sage/stats/intlist.pyx +588 -0
- sage/stats/r.py +49 -0
- sage/stats/time_series.cpython-314-x86_64-linux-gnu.so +0 -0
- sage/stats/time_series.pxd +6 -0
- sage/stats/time_series.pyx +2546 -0
- sage/tensor/all.py +2 -0
- sage/tensor/modules/all.py +8 -0
- sage/tensor/modules/alternating_contr_tensor.py +761 -0
- sage/tensor/modules/comp.py +5598 -0
- sage/tensor/modules/ext_pow_free_module.py +824 -0
- sage/tensor/modules/finite_rank_free_module.py +3589 -0
- sage/tensor/modules/format_utilities.py +333 -0
- sage/tensor/modules/free_module_alt_form.py +858 -0
- sage/tensor/modules/free_module_automorphism.py +1207 -0
- sage/tensor/modules/free_module_basis.py +1074 -0
- sage/tensor/modules/free_module_element.py +284 -0
- sage/tensor/modules/free_module_homset.py +652 -0
- sage/tensor/modules/free_module_linear_group.py +564 -0
- sage/tensor/modules/free_module_morphism.py +1581 -0
- sage/tensor/modules/free_module_tensor.py +3289 -0
- sage/tensor/modules/reflexive_module.py +386 -0
- sage/tensor/modules/tensor_free_module.py +780 -0
- sage/tensor/modules/tensor_free_submodule.py +538 -0
- sage/tensor/modules/tensor_free_submodule_basis.py +140 -0
- sage/tensor/modules/tensor_with_indices.py +1043 -0
|
@@ -0,0 +1,639 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-modules
|
|
2
|
+
"""
|
|
3
|
+
Weight lattices and weight spaces
|
|
4
|
+
"""
|
|
5
|
+
# ****************************************************************************
|
|
6
|
+
# Copyright (C) 2008-2009 Nicolas M. Thiery <nthiery at users.sf.net>
|
|
7
|
+
#
|
|
8
|
+
# Distributed under the terms of the GNU General Public License (GPL)
|
|
9
|
+
# https://www.gnu.org/licenses/
|
|
10
|
+
# ****************************************************************************
|
|
11
|
+
|
|
12
|
+
from sage.misc.cachefunc import cached_method
|
|
13
|
+
from sage.sets.family import Family
|
|
14
|
+
from sage.combinat.free_module import CombinatorialFreeModule
|
|
15
|
+
from .weight_lattice_realizations import WeightLatticeRealizations
|
|
16
|
+
import functools
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class WeightSpace(CombinatorialFreeModule):
|
|
20
|
+
r"""
|
|
21
|
+
INPUT:
|
|
22
|
+
|
|
23
|
+
- ``root_system`` -- a root system
|
|
24
|
+
- ``base_ring`` -- a ring `R`
|
|
25
|
+
- ``extended`` -- boolean (default: ``False``)
|
|
26
|
+
|
|
27
|
+
The weight space (or lattice if ``base_ring`` is `\ZZ`) of a root
|
|
28
|
+
system is the formal free module `\bigoplus_i R \Lambda_i`
|
|
29
|
+
generated by the fundamental weights `(\Lambda_i)_{i\in I}` of the
|
|
30
|
+
root system.
|
|
31
|
+
|
|
32
|
+
This class is also used for coweight spaces (or lattices).
|
|
33
|
+
|
|
34
|
+
.. SEEALSO::
|
|
35
|
+
|
|
36
|
+
- :meth:`RootSystem`
|
|
37
|
+
- :meth:`RootSystem.weight_lattice` and :meth:`RootSystem.weight_space`
|
|
38
|
+
- :meth:`~sage.combinat.root_system.weight_lattice_realizations.WeightLatticeRealizations`
|
|
39
|
+
|
|
40
|
+
EXAMPLES::
|
|
41
|
+
|
|
42
|
+
sage: Q = RootSystem(['A', 3]).weight_lattice(); Q
|
|
43
|
+
Weight lattice of the Root system of type ['A', 3]
|
|
44
|
+
sage: Q.simple_roots() # needs sage.graphs
|
|
45
|
+
Finite family {1: 2*Lambda[1] - Lambda[2],
|
|
46
|
+
2: -Lambda[1] + 2*Lambda[2] - Lambda[3],
|
|
47
|
+
3: -Lambda[2] + 2*Lambda[3]}
|
|
48
|
+
|
|
49
|
+
sage: Q = RootSystem(['A', 3, 1]).weight_lattice(); Q
|
|
50
|
+
Weight lattice of the Root system of type ['A', 3, 1]
|
|
51
|
+
sage: Q.simple_roots() # needs sage.graphs
|
|
52
|
+
Finite family {0: 2*Lambda[0] - Lambda[1] - Lambda[3],
|
|
53
|
+
1: -Lambda[0] + 2*Lambda[1] - Lambda[2],
|
|
54
|
+
2: -Lambda[1] + 2*Lambda[2] - Lambda[3],
|
|
55
|
+
3: -Lambda[0] - Lambda[2] + 2*Lambda[3]}
|
|
56
|
+
|
|
57
|
+
For infinite types, the Cartan matrix is singular, and therefore
|
|
58
|
+
the embedding of the root lattice is not faithful::
|
|
59
|
+
|
|
60
|
+
sage: sum(Q.simple_roots()) # needs sage.graphs
|
|
61
|
+
0
|
|
62
|
+
|
|
63
|
+
In particular, the null root is zero::
|
|
64
|
+
|
|
65
|
+
sage: Q.null_root() # needs sage.graphs
|
|
66
|
+
0
|
|
67
|
+
|
|
68
|
+
This can be compensated by extending the basis of the weight space
|
|
69
|
+
and slightly deforming the simple roots to make them linearly
|
|
70
|
+
independent, without affecting the scalar product with the
|
|
71
|
+
coroots. This feature is currently only implemented for affine
|
|
72
|
+
types. In that case, if ``extended`` is set, then the basis of the
|
|
73
|
+
weight space is extended by an element `\delta`::
|
|
74
|
+
|
|
75
|
+
sage: Q = RootSystem(['A', 3, 1]).weight_lattice(extended=True); Q
|
|
76
|
+
Extended weight lattice of the Root system of type ['A', 3, 1]
|
|
77
|
+
sage: Q.basis().keys()
|
|
78
|
+
{0, 1, 2, 3, 'delta'}
|
|
79
|
+
|
|
80
|
+
And the simple root `\alpha_0` associated to the special node is
|
|
81
|
+
deformed as follows::
|
|
82
|
+
|
|
83
|
+
sage: Q.simple_roots() # needs sage.graphs
|
|
84
|
+
Finite family {0: 2*Lambda[0] - Lambda[1] - Lambda[3] + delta,
|
|
85
|
+
1: -Lambda[0] + 2*Lambda[1] - Lambda[2],
|
|
86
|
+
2: -Lambda[1] + 2*Lambda[2] - Lambda[3],
|
|
87
|
+
3: -Lambda[0] - Lambda[2] + 2*Lambda[3]}
|
|
88
|
+
|
|
89
|
+
Now, the null root is nonzero::
|
|
90
|
+
|
|
91
|
+
sage: Q.null_root() # needs sage.graphs
|
|
92
|
+
delta
|
|
93
|
+
|
|
94
|
+
.. WARNING::
|
|
95
|
+
|
|
96
|
+
By a slight notational abuse, the extra basis element used to
|
|
97
|
+
extend the fundamental weights is called ``\delta`` in the
|
|
98
|
+
current implementation. However, in the literature,
|
|
99
|
+
``\delta`` usually denotes instead the null root. Most of the
|
|
100
|
+
time, those two objects coincide, but not for type `BC` (aka.
|
|
101
|
+
`A_{2n}^{(2)}`). Therefore we currently have::
|
|
102
|
+
|
|
103
|
+
sage: Q = RootSystem(["A",4,2]).weight_lattice(extended=True)
|
|
104
|
+
sage: Q.simple_root(0) # needs sage.graphs
|
|
105
|
+
2*Lambda[0] - Lambda[1] + delta
|
|
106
|
+
sage: Q.null_root() # needs sage.graphs
|
|
107
|
+
2*delta
|
|
108
|
+
|
|
109
|
+
whereas, with the standard notations from the literature, one
|
|
110
|
+
would expect to get respectively `2\Lambda_0 -\Lambda_1 +1/2
|
|
111
|
+
\delta` and `\delta`.
|
|
112
|
+
|
|
113
|
+
Other than this notational glitch, the implementation remains
|
|
114
|
+
correct for type `BC`.
|
|
115
|
+
|
|
116
|
+
The notations may get improved in a subsequent version, which
|
|
117
|
+
might require changing the index of the extra basis
|
|
118
|
+
element. To guarantee backward compatibility in code not
|
|
119
|
+
included in Sage, it is recommended to use the following idiom
|
|
120
|
+
to get that index::
|
|
121
|
+
|
|
122
|
+
sage: F = Q.basis_extension(); F
|
|
123
|
+
Finite family {'delta': delta}
|
|
124
|
+
sage: index = F.keys()[0]; index
|
|
125
|
+
'delta'
|
|
126
|
+
|
|
127
|
+
Then, for example, the coefficient of an element of the
|
|
128
|
+
extended weight lattice on that basis element can be recovered
|
|
129
|
+
with::
|
|
130
|
+
|
|
131
|
+
sage: Q.null_root()[index] # needs sage.graphs
|
|
132
|
+
2
|
|
133
|
+
|
|
134
|
+
TESTS::
|
|
135
|
+
|
|
136
|
+
sage: for ct in (CartanType.samples(crystallographic=True) # needs sage.graphs
|
|
137
|
+
....: + [CartanType(["A",2], ["C",5,1])]):
|
|
138
|
+
....: TestSuite(ct.root_system().weight_lattice()).run()
|
|
139
|
+
....: TestSuite(ct.root_system().weight_space()).run()
|
|
140
|
+
sage: for ct in CartanType.samples(affine=True): # needs sage.graphs
|
|
141
|
+
....: if ct.is_implemented():
|
|
142
|
+
....: P = ct.root_system().weight_space(extended=True)
|
|
143
|
+
....: TestSuite(P).run()
|
|
144
|
+
"""
|
|
145
|
+
|
|
146
|
+
@staticmethod
|
|
147
|
+
def __classcall_private__(cls, root_system, base_ring, extended=False):
|
|
148
|
+
"""
|
|
149
|
+
Guarantee Unique representation.
|
|
150
|
+
|
|
151
|
+
.. SEEALSO:: :class:`UniqueRepresentation`
|
|
152
|
+
|
|
153
|
+
TESTS::
|
|
154
|
+
|
|
155
|
+
sage: R = RootSystem(['A',4])
|
|
156
|
+
sage: from sage.combinat.root_system.weight_space import WeightSpace
|
|
157
|
+
sage: WeightSpace(R, QQ) is WeightSpace(R, QQ, False)
|
|
158
|
+
True
|
|
159
|
+
"""
|
|
160
|
+
return super().__classcall__(cls, root_system, base_ring, extended)
|
|
161
|
+
|
|
162
|
+
def __init__(self, root_system, base_ring, extended):
|
|
163
|
+
"""
|
|
164
|
+
TESTS::
|
|
165
|
+
|
|
166
|
+
sage: R = RootSystem(['A',4])
|
|
167
|
+
sage: from sage.combinat.root_system.weight_space import WeightSpace
|
|
168
|
+
sage: Q = WeightSpace(R, QQ); Q
|
|
169
|
+
Weight space over the Rational Field of the Root system of type ['A', 4]
|
|
170
|
+
sage: TestSuite(Q).run() # needs sage.graphs
|
|
171
|
+
|
|
172
|
+
sage: WeightSpace(R, QQ, extended=True)
|
|
173
|
+
Traceback (most recent call last):
|
|
174
|
+
...
|
|
175
|
+
ValueError: extended weight lattices are only implemented for affine root systems
|
|
176
|
+
"""
|
|
177
|
+
basis_keys = root_system.index_set()
|
|
178
|
+
self._extended = extended
|
|
179
|
+
if extended:
|
|
180
|
+
if not root_system.cartan_type().is_affine():
|
|
181
|
+
raise ValueError("extended weight lattices are only"
|
|
182
|
+
" implemented for affine root systems")
|
|
183
|
+
basis_keys = tuple(basis_keys) + ("delta",)
|
|
184
|
+
|
|
185
|
+
def sortkey(x):
|
|
186
|
+
return (1 if isinstance(x, str) else 0, x)
|
|
187
|
+
else:
|
|
188
|
+
def sortkey(x):
|
|
189
|
+
return x
|
|
190
|
+
|
|
191
|
+
self.root_system = root_system
|
|
192
|
+
CombinatorialFreeModule.__init__(self, base_ring,
|
|
193
|
+
basis_keys,
|
|
194
|
+
prefix="Lambdacheck" if root_system.dual_side else "Lambda",
|
|
195
|
+
latex_prefix="\\Lambda^\\vee" if root_system.dual_side else "\\Lambda",
|
|
196
|
+
sorting_key=sortkey,
|
|
197
|
+
category=WeightLatticeRealizations(base_ring))
|
|
198
|
+
|
|
199
|
+
if root_system.cartan_type().is_affine() and not extended:
|
|
200
|
+
# For an affine type, register the quotient map from the
|
|
201
|
+
# extended weight lattice/space to the weight lattice/space
|
|
202
|
+
domain = root_system.weight_space(base_ring, extended=True)
|
|
203
|
+
domain.module_morphism(self.fundamental_weight,
|
|
204
|
+
codomain=self
|
|
205
|
+
).register_as_coercion()
|
|
206
|
+
|
|
207
|
+
def is_extended(self):
|
|
208
|
+
"""
|
|
209
|
+
Return whether this is an extended weight lattice.
|
|
210
|
+
|
|
211
|
+
.. SEEALSO:: :meth:`~sage.combinat.root_system.weight_lattice_realization.ParentMethods.is_extended`
|
|
212
|
+
|
|
213
|
+
EXAMPLES::
|
|
214
|
+
|
|
215
|
+
sage: RootSystem(["A",3,1]).weight_lattice().is_extended()
|
|
216
|
+
False
|
|
217
|
+
sage: RootSystem(["A",3,1]).weight_lattice(extended=True).is_extended()
|
|
218
|
+
True
|
|
219
|
+
"""
|
|
220
|
+
return self._extended
|
|
221
|
+
|
|
222
|
+
def _repr_(self):
|
|
223
|
+
"""
|
|
224
|
+
TESTS::
|
|
225
|
+
|
|
226
|
+
sage: RootSystem(['A',4]).weight_lattice() # indirect doctest
|
|
227
|
+
Weight lattice of the Root system of type ['A', 4]
|
|
228
|
+
sage: RootSystem(['B',4]).weight_space()
|
|
229
|
+
Weight space over the Rational Field of the Root system of type ['B', 4]
|
|
230
|
+
sage: RootSystem(['A',4]).coweight_lattice()
|
|
231
|
+
Coweight lattice of the Root system of type ['A', 4]
|
|
232
|
+
sage: RootSystem(['B',4]).coweight_space()
|
|
233
|
+
Coweight space over the Rational Field of the Root system of type ['B', 4]
|
|
234
|
+
"""
|
|
235
|
+
return self._name_string()
|
|
236
|
+
|
|
237
|
+
def _name_string(self, capitalize=True, base_ring=True, type=True):
|
|
238
|
+
"""
|
|
239
|
+
EXAMPLES::
|
|
240
|
+
|
|
241
|
+
sage: RootSystem(['A',4]).weight_lattice()._name_string()
|
|
242
|
+
"Weight lattice of the Root system of type ['A', 4]"
|
|
243
|
+
"""
|
|
244
|
+
return self._name_string_helper("weight",
|
|
245
|
+
capitalize=capitalize, base_ring=base_ring, type=type,
|
|
246
|
+
prefix="extended " if self.is_extended() else "")
|
|
247
|
+
|
|
248
|
+
@cached_method
|
|
249
|
+
def fundamental_weight(self, i):
|
|
250
|
+
r"""
|
|
251
|
+
Return the `i`-th fundamental weight.
|
|
252
|
+
|
|
253
|
+
INPUT:
|
|
254
|
+
|
|
255
|
+
- ``i`` -- an element of the index set or ``'delta'``
|
|
256
|
+
|
|
257
|
+
By a slight notational abuse, for an affine type this method
|
|
258
|
+
also accepts ``'delta'`` as input, and returns the image of
|
|
259
|
+
`\delta` of the extended weight lattice in this realization.
|
|
260
|
+
|
|
261
|
+
.. SEEALSO:: :meth:`~sage.combinat.root_system.weight_lattice_realization.ParentMethods.fundamental_weight`
|
|
262
|
+
|
|
263
|
+
EXAMPLES::
|
|
264
|
+
|
|
265
|
+
sage: Q = RootSystem(["A",3]).weight_lattice()
|
|
266
|
+
sage: Q.fundamental_weight(1)
|
|
267
|
+
Lambda[1]
|
|
268
|
+
|
|
269
|
+
sage: Q = RootSystem(["A",3,1]).weight_lattice(extended=True)
|
|
270
|
+
sage: Q.fundamental_weight(1)
|
|
271
|
+
Lambda[1]
|
|
272
|
+
sage: Q.fundamental_weight("delta")
|
|
273
|
+
delta
|
|
274
|
+
"""
|
|
275
|
+
if i == "delta":
|
|
276
|
+
if not self.cartan_type().is_affine():
|
|
277
|
+
raise ValueError("delta is only defined for affine weight spaces")
|
|
278
|
+
if self.is_extended():
|
|
279
|
+
return self.monomial(i)
|
|
280
|
+
else:
|
|
281
|
+
return self.zero()
|
|
282
|
+
else:
|
|
283
|
+
if i not in self.index_set():
|
|
284
|
+
raise ValueError("{} is not in the index set".format(i))
|
|
285
|
+
return self.monomial(i)
|
|
286
|
+
|
|
287
|
+
@cached_method
|
|
288
|
+
def basis_extension(self):
|
|
289
|
+
r"""
|
|
290
|
+
Return the basis elements used to extend the fundamental weights.
|
|
291
|
+
|
|
292
|
+
EXAMPLES::
|
|
293
|
+
|
|
294
|
+
sage: Q = RootSystem(["A",3,1]).weight_lattice()
|
|
295
|
+
sage: Q.basis_extension()
|
|
296
|
+
Family ()
|
|
297
|
+
|
|
298
|
+
sage: Q = RootSystem(["A",3,1]).weight_lattice(extended=True)
|
|
299
|
+
sage: Q.basis_extension()
|
|
300
|
+
Finite family {'delta': delta}
|
|
301
|
+
|
|
302
|
+
This method is irrelevant for finite types::
|
|
303
|
+
|
|
304
|
+
sage: Q = RootSystem(["A",3]).weight_lattice()
|
|
305
|
+
sage: Q.basis_extension()
|
|
306
|
+
Family ()
|
|
307
|
+
"""
|
|
308
|
+
if self.is_extended():
|
|
309
|
+
return Family(["delta"], self.monomial)
|
|
310
|
+
else:
|
|
311
|
+
return Family([])
|
|
312
|
+
|
|
313
|
+
@cached_method
|
|
314
|
+
def simple_root(self, j):
|
|
315
|
+
r"""
|
|
316
|
+
Return the `j`-th simple root.
|
|
317
|
+
|
|
318
|
+
EXAMPLES::
|
|
319
|
+
|
|
320
|
+
sage: L = RootSystem(["C",4]).weight_lattice()
|
|
321
|
+
sage: L.simple_root(3) # needs sage.graphs
|
|
322
|
+
-Lambda[2] + 2*Lambda[3] - Lambda[4]
|
|
323
|
+
|
|
324
|
+
Its coefficients are given by the corresponding column of the
|
|
325
|
+
Cartan matrix::
|
|
326
|
+
|
|
327
|
+
sage: L.cartan_type().cartan_matrix()[:,2] # needs sage.graphs
|
|
328
|
+
[ 0]
|
|
329
|
+
[-1]
|
|
330
|
+
[ 2]
|
|
331
|
+
[-1]
|
|
332
|
+
|
|
333
|
+
Here are all simple roots::
|
|
334
|
+
|
|
335
|
+
sage: L.simple_roots() # needs sage.graphs
|
|
336
|
+
Finite family {1: 2*Lambda[1] - Lambda[2],
|
|
337
|
+
2: -Lambda[1] + 2*Lambda[2] - Lambda[3],
|
|
338
|
+
3: -Lambda[2] + 2*Lambda[3] - Lambda[4],
|
|
339
|
+
4: -2*Lambda[3] + 2*Lambda[4]}
|
|
340
|
+
|
|
341
|
+
For the extended weight lattice of an affine type, the simple
|
|
342
|
+
root associated to the special node is deformed by adding
|
|
343
|
+
`\delta`, where `\delta` is the null root::
|
|
344
|
+
|
|
345
|
+
sage: L = RootSystem(["C",4,1]).weight_lattice(extended=True)
|
|
346
|
+
sage: L.simple_root(0) # needs sage.graphs
|
|
347
|
+
2*Lambda[0] - 2*Lambda[1] + delta
|
|
348
|
+
|
|
349
|
+
In fact `\delta` is really `1/a_0` times the null root (see
|
|
350
|
+
the discussion in :class:`~sage.combinat.root_system.weight_space.WeightSpace`)
|
|
351
|
+
but this only makes a difference in type `BC`::
|
|
352
|
+
|
|
353
|
+
sage: L = RootSystem(CartanType(["BC",4,2])).weight_lattice(extended=True)
|
|
354
|
+
sage: L.simple_root(0) # needs sage.graphs
|
|
355
|
+
2*Lambda[0] - Lambda[1] + delta
|
|
356
|
+
sage: L.null_root() # needs sage.graphs
|
|
357
|
+
2*delta
|
|
358
|
+
|
|
359
|
+
.. SEEALSO::
|
|
360
|
+
|
|
361
|
+
- :meth:`~sage.combinat.root_system.type_affine.AmbientSpace.simple_root`
|
|
362
|
+
- :meth:`CartanType.col_annihilator`
|
|
363
|
+
"""
|
|
364
|
+
if j not in self.index_set():
|
|
365
|
+
raise ValueError("{} is not in the index set".format(j))
|
|
366
|
+
K = self.base_ring()
|
|
367
|
+
result = self.sum_of_terms((i,K(c)) for i,c in self.root_system.dynkin_diagram().column(j))
|
|
368
|
+
if self._extended and j == self.cartan_type().special_node():
|
|
369
|
+
result = result + self.monomial("delta")
|
|
370
|
+
return result
|
|
371
|
+
|
|
372
|
+
def _repr_term(self, m):
|
|
373
|
+
r"""
|
|
374
|
+
Customized monomial printing for extended weight lattices.
|
|
375
|
+
|
|
376
|
+
EXAMPLES::
|
|
377
|
+
|
|
378
|
+
sage: L = RootSystem(["C",4,1]).weight_lattice(extended=True)
|
|
379
|
+
sage: L.simple_root(0) # indirect doctest # needs sage.graphs
|
|
380
|
+
2*Lambda[0] - 2*Lambda[1] + delta
|
|
381
|
+
|
|
382
|
+
sage: L = RootSystem(["C",4,1]).coweight_lattice(extended=True)
|
|
383
|
+
sage: L.simple_root(0) # indirect doctest # needs sage.graphs
|
|
384
|
+
2*Lambdacheck[0] - Lambdacheck[1] + deltacheck
|
|
385
|
+
"""
|
|
386
|
+
if m == "delta":
|
|
387
|
+
return "deltacheck" if self.root_system.dual_side else "delta"
|
|
388
|
+
return super()._repr_term(m)
|
|
389
|
+
|
|
390
|
+
def _latex_term(self, m):
|
|
391
|
+
r"""
|
|
392
|
+
Customized monomial typesetting for extended weight lattices.
|
|
393
|
+
|
|
394
|
+
EXAMPLES::
|
|
395
|
+
|
|
396
|
+
sage: L = RootSystem(["C",4,1]).weight_lattice(extended=True)
|
|
397
|
+
sage: latex(L.simple_root(0)) # indirect doctest # needs sage.graphs
|
|
398
|
+
2 \Lambda_{0} - 2 \Lambda_{1} + \delta
|
|
399
|
+
|
|
400
|
+
sage: L = RootSystem(["C",4,1]).coweight_lattice(extended=True)
|
|
401
|
+
sage: latex(L.simple_root(0)) # indirect doctest # needs sage.graphs
|
|
402
|
+
2 \Lambda^\vee_{0} - \Lambda^\vee_{1} + \delta^\vee
|
|
403
|
+
"""
|
|
404
|
+
if m == "delta":
|
|
405
|
+
return "\\delta^\\vee" if self.root_system.dual_side else "\\delta"
|
|
406
|
+
return super()._latex_term(m)
|
|
407
|
+
|
|
408
|
+
@cached_method
|
|
409
|
+
def _to_classical_on_basis(self, i):
|
|
410
|
+
r"""
|
|
411
|
+
Implement the projection onto the corresponding classical space or lattice, on the basis.
|
|
412
|
+
|
|
413
|
+
INPUT:
|
|
414
|
+
|
|
415
|
+
- ``i`` -- a vertex of the Dynkin diagram or "delta"
|
|
416
|
+
|
|
417
|
+
EXAMPLES::
|
|
418
|
+
|
|
419
|
+
sage: L = RootSystem(["A",2,1]).weight_space()
|
|
420
|
+
sage: L._to_classical_on_basis("delta")
|
|
421
|
+
0
|
|
422
|
+
sage: L._to_classical_on_basis(0)
|
|
423
|
+
0
|
|
424
|
+
sage: L._to_classical_on_basis(1)
|
|
425
|
+
Lambda[1]
|
|
426
|
+
sage: L._to_classical_on_basis(2)
|
|
427
|
+
Lambda[2]
|
|
428
|
+
"""
|
|
429
|
+
if i == "delta" or i == self.cartan_type().special_node():
|
|
430
|
+
return self.classical().zero()
|
|
431
|
+
else:
|
|
432
|
+
return self.classical().monomial(i)
|
|
433
|
+
|
|
434
|
+
@cached_method
|
|
435
|
+
def to_ambient_space_morphism(self):
|
|
436
|
+
r"""
|
|
437
|
+
The morphism from ``self`` to its associated ambient space.
|
|
438
|
+
|
|
439
|
+
EXAMPLES::
|
|
440
|
+
|
|
441
|
+
sage: CartanType(['A',2]).root_system().weight_lattice().to_ambient_space_morphism()
|
|
442
|
+
Generic morphism:
|
|
443
|
+
From: Weight lattice of the Root system of type ['A', 2]
|
|
444
|
+
To: Ambient space of the Root system of type ['A', 2]
|
|
445
|
+
|
|
446
|
+
.. warning::
|
|
447
|
+
|
|
448
|
+
Implemented only for finite Cartan type.
|
|
449
|
+
"""
|
|
450
|
+
if self.root_system.dual_side:
|
|
451
|
+
raise TypeError("No implemented map from the coweight space to the ambient space")
|
|
452
|
+
L = self.cartan_type().root_system().ambient_space()
|
|
453
|
+
basis = L.fundamental_weights()
|
|
454
|
+
|
|
455
|
+
def basis_value(basis, i):
|
|
456
|
+
return basis[i]
|
|
457
|
+
return self.module_morphism(on_basis=functools.partial(basis_value, basis), codomain=L)
|
|
458
|
+
|
|
459
|
+
|
|
460
|
+
class WeightSpaceElement(CombinatorialFreeModule.Element):
|
|
461
|
+
|
|
462
|
+
def scalar(self, lambdacheck):
|
|
463
|
+
"""
|
|
464
|
+
The canonical scalar product between the weight lattice and
|
|
465
|
+
the coroot lattice.
|
|
466
|
+
|
|
467
|
+
.. TODO::
|
|
468
|
+
|
|
469
|
+
- merge with_apply_multi_module_morphism
|
|
470
|
+
- allow for any root space / lattice
|
|
471
|
+
- define properly the return type (depends on the base rings of the two spaces)
|
|
472
|
+
- make this robust for extended weight lattices (`i` might be "delta")
|
|
473
|
+
|
|
474
|
+
EXAMPLES::
|
|
475
|
+
|
|
476
|
+
sage: L = RootSystem(["C",4,1]).weight_lattice()
|
|
477
|
+
sage: Lambda = L.fundamental_weights()
|
|
478
|
+
sage: alphacheck = L.simple_coroots()
|
|
479
|
+
sage: Lambda[1].scalar(alphacheck[1])
|
|
480
|
+
1
|
|
481
|
+
sage: Lambda[1].scalar(alphacheck[2])
|
|
482
|
+
0
|
|
483
|
+
|
|
484
|
+
The fundamental weights and the simple coroots are dual bases::
|
|
485
|
+
|
|
486
|
+
sage: matrix([ [ Lambda[i].scalar(alphacheck[j])
|
|
487
|
+
....: for i in L.index_set() ]
|
|
488
|
+
....: for j in L.index_set() ])
|
|
489
|
+
[1 0 0 0 0]
|
|
490
|
+
[0 1 0 0 0]
|
|
491
|
+
[0 0 1 0 0]
|
|
492
|
+
[0 0 0 1 0]
|
|
493
|
+
[0 0 0 0 1]
|
|
494
|
+
|
|
495
|
+
Note that the scalar product is not yet implemented between
|
|
496
|
+
the weight space and the coweight space; in any cases, that
|
|
497
|
+
won't be the job of this method::
|
|
498
|
+
|
|
499
|
+
sage: R = RootSystem(["A",3])
|
|
500
|
+
sage: alpha = R.weight_space().roots() # needs sage.graphs
|
|
501
|
+
sage: alphacheck = R.coweight_space().roots() # needs sage.graphs
|
|
502
|
+
sage: alpha[1].scalar(alphacheck[1]) # needs sage.graphs
|
|
503
|
+
Traceback (most recent call last):
|
|
504
|
+
...
|
|
505
|
+
ValueError: -Lambdacheck[1] + 2*Lambdacheck[2] - Lambdacheck[3]
|
|
506
|
+
is not in the coroot space
|
|
507
|
+
"""
|
|
508
|
+
# TODO: Find some better test
|
|
509
|
+
if lambdacheck not in self.parent().coroot_lattice() and lambdacheck not in self.parent().coroot_space():
|
|
510
|
+
raise ValueError("{} is not in the coroot space".format(lambdacheck))
|
|
511
|
+
zero = self.parent().base_ring().zero()
|
|
512
|
+
if len(self) < len(lambdacheck):
|
|
513
|
+
return sum( (lambdacheck[i]*c for (i,c) in self), zero)
|
|
514
|
+
else:
|
|
515
|
+
return sum( (self[i]*c for (i,c) in lambdacheck), zero)
|
|
516
|
+
|
|
517
|
+
def is_dominant(self):
|
|
518
|
+
r"""
|
|
519
|
+
Check whether an element in the weight space lies in the positive
|
|
520
|
+
cone spanned by the basis elements (fundamental weights).
|
|
521
|
+
|
|
522
|
+
EXAMPLES::
|
|
523
|
+
|
|
524
|
+
sage: W = RootSystem(['A',3]).weight_space()
|
|
525
|
+
sage: Lambda = W.basis()
|
|
526
|
+
sage: w = Lambda[1] + Lambda[3]
|
|
527
|
+
sage: w.is_dominant()
|
|
528
|
+
True
|
|
529
|
+
sage: w = Lambda[1] - Lambda[2]
|
|
530
|
+
sage: w.is_dominant()
|
|
531
|
+
False
|
|
532
|
+
|
|
533
|
+
In the extended affine weight lattice, ``'delta'`` is orthogonal to
|
|
534
|
+
the positive coroots, so adding or subtracting it should not
|
|
535
|
+
affect dominance::
|
|
536
|
+
|
|
537
|
+
sage: P = RootSystem(['A',2,1]).weight_lattice(extended=true)
|
|
538
|
+
sage: Lambda = P.fundamental_weights()
|
|
539
|
+
sage: delta = P.null_root() # needs sage.graphs
|
|
540
|
+
sage: w = Lambda[1] - delta # needs sage.graphs
|
|
541
|
+
sage: w.is_dominant() # needs sage.graphs
|
|
542
|
+
True
|
|
543
|
+
"""
|
|
544
|
+
index_set = set(self.parent().index_set())
|
|
545
|
+
return all(c >= 0 for i, c in self._monomial_coefficients.items() if i in index_set)
|
|
546
|
+
|
|
547
|
+
def is_dominant_weight(self):
|
|
548
|
+
r"""
|
|
549
|
+
Check whether an element in the weight space lies in the positive
|
|
550
|
+
`\ZZ`-lattice cone spanned by the basis elements (fundamental weights).
|
|
551
|
+
|
|
552
|
+
EXAMPLES::
|
|
553
|
+
|
|
554
|
+
sage: W = RootSystem(['A',3]).weight_space()
|
|
555
|
+
sage: Lambda = W.basis()
|
|
556
|
+
sage: w = Lambda[1] + Lambda[3]
|
|
557
|
+
sage: w.is_dominant_weight()
|
|
558
|
+
True
|
|
559
|
+
sage: w = Lambda[1] + 2/3*Lambda[3]
|
|
560
|
+
sage: w.is_dominant_weight()
|
|
561
|
+
False
|
|
562
|
+
sage: w = Lambda[1] - Lambda[2]
|
|
563
|
+
sage: w.is_dominant_weight()
|
|
564
|
+
False
|
|
565
|
+
|
|
566
|
+
In the extended affine weight lattice, ``'delta'`` is orthogonal to
|
|
567
|
+
the positive coroots, so adding or subtracting it should not
|
|
568
|
+
affect dominance::
|
|
569
|
+
|
|
570
|
+
sage: P = RootSystem(['A',2,1]).weight_lattice(extended=true)
|
|
571
|
+
sage: Lambda = P.fundamental_weights()
|
|
572
|
+
sage: delta = P.null_root() # needs sage.graphs
|
|
573
|
+
sage: w = Lambda[1] - delta # needs sage.graphs
|
|
574
|
+
sage: w.is_dominant_weight() # needs sage.graphs
|
|
575
|
+
True
|
|
576
|
+
"""
|
|
577
|
+
index_set = set(self.parent().index_set())
|
|
578
|
+
from sage.rings.integer_ring import ZZ
|
|
579
|
+
return all(c in ZZ and c >= 0 for i, c in self._monomial_coefficients.items() if i in index_set)
|
|
580
|
+
|
|
581
|
+
def to_ambient(self):
|
|
582
|
+
r"""
|
|
583
|
+
Map ``self`` to the ambient space.
|
|
584
|
+
|
|
585
|
+
EXAMPLES::
|
|
586
|
+
|
|
587
|
+
sage: mu = CartanType(['B',2]).root_system().weight_lattice().an_element(); mu
|
|
588
|
+
2*Lambda[1] + 2*Lambda[2]
|
|
589
|
+
sage: mu.to_ambient()
|
|
590
|
+
(3, 1)
|
|
591
|
+
|
|
592
|
+
.. WARNING::
|
|
593
|
+
|
|
594
|
+
Only implemented in finite Cartan type.
|
|
595
|
+
Does not work for coweight lattices because there is no implemented map
|
|
596
|
+
from the coweight lattice to the ambient space.
|
|
597
|
+
"""
|
|
598
|
+
return self.parent().to_ambient_space_morphism()(self)
|
|
599
|
+
|
|
600
|
+
def to_weight_space(self):
|
|
601
|
+
r"""
|
|
602
|
+
Map ``self`` to the weight space.
|
|
603
|
+
|
|
604
|
+
Since `self.parent()` is the weight space, this map just returns ``self``.
|
|
605
|
+
This overrides the generic method in `WeightSpaceRealizations`.
|
|
606
|
+
|
|
607
|
+
EXAMPLES::
|
|
608
|
+
|
|
609
|
+
sage: mu = CartanType(['A',2]).root_system().weight_lattice().an_element(); mu
|
|
610
|
+
2*Lambda[1] + 2*Lambda[2]
|
|
611
|
+
sage: mu.to_weight_space()
|
|
612
|
+
2*Lambda[1] + 2*Lambda[2]
|
|
613
|
+
"""
|
|
614
|
+
return self
|
|
615
|
+
|
|
616
|
+
@cached_method
|
|
617
|
+
def _to_root_vector(self):
|
|
618
|
+
r"""
|
|
619
|
+
Helper method to express ``self`` as a linear combination
|
|
620
|
+
of simple roots.
|
|
621
|
+
|
|
622
|
+
OUTPUT:
|
|
623
|
+
|
|
624
|
+
A vector with entries in `\QQ` representing ``self`` as a linear
|
|
625
|
+
combination of simple roots.
|
|
626
|
+
|
|
627
|
+
EXAMPLES::
|
|
628
|
+
|
|
629
|
+
sage: P = RootSystem(['A',3]).weight_lattice()
|
|
630
|
+
sage: La = P.fundamental_weights()
|
|
631
|
+
sage: [al._to_root_vector() for al in P.simple_roots()] # needs sage.graphs
|
|
632
|
+
[(1, 0, 0), (0, 1, 0), (0, 0, 1)]
|
|
633
|
+
sage: (La[1] + La[2])._to_root_vector() # needs sage.graphs
|
|
634
|
+
(5/4, 3/2, 3/4)
|
|
635
|
+
"""
|
|
636
|
+
return self.parent()._inverse_cartan_matrix * self.to_vector()
|
|
637
|
+
|
|
638
|
+
|
|
639
|
+
WeightSpace.Element = WeightSpaceElement
|