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,400 @@
|
|
|
1
|
+
////////////////////////////////////////////////////////////////
|
|
2
|
+
version="version hodge.lib 4.2.0.0 Feb_2021 "; // $Id: 87e9cb9549c24af73f07871bd9b4a58c75b2b828 $
|
|
3
|
+
category="Noncommutative";
|
|
4
|
+
info="
|
|
5
|
+
LIBRARY: hodge.lib Algorithms for Hodge ideals
|
|
6
|
+
|
|
7
|
+
AUTHORS: Guillem Blanco, email: guillem.blanco@kuleuven.be
|
|
8
|
+
|
|
9
|
+
OVERVIEW:
|
|
10
|
+
A library for computing the Hodge ideals [MP19] of Q-divisors associated to any reduced hypersurface @math{f \in R}.
|
|
11
|
+
@* The implemented algorithm [Bla21] is based on the characterization of the Hodge ideals in terms of the @math{V}-filtration of Malgrange and Kashiwara on @math{R_f f^s}, see [MP20].
|
|
12
|
+
@* As a consequence, this library provides also an algorithm to compute the multiplier ideals and the jumping numbers of any hypersurface, see [BS05].
|
|
13
|
+
|
|
14
|
+
REFERENCES:
|
|
15
|
+
@*[Bla21] G. Blanco, An algorithm for Hodge ideals, to appear.
|
|
16
|
+
@*[BS05] N. Budur, M. Saito, Multiplier ideals, V-filtration, and spectrum, J. Algebraic Geom. 14 (2005), no. 2, 269-282. 2, 4
|
|
17
|
+
@*[MP19] M. Mustata, M. Popa: Hodge ideals, Mem. Amer. Math. Soc. 262 (2019), no. 1268
|
|
18
|
+
@*[MP20] M. Mustata, M. Popa: Hodge ideals for Q-divisors, V-filtration, and minimal exponent, Forum Math. Sigma 8 (2020), no. e19, 41 pp.
|
|
19
|
+
|
|
20
|
+
KEYWORDS: Hodge ideals; V-filtration; Multiplier ideals; Jumping numbers
|
|
21
|
+
|
|
22
|
+
PROCEDURES:
|
|
23
|
+
Vfiltration(f, p [, eng]); compute @math{R}-generators for the @math{V}-filtration on @math{R_f f^s} truncated up to degree @math{p} in @math{\partial_t}.
|
|
24
|
+
hodgeIdeals(f, p [, eng]); compute the Hodge ideals of @math{f^\alpha} up to level @math{p}, for a reduced hypersurface @math{f \in R}.
|
|
25
|
+
multIdeals(f, p [, eng]); compute the multiplier ideals of a hypersurface @math{f \in R}.
|
|
26
|
+
nextHodgeIdeal(f, I, p); given the @math{p}-th Hodge ideal @math{I} of @math{f^\alpha} compute the @math{p+1}-th Hodge ideal assuming that the Hodge filtration of the underlying mixed Hodge module is generated at level less than or equal to @math{p}.
|
|
27
|
+
|
|
28
|
+
SEE ALSO: dmodapp_lib
|
|
29
|
+
";
|
|
30
|
+
|
|
31
|
+
LIB "dmod.lib"; // SannfsBM, vec2poly, bFactor
|
|
32
|
+
|
|
33
|
+
// Test whether the polynomial f is reduced or not.
|
|
34
|
+
static proc isReduced(poly f) {
|
|
35
|
+
// Compute square-free part.
|
|
36
|
+
ideal j = jacob(f); poly g = f;
|
|
37
|
+
for (int i = 1; i <= size(j); i++) { g = gcd(g, j[i]); }
|
|
38
|
+
return(g == 1);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// The Q-polynomial as defined by Mustata & Popa.
|
|
42
|
+
static proc Qpoly(int k, number a) {
|
|
43
|
+
poly Q = 1;
|
|
44
|
+
for (int i = 1; i <= k; i++) { Q = Q*(a+i-1); }
|
|
45
|
+
return(Q);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// The procedure to compute the truncated V-filtration.
|
|
49
|
+
proc Vfiltration(poly f, int p, list #)
|
|
50
|
+
"USAGE: Vfiltration(f, p [, eng]); f a poly, p a non-negative integer, eng an optional integer.
|
|
51
|
+
RETURN: ring
|
|
52
|
+
PURPOSE: compute @math{R}-generators for the @math{V}-filtration on @math{R_f f^s} truncated up to degree @math{p} in @math{\partial_t}.
|
|
53
|
+
NOTE: activate the output ring with the @code{setring} command.
|
|
54
|
+
@*In the output ring, the list @code{Vfilt} contains the @math{V}-filtration.
|
|
55
|
+
@*The value of @code{eng} controls the algorithm used for Groebner basis computations.
|
|
56
|
+
@*See the @code{engine} procedure from @ref{dmodapp_lib} for the available algorithms.
|
|
57
|
+
DISPLAY: If @code{printlevel}=1, progress debug messages will be printed.
|
|
58
|
+
EXAMPLE: example Vfiltration; shows an example
|
|
59
|
+
"
|
|
60
|
+
{
|
|
61
|
+
// The level 'p' must be a non-negative integer.
|
|
62
|
+
if (p < 0) { ERROR("Level p must be non-negative."); }
|
|
63
|
+
// The base ring must be non-commutative.
|
|
64
|
+
if (size(ring_list(basering)) > 4) { ERROR("Base ring must be commutative."); }
|
|
65
|
+
|
|
66
|
+
// Default engine & option.
|
|
67
|
+
int slimgb_ = 0; int eng = slimgb_;
|
|
68
|
+
// The first optional argument must be an integer.
|
|
69
|
+
if (size(#) >= 1) {
|
|
70
|
+
if (typeof(#[1]) == "int") { eng = int(#[1]); }
|
|
71
|
+
else { ERROR("First argument must be an integer."); }
|
|
72
|
+
// The check that the engine number is valid will be done by the engine.
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// Save basering & set basic variables.
|
|
76
|
+
def @R = basering; int N = nvars(@R);
|
|
77
|
+
int ppl = printlevel - voice + 2; int i, j; string str;
|
|
78
|
+
list Names = ringlist(@R)[2]; list Dnames;
|
|
79
|
+
for (i = 1; i <= N; i++) { Dnames = Dnames + list("D" + Names[i]); }
|
|
80
|
+
|
|
81
|
+
// No variable can be named 't' or 'Dt'.
|
|
82
|
+
for (i = 1; i <= size(Names); i++) {
|
|
83
|
+
if (Names[i] == "t" || Names[i] == "Dt" || Names[i] == "a") {
|
|
84
|
+
ERROR("Variable names should not include 't', 'Dt' or 'a'");
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
// Compute s-parametric annhilator of f via BM algorithm & move to D[s].
|
|
89
|
+
dbprint(ppl, "// -1-1- Computing the annhilator of f^s...");
|
|
90
|
+
// SannfsBM returns a ring with elimination ordering for s.
|
|
91
|
+
def @Ds = SannfsBM(f, slimgb_); setring(@Ds);
|
|
92
|
+
dbprint(ppl, "// -1-2- Annhilator of f^s computed in @Ds");
|
|
93
|
+
|
|
94
|
+
list RL = ringlist(basering); list RL1;
|
|
95
|
+
RL1[1] = RL[1]; //char.
|
|
96
|
+
RL1[2] = list("s") + Dnames + Names;
|
|
97
|
+
//RL1[3] = list(list("dp", 1:1), list("dp", 1:N), list("dp", 1:N), list("C", 0));
|
|
98
|
+
RL1[3] = list(list("c", 0), list("dp", 1:1), list("dp", 1:N), list("dp", 1:N));
|
|
99
|
+
RL1[4] = RL[4]; //min. poly.
|
|
100
|
+
// Make new ring non-commutative.
|
|
101
|
+
ring @Ds1 = ring(RL1); matrix @Dmat[2*N+1][2*N+1];
|
|
102
|
+
for (i = 1; i <= N; i++) { @Dmat[i+1, N+1+i] = -1; }
|
|
103
|
+
def @Ds2 = nc_algebra(1, @Dmat); setring @Ds2; kill @Ds1;
|
|
104
|
+
|
|
105
|
+
// Move annihilator & f to the new ring.
|
|
106
|
+
ideal Annfs = imap(@Ds, LD); poly f = imap(@R, f);
|
|
107
|
+
|
|
108
|
+
// Compute the B-S polynomial of f.
|
|
109
|
+
dbprint(ppl, "// -2-1- Computing Groebner basis of Ann f^s + <f>...");
|
|
110
|
+
// The partial derivatives trick might make everything run a bit faster.
|
|
111
|
+
ideal I = engine(Annfs+f+jacob(f), eng);
|
|
112
|
+
dbprint(ppl, "// -2-2- Groebner basis of Ann f^s + <f> computed");
|
|
113
|
+
dbprint(ppl, "// -2-3- Intersecting Ann f^s + <f> with QQ[s]...");
|
|
114
|
+
// Add the missing s = -1 root.
|
|
115
|
+
poly bfct = vec2poly(pIntersect(s, I))*(var(1)+1);
|
|
116
|
+
list BS = bFactor(bfct);
|
|
117
|
+
dbprint(ppl, "// -2-4- Intersection of Ann f^s + <f> with QQ[s] finished");
|
|
118
|
+
|
|
119
|
+
// Shifts feigen = delete(eigen, i); mul = delete(mul, i);or the annihilator of f^s.
|
|
120
|
+
int m = -p; int k = 1;
|
|
121
|
+
ideal J = subst(Annfs, s, s+m)+f^(k-m);
|
|
122
|
+
|
|
123
|
+
// Shift roots of the BS to (0, 1], this avoids having to compute the BS of J.
|
|
124
|
+
list eigen; list mul;
|
|
125
|
+
for (i = 1; i <= size(BS[1]); i++) {
|
|
126
|
+
for (j = 0; j <= p; j++) {
|
|
127
|
+
if (BS[1][i]+j < 0) {
|
|
128
|
+
eigen = eigen+list(number(-BS[1][i]-j));
|
|
129
|
+
mul = mul+list(BS[2][i]);
|
|
130
|
+
}
|
|
131
|
+
} // Sort shifted eigen.
|
|
132
|
+
} list S = sort(eigen); eigen = S[1]; mul = mul[S[2]];
|
|
133
|
+
|
|
134
|
+
// Remove duplicates & keep max. multiplicity.
|
|
135
|
+
for (i = 1; i <= size(eigen) - 1; i++) {
|
|
136
|
+
j = 1; while (eigen[i] == eigen[i+j]) { mul[i] = max(mul[i], mul[i+j]); j++; }
|
|
137
|
+
while (j != 1) { eigen = delete(eigen, i+j-1); mul = delete(mul, i+j-1); j--; }
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
// Compute the kernels of the eigenvalues in 'eigen' in J.
|
|
141
|
+
str = sprintf("// -3-1- Computing the kernels of the eigenvalues of Dt*t... (p = %p)",
|
|
142
|
+
p); dbprint(ppl, str);
|
|
143
|
+
list Ker; ideal K;
|
|
144
|
+
for (i = 1; i <= size(eigen); i++) {
|
|
145
|
+
str = sprintf("// -3-1-%p- Kernel for eigenvalue %p, multiplicity %p... (%p/%p)",
|
|
146
|
+
i, eigen[i], mul[i], i, size(eigen)); dbprint(ppl, str);
|
|
147
|
+
// *NO* need to add f^(k-m) as Ker[i] contains J = Annf^(s+m) + f^(k-m).
|
|
148
|
+
Ker[i] = ideal(modulo(s + eigen[i], J));
|
|
149
|
+
// If there are multiplicities, iterate the generalized eigenspaces.
|
|
150
|
+
for (j = 1; j < mul[i]; j++) {
|
|
151
|
+
// Reduce the number of generators before calling modulo.
|
|
152
|
+
K = engine(Ker[i], eng);
|
|
153
|
+
Ker[i] = ideal(modulo(s + eigen[i], K));
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
// Compress the kernels of the eigenvalues greater than 1.
|
|
158
|
+
for (i = size(eigen)-1; i > 0 && eigen[i] > 1; i--) {
|
|
159
|
+
Ker[i] = Ker[i] + Ker[i+1]; Ker = delete(Ker, i+1);
|
|
160
|
+
eigen = delete(eigen, i+1); mul = delete(mul, i+1);
|
|
161
|
+
}
|
|
162
|
+
// Heuristically, it is better to compute a Groebner basis here before
|
|
163
|
+
// doing the elimination of the variables.
|
|
164
|
+
dbprint(ppl, "// -3-3- Computing Groebner basis of kernels...");
|
|
165
|
+
for (i = 1; i <= size(Ker); i++) { Ker[i] = engine(Ker[i], eng); }
|
|
166
|
+
|
|
167
|
+
// Create new ring with elimination order for _Dx.
|
|
168
|
+
list RL = ringlist(basering); list RL1;
|
|
169
|
+
RL1[1] = RL[1]; //char.
|
|
170
|
+
RL1[2] = Dnames + list("s") + Names;
|
|
171
|
+
RL1[3] = list(list("dp", 1:N), list("dp", 1:(N+1)), list("C", 0)); //orders.
|
|
172
|
+
RL1[4] = RL[4]; //min. poly.
|
|
173
|
+
// Make new ring non-commutative.
|
|
174
|
+
ring @Ds3 = ring(RL1);
|
|
175
|
+
matrix @Dmat[2*N+1][2*N+1];
|
|
176
|
+
for (i = 1; i <= N; i++) { @Dmat[i, N+i+1] = -1; }
|
|
177
|
+
def @Ds4 = nc_algebra(1, @Dmat); setring @Ds4; kill @Ds3;
|
|
178
|
+
dbprint(ppl, "// -4-1- The elimination ring @Ds4(_Dx,s,_x) is ready...");
|
|
179
|
+
|
|
180
|
+
// Map things to the new ring and eliminate
|
|
181
|
+
dbprint(ppl, "// -4-2- Moving kernels to the new elimination ring...");
|
|
182
|
+
list Ker = imap(@Ds2, Ker); poly f = imap(@Ds2, f); list eigen = imap(@Ds2, eigen);
|
|
183
|
+
|
|
184
|
+
dbprint(ppl, "// -4-3- Starting the elimination of _Dx in the V-filtration...");
|
|
185
|
+
int n = size(Ker); list S; S[n] = engine(Ker[n], eng); list H;
|
|
186
|
+
for (i = n - 1; i > 0; i--) {
|
|
187
|
+
str = sprintf("// -4-3-%p- Elimination for eigenvalue %p... (%p/%p)", n-i,
|
|
188
|
+
eigen[i], n-i, n); dbprint(ppl, str);
|
|
189
|
+
S[i] = engine(Ker[i] + S[i+1], eng);
|
|
190
|
+
H[i] = nselect(S[i], 1..N);
|
|
191
|
+
}
|
|
192
|
+
dbprint(ppl, "// -4-4- The variables _Dx are eliminated");
|
|
193
|
+
|
|
194
|
+
// Create new commutative ring with block order (s)(x_).
|
|
195
|
+
list RL = ringlist(basering); list RL1;
|
|
196
|
+
RL1[1] = RL[1]; //char.
|
|
197
|
+
RL1[2] = list("s") + Names; //vars.
|
|
198
|
+
RL1[3] = list(list("dp", 1), list("dp", 1:N), list("C", 0)); //orders.
|
|
199
|
+
RL1[4] = RL[4]; //min. poly.
|
|
200
|
+
// Make new ring non-commutative.
|
|
201
|
+
ring @R1 = ring(RL1); setring(@R1);
|
|
202
|
+
dbprint(ppl, "// -4-5- The commutative ring s,_x is ready");
|
|
203
|
+
|
|
204
|
+
// Compute Groebner bases for H in the new ring.
|
|
205
|
+
list H = imap(@Ds4, H);
|
|
206
|
+
dbprint(ppl, "// -4-6- Computing Groebner basis of the H ideals in the new ring...");
|
|
207
|
+
for (i = 1; i <= size(H); i++) { H[i] = slimgb(H[i]); }
|
|
208
|
+
dbprint(ppl, "// -4-7- Groebner basis of the H ideals computed");
|
|
209
|
+
|
|
210
|
+
// Create new ring (Dt,t,x_) where s -> -Dt*t.
|
|
211
|
+
list RL = ringlist(basering); list RL1;
|
|
212
|
+
RL1[1] = RL[1]; //char.
|
|
213
|
+
RL1[2] = list("Dt", "t") + Names; //vars.
|
|
214
|
+
RL1[3] = list(list("dp", 1:2), list("dp", 1:N), list("C", 0)); //orders.
|
|
215
|
+
RL1[4] = RL[4]; //min. poly.
|
|
216
|
+
// Make new ring non-commutative.
|
|
217
|
+
ring @Ds5 = ring(RL1);
|
|
218
|
+
matrix @Dmat[N+2][N+2]; @Dmat[1, 2] = -1;
|
|
219
|
+
def @Ds6 = nc_algebra(1, @Dmat); setring @Ds6; kill @Ds5;
|
|
220
|
+
dbprint(ppl, "// -5-1- The ring @Ds6(t,Dt,_x) is ready");
|
|
221
|
+
|
|
222
|
+
// Move things to the new (Dt,t,x_) ring.
|
|
223
|
+
def Max = maxideal(1); ideal J = -Dt*t;
|
|
224
|
+
for (i = 3; i <= N + 2; i++) { J = J + Max[i]; }
|
|
225
|
+
dbprint(ppl, "// -5-2- Moving H ideals to the new (Dt,t,_x) ring...");
|
|
226
|
+
map Map = @R1, J; list H = Map(H);
|
|
227
|
+
poly f = imap(@Ds4, f); list eigen = imap(@Ds4, eigen);
|
|
228
|
+
|
|
229
|
+
// Subtitute t = f and *exactly* divide H ideals by f^p.
|
|
230
|
+
dbprint(ppl, "// -5-3- Substituting t = f and dividing by f^p...");
|
|
231
|
+
list Vfilt;
|
|
232
|
+
for (i = 1; i <= size(H); i++) {
|
|
233
|
+
// Append the corresponding eigenvalue and its multiplicity to the output.
|
|
234
|
+
Vfilt[i] = list(list(), poly(eigen[i]), mul[i]);
|
|
235
|
+
for (j = 1; j <= size(H[i]); j++) {
|
|
236
|
+
if (leadexp(H[i][j])[1] <= p) {
|
|
237
|
+
Vfilt[i][1] = Vfilt[i][1] + list(subst(H[i][j], var(2), f)/f^p);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
} export(Vfilt); return(@Ds6);
|
|
241
|
+
}
|
|
242
|
+
example
|
|
243
|
+
{
|
|
244
|
+
"EXAMPLE:"; echo = 2;
|
|
245
|
+
ring R = 0,(x,y),dp;
|
|
246
|
+
poly f = y^2-x^3;
|
|
247
|
+
def D = Vfiltration(f, 1);
|
|
248
|
+
setring D; Vfilt;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
proc hodgeIdeals(poly f, int p, list #)
|
|
252
|
+
"USAGE: hodgeIdeals(f, p [, eng]); f a reduced poly, p a non-negative integer, eng an optional integer.
|
|
253
|
+
RETURN: ring
|
|
254
|
+
PURPOSE: compute the Hodge ideals of @math{f^\alpha} up to level @math{p}, for a reduced hypersurface @math{f}.
|
|
255
|
+
NOTE: activate the output ring with the @code{setring} command.
|
|
256
|
+
@*In the output ring, the list of ideals @code{hodge} contains the Hodge ideals of @math{f}.
|
|
257
|
+
@*The value of @code{eng} controls the algorithm used for Groebner basis computations.
|
|
258
|
+
@*See the @code{engine} procedure from @ref{dmodapp_lib} for the available algorithms.
|
|
259
|
+
DISPLAY: If @code{printlevel}=1, progress debug messages will be printed.
|
|
260
|
+
EXAMPLE: example hodgeIdeals; shows an example
|
|
261
|
+
"
|
|
262
|
+
{
|
|
263
|
+
// Equation 'f' must be reduced.
|
|
264
|
+
if (!isReduced(f)) { ERROR("Polynomial f must be reduced."); }
|
|
265
|
+
|
|
266
|
+
def @R = basering; int N = nvars(@R);
|
|
267
|
+
list Trans = ringlist(@R)[1];
|
|
268
|
+
list Names = ringlist(@R)[2];
|
|
269
|
+
// Check for name collisions within Transcendental parameters.
|
|
270
|
+
int i, j;
|
|
271
|
+
if (size(Trans) != 1) {
|
|
272
|
+
for (i = 1; i <= size(Trans[2]); i++) {
|
|
273
|
+
if (Trans[2][i] == "t" || Trans[2][i] == "Dt" || Trans[2][i] == "a") {
|
|
274
|
+
ERROR("Transcendental parameters should not include 't', 'Dt' or 'a'");
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
int ppl = printlevel - voice + 2;
|
|
280
|
+
printlevel = printlevel + 1;
|
|
281
|
+
// Start by computing the Vfiltration of f truncated at level p.
|
|
282
|
+
def @Ddt = Vfiltration(f, p, #); setring(@Ddt);
|
|
283
|
+
printlevel = printlevel - 1;
|
|
284
|
+
|
|
285
|
+
// Commutative (x_) ring with trascendental parameter 'a'.
|
|
286
|
+
list RL = ringlist(basering); list RL1;
|
|
287
|
+
if (size(RL[1]) == 0) { // no transcendental parameters in basering.
|
|
288
|
+
RL1[1] = list(RL[1], list("a"), list(list("lp", 1)), ideal(0));
|
|
289
|
+
} else { // trascendental parameters already in basering.
|
|
290
|
+
RL1[1] = RL[1]; RL1[1][2] = RL1[1][2] + list("a");
|
|
291
|
+
RL1[1][3][1][2] = RL1[1][3][1][2],1;
|
|
292
|
+
}
|
|
293
|
+
RL1[2] = list("Dt") + Names; //vars.
|
|
294
|
+
RL1[3] = list(list("dp", 1), list("dp", 1:N), list("C", 0)); //orders.
|
|
295
|
+
RL1[4] = RL[4]; //min. poly.
|
|
296
|
+
// Make new ring non-commutative.
|
|
297
|
+
ring @R2 = ring(RL1); setring(@R2);
|
|
298
|
+
dbprint(ppl, "// -6-1- The commutative ring (a),_x is ready");
|
|
299
|
+
list Vfilt = imap(@Ddt, Vfilt); poly f = imap(@R, f);
|
|
300
|
+
|
|
301
|
+
option(redSB);
|
|
302
|
+
// Finally step, compute Hodge ideals using Theorem A' of Mustata & Popa.
|
|
303
|
+
dbprint(ppl, "// -6-2- Computing Hodge ideals...");
|
|
304
|
+
list hodge; ideal Iq; poly g, mon; int q, l, dg;
|
|
305
|
+
// For each eigenvalue...
|
|
306
|
+
for (i = 1; i <= size(Vfilt); i++) {
|
|
307
|
+
hodge[i] = list(list(), Vfilt[i][2], Vfilt[i][3]);
|
|
308
|
+
// For each level q = 0,1,..,p we have a the q-th Hodge ideal 'Iq'.
|
|
309
|
+
for (q = 0; q <= p; q++) { Iq = 0;
|
|
310
|
+
// For each generator of H[i], compute a generator g of the Hodge ideal.
|
|
311
|
+
for (j = 1; j <= size(Vfilt[i][1]); j++) { g = 0;
|
|
312
|
+
// Select only the generators of H[i] with degree <= q in Dt.
|
|
313
|
+
if (leadexp(Vfilt[i][1][j])[1] <= q) {
|
|
314
|
+
// For each monomial term of the j-th generator of H[i]...
|
|
315
|
+
for (l = 1; l <= size(Vfilt[i][1][j]); l++) {
|
|
316
|
+
mon = Vfilt[i][1][j][l]; dg = leadexp(mon)[1];
|
|
317
|
+
// Apply Theorem A' of Mustata & Popa.
|
|
318
|
+
g = g + Qpoly(dg, a)*f^(q-dg)*(mon/Dt^dg);
|
|
319
|
+
} // Add a new element of the q-th Hodge ideal.
|
|
320
|
+
} Iq = Iq + g;
|
|
321
|
+
// Save a reduced GB of the q-th Hodge ideal of the i-th eigenvalue.
|
|
322
|
+
} hodge[i][1] = hodge[i][1] + list(slimgb(Iq));
|
|
323
|
+
}
|
|
324
|
+
} option(noredSB);
|
|
325
|
+
|
|
326
|
+
export(hodge); return(@R2);
|
|
327
|
+
}
|
|
328
|
+
example
|
|
329
|
+
{
|
|
330
|
+
"EXAMPLE:"; echo = 2;
|
|
331
|
+
ring R = 0,(x,y),dp;
|
|
332
|
+
poly f = y^2-x^3;
|
|
333
|
+
def Ra = hodgeIdeals(f, 2);
|
|
334
|
+
setring Ra; hodge;
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
proc multIdeals(poly f, list #)
|
|
338
|
+
"USAGE: multIdeals(f, [, eng]); f a reduced poly, eng an optional integer.
|
|
339
|
+
RETURN: list
|
|
340
|
+
PURPOSE: compute the multiplier ideals of a hypersurface @math{f \in R}.
|
|
341
|
+
NOTE: The value of @code{eng} controls the algorithm used for Groebner basis computations.
|
|
342
|
+
@* See the @code{engine} procedure from @ref{dmodapp_lib} for the available algorithms.
|
|
343
|
+
DISPLAY: If @code{printlevel}=1, progress debug messages will be printed.
|
|
344
|
+
EXAMPLE: example multIdeals; shows an example
|
|
345
|
+
"
|
|
346
|
+
{
|
|
347
|
+
// Compute the Vfiltration of f truncated at level 0.
|
|
348
|
+
printlevel = printlevel + 1;
|
|
349
|
+
def @Ddt = Vfiltration(f, 0, #);
|
|
350
|
+
printlevel = printlevel - 1;
|
|
351
|
+
|
|
352
|
+
// Compute Hodge ideals using Theorem 0.1 of Budur & Saito.
|
|
353
|
+
list Vfilt = imap(@Ddt, Vfilt);
|
|
354
|
+
list multIdeals; int i, j;
|
|
355
|
+
option(redSB);
|
|
356
|
+
for (i = 1; i <= size(Vfilt); i++) {
|
|
357
|
+
multIdeals[i] = list(ideal(), Vfilt[i][2], Vfilt[i][3]);
|
|
358
|
+
for (j = 1; j <= size(Vfilt[i][1]); j++) {
|
|
359
|
+
multIdeals[i][1] = multIdeals[i][1] + Vfilt[i][1][j];
|
|
360
|
+
} // Cosmetic Groebner basis.
|
|
361
|
+
multIdeals[i][1] = slimgb(ideal(multIdeals[i][1]));
|
|
362
|
+
} option(noredSB);
|
|
363
|
+
|
|
364
|
+
return(multIdeals);
|
|
365
|
+
}
|
|
366
|
+
example
|
|
367
|
+
{
|
|
368
|
+
"EXAMPLE:"; echo = 2;
|
|
369
|
+
ring R = 0,(x,y),dp;
|
|
370
|
+
poly f = y^2-x^3;
|
|
371
|
+
multIdeals(f);
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
// If I is the p-th Hodge ideal and the Hodge filtration is generated at
|
|
375
|
+
// level p, return the (p+1)-th Hodge ideal.
|
|
376
|
+
proc nextHodgeIdeal(poly f, ideal I, int p)
|
|
377
|
+
"USAGE: nextHodgeIdeal(f, I, p); f a poly, I an ideal, p a non-negative integer
|
|
378
|
+
RETURN: ideal
|
|
379
|
+
PURPOSE: given the @math{p}-th Hodge ideal @math{I} of @math{f^\alpha} compute the @math{p+1}-th Hodge ideal assuming that
|
|
380
|
+
@*the Hodge filtration of the underlying mixed Hodge module is generated at level less than or equal to @math{p}.
|
|
381
|
+
EXAMPLE: example nextHodgeIdeal; shows an example
|
|
382
|
+
"
|
|
383
|
+
{
|
|
384
|
+
int N = nvars(basering); ideal J = f*I; int i, j;
|
|
385
|
+
for (i = 1; i <= size(I); i++) {
|
|
386
|
+
for (j = 1; j <= N; j++) {
|
|
387
|
+
J = J + (f*diff(I[i], var(j)) - (a + p)*I[i]*diff(f, var(j)));
|
|
388
|
+
}
|
|
389
|
+
} return(slimgb(J));
|
|
390
|
+
}
|
|
391
|
+
example
|
|
392
|
+
{
|
|
393
|
+
"EXAMPLE:"; echo = 2;
|
|
394
|
+
ring R = 0,(x,y),dp;
|
|
395
|
+
poly f = y^2-x^3;
|
|
396
|
+
def Ra = hodgeIdeals(f, 2);
|
|
397
|
+
setring(Ra);
|
|
398
|
+
int p = 1;
|
|
399
|
+
nextHodgeIdeal(y^2-x^3, hodge[3][1][p+1], p);
|
|
400
|
+
}
|