passagemath-singular 10.6.31rc3__cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.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-singular might be problematic. Click here for more details.
- PySingular.cpython-314-aarch64-linux-gnu.so +0 -0
- passagemath_singular-10.6.31rc3.dist-info/METADATA +183 -0
- passagemath_singular-10.6.31rc3.dist-info/RECORD +490 -0
- passagemath_singular-10.6.31rc3.dist-info/WHEEL +6 -0
- passagemath_singular-10.6.31rc3.dist-info/top_level.txt +3 -0
- passagemath_singular.libs/libSingular-4-6a2a8666.4.1.so +0 -0
- passagemath_singular.libs/libcddgmp-ac579979.so.0.1.3 +0 -0
- passagemath_singular.libs/libfactory-4-66e33516.4.1.so +0 -0
- passagemath_singular.libs/libflint-81de1160.so.21.0.0 +0 -0
- passagemath_singular.libs/libgf2x-fbd36f80.so.3.0.0 +0 -0
- passagemath_singular.libs/libgfortran-e1b7dfc8.so.5.0.0 +0 -0
- passagemath_singular.libs/libgmp-93ebf16a.so.10.5.0 +0 -0
- passagemath_singular.libs/libgsl-e3525837.so.28.0.0 +0 -0
- passagemath_singular.libs/libmpfr-e0f11cf3.so.6.2.1 +0 -0
- passagemath_singular.libs/libntl-0043a3a2.so.44.0.1 +0 -0
- passagemath_singular.libs/libomalloc-0-06512335.9.6.so +0 -0
- passagemath_singular.libs/libopenblasp-r0-4c5b64b1.3.29.so +0 -0
- passagemath_singular.libs/libpolys-4-cb7246b5.4.1.so +0 -0
- passagemath_singular.libs/libreadline-28330744.so.8.2 +0 -0
- passagemath_singular.libs/libsingular_resources-4-8c425241.4.1.so +0 -0
- passagemath_singular.libs/libtinfo-f81c2d16.so.6.3 +0 -0
- sage/algebras/all__sagemath_singular.py +3 -0
- sage/algebras/fusion_rings/all.py +19 -0
- sage/algebras/fusion_rings/f_matrix.py +2448 -0
- sage/algebras/fusion_rings/fast_parallel_fmats_methods.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/algebras/fusion_rings/fast_parallel_fmats_methods.pxd +5 -0
- sage/algebras/fusion_rings/fast_parallel_fmats_methods.pyx +538 -0
- sage/algebras/fusion_rings/fast_parallel_fusion_ring_braid_repn.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/algebras/fusion_rings/fast_parallel_fusion_ring_braid_repn.pxd +3 -0
- sage/algebras/fusion_rings/fast_parallel_fusion_ring_braid_repn.pyx +331 -0
- sage/algebras/fusion_rings/fusion_double.py +899 -0
- sage/algebras/fusion_rings/fusion_ring.py +1580 -0
- sage/algebras/fusion_rings/poly_tup_engine.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/algebras/fusion_rings/poly_tup_engine.pxd +24 -0
- sage/algebras/fusion_rings/poly_tup_engine.pyx +579 -0
- sage/algebras/fusion_rings/shm_managers.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/algebras/fusion_rings/shm_managers.pxd +24 -0
- sage/algebras/fusion_rings/shm_managers.pyx +780 -0
- sage/algebras/letterplace/all.py +1 -0
- sage/algebras/letterplace/free_algebra_element_letterplace.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/algebras/letterplace/free_algebra_element_letterplace.pxd +18 -0
- sage/algebras/letterplace/free_algebra_element_letterplace.pyx +755 -0
- sage/algebras/letterplace/free_algebra_letterplace.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/algebras/letterplace/free_algebra_letterplace.pxd +35 -0
- sage/algebras/letterplace/free_algebra_letterplace.pyx +914 -0
- sage/algebras/letterplace/letterplace_ideal.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/algebras/letterplace/letterplace_ideal.pyx +408 -0
- sage/algebras/quatalg/all.py +2 -0
- sage/algebras/quatalg/quaternion_algebra.py +4778 -0
- sage/algebras/quatalg/quaternion_algebra_cython.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/algebras/quatalg/quaternion_algebra_cython.pyx +261 -0
- sage/algebras/quatalg/quaternion_algebra_element.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/algebras/quatalg/quaternion_algebra_element.pxd +29 -0
- sage/algebras/quatalg/quaternion_algebra_element.pyx +2176 -0
- sage/all__sagemath_singular.py +11 -0
- sage/ext_data/all__sagemath_singular.py +1 -0
- sage/ext_data/singular/function_field/core.lib +98 -0
- sage/interfaces/all__sagemath_singular.py +1 -0
- sage/interfaces/singular.py +2835 -0
- sage/libs/all__sagemath_singular.py +1 -0
- sage/libs/singular/__init__.py +1 -0
- sage/libs/singular/decl.pxd +1168 -0
- sage/libs/singular/function.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/libs/singular/function.pxd +87 -0
- sage/libs/singular/function.pyx +1901 -0
- sage/libs/singular/function_factory.py +61 -0
- sage/libs/singular/groebner_strategy.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/libs/singular/groebner_strategy.pxd +22 -0
- sage/libs/singular/groebner_strategy.pyx +582 -0
- sage/libs/singular/option.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/libs/singular/option.pyx +671 -0
- sage/libs/singular/polynomial.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/libs/singular/polynomial.pxd +39 -0
- sage/libs/singular/polynomial.pyx +661 -0
- sage/libs/singular/ring.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/libs/singular/ring.pxd +58 -0
- sage/libs/singular/ring.pyx +893 -0
- sage/libs/singular/singular.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/libs/singular/singular.pxd +72 -0
- sage/libs/singular/singular.pyx +1944 -0
- sage/libs/singular/standard_options.py +145 -0
- sage/matrix/all__sagemath_singular.py +1 -0
- sage/matrix/matrix_mpolynomial_dense.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/matrix/matrix_mpolynomial_dense.pxd +7 -0
- sage/matrix/matrix_mpolynomial_dense.pyx +615 -0
- sage/rings/all__sagemath_singular.py +1 -0
- sage/rings/function_field/all__sagemath_singular.py +1 -0
- sage/rings/function_field/derivations_polymod.py +911 -0
- sage/rings/function_field/element_polymod.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/rings/function_field/element_polymod.pyx +406 -0
- sage/rings/function_field/function_field_polymod.py +2611 -0
- sage/rings/function_field/ideal_polymod.py +1775 -0
- sage/rings/function_field/order_polymod.py +1475 -0
- sage/rings/function_field/place_polymod.py +681 -0
- sage/rings/polynomial/all__sagemath_singular.py +1 -0
- sage/rings/polynomial/multi_polynomial_ideal_libsingular.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/rings/polynomial/multi_polynomial_ideal_libsingular.pxd +5 -0
- sage/rings/polynomial/multi_polynomial_ideal_libsingular.pyx +339 -0
- sage/rings/polynomial/multi_polynomial_libsingular.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/rings/polynomial/multi_polynomial_libsingular.pxd +30 -0
- sage/rings/polynomial/multi_polynomial_libsingular.pyx +6277 -0
- sage/rings/polynomial/plural.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/rings/polynomial/plural.pxd +48 -0
- sage/rings/polynomial/plural.pyx +3171 -0
- sage/symbolic/all__sagemath_singular.py +1 -0
- sage/symbolic/comparison_impl.pxi +428 -0
- sage/symbolic/constants_c_impl.pxi +178 -0
- sage/symbolic/expression.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/symbolic/expression.pxd +7 -0
- sage/symbolic/expression.pyx +14200 -0
- sage/symbolic/getitem_impl.pxi +202 -0
- sage/symbolic/pynac.pxi +572 -0
- sage/symbolic/pynac_constant_impl.pxi +133 -0
- sage/symbolic/pynac_function_impl.pxi +206 -0
- sage/symbolic/pynac_impl.pxi +2576 -0
- sage/symbolic/pynac_wrap.h +124 -0
- sage/symbolic/series_impl.pxi +272 -0
- sage/symbolic/substitution_map_impl.pxi +94 -0
- sage_wheels/bin/ESingular +0 -0
- sage_wheels/bin/Singular +0 -0
- sage_wheels/bin/TSingular +0 -0
- sage_wheels/lib/singular/MOD/cohomo.la +41 -0
- sage_wheels/lib/singular/MOD/cohomo.so +0 -0
- sage_wheels/lib/singular/MOD/customstd.la +41 -0
- sage_wheels/lib/singular/MOD/customstd.so +0 -0
- sage_wheels/lib/singular/MOD/freealgebra.la +41 -0
- sage_wheels/lib/singular/MOD/freealgebra.so +0 -0
- sage_wheels/lib/singular/MOD/gfanlib.la +41 -0
- sage_wheels/lib/singular/MOD/gfanlib.so +0 -0
- sage_wheels/lib/singular/MOD/gitfan.la +41 -0
- sage_wheels/lib/singular/MOD/gitfan.so +0 -0
- sage_wheels/lib/singular/MOD/interval.la +41 -0
- sage_wheels/lib/singular/MOD/interval.so +0 -0
- sage_wheels/lib/singular/MOD/loctriv.la +41 -0
- sage_wheels/lib/singular/MOD/loctriv.so +0 -0
- sage_wheels/lib/singular/MOD/machinelearning.la +41 -0
- sage_wheels/lib/singular/MOD/machinelearning.so +0 -0
- sage_wheels/lib/singular/MOD/p_Procs_FieldGeneral.la +41 -0
- sage_wheels/lib/singular/MOD/p_Procs_FieldGeneral.so +0 -0
- sage_wheels/lib/singular/MOD/p_Procs_FieldIndep.la +41 -0
- sage_wheels/lib/singular/MOD/p_Procs_FieldIndep.so +0 -0
- sage_wheels/lib/singular/MOD/p_Procs_FieldQ.la +41 -0
- sage_wheels/lib/singular/MOD/p_Procs_FieldQ.so +0 -0
- sage_wheels/lib/singular/MOD/p_Procs_FieldZp.la +41 -0
- sage_wheels/lib/singular/MOD/p_Procs_FieldZp.so +0 -0
- sage_wheels/lib/singular/MOD/partialgb.la +41 -0
- sage_wheels/lib/singular/MOD/partialgb.so +0 -0
- sage_wheels/lib/singular/MOD/pyobject.la +41 -0
- sage_wheels/lib/singular/MOD/pyobject.so +0 -0
- sage_wheels/lib/singular/MOD/singmathic.la +41 -0
- sage_wheels/lib/singular/MOD/singmathic.so +0 -0
- sage_wheels/lib/singular/MOD/sispasm.la +41 -0
- sage_wheels/lib/singular/MOD/sispasm.so +0 -0
- sage_wheels/lib/singular/MOD/subsets.la +41 -0
- sage_wheels/lib/singular/MOD/subsets.so +0 -0
- sage_wheels/lib/singular/MOD/systhreads.la +41 -0
- sage_wheels/lib/singular/MOD/systhreads.so +0 -0
- sage_wheels/lib/singular/MOD/syzextra.la +41 -0
- sage_wheels/lib/singular/MOD/syzextra.so +0 -0
- sage_wheels/libexec/singular/MOD/change_cost +0 -0
- sage_wheels/libexec/singular/MOD/singularsurf +11 -0
- sage_wheels/libexec/singular/MOD/singularsurf_jupyter +9 -0
- sage_wheels/libexec/singular/MOD/singularsurf_win +10 -0
- sage_wheels/libexec/singular/MOD/solve_IP +0 -0
- sage_wheels/libexec/singular/MOD/surfex +16 -0
- sage_wheels/libexec/singular/MOD/toric_ideal +0 -0
- sage_wheels/share/factory/gftables/10201 +342 -0
- sage_wheels/share/factory/gftables/1024 +37 -0
- sage_wheels/share/factory/gftables/10609 +356 -0
- sage_wheels/share/factory/gftables/11449 +384 -0
- sage_wheels/share/factory/gftables/11881 +398 -0
- sage_wheels/share/factory/gftables/121 +6 -0
- sage_wheels/share/factory/gftables/12167 +408 -0
- sage_wheels/share/factory/gftables/125 +7 -0
- sage_wheels/share/factory/gftables/12769 +428 -0
- sage_wheels/share/factory/gftables/128 +7 -0
- sage_wheels/share/factory/gftables/1331 +47 -0
- sage_wheels/share/factory/gftables/1369 +48 -0
- sage_wheels/share/factory/gftables/14641 +490 -0
- sage_wheels/share/factory/gftables/15625 +523 -0
- sage_wheels/share/factory/gftables/16 +3 -0
- sage_wheels/share/factory/gftables/16129 +540 -0
- sage_wheels/share/factory/gftables/16384 +549 -0
- sage_wheels/share/factory/gftables/16807 +563 -0
- sage_wheels/share/factory/gftables/1681 +58 -0
- sage_wheels/share/factory/gftables/169 +8 -0
- sage_wheels/share/factory/gftables/17161 +574 -0
- sage_wheels/share/factory/gftables/1849 +64 -0
- sage_wheels/share/factory/gftables/18769 +628 -0
- sage_wheels/share/factory/gftables/19321 +646 -0
- sage_wheels/share/factory/gftables/19683 +659 -0
- sage_wheels/share/factory/gftables/2048 +71 -0
- sage_wheels/share/factory/gftables/2187 +75 -0
- sage_wheels/share/factory/gftables/2197 +76 -0
- sage_wheels/share/factory/gftables/2209 +76 -0
- sage_wheels/share/factory/gftables/22201 +742 -0
- sage_wheels/share/factory/gftables/22801 +762 -0
- sage_wheels/share/factory/gftables/2401 +82 -0
- sage_wheels/share/factory/gftables/243 +11 -0
- sage_wheels/share/factory/gftables/24389 +815 -0
- sage_wheels/share/factory/gftables/24649 +824 -0
- sage_wheels/share/factory/gftables/25 +3 -0
- sage_wheels/share/factory/gftables/256 +11 -0
- sage_wheels/share/factory/gftables/26569 +888 -0
- sage_wheels/share/factory/gftables/27 +3 -0
- sage_wheels/share/factory/gftables/27889 +932 -0
- sage_wheels/share/factory/gftables/2809 +96 -0
- sage_wheels/share/factory/gftables/28561 +954 -0
- sage_wheels/share/factory/gftables/289 +12 -0
- sage_wheels/share/factory/gftables/29791 +995 -0
- sage_wheels/share/factory/gftables/29929 +1000 -0
- sage_wheels/share/factory/gftables/3125 +107 -0
- sage_wheels/share/factory/gftables/32 +4 -0
- sage_wheels/share/factory/gftables/32041 +1070 -0
- sage_wheels/share/factory/gftables/32761 +1094 -0
- sage_wheels/share/factory/gftables/32768 +1095 -0
- sage_wheels/share/factory/gftables/343 +14 -0
- sage_wheels/share/factory/gftables/3481 +118 -0
- sage_wheels/share/factory/gftables/361 +14 -0
- sage_wheels/share/factory/gftables/36481 +1218 -0
- sage_wheels/share/factory/gftables/3721 +126 -0
- sage_wheels/share/factory/gftables/37249 +1244 -0
- sage_wheels/share/factory/gftables/38809 +1296 -0
- sage_wheels/share/factory/gftables/39601 +1322 -0
- sage_wheels/share/factory/gftables/4 +3 -0
- sage_wheels/share/factory/gftables/4096 +139 -0
- sage_wheels/share/factory/gftables/44521 +1486 -0
- sage_wheels/share/factory/gftables/4489 +152 -0
- sage_wheels/share/factory/gftables/49 +4 -0
- sage_wheels/share/factory/gftables/4913 +166 -0
- sage_wheels/share/factory/gftables/49729 +1660 -0
- sage_wheels/share/factory/gftables/5041 +170 -0
- sage_wheels/share/factory/gftables/50653 +1691 -0
- sage_wheels/share/factory/gftables/512 +20 -0
- sage_wheels/share/factory/gftables/51529 +1720 -0
- sage_wheels/share/factory/gftables/52441 +1750 -0
- sage_wheels/share/factory/gftables/529 +20 -0
- sage_wheels/share/factory/gftables/5329 +180 -0
- sage_wheels/share/factory/gftables/54289 +1812 -0
- sage_wheels/share/factory/gftables/57121 +1906 -0
- sage_wheels/share/factory/gftables/58081 +1938 -0
- sage_wheels/share/factory/gftables/59049 +1971 -0
- sage_wheels/share/factory/gftables/6241 +210 -0
- sage_wheels/share/factory/gftables/625 +23 -0
- sage_wheels/share/factory/gftables/63001 +2102 -0
- sage_wheels/share/factory/gftables/64 +5 -0
- sage_wheels/share/factory/gftables/6561 +221 -0
- sage_wheels/share/factory/gftables/6859 +231 -0
- sage_wheels/share/factory/gftables/6889 +232 -0
- sage_wheels/share/factory/gftables/729 +27 -0
- sage_wheels/share/factory/gftables/7921 +266 -0
- sage_wheels/share/factory/gftables/8 +3 -0
- sage_wheels/share/factory/gftables/81 +5 -0
- sage_wheels/share/factory/gftables/8192 +276 -0
- sage_wheels/share/factory/gftables/841 +30 -0
- sage_wheels/share/factory/gftables/9 +3 -0
- sage_wheels/share/factory/gftables/9409 +316 -0
- sage_wheels/share/factory/gftables/961 +34 -0
- sage_wheels/share/info/singular.info +191898 -0
- sage_wheels/share/singular/LIB/GND.lib +1359 -0
- sage_wheels/share/singular/LIB/JMBTest.lib +976 -0
- sage_wheels/share/singular/LIB/JMSConst.lib +1363 -0
- sage_wheels/share/singular/LIB/KVequiv.lib +699 -0
- sage_wheels/share/singular/LIB/SingularityDBM.lib +491 -0
- sage_wheels/share/singular/LIB/VecField.lib +1542 -0
- sage_wheels/share/singular/LIB/absfact.lib +959 -0
- sage_wheels/share/singular/LIB/ainvar.lib +730 -0
- sage_wheels/share/singular/LIB/aksaka.lib +419 -0
- sage_wheels/share/singular/LIB/alexpoly.lib +2542 -0
- sage_wheels/share/singular/LIB/algebra.lib +1193 -0
- sage_wheels/share/singular/LIB/all.lib +136 -0
- sage_wheels/share/singular/LIB/arcpoint.lib +514 -0
- sage_wheels/share/singular/LIB/arnold.lib +4553 -0
- sage_wheels/share/singular/LIB/arnoldclassify.lib +2058 -0
- sage_wheels/share/singular/LIB/arr.lib +3486 -0
- sage_wheels/share/singular/LIB/assprimeszerodim.lib +755 -0
- sage_wheels/share/singular/LIB/autgradalg.lib +3361 -0
- sage_wheels/share/singular/LIB/bfun.lib +1964 -0
- sage_wheels/share/singular/LIB/bimodules.lib +774 -0
- sage_wheels/share/singular/LIB/brillnoether.lib +226 -0
- sage_wheels/share/singular/LIB/brnoeth.lib +5017 -0
- sage_wheels/share/singular/LIB/central.lib +2169 -0
- sage_wheels/share/singular/LIB/chern.lib +4162 -0
- sage_wheels/share/singular/LIB/cimonom.lib +571 -0
- sage_wheels/share/singular/LIB/cisimplicial.lib +1835 -0
- sage_wheels/share/singular/LIB/classify.lib +3239 -0
- sage_wheels/share/singular/LIB/classify2.lib +1462 -0
- sage_wheels/share/singular/LIB/classifyMapGerms.lib +1515 -0
- sage_wheels/share/singular/LIB/classify_aeq.lib +3253 -0
- sage_wheels/share/singular/LIB/classifyceq.lib +2092 -0
- sage_wheels/share/singular/LIB/classifyci.lib +1133 -0
- sage_wheels/share/singular/LIB/combinat.lib +91 -0
- sage_wheels/share/singular/LIB/compregb.lib +276 -0
- sage_wheels/share/singular/LIB/control.lib +1636 -0
- sage_wheels/share/singular/LIB/crypto.lib +3795 -0
- sage_wheels/share/singular/LIB/curveInv.lib +667 -0
- sage_wheels/share/singular/LIB/curvepar.lib +1817 -0
- sage_wheels/share/singular/LIB/customstd.lib +100 -0
- sage_wheels/share/singular/LIB/deRham.lib +5979 -0
- sage_wheels/share/singular/LIB/decodegb.lib +2134 -0
- sage_wheels/share/singular/LIB/decomp.lib +1655 -0
- sage_wheels/share/singular/LIB/deflation.lib +872 -0
- sage_wheels/share/singular/LIB/deform.lib +925 -0
- sage_wheels/share/singular/LIB/difform.lib +3055 -0
- sage_wheels/share/singular/LIB/divisors.lib +750 -0
- sage_wheels/share/singular/LIB/dmod.lib +5817 -0
- sage_wheels/share/singular/LIB/dmodapp.lib +3269 -0
- sage_wheels/share/singular/LIB/dmodideal.lib +1211 -0
- sage_wheels/share/singular/LIB/dmodloc.lib +2645 -0
- sage_wheels/share/singular/LIB/dmodvar.lib +818 -0
- sage_wheels/share/singular/LIB/dummy.lib +17 -0
- sage_wheels/share/singular/LIB/elim.lib +1009 -0
- sage_wheels/share/singular/LIB/ellipticcovers.lib +548 -0
- sage_wheels/share/singular/LIB/enumpoints.lib +146 -0
- sage_wheels/share/singular/LIB/equising.lib +2127 -0
- sage_wheels/share/singular/LIB/ffmodstd.lib +2384 -0
- sage_wheels/share/singular/LIB/ffsolve.lib +1289 -0
- sage_wheels/share/singular/LIB/findifs.lib +778 -0
- sage_wheels/share/singular/LIB/finitediff.lib +1768 -0
- sage_wheels/share/singular/LIB/finvar.lib +7989 -0
- sage_wheels/share/singular/LIB/fpadim.lib +2429 -0
- sage_wheels/share/singular/LIB/fpalgebras.lib +1666 -0
- sage_wheels/share/singular/LIB/fpaprops.lib +1462 -0
- sage_wheels/share/singular/LIB/freegb.lib +3853 -0
- sage_wheels/share/singular/LIB/general.lib +1350 -0
- sage_wheels/share/singular/LIB/gfan.lib +1768 -0
- sage_wheels/share/singular/LIB/gitfan.lib +3130 -0
- sage_wheels/share/singular/LIB/gkdim.lib +99 -0
- sage_wheels/share/singular/LIB/gmspoly.lib +589 -0
- sage_wheels/share/singular/LIB/gmssing.lib +1739 -0
- sage_wheels/share/singular/LIB/goettsche.lib +909 -0
- sage_wheels/share/singular/LIB/graal.lib +1366 -0
- sage_wheels/share/singular/LIB/gradedModules.lib +2541 -0
- sage_wheels/share/singular/LIB/graphics.lib +360 -0
- sage_wheels/share/singular/LIB/grobcov.lib +7706 -0
- sage_wheels/share/singular/LIB/groups.lib +1123 -0
- sage_wheels/share/singular/LIB/grwalk.lib +507 -0
- sage_wheels/share/singular/LIB/hdepth.lib +194 -0
- sage_wheels/share/singular/LIB/help.cnf +57 -0
- sage_wheels/share/singular/LIB/hess.lib +1946 -0
- sage_wheels/share/singular/LIB/hnoether.lib +4292 -0
- sage_wheels/share/singular/LIB/hodge.lib +400 -0
- sage_wheels/share/singular/LIB/homolog.lib +1965 -0
- sage_wheels/share/singular/LIB/hyperel.lib +975 -0
- sage_wheels/share/singular/LIB/inout.lib +679 -0
- sage_wheels/share/singular/LIB/integralbasis.lib +6224 -0
- sage_wheels/share/singular/LIB/interval.lib +1418 -0
- sage_wheels/share/singular/LIB/intprog.lib +778 -0
- sage_wheels/share/singular/LIB/invar.lib +443 -0
- sage_wheels/share/singular/LIB/involut.lib +980 -0
- sage_wheels/share/singular/LIB/jacobson.lib +1215 -0
- sage_wheels/share/singular/LIB/kskernel.lib +534 -0
- sage_wheels/share/singular/LIB/latex.lib +3146 -0
- sage_wheels/share/singular/LIB/lejeune.lib +651 -0
- sage_wheels/share/singular/LIB/linalg.lib +2040 -0
- sage_wheels/share/singular/LIB/locnormal.lib +212 -0
- sage_wheels/share/singular/LIB/lrcalc.lib +526 -0
- sage_wheels/share/singular/LIB/makedbm.lib +294 -0
- sage_wheels/share/singular/LIB/mathml.lib +813 -0
- sage_wheels/share/singular/LIB/matrix.lib +1372 -0
- sage_wheels/share/singular/LIB/maxlike.lib +1132 -0
- sage_wheels/share/singular/LIB/methods.lib +212 -0
- sage_wheels/share/singular/LIB/moddiq.lib +322 -0
- sage_wheels/share/singular/LIB/modfinduni.lib +181 -0
- sage_wheels/share/singular/LIB/modnormal.lib +218 -0
- sage_wheels/share/singular/LIB/modprimdec.lib +1278 -0
- sage_wheels/share/singular/LIB/modquotient.lib +269 -0
- sage_wheels/share/singular/LIB/modstd.lib +1024 -0
- sage_wheels/share/singular/LIB/modular.lib +545 -0
- sage_wheels/share/singular/LIB/modules.lib +2561 -0
- sage_wheels/share/singular/LIB/modwalk.lib +609 -0
- sage_wheels/share/singular/LIB/mondromy.lib +1016 -0
- sage_wheels/share/singular/LIB/monomialideal.lib +3851 -0
- sage_wheels/share/singular/LIB/mprimdec.lib +2353 -0
- sage_wheels/share/singular/LIB/mregular.lib +1863 -0
- sage_wheels/share/singular/LIB/multigrading.lib +5629 -0
- sage_wheels/share/singular/LIB/ncHilb.lib +777 -0
- sage_wheels/share/singular/LIB/ncModslimgb.lib +791 -0
- sage_wheels/share/singular/LIB/ncalg.lib +16311 -0
- sage_wheels/share/singular/LIB/ncall.lib +31 -0
- sage_wheels/share/singular/LIB/ncdecomp.lib +468 -0
- sage_wheels/share/singular/LIB/ncfactor.lib +13371 -0
- sage_wheels/share/singular/LIB/ncfrac.lib +1023 -0
- sage_wheels/share/singular/LIB/nchilbert.lib +448 -0
- sage_wheels/share/singular/LIB/nchomolog.lib +759 -0
- sage_wheels/share/singular/LIB/ncloc.lib +361 -0
- sage_wheels/share/singular/LIB/ncpreim.lib +795 -0
- sage_wheels/share/singular/LIB/ncrat.lib +2849 -0
- sage_wheels/share/singular/LIB/nctools.lib +1887 -0
- sage_wheels/share/singular/LIB/nets.lib +1456 -0
- sage_wheels/share/singular/LIB/nfmodstd.lib +1000 -0
- sage_wheels/share/singular/LIB/nfmodsyz.lib +732 -0
- sage_wheels/share/singular/LIB/noether.lib +1106 -0
- sage_wheels/share/singular/LIB/normal.lib +8700 -0
- sage_wheels/share/singular/LIB/normaliz.lib +2226 -0
- sage_wheels/share/singular/LIB/ntsolve.lib +362 -0
- sage_wheels/share/singular/LIB/numerAlg.lib +560 -0
- sage_wheels/share/singular/LIB/numerDecom.lib +2261 -0
- sage_wheels/share/singular/LIB/olga.lib +1933 -0
- sage_wheels/share/singular/LIB/orbitparam.lib +351 -0
- sage_wheels/share/singular/LIB/parallel.lib +319 -0
- sage_wheels/share/singular/LIB/paraplanecurves.lib +3110 -0
- sage_wheels/share/singular/LIB/perron.lib +202 -0
- sage_wheels/share/singular/LIB/pfd.lib +2223 -0
- sage_wheels/share/singular/LIB/phindex.lib +642 -0
- sage_wheels/share/singular/LIB/pointid.lib +673 -0
- sage_wheels/share/singular/LIB/polybori.lib +1430 -0
- sage_wheels/share/singular/LIB/polyclass.lib +525 -0
- sage_wheels/share/singular/LIB/polylib.lib +1174 -0
- sage_wheels/share/singular/LIB/polymake.lib +1902 -0
- sage_wheels/share/singular/LIB/presolve.lib +1533 -0
- sage_wheels/share/singular/LIB/primdec.lib +9576 -0
- sage_wheels/share/singular/LIB/primdecint.lib +1782 -0
- sage_wheels/share/singular/LIB/primitiv.lib +401 -0
- sage_wheels/share/singular/LIB/puiseuxexpansions.lib +1631 -0
- sage_wheels/share/singular/LIB/purityfiltration.lib +960 -0
- sage_wheels/share/singular/LIB/qhmoduli.lib +1561 -0
- sage_wheels/share/singular/LIB/qmatrix.lib +293 -0
- sage_wheels/share/singular/LIB/random.lib +455 -0
- sage_wheels/share/singular/LIB/ratgb.lib +489 -0
- sage_wheels/share/singular/LIB/realclassify.lib +5759 -0
- sage_wheels/share/singular/LIB/realizationMatroids.lib +772 -0
- sage_wheels/share/singular/LIB/realrad.lib +1197 -0
- sage_wheels/share/singular/LIB/recover.lib +2628 -0
- sage_wheels/share/singular/LIB/redcgs.lib +3984 -0
- sage_wheels/share/singular/LIB/reesclos.lib +465 -0
- sage_wheels/share/singular/LIB/resbinomial.lib +2802 -0
- sage_wheels/share/singular/LIB/resgraph.lib +789 -0
- sage_wheels/share/singular/LIB/resjung.lib +820 -0
- sage_wheels/share/singular/LIB/resolve.lib +5110 -0
- sage_wheels/share/singular/LIB/resources.lib +170 -0
- sage_wheels/share/singular/LIB/reszeta.lib +5473 -0
- sage_wheels/share/singular/LIB/ring.lib +1328 -0
- sage_wheels/share/singular/LIB/ringgb.lib +343 -0
- sage_wheels/share/singular/LIB/rinvar.lib +1153 -0
- sage_wheels/share/singular/LIB/rootisolation.lib +1481 -0
- sage_wheels/share/singular/LIB/rootsmr.lib +709 -0
- sage_wheels/share/singular/LIB/rootsur.lib +886 -0
- sage_wheels/share/singular/LIB/rstandard.lib +607 -0
- sage_wheels/share/singular/LIB/rwalk.lib +336 -0
- sage_wheels/share/singular/LIB/sagbi.lib +1353 -0
- sage_wheels/share/singular/LIB/sagbiNormaliz.lib +1622 -0
- sage_wheels/share/singular/LIB/sagbiNormaliz0.lib +1498 -0
- sage_wheels/share/singular/LIB/sagbigrob.lib +449 -0
- sage_wheels/share/singular/LIB/schreyer.lib +321 -0
- sage_wheels/share/singular/LIB/schubert.lib +2551 -0
- sage_wheels/share/singular/LIB/sets.lib +524 -0
- sage_wheels/share/singular/LIB/sheafcoh.lib +1663 -0
- sage_wheels/share/singular/LIB/signcond.lib +437 -0
- sage_wheels/share/singular/LIB/sing.lib +1094 -0
- sage_wheels/share/singular/LIB/sing4ti2.lib +419 -0
- sage_wheels/share/singular/LIB/solve.lib +2243 -0
- sage_wheels/share/singular/LIB/spcurve.lib +1077 -0
- sage_wheels/share/singular/LIB/spectrum.lib +62 -0
- sage_wheels/share/singular/LIB/sresext.lib +757 -0
- sage_wheels/share/singular/LIB/ssi.lib +143 -0
- sage_wheels/share/singular/LIB/standard.lib +2769 -0
- sage_wheels/share/singular/LIB/stanleyreisner.lib +473 -0
- sage_wheels/share/singular/LIB/stdmodule.lib +547 -0
- sage_wheels/share/singular/LIB/stratify.lib +1070 -0
- sage_wheels/share/singular/LIB/surf.lib +506 -0
- sage_wheels/share/singular/LIB/surf_jupyter.lib +223 -0
- sage_wheels/share/singular/LIB/surfacesignature.lib +522 -0
- sage_wheels/share/singular/LIB/surfex.lib +1462 -0
- sage_wheels/share/singular/LIB/swalk.lib +877 -0
- sage_wheels/share/singular/LIB/symodstd.lib +1570 -0
- sage_wheels/share/singular/LIB/systhreads.lib +74 -0
- sage_wheels/share/singular/LIB/tasks.lib +1324 -0
- sage_wheels/share/singular/LIB/tateProdCplxNegGrad.lib +2412 -0
- sage_wheels/share/singular/LIB/teachstd.lib +858 -0
- sage_wheels/share/singular/LIB/template.lib +116 -0
- sage_wheels/share/singular/LIB/toric.lib +1119 -0
- sage_wheels/share/singular/LIB/transformation.lib +116 -0
- sage_wheels/share/singular/LIB/triang.lib +1197 -0
- sage_wheels/share/singular/LIB/tropical.lib +8741 -0
- sage_wheels/share/singular/LIB/tropicalEllipticCovers.lib +2922 -0
- sage_wheels/share/singular/LIB/tropicalNewton.lib +1128 -0
- sage_wheels/share/singular/LIB/tst.lib +1108 -0
- sage_wheels/share/singular/LIB/weierstr.lib +241 -0
- sage_wheels/share/singular/LIB/zeroset.lib +1478 -0
- sage_wheels/share/singular/emacs/.emacs-general +184 -0
- sage_wheels/share/singular/emacs/.emacs-singular +234 -0
- sage_wheels/share/singular/emacs/COPYING +44 -0
- sage_wheels/share/singular/emacs/cmd-cmpl.el +241 -0
- sage_wheels/share/singular/emacs/ex-cmpl.el +1681 -0
- sage_wheels/share/singular/emacs/hlp-cmpl.el +4318 -0
- sage_wheels/share/singular/emacs/lib-cmpl.el +179 -0
- sage_wheels/share/singular/emacs/singular.el +4273 -0
- sage_wheels/share/singular/emacs/singular.xpm +39 -0
- sage_wheels/share/singular/singular.idx +5002 -0
|
@@ -0,0 +1,443 @@
|
|
|
1
|
+
// Harm Derksen, hderksen@math.unibas.ch
|
|
2
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
3
|
+
version="version invar.lib 4.4.0.6 Oct_2024 "; // $Id: 92e22dcc105a361d23016bd0801ccb4f91413de5 $
|
|
4
|
+
category="Invariant theory";
|
|
5
|
+
info="
|
|
6
|
+
LIBRARY: invar.lib Procedures to compute invariant rings of SL(n) and torus groups
|
|
7
|
+
AUTHOR: Harm Derksen, hderksen@math.unibas.ch
|
|
8
|
+
|
|
9
|
+
PROCEDURES:
|
|
10
|
+
SL(n) sets the current group to SL_n
|
|
11
|
+
torus(n) sets the current group to an n-dimensional torus
|
|
12
|
+
torusrep(list m) representation of a torus given by the weights m[1],m[2],...
|
|
13
|
+
finiterep(<list>) representation of a by a list of matrices
|
|
14
|
+
sympower(m,d) computes the d-th symmetric power of a representation m
|
|
15
|
+
invar(m) computes the invariant ring of the representation m.
|
|
16
|
+
SLreynolds(f) applies the Reynolds operator to f
|
|
17
|
+
torusreynolds(f) applies the Reynolds operator to f if the group is a torus or a finite group.
|
|
18
|
+
";
|
|
19
|
+
LIB "matrix.lib";
|
|
20
|
+
LIB "finvar.lib"; // for cyclotomic
|
|
21
|
+
|
|
22
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
23
|
+
// SL(n) sets the current group to SL_n.
|
|
24
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
25
|
+
proc SL(int n)
|
|
26
|
+
"USAGE: SL(<int>)
|
|
27
|
+
RETURNS: SL(n) sets the current group to SL_n. The following global variables
|
|
28
|
+
will be set:
|
|
29
|
+
group of type <ring>
|
|
30
|
+
groupideal of type <ideal>
|
|
31
|
+
SLrep of type <matrix>
|
|
32
|
+
reynolds of type <proc>
|
|
33
|
+
The quotient of of `group` and `groupideal` is the coordinate
|
|
34
|
+
ring of SL_n. The matrix `SLrep` will be set to the standard
|
|
35
|
+
representation of SL_n. The basering will be set to 'group'.
|
|
36
|
+
EXAMPLE: example SL; shows an example"
|
|
37
|
+
{ ring group=0,(g(1..n^2)),dp;
|
|
38
|
+
export group;
|
|
39
|
+
matrix SLrep[n][n]; // SLrep is a generic n x n
|
|
40
|
+
int i; // matrix
|
|
41
|
+
int j;
|
|
42
|
+
for(i=1;i<=n;i=i+1)
|
|
43
|
+
{
|
|
44
|
+
for(j=1;j<=n;j=j+1)
|
|
45
|
+
{SLrep[i,j]=g(j+n*(i-1));}
|
|
46
|
+
}
|
|
47
|
+
ideal groupideal=det(SLrep)-1; // SL(n) are those matrices m
|
|
48
|
+
groupideal=std(groupideal); // with determinant equal to 1.
|
|
49
|
+
export groupideal;
|
|
50
|
+
export SLrep;
|
|
51
|
+
proc reynolds(poly f){return(SLreynolds(f));};
|
|
52
|
+
export reynolds;
|
|
53
|
+
}
|
|
54
|
+
example
|
|
55
|
+
{"EXAMPLE:"; echo=2;
|
|
56
|
+
SL(3);
|
|
57
|
+
Invar::group;
|
|
58
|
+
groupideal;
|
|
59
|
+
print(SLrep);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
63
|
+
// prod(<list>) just gives the product of all entries of <list>.
|
|
64
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
65
|
+
static proc prod(list #)
|
|
66
|
+
"USAGE: prod(<list>)
|
|
67
|
+
RETURN: the product of all entries of <list>"
|
|
68
|
+
{ if (size(#)==1) {return(#[1]);};
|
|
69
|
+
return(#[1]*prod(#[2..size(#)]));
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
73
|
+
// monsum(n,d) is the sum of all monomials in x(1),x(2),...,x(n) of degree d
|
|
74
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
75
|
+
static proc monsum(int n,int d)
|
|
76
|
+
"USAGE: monsum(n,d)
|
|
77
|
+
RETURNS: the sum of all monomials in x(1),x(2),...,x(n) of degree d"
|
|
78
|
+
{ if (n==1) {return(x(1)^d);};
|
|
79
|
+
poly output=0;
|
|
80
|
+
for(int i=0;i<=d;i=i+1)
|
|
81
|
+
{output=output+x(n)^i*monsum(n-1,d-i);};
|
|
82
|
+
return(output);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
86
|
+
// sympower(m,d) computes the d-th symmetric power of a representation m
|
|
87
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
88
|
+
proc sympower(matrix m,int d)
|
|
89
|
+
"USAGE: sympower(<matrix>,<int>)
|
|
90
|
+
RETURNS: If m is a matrix with coefficients in the ring 'group', representing
|
|
91
|
+
the action on some vector space V, then sympower(m,n) gives the
|
|
92
|
+
matrix of the representation of the group on the n-th symmetric
|
|
93
|
+
power of V.
|
|
94
|
+
EXAMPLE: example sympower; shows an example"
|
|
95
|
+
{ int n=nrows(m);
|
|
96
|
+
int l=nvars(group);
|
|
97
|
+
ring r=0,(z,x(1..n),g(1..l)),(dp(1),dp(n),dp(l));
|
|
98
|
+
matrix mm=imap(group,m);
|
|
99
|
+
intvec save_opt=option(get);option(pure_gb);
|
|
100
|
+
ideal gideal=std(imap(group,groupideal));
|
|
101
|
+
option(set,save_opt);
|
|
102
|
+
matrix vx[n][1]=matrix([x(1..n)]); // vector (x(1),...,x(n))^T
|
|
103
|
+
poly prodx=prod(x(1..n)); // prodx=x(1)*x(2)*...*x(n)
|
|
104
|
+
matrix w[n][1]=mm*vx;
|
|
105
|
+
map act=r,z,ideal(w);
|
|
106
|
+
poly ms=monsum(n,d);
|
|
107
|
+
matrix monlist=coef(ms,prodx); // list of all monomials
|
|
108
|
+
int j;
|
|
109
|
+
poly f;
|
|
110
|
+
matrix q;
|
|
111
|
+
int s=ncols(monlist); // number of monomials
|
|
112
|
+
matrix sp[s][s]; // sp : matrix of sym. power
|
|
113
|
+
for(int i=1;i<=s;i=i+1)
|
|
114
|
+
{f=monlist[1,i];
|
|
115
|
+
f=reduce(act(f),gideal)+z*ms; // z*ms is added because then
|
|
116
|
+
q=coef(f,prodx); // all monomials must appear and
|
|
117
|
+
for(j=1;j<=s;j=j+1) // coef(f,prodx) has right size.
|
|
118
|
+
{sp[i,j]=q[2,j]-z;}}; // Now subtract the z.
|
|
119
|
+
setring group;
|
|
120
|
+
return(imap(r,sp));
|
|
121
|
+
}
|
|
122
|
+
example
|
|
123
|
+
{ "EXAMPLE:"; echo=2;
|
|
124
|
+
SL(2);
|
|
125
|
+
print(SLrep);
|
|
126
|
+
print(sympower(SLrep,3));
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
130
|
+
// invar(m) computes the invariant ring of the representation m.
|
|
131
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
132
|
+
proc invar(matrix m)
|
|
133
|
+
"USAGE: invar(<matrix>)
|
|
134
|
+
RETURNS: If m is a n x n matrix with coefficients in the ring 'group',
|
|
135
|
+
representing the action on some vector space V, then invar(m);
|
|
136
|
+
gives polynomials in x(1),x(2),...,x(n) who generate the invariant
|
|
137
|
+
ring. The following global variables will be set:
|
|
138
|
+
polyring of type <ring> polynomial ring in x(1),...,x(n)
|
|
139
|
+
invring of type <ideal> entries generate the inv. ring
|
|
140
|
+
representation of type <matrix>
|
|
141
|
+
The base ring will be set to 'polyring' which is a global
|
|
142
|
+
variable representing the polynomial ring on which the group acts.
|
|
143
|
+
The variable 'representation' will be set to the input m.
|
|
144
|
+
EXAMPLE: example invar; shows an example
|
|
145
|
+
"
|
|
146
|
+
{
|
|
147
|
+
int n=nrows(m);
|
|
148
|
+
int l=nvars(group);
|
|
149
|
+
matrix representation=m;
|
|
150
|
+
export representation;
|
|
151
|
+
ring r=0,(g(1..l),x(1..n),y(1..n)),(dp(l),dp(2*n));
|
|
152
|
+
matrix mm=imap(group,m);
|
|
153
|
+
ideal gideal=imap(group,groupideal);
|
|
154
|
+
matrix vx[n][1]=matrix([x(1..n)]);
|
|
155
|
+
matrix vy[n][1]=matrix([y(1..n)]);
|
|
156
|
+
matrix w[1][n]=transpose(vx)*mm-transpose(vy);
|
|
157
|
+
ideal Gamma=ideal(w),gideal;
|
|
158
|
+
poly prodg=prod(g(1..l));
|
|
159
|
+
ideal B=eliminate(Gamma,prodg);
|
|
160
|
+
print("");
|
|
161
|
+
print("Ideal B:");
|
|
162
|
+
print(B);
|
|
163
|
+
ring polyring=0,(x(1..n)),dp;
|
|
164
|
+
export polyring;
|
|
165
|
+
ideal ZFideal=imap(r,B);
|
|
166
|
+
ZFideal=minbase(ZFideal);
|
|
167
|
+
print("");
|
|
168
|
+
print("Zero Fiber Ideal:");
|
|
169
|
+
print(ZFideal);
|
|
170
|
+
ideal invring;
|
|
171
|
+
poly invariant;
|
|
172
|
+
for(int i=1;i<=size(ZFideal);i=i+1)
|
|
173
|
+
{invariant=reynolds(ZFideal[i]);
|
|
174
|
+
if (invariant!=0)
|
|
175
|
+
{if (invring==0) {invring=invariant;}
|
|
176
|
+
else {invring=invring,invariant;}}}
|
|
177
|
+
export invring;
|
|
178
|
+
print("");
|
|
179
|
+
print("Generating Invariants:");
|
|
180
|
+
print(invring);
|
|
181
|
+
}
|
|
182
|
+
example
|
|
183
|
+
{ "EXAMPLE:"; echo=2;
|
|
184
|
+
SL(2); // Take the group SL_2
|
|
185
|
+
matrix m=dsum(SLrep,SLrep,SLrep,SLrep);
|
|
186
|
+
// 4 copies of the standard representation
|
|
187
|
+
invar(m); // empirical evidence for FFT
|
|
188
|
+
setring Invar::polyring;
|
|
189
|
+
Invar::reynolds(x(1)*x(4)); // The reynolds operator is computed using
|
|
190
|
+
// the Omega process.
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
195
|
+
// omega(f,n,i_1,i_2,...,i_t) does the following:
|
|
196
|
+
// Let M be the matrix of partial derivatives:
|
|
197
|
+
//
|
|
198
|
+
// d/d g(1) d/d g(2) ... d/d g(n)
|
|
199
|
+
// d/d g(n+1) d/d g(n+2) ... d/d g(2n)
|
|
200
|
+
// . . . .
|
|
201
|
+
// . . . .
|
|
202
|
+
// d/d g(n^2-n-1) d/d g(n^2-n+2)... d/d g(n^2)
|
|
203
|
+
//
|
|
204
|
+
// Take the submatrix with rows i_1,i_2,...,i_t and columns
|
|
205
|
+
// 1,2,...,t and apply its determinant (a differential operator) to f.
|
|
206
|
+
// i_1,i_2,...,i_t is assumed to be descending.
|
|
207
|
+
//
|
|
208
|
+
// Cramer's rule is used, which gives us a recursion.
|
|
209
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
210
|
+
proc omega(poly f,int n,intvec #)
|
|
211
|
+
"USAGE: omega(f,n,i_1,i_2,...,i_t)
|
|
212
|
+
RETURNS: poly (determinant)
|
|
213
|
+
NOTE:
|
|
214
|
+
Let M be the matrix of partial derivatives:
|
|
215
|
+
|
|
216
|
+
d/d g(1) d/d g(2) ... d/d g(n)
|
|
217
|
+
d/d g(n+1) d/d g(n+2) ... d/d g(2n)
|
|
218
|
+
. . . .
|
|
219
|
+
. . . .
|
|
220
|
+
d/d g(n^2-n-1) d/d g(n^2-n+2)... d/d g(n^2)
|
|
221
|
+
|
|
222
|
+
Take the submatrix with rows i_1,i_2,...,i_t and columns
|
|
223
|
+
1,2,...,t and apply its determinant (a differential operator) to f.
|
|
224
|
+
i_1,i_2,...,i_t is assumed to be descending.
|
|
225
|
+
|
|
226
|
+
Cramer's rule is used, which gives us a recursion.
|
|
227
|
+
"
|
|
228
|
+
{ if (#==0) {return(f);};
|
|
229
|
+
int m=size(#);
|
|
230
|
+
if (f==0) {return(0);};
|
|
231
|
+
if (m==0) {return(f);};
|
|
232
|
+
poly output=0;
|
|
233
|
+
intvec a;
|
|
234
|
+
for(int i=1;i<=m;i=i+1)
|
|
235
|
+
{if (i==1) {if (m>1) {a=#[i+1..m];};}
|
|
236
|
+
else {if (m>i) {a=#[1..i-1],#[i+1..m];}
|
|
237
|
+
else {a=#[1..i-1];};};
|
|
238
|
+
output=output+(-1)**(i-1)*omega(diff(f,g((#[i]-1)*n+m)),n,a);};
|
|
239
|
+
return(output);
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
243
|
+
// SLreynolds(f) applies the reynolds operator to f, if the group is SL_n,
|
|
244
|
+
// using the omega-process
|
|
245
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
246
|
+
proc SLreynolds(poly f)
|
|
247
|
+
"USAGE: SLreynolds(f) poly f
|
|
248
|
+
RETURNS: the reynolds operator applied to f
|
|
249
|
+
NOTE: if the group is SL_n the omega-process is used"
|
|
250
|
+
{ int nsq=nvars(group);
|
|
251
|
+
for(int q=1;(q+1)^2<=nsq;q=q+1) {};
|
|
252
|
+
setring group;
|
|
253
|
+
int n=nrows(representation);
|
|
254
|
+
int l=nvars(group);
|
|
255
|
+
ring r=0,(x(1..n),g(1..l)),(dp(n),dp(l));
|
|
256
|
+
matrix m=imap(group,representation);
|
|
257
|
+
intvec save_opt=option(get);option(pure_gb);
|
|
258
|
+
ideal gideal=std(imap(group,groupideal));
|
|
259
|
+
option(set,save_opt);
|
|
260
|
+
matrix vx[n][1]=matrix([x(1..n)]); // vector (x(1),...,x(n))^T
|
|
261
|
+
poly prodx=prod(x(1..n)); // prodx=x(1)*x(2)*...*x(n)
|
|
262
|
+
matrix w[1][n]=transpose(vx)*m;
|
|
263
|
+
map act=polyring,ideal(w);
|
|
264
|
+
poly h=reduce(act(f),gideal);
|
|
265
|
+
map gtozero=r,x(1..n);
|
|
266
|
+
poly output=0;number c=1;
|
|
267
|
+
int i=1;
|
|
268
|
+
int j;
|
|
269
|
+
while (h!=0)
|
|
270
|
+
{output=output+gtozero(h)/c;
|
|
271
|
+
h=omega(h,q,q..1);
|
|
272
|
+
for(j=i;j<=i+q-1;j=j+1)
|
|
273
|
+
{c=c*j;};
|
|
274
|
+
i=i+1;};
|
|
275
|
+
setring polyring;
|
|
276
|
+
return(imap(r,output));
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
280
|
+
// torus(n) sets the current group to an n-dimensional torus
|
|
281
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
282
|
+
proc torus(int n)
|
|
283
|
+
"USAGE: torus(<int>)
|
|
284
|
+
RETURNS: torus(n) sets the current group to an n-dimensional torus. The
|
|
285
|
+
following global variables will be changed:
|
|
286
|
+
group of type <ring>
|
|
287
|
+
groupideal of type <ideal>
|
|
288
|
+
reynolds of type <proc>
|
|
289
|
+
The quotient of of `group` and `groupideal` is the coordinate
|
|
290
|
+
ring of an n-dimensional torus. The basering will be set to
|
|
291
|
+
'group'.
|
|
292
|
+
EXAMPLE: example torus; shows an example"
|
|
293
|
+
{ ring group=0,(g(1..n+1)),dp;
|
|
294
|
+
export group;
|
|
295
|
+
ideal groupideal=prod(g(1..n+1))-1;
|
|
296
|
+
export groupideal;
|
|
297
|
+
proc reynolds(poly f){return(torusreynolds(f));};
|
|
298
|
+
export reynolds;
|
|
299
|
+
}
|
|
300
|
+
example
|
|
301
|
+
{"EXAMPLE:"; echo=2;
|
|
302
|
+
torus(3);
|
|
303
|
+
Invar::group;
|
|
304
|
+
groupideal;
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
308
|
+
// If m is a list of integer vectors, then torusrep(list m) computes
|
|
309
|
+
// a matrix with entries in the ring 'group' which represents the
|
|
310
|
+
// representation of a torus given by the weights m[1],m[2],...
|
|
311
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
312
|
+
proc torusrep(list m)
|
|
313
|
+
"USAGE: torusrep(<list>), <list> must be a list of integer vectors of length
|
|
314
|
+
n, where n is the dimension of the current torusgroup.
|
|
315
|
+
RETURNS: torusrep(m) gives a matrix with entries in 'group'. This matrix
|
|
316
|
+
represents the action of the torus with weights
|
|
317
|
+
m[1],m[2],...,m[size(m)]
|
|
318
|
+
EXAMPLE: example torusreynolds; shows an example
|
|
319
|
+
"
|
|
320
|
+
{ int r=size(m[1]);
|
|
321
|
+
int n=size(m);
|
|
322
|
+
matrix mm[n][n];
|
|
323
|
+
int min;
|
|
324
|
+
poly f;
|
|
325
|
+
int j;
|
|
326
|
+
for(int i=1;i<=n;i=i+1)
|
|
327
|
+
{min=0;
|
|
328
|
+
for(j=1;j<=r;j=j+1)
|
|
329
|
+
{if (m[i][j]<min) {min=m[i][j];};};
|
|
330
|
+
f=g(r+1)**(-min);
|
|
331
|
+
for(j=1;j<=r;j=j+1)
|
|
332
|
+
{f=f*g(j)**(m[i][j]-min);};
|
|
333
|
+
mm[i,i]=f;};
|
|
334
|
+
return(mm);
|
|
335
|
+
}
|
|
336
|
+
example
|
|
337
|
+
{ "EXAMPLE:"; echo=2;
|
|
338
|
+
torus(1); // Take the 1-dimensional torus, the multiplicative group.
|
|
339
|
+
list weights=-2,-3,7; // 3-dimensial action with weights -2,-3,7
|
|
340
|
+
matrix m=torusrep(weights);// compute the matrix of the representation
|
|
341
|
+
invar(m); // compute the invariant ring
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
345
|
+
// torusreynolds(f) applies the Reynolds operator to f if the group is
|
|
346
|
+
// a torus or a finite group.
|
|
347
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
348
|
+
proc torusreynolds(poly f)
|
|
349
|
+
"USAGE: torusreynolds(f) - poly f
|
|
350
|
+
"RETURNS: the Reynolds operator applied to f if the group is
|
|
351
|
+
a torus or a finite group.
|
|
352
|
+
"
|
|
353
|
+
{ setring group;
|
|
354
|
+
int n=nrows(representation);
|
|
355
|
+
int l=nvars(group);
|
|
356
|
+
ring r=0,(x(1..n),g(1..l)),(dp(n),dp(l));
|
|
357
|
+
intvec save_opt=option(get);option(pure_gb);
|
|
358
|
+
ideal gideal=std(imap(group,groupideal));
|
|
359
|
+
option(set,save_opt);
|
|
360
|
+
matrix m=imap(group,representation);
|
|
361
|
+
matrix vx[n][1]=matrix([x(1..n)]); // vector (x(1),...,x(n))^T
|
|
362
|
+
matrix w[1][n]=transpose(vx)*m;
|
|
363
|
+
map act=polyring,ideal(w);
|
|
364
|
+
poly h=reduce(act(f),gideal);
|
|
365
|
+
setring polyring;
|
|
366
|
+
return(imap(r,h));
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
370
|
+
// finite(n) sets the current group to a finite group of order n.
|
|
371
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
372
|
+
proc finite(int n)
|
|
373
|
+
"USAGE: finite(<int>)
|
|
374
|
+
RETURNS: finite(n) sets the current group to a finite group of order n.
|
|
375
|
+
The following global variables will be set:
|
|
376
|
+
group of type <ring>
|
|
377
|
+
groupideal of type <ideal>
|
|
378
|
+
reynolds of type <proc>
|
|
379
|
+
The basering will be set to 'group'.
|
|
380
|
+
EXAMPLE: example finite; shows an example
|
|
381
|
+
"
|
|
382
|
+
{ ring group=0,(g(1),g(2)),dp(2);
|
|
383
|
+
export group;
|
|
384
|
+
ideal groupideal=g(2)^n-1,cyclotomic(n);
|
|
385
|
+
intvec save_opt=option(get);option(pure_gb);
|
|
386
|
+
groupideal=std(groupideal);
|
|
387
|
+
option(set,save_opt);
|
|
388
|
+
export groupideal;
|
|
389
|
+
proc reynolds(poly f){return(torusreynolds(f));};
|
|
390
|
+
export reynolds; // the procedure torusreynolds
|
|
391
|
+
// does exactly the right thing
|
|
392
|
+
// no need to implement
|
|
393
|
+
// 'finitereynolds'
|
|
394
|
+
}
|
|
395
|
+
example
|
|
396
|
+
{"EXAMPLE:"; echo=2;
|
|
397
|
+
finite(6); // The symmetric group S_3
|
|
398
|
+
matrix id=unitmat(3); // identity matrix
|
|
399
|
+
matrix m3[3][3]=0,1,0,0,0,1,1,0,0; // corresponds with (1 2 3)
|
|
400
|
+
matrix m2[3][3]=0,1,0,1,0,0,0,0,1; // corresponds with (1 2)
|
|
401
|
+
list a=id,m3,m3*m3,m2,m2*m3,m2*m3*m3; // all elements of S_3
|
|
402
|
+
matrix rep=finiterep(a); // compute matrix of standard repr.
|
|
403
|
+
invar(rep); // compute the invariant ring
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
|
|
407
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
408
|
+
// If m is a list of matrices, then finiterep(m) gives a matrix with
|
|
409
|
+
// coefficients in the ring 'group' which represents the action of the
|
|
410
|
+
// finite group where the elements of the finite group act as
|
|
411
|
+
// m[1],m[2],...m[size(m)].
|
|
412
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
413
|
+
proc finiterep(list m)
|
|
414
|
+
"USAGE: finiterep(<list>), <list> must be a list of matrices
|
|
415
|
+
RETURNS: finiterep(m) gives a matrix with coefficients in the ring 'group'
|
|
416
|
+
which represents the action of the finite group where the elements
|
|
417
|
+
of the finite group act as m[1],m[2],...m[size(m)].
|
|
418
|
+
EXAMPLE: example finiterep; shows an example
|
|
419
|
+
"
|
|
420
|
+
{ int l=size(m);
|
|
421
|
+
int n=nrows(m[1]);
|
|
422
|
+
int i;
|
|
423
|
+
int j;
|
|
424
|
+
poly h;
|
|
425
|
+
matrix finiterep[n][n];
|
|
426
|
+
for(i=0;i<l;i=i+1)
|
|
427
|
+
{h=0;
|
|
428
|
+
for(j=0;j<l;j=j+1)
|
|
429
|
+
{h=h+g(2)^j*g(1)^((i*j)%l)/l;};
|
|
430
|
+
finiterep=finiterep+h*m[i+1];}
|
|
431
|
+
return(finiterep);
|
|
432
|
+
}
|
|
433
|
+
example
|
|
434
|
+
{"EXAMPLE:"; echo=2;
|
|
435
|
+
finite(6); // The symmetric group S_3
|
|
436
|
+
matrix id=unitmat(3); // identity matrix
|
|
437
|
+
matrix m3[3][3]=0,1,0,0,0,1,1,0,0; // corresponds with (1 2 3)
|
|
438
|
+
matrix m2[3][3]=0,1,0,1,0,0,0,0,1; // corresponds with (1 2)
|
|
439
|
+
list a=id,m3,m3*m3,m2,m2*m3,m2*m3*m3; // all elements of S_3
|
|
440
|
+
matrix rep=finiterep(a); // compute matrix of standard repr.
|
|
441
|
+
invar(rep); // compute the invariant ring
|
|
442
|
+
}
|
|
443
|
+
|