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,667 @@
|
|
|
1
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
2
|
+
version="version curveInv.lib 4.1.2.0 Feb_2019 "; // $Id: 007001254d8bbfef7b41cafe0632ea3393a3b210 $
|
|
3
|
+
category="Algebraic geometry";
|
|
4
|
+
info="
|
|
5
|
+
LIBRARY: curveInv.lib A library for computing invariants of curves
|
|
6
|
+
AUTHOR: Peter Chini, chini@rhrk.uni-kl.de
|
|
7
|
+
|
|
8
|
+
OVERVIEW:
|
|
9
|
+
This library provides a collection of procedures for computing invariants
|
|
10
|
+
of curve singularities. Invariants that can be computed are:
|
|
11
|
+
- the delta invariant
|
|
12
|
+
- the multiplicity of the conductor: the length of Normalization(R)/C,
|
|
13
|
+
where C denotes the conductor
|
|
14
|
+
- the Deligne number
|
|
15
|
+
- the colength of derivations along the normalization - the length of
|
|
16
|
+
Der(Normalization(R/I)) / R/I
|
|
17
|
+
|
|
18
|
+
In addition, it is possible to compute the conductor of a ring S = R/I,
|
|
19
|
+
where R is a (localized) polynomial ring.
|
|
20
|
+
|
|
21
|
+
THEORY: Computing the Deligne number of curve singularities and an algorithmic framework for
|
|
22
|
+
differential algebras in SINGULAR;
|
|
23
|
+
Chapter 5 - Master's Thesis of Peter Chini - August 2015
|
|
24
|
+
|
|
25
|
+
PROCEDURES:
|
|
26
|
+
curveDeltaInv(ideal); computes the delta invariant of R/I for a given ideal I
|
|
27
|
+
curveConductorMult(ideal); returns the multiplicity of the conductor of R/I
|
|
28
|
+
curveDeligneNumber(ideal); computes the Deligne number of R/I
|
|
29
|
+
curveColengthDerivations(ideal); returns the colength of derivations,
|
|
30
|
+
the length of Der(Normalization(R/I))/Der(R/I)
|
|
31
|
+
|
|
32
|
+
KEYWORDS: curve singularity;invariants;deligne number
|
|
33
|
+
";
|
|
34
|
+
|
|
35
|
+
LIB "homolog.lib";
|
|
36
|
+
LIB "normal.lib";
|
|
37
|
+
|
|
38
|
+
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
39
|
+
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
40
|
+
// Computation of invariants //
|
|
41
|
+
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
42
|
+
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
46
|
+
//-------------------------------------- Delta invariant -------------------------------------//
|
|
47
|
+
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
proc curveDeltaInv(ideal I, list #)
|
|
51
|
+
"USAGE: curveDeltaInv(I); I ideal
|
|
52
|
+
ASSUME: I is a radical ideal, dim(R/I) = 1
|
|
53
|
+
RETURN: the delta invariant of R/I
|
|
54
|
+
NOTE: - output -1 means: delta invariant is infinite
|
|
55
|
+
- the optional parameter can be used if the normalization has already
|
|
56
|
+
been computed. If a list L contains the output of the procedure
|
|
57
|
+
normal (with options prim, wd and usering if the ring has a mixed ordering),
|
|
58
|
+
apply curveDeltaInv(I,L)
|
|
59
|
+
KEYWORDS: delta invariant; normalization
|
|
60
|
+
SEE ALSO: curveConductorMult; curveDeligneNumber
|
|
61
|
+
EXAMPLE: example curveDeltaInv; shows an example"
|
|
62
|
+
{
|
|
63
|
+
|
|
64
|
+
if(size(#) > 0){
|
|
65
|
+
list norma = #;
|
|
66
|
+
}else{
|
|
67
|
+
// Compute the normalization with delta invariants
|
|
68
|
+
list norma = normal(I,"useRing","prim","wd");
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// Pick the total delta invariant
|
|
72
|
+
int delt = norma[3][2];
|
|
73
|
+
return(delt);
|
|
74
|
+
|
|
75
|
+
}
|
|
76
|
+
example
|
|
77
|
+
{
|
|
78
|
+
"EXAMPLE:"; echo = 2;
|
|
79
|
+
ring R = 0,(x,y,z),ds;
|
|
80
|
+
|
|
81
|
+
////////////////////////////
|
|
82
|
+
// Finite delta invariant //
|
|
83
|
+
////////////////////////////
|
|
84
|
+
|
|
85
|
+
ideal I = x2y-y2z,x2-y2+z2;
|
|
86
|
+
curveDeltaInv(radical(I));
|
|
87
|
+
|
|
88
|
+
//////////////////////////////
|
|
89
|
+
// Infinite delta invariant //
|
|
90
|
+
//////////////////////////////
|
|
91
|
+
|
|
92
|
+
ideal J = xyz;
|
|
93
|
+
curveDeltaInv(radical(J));
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
98
|
+
//-------------------------------- Conductor and multiplicity --------------------------------//
|
|
99
|
+
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
static proc conductorMinPrime(def S)
|
|
104
|
+
"USAGE: conductorMinPrime(S); S ring
|
|
105
|
+
ASSUME: S is a polynomial ring with ideal norid and S/norid is the normalization of R/P,
|
|
106
|
+
where P is a minimal prime of I
|
|
107
|
+
RETURN: the ideal P
|
|
108
|
+
REMARKS: The algorithm computes norid intersect R - it eliminates the new
|
|
109
|
+
variables that were added by the command normal.
|
|
110
|
+
NOTE: the algorithm is for interior use only. We apply it to avoid a second computation
|
|
111
|
+
of the minimal primes
|
|
112
|
+
KEYWORDS: minimal primes; normalization
|
|
113
|
+
"
|
|
114
|
+
{
|
|
115
|
+
//SEE ALSO: conductorIdealIntersect
|
|
116
|
+
|
|
117
|
+
// Variables of basering as product
|
|
118
|
+
int n = nvars(basering);
|
|
119
|
+
int i;
|
|
120
|
+
poly var_base = 1;
|
|
121
|
+
for(i = 1; i <= n; i++){
|
|
122
|
+
var_base = var_base*var(i);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
// Switch to normalization
|
|
126
|
+
def savering = basering;
|
|
127
|
+
setring S;
|
|
128
|
+
poly var_base = imap(savering,var_base);
|
|
129
|
+
|
|
130
|
+
// Variables of S as product
|
|
131
|
+
poly var_ext = 1;
|
|
132
|
+
n = nvars(basering);
|
|
133
|
+
for(i = 1; i <= n ; i++){
|
|
134
|
+
var_ext = var_ext*var(i);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
// Variables to eliminate
|
|
138
|
+
poly var_elim = var_ext/var_base;
|
|
139
|
+
|
|
140
|
+
// Compute norid intersect basering = minimal prime
|
|
141
|
+
ideal min_prime = eliminate(norid,var_elim);
|
|
142
|
+
|
|
143
|
+
// Switch to R and return
|
|
144
|
+
setring savering;
|
|
145
|
+
ideal min_prime = imap(S,min_prime);
|
|
146
|
+
return(min_prime);
|
|
147
|
+
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
static proc conductorIdealIntersect(list id, int miss)
|
|
155
|
+
"USAGE: conductorIdealIntersect(id,miss); id list, miss int
|
|
156
|
+
ASSUME: id is a list of ideals
|
|
157
|
+
RETURN: the intersection of all ideals in id except the one chosen via miss
|
|
158
|
+
NOTE: - the index can be chosen outside the list
|
|
159
|
+
- the empty intersection is the whole ring
|
|
160
|
+
KEYWORDS: intersection"
|
|
161
|
+
{
|
|
162
|
+
|
|
163
|
+
int n = size(id);
|
|
164
|
+
ideal in_sect = 1;
|
|
165
|
+
int i;
|
|
166
|
+
|
|
167
|
+
// Intersect ideals
|
|
168
|
+
for(i = 1; i <= n; i++){
|
|
169
|
+
if(i != miss){
|
|
170
|
+
in_sect = intersect(in_sect,id[i]);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
return(in_sect);
|
|
175
|
+
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
proc curveConductorMult(ideal I, list #)
|
|
183
|
+
"USAGE: curveConductorMult(I); I ideal
|
|
184
|
+
ASSUME: I is a radical ideal, dim(R/I) = 1
|
|
185
|
+
RETURN: the multiplicity of the conductor
|
|
186
|
+
NOTE: the optional parameter can be used if the normalization has already
|
|
187
|
+
been computed. If a list L contains the output of the procedure
|
|
188
|
+
normal (with options prim, wd and usering if the ring has a mixed ordering),
|
|
189
|
+
apply curveConductorMult(I,L)
|
|
190
|
+
KEYWORDS: conductor; multiplicity
|
|
191
|
+
SEE ALSO: normalConductor
|
|
192
|
+
EXAMPLE: example curveConductorMult; shows an example"
|
|
193
|
+
{
|
|
194
|
+
|
|
195
|
+
if(size(#) > 0){
|
|
196
|
+
list norma = #;
|
|
197
|
+
}else{
|
|
198
|
+
// Compute the normalization with delta invariants
|
|
199
|
+
list norma = normal(I,"useRing","prim","wd");
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
// delta invariant
|
|
203
|
+
int delta = curveDeltaInv(I,norma);
|
|
204
|
+
// If the delta invariant is infinite, the conductor multiplicity is as well
|
|
205
|
+
if(delta == -1){
|
|
206
|
+
return(-1);
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
// Conductor
|
|
210
|
+
ideal C = normalConductor(I,norma);
|
|
211
|
+
int c_dim = vdim(std(C));
|
|
212
|
+
if(c_dim == -1){
|
|
213
|
+
return(-1);
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
// Return conductor multiplicity
|
|
217
|
+
return(vdim(std(C)) + delta);
|
|
218
|
+
|
|
219
|
+
}
|
|
220
|
+
example
|
|
221
|
+
{
|
|
222
|
+
"EXAMPLE:"; echo = 2;
|
|
223
|
+
|
|
224
|
+
//////////////////////////////////////////////
|
|
225
|
+
// Mutltiplicity of the conductor of curves //
|
|
226
|
+
//////////////////////////////////////////////
|
|
227
|
+
|
|
228
|
+
ring R = 0,(x,y,z),ds;
|
|
229
|
+
|
|
230
|
+
// Example 1:
|
|
231
|
+
ideal I = x2-y4z,z3y2+xy2;
|
|
232
|
+
I = std(radical(I));
|
|
233
|
+
curveConductorMult(I);
|
|
234
|
+
|
|
235
|
+
// Example 2:
|
|
236
|
+
ideal I = x*(y+z)^3 - y3, x2y2 + z5;
|
|
237
|
+
I = std(radical(I));
|
|
238
|
+
curveConductorMult(I);
|
|
239
|
+
|
|
240
|
+
kill R;
|
|
241
|
+
|
|
242
|
+
////////////////////////////////////////////////////////
|
|
243
|
+
// Mutltiplicity of the conductor of Gorenstein curve //
|
|
244
|
+
////////////////////////////////////////////////////////
|
|
245
|
+
|
|
246
|
+
ring R = 0,(x,y),ds;
|
|
247
|
+
ideal I = xy;
|
|
248
|
+
|
|
249
|
+
// In such a case, the conductor multiplicity c satisfies: c = 2*delta
|
|
250
|
+
// Delta invariant:
|
|
251
|
+
curveDeltaInv(I);
|
|
252
|
+
// Conductor Multiplicity:
|
|
253
|
+
curveConductorMult(I);
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
|
|
257
|
+
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
258
|
+
//-------------------------------------- Deligne number --------------------------------------//
|
|
259
|
+
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
260
|
+
|
|
261
|
+
|
|
262
|
+
proc curveDeligneNumber(ideal I, list #)
|
|
263
|
+
"USAGE: curveDeligneNumber(I); I ideal
|
|
264
|
+
ASSUME: I is a radical ideal, dim(R/I) = 1
|
|
265
|
+
RETURN: the Deligne number of R/I
|
|
266
|
+
REMARKS: The Deligne number e satisfies by definition: e = 3delta - m.
|
|
267
|
+
So the algorithm splits the computation into two parts: one part computes the delta
|
|
268
|
+
invariant, the other part the colength of derivations m.
|
|
269
|
+
NOTE: the optional parameter can be used if the normalization has already
|
|
270
|
+
been computed. If a list L contains the output of the procedure
|
|
271
|
+
normal (with options prim, wd and usering if the ring has a mixed ordering),
|
|
272
|
+
apply curveDeligneNumber(I,L)
|
|
273
|
+
KEYWORDS: deligne number; invariant
|
|
274
|
+
SEE ALSO: curveColengthDerivations, curveDeltaInv
|
|
275
|
+
EXAMPLE: example curveDeligneNumber; shows an example"
|
|
276
|
+
{
|
|
277
|
+
|
|
278
|
+
if(size(#) > 0){
|
|
279
|
+
list norma = #;
|
|
280
|
+
}else{
|
|
281
|
+
// Compute the normalization with delta invariants
|
|
282
|
+
list norma = normal(I,"useRing","prim","wd");
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
int delt = curveDeltaInv(I,norma);
|
|
286
|
+
int m = curveColengthDerivations(I,norma);
|
|
287
|
+
return(3*delt - m);
|
|
288
|
+
|
|
289
|
+
}
|
|
290
|
+
example
|
|
291
|
+
{
|
|
292
|
+
"EXAMPLE:"; echo = 2;
|
|
293
|
+
|
|
294
|
+
//////////////////////////////
|
|
295
|
+
// Deligne number of curves //
|
|
296
|
+
//////////////////////////////
|
|
297
|
+
|
|
298
|
+
// Example 1:
|
|
299
|
+
ring R = 0,(x,y,z),ds;
|
|
300
|
+
ideal I = x2-y4z,z3y2+xy2;
|
|
301
|
+
I = std(radical(I));
|
|
302
|
+
curveDeligneNumber(I);
|
|
303
|
+
|
|
304
|
+
// Example 2:
|
|
305
|
+
ring S = 0,(x,y),ds;
|
|
306
|
+
ideal I = (x+y)*(x2-y3);
|
|
307
|
+
curveDeligneNumber(I);
|
|
308
|
+
|
|
309
|
+
// Example 3:
|
|
310
|
+
ideal J = (x2-y3)*(x2+y2)*(x-y);
|
|
311
|
+
curveDeligneNumber(J);
|
|
312
|
+
// Let us also compute the milnor number of this complete intersection:
|
|
313
|
+
milnor(J);
|
|
314
|
+
|
|
315
|
+
// We see that the Milnor number is bigger than the Deligne number. Hence, this
|
|
316
|
+
// curve cannot be quasi homogeneous. This can also be verified by Saitos criterion:
|
|
317
|
+
reduce(J[1],std(jacob(J[1])));
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
|
|
321
|
+
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
322
|
+
|
|
323
|
+
|
|
324
|
+
proc curveColengthDerivations(ideal I, list #)
|
|
325
|
+
"USAGE: curveColengthDerivations(I); I ideal
|
|
326
|
+
ASSUME: I is a radical ideal
|
|
327
|
+
RETURN: the colength of derivations of R/I
|
|
328
|
+
REMARKS: The procedure goes through all branches and computes the colength of
|
|
329
|
+
derivations there. Then the d-dimension of the minimal primes is computed.
|
|
330
|
+
After that, everything is summed up.
|
|
331
|
+
NOTE: the optional parameter can be used if the normalization has already
|
|
332
|
+
been computed. If a list L contains the output of the procedure
|
|
333
|
+
normal (with options prim, wd and usering if the ring has a mixed ordering),
|
|
334
|
+
apply curveColengthDerivations(I,L)
|
|
335
|
+
KEYWORDS: deligne number; invariants; colength of derivations
|
|
336
|
+
EXAMPLE: example curveColengthDerivations; shows an example"
|
|
337
|
+
{
|
|
338
|
+
//SEE ALSO: curveColengthDerivationsComp
|
|
339
|
+
|
|
340
|
+
if(size(#) > 0){
|
|
341
|
+
list norma = #;
|
|
342
|
+
}else{
|
|
343
|
+
// Compute the normalization with delta invariants
|
|
344
|
+
list norma = normal(I,"useRing","prim","wd");
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
int r = size(norma[1]);
|
|
348
|
+
int i,j;
|
|
349
|
+
ideal U,A,B;
|
|
350
|
+
module Der_P;
|
|
351
|
+
def S;
|
|
352
|
+
def savering = basering;
|
|
353
|
+
|
|
354
|
+
// List of minimal primes and their derivation modules
|
|
355
|
+
list min_prime;
|
|
356
|
+
list der_mod;
|
|
357
|
+
|
|
358
|
+
// Colength of derivations of any branch, m_delta and total colength of derivations
|
|
359
|
+
int m_i;
|
|
360
|
+
int m_delta;
|
|
361
|
+
int ext_number;
|
|
362
|
+
|
|
363
|
+
// Go through the irreducible components and compute thecolength of derivations m_i
|
|
364
|
+
for(i = 1; i <= r; i++){
|
|
365
|
+
// Derivations preserving the minimal primes
|
|
366
|
+
S = norma[1][i];
|
|
367
|
+
U = norma[2][i];
|
|
368
|
+
|
|
369
|
+
min_prime[i] = conductorMinPrime(S);
|
|
370
|
+
der_mod[i] = find_der(min_prime[i]);
|
|
371
|
+
Der_P = der_mod[i];
|
|
372
|
+
|
|
373
|
+
// Switch to normalization of R/P and compute colength of derivations
|
|
374
|
+
setring S;
|
|
375
|
+
ideal U = imap(savering,U);
|
|
376
|
+
module Der_P = imap(savering,Der_P);
|
|
377
|
+
|
|
378
|
+
m_i = curveColengthDerivationsComp(Der_P,U,norid);
|
|
379
|
+
|
|
380
|
+
// Add colength of derivations of this branch to total colength of derivations
|
|
381
|
+
ext_number = ext_number + m_i;
|
|
382
|
+
setring savering;
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
// Now compute m_delta via curveDdim
|
|
386
|
+
A = min_prime[1];
|
|
387
|
+
B = std(1);
|
|
388
|
+
|
|
389
|
+
for(i = 2; i <= r; i++){
|
|
390
|
+
A = intersect(A,B);
|
|
391
|
+
B = min_prime[i];
|
|
392
|
+
m_delta = m_delta + curveDdim(A,find_der(A),B,find_der(B));
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
// Add this to the colength of derivations
|
|
396
|
+
ext_number = ext_number + m_delta;
|
|
397
|
+
return(ext_number);
|
|
398
|
+
|
|
399
|
+
}
|
|
400
|
+
example
|
|
401
|
+
{
|
|
402
|
+
"EXAMPLE:"; echo = 2;
|
|
403
|
+
|
|
404
|
+
///////////////////////////////////////
|
|
405
|
+
// colength of derivations of curves //
|
|
406
|
+
///////////////////////////////////////
|
|
407
|
+
|
|
408
|
+
// Example 1:
|
|
409
|
+
ring R = 0,(x,y,z),ds;
|
|
410
|
+
ideal I = x2-y4z,z3y2+xy2;
|
|
411
|
+
I = std(radical(I));
|
|
412
|
+
curveColengthDerivations(I);
|
|
413
|
+
|
|
414
|
+
// Example 2:
|
|
415
|
+
ring S = 0,(x,y),ds;
|
|
416
|
+
ideal I = (x+y)*(x2-y3);
|
|
417
|
+
curveColengthDerivations(I);
|
|
418
|
+
|
|
419
|
+
// Example 3:
|
|
420
|
+
ideal J = (x2-y3)*(x2+y2)*(x-y);
|
|
421
|
+
curveColengthDerivations(J);
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
|
|
425
|
+
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
426
|
+
|
|
427
|
+
|
|
428
|
+
static proc curveColengthDerivationsComp(module Der_P, ideal U, ideal relid)
|
|
429
|
+
"USAGE: curveColengthDerivationsComp(Der_P,U,relid); Der_P module, U ideal, relid ideal
|
|
430
|
+
ASSUME: - the basering is the normalization of R/P, where P is a prime
|
|
431
|
+
- Der_P is the module of P-preserving derivations
|
|
432
|
+
- U contains the generators of the normalization of R/P
|
|
433
|
+
- relid is the ideal of relations that hold in the normalization of R/P
|
|
434
|
+
RETURN: the colength of derivations of R/P
|
|
435
|
+
NOTE: the procedure is for interior use only - it is part of the computation of
|
|
436
|
+
the total colength of derivations
|
|
437
|
+
KEYWORDS: colength of derivations
|
|
438
|
+
SEE ALSO: curveAdjustModule, curveExtDerModule"
|
|
439
|
+
{
|
|
440
|
+
|
|
441
|
+
int k;
|
|
442
|
+
|
|
443
|
+
// Adjust the generators of Der_P to the new variables T(1),...,T(k),x(1),...,x(n)
|
|
444
|
+
// if there are new variables - check number of blocks
|
|
445
|
+
if(size(ring_list(basering)[3]) >= 3){
|
|
446
|
+
k = size(ring_list(basering)[3][1][2]);
|
|
447
|
+
Der_P = curveAdjustModule(Der_P,k);
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
// Extend the derivation module to the normalization
|
|
451
|
+
Der_P = curveExtDerModule(Der_P,U,relid);
|
|
452
|
+
|
|
453
|
+
// Derivations preserving the relation ideal
|
|
454
|
+
module Der_relid = find_der(relid);
|
|
455
|
+
|
|
456
|
+
// Quotient module with relations given by relid
|
|
457
|
+
Der_P = Der_P + relid*freemodule(nvars(basering));
|
|
458
|
+
module quotient_mod = modulo(Der_relid,Der_P);
|
|
459
|
+
k = vdim(std(quotient_mod));
|
|
460
|
+
|
|
461
|
+
if(k == -1){
|
|
462
|
+
ERROR("Colength of derivations not finite !");
|
|
463
|
+
}
|
|
464
|
+
|
|
465
|
+
return(k);
|
|
466
|
+
|
|
467
|
+
}
|
|
468
|
+
|
|
469
|
+
|
|
470
|
+
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
471
|
+
|
|
472
|
+
|
|
473
|
+
static proc curveExtDerModule(module Der_P, ideal U, ideal relid)
|
|
474
|
+
"USAGE: curveExtDerModule(Der_P,U,relid); Der_P module, U ideal, relid ideal
|
|
475
|
+
ASSUME: - the basering is the normalization of R/P, where P is prime
|
|
476
|
+
- Der_P is the module of P-preserving derivations (with adjusted generators)
|
|
477
|
+
- U contains the generators of the normalization of R/P
|
|
478
|
+
- relid is the ideal of relations that hold in the normalization of R/P
|
|
479
|
+
RETURN: The derivation module lifted to the normalization
|
|
480
|
+
REMARKS: the generators of Der_P are extended via the quotient rule
|
|
481
|
+
NOTE: the procedure is for interior use only - it is part of the computation of
|
|
482
|
+
the total colength of derivations
|
|
483
|
+
KEYWORDS: derivations; extend derivations
|
|
484
|
+
"
|
|
485
|
+
{
|
|
486
|
+
//SEE ALSO: curveColengthDerivationsComp
|
|
487
|
+
|
|
488
|
+
int k = size(Der_P);
|
|
489
|
+
int n = size(U) - 1;
|
|
490
|
+
int i,j;
|
|
491
|
+
|
|
492
|
+
module M_ext;
|
|
493
|
+
vector delt;
|
|
494
|
+
vector delt_ext;
|
|
495
|
+
|
|
496
|
+
poly g = (U[n+1])^2;
|
|
497
|
+
poly f;
|
|
498
|
+
poly Un = 1;
|
|
499
|
+
matrix D[k][n];
|
|
500
|
+
matrix G[k][n];
|
|
501
|
+
list temp_div;
|
|
502
|
+
|
|
503
|
+
for(i = 1; i <= k; i++){
|
|
504
|
+
delt = Der_P[i];
|
|
505
|
+
|
|
506
|
+
// Extend to new variables by quotient rule
|
|
507
|
+
for(j = 1; j <= n; j++){
|
|
508
|
+
f = vecDerivationEval(delt,U[j])*U[n+1] - vecDerivationEval(delt,U[n+1])*U[j];
|
|
509
|
+
|
|
510
|
+
// Division
|
|
511
|
+
temp_div = division(f,ideal(g) + relid);
|
|
512
|
+
|
|
513
|
+
// Units
|
|
514
|
+
D[i,j] = temp_div[3][1,1];
|
|
515
|
+
// Unit Un is product of all D[i][j]
|
|
516
|
+
Un = Un*D[i,j];
|
|
517
|
+
|
|
518
|
+
// Factor of dividing by g
|
|
519
|
+
G[i,j] = temp_div[1][1,1];
|
|
520
|
+
}
|
|
521
|
+
}
|
|
522
|
+
|
|
523
|
+
// Extension of the generating derivations
|
|
524
|
+
for(i = 1; i <= k; i++){
|
|
525
|
+
delt_ext = Un*Der_P[i];
|
|
526
|
+
|
|
527
|
+
// Now add the images of the new variables multiplied by the units
|
|
528
|
+
for(j = 1; j <= n; j++){
|
|
529
|
+
delt_ext = delt_ext + (Un / D[i,j])*G[i,j]*gen(j);
|
|
530
|
+
}
|
|
531
|
+
|
|
532
|
+
M_ext[i] = delt_ext;
|
|
533
|
+
}
|
|
534
|
+
|
|
535
|
+
return(M_ext);
|
|
536
|
+
|
|
537
|
+
}
|
|
538
|
+
|
|
539
|
+
|
|
540
|
+
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
541
|
+
|
|
542
|
+
|
|
543
|
+
static proc curveAdjustModule(module M, int k)
|
|
544
|
+
"USAGE: curveAdjustModule(M,k); M module, k int
|
|
545
|
+
RETURN: the module M with shifted (by k) generators
|
|
546
|
+
NOTE: the procedure is for interior use only - it is part of the computation of
|
|
547
|
+
the total colength of derivations
|
|
548
|
+
KEYWORDS: adjust module
|
|
549
|
+
"
|
|
550
|
+
{
|
|
551
|
+
//SEE ALSO: curveColengthDerivationsComp"
|
|
552
|
+
|
|
553
|
+
module M_copy = M;
|
|
554
|
+
int n = size(M);
|
|
555
|
+
int vs,i,j;
|
|
556
|
+
vector v,w;
|
|
557
|
+
|
|
558
|
+
// Adjust dimension of generators
|
|
559
|
+
for(i = 1; i <= n; i++){
|
|
560
|
+
v = M_copy[i];
|
|
561
|
+
vs = nrows(v);
|
|
562
|
+
|
|
563
|
+
for(j = 1; j <= vs; j++){
|
|
564
|
+
w = w + v[j]*gen(j+k);
|
|
565
|
+
}
|
|
566
|
+
|
|
567
|
+
M[i] = w;
|
|
568
|
+
w = 0;
|
|
569
|
+
}
|
|
570
|
+
|
|
571
|
+
return(M);
|
|
572
|
+
|
|
573
|
+
}
|
|
574
|
+
|
|
575
|
+
|
|
576
|
+
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
577
|
+
|
|
578
|
+
|
|
579
|
+
static proc curveDdim(ideal I, module DI, ideal J, module DJ)
|
|
580
|
+
"USAGE: curveDdim(I,DI,J,DJ); I,J ideal, DI,DJ module
|
|
581
|
+
ASSUME: DI are the I-preserving derivations and DJ are the J-preserving derivations
|
|
582
|
+
RETURN: d(I,J) = dim_k (DI + DJ / (I+J)*Der(R))
|
|
583
|
+
NOTE: the procedure is part of the computations of the colength of derivations.
|
|
584
|
+
It computes the d-dimension
|
|
585
|
+
KEYWORDS: derivation module; logarithmic derivations
|
|
586
|
+
SEE ALSO: curveColengthDerivations"
|
|
587
|
+
{
|
|
588
|
+
|
|
589
|
+
module M = DI+DJ;
|
|
590
|
+
module N = (I+J)*freemodule(nvars(basering));
|
|
591
|
+
module H = modulo(M,N);
|
|
592
|
+
int k = vdim(std(H));
|
|
593
|
+
|
|
594
|
+
if(k == -1){
|
|
595
|
+
ERROR("d-dimension not finite !");
|
|
596
|
+
}
|
|
597
|
+
|
|
598
|
+
return(k);
|
|
599
|
+
|
|
600
|
+
}
|
|
601
|
+
|
|
602
|
+
|
|
603
|
+
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
604
|
+
|
|
605
|
+
|
|
606
|
+
static proc vecDerivationEval(vector delt, poly f)
|
|
607
|
+
"USAGE: vecDerivationEval(delt,f); delt vector, f poly
|
|
608
|
+
ASSUME: delt does not have more rows than the number of variables in the basering
|
|
609
|
+
RETURN: the image of f under delt, if we consider delt as derivation
|
|
610
|
+
REMARKS: We identify derivations as vectors
|
|
611
|
+
NOTE: - the procedure is for interior use only - it is part of the computation of
|
|
612
|
+
the total colength of derivations
|
|
613
|
+
- it is used to apply the quotient rule
|
|
614
|
+
KEYWORDS: derivation
|
|
615
|
+
SEE ALSO: curveExtDerModule"
|
|
616
|
+
{
|
|
617
|
+
|
|
618
|
+
int n = nrows(delt);
|
|
619
|
+
int i;
|
|
620
|
+
poly eval_;
|
|
621
|
+
|
|
622
|
+
for(i = 1; i <= n; i++){
|
|
623
|
+
eval_ = eval_ + delt[i]*diff(f,var(i));
|
|
624
|
+
}
|
|
625
|
+
|
|
626
|
+
return(eval_);
|
|
627
|
+
|
|
628
|
+
}
|
|
629
|
+
|
|
630
|
+
|
|
631
|
+
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
632
|
+
|
|
633
|
+
|
|
634
|
+
static proc find_der(ideal I)
|
|
635
|
+
"USAGE: find_der(I); I ideal
|
|
636
|
+
RETURN: generators of the module of logarithmic derivations
|
|
637
|
+
REMARK: Algorithm by R. Epure - Homogeneity and Derivations on Analytic Algebras"
|
|
638
|
+
{
|
|
639
|
+
// Dummy variables and Initialization:
|
|
640
|
+
int k,i,n,m;
|
|
641
|
+
|
|
642
|
+
//generating matrix for syzygie computation:
|
|
643
|
+
n = nvars(basering);
|
|
644
|
+
m = size(I);
|
|
645
|
+
ideal j = jacob(I);
|
|
646
|
+
|
|
647
|
+
matrix M=matrix(j,m,n);
|
|
648
|
+
for (i = 1; i <= m; i++){
|
|
649
|
+
M = concat(M,diag(I[i],m));
|
|
650
|
+
}
|
|
651
|
+
module C = syz(M);
|
|
652
|
+
module D;
|
|
653
|
+
|
|
654
|
+
for(i = 1; i <= size(C); i++){
|
|
655
|
+
D = D + C[i][1..n];
|
|
656
|
+
}
|
|
657
|
+
|
|
658
|
+
//Clearing memory
|
|
659
|
+
kill j;
|
|
660
|
+
kill C;
|
|
661
|
+
kill M;
|
|
662
|
+
return(D);
|
|
663
|
+
}
|
|
664
|
+
|
|
665
|
+
|
|
666
|
+
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
667
|
+
////////////////////////////////////////////////////////////////////////////////////////////////
|