passagemath-singular 10.6.31rc3__cp314-cp314-musllinux_1_2_x86_64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of passagemath-singular might be problematic. Click here for more details.
- PySingular.cpython-314-x86_64-linux-musl.so +0 -0
- passagemath_singular-10.6.31rc3.dist-info/METADATA +183 -0
- passagemath_singular-10.6.31rc3.dist-info/RECORD +493 -0
- passagemath_singular-10.6.31rc3.dist-info/WHEEL +5 -0
- passagemath_singular-10.6.31rc3.dist-info/top_level.txt +3 -0
- passagemath_singular.libs/libSingular-4-67059f19.4.1.so +0 -0
- passagemath_singular.libs/libcddgmp-30166d29.so.0.1.3 +0 -0
- passagemath_singular.libs/libfactory-4-9d37bcf4.4.1.so +0 -0
- passagemath_singular.libs/libflint-fd6f12fc.so.21.0.0 +0 -0
- passagemath_singular.libs/libgcc_s-0cd532bd.so.1 +0 -0
- passagemath_singular.libs/libgf2x-9e30c3e3.so.3.0.0 +0 -0
- passagemath_singular.libs/libgfortran-2c33b284.so.5.0.0 +0 -0
- passagemath_singular.libs/libgmp-0e7fc84e.so.10.5.0 +0 -0
- passagemath_singular.libs/libgsl-42cda06f.so.28.0.0 +0 -0
- passagemath_singular.libs/libmpfr-aaecbfc0.so.6.2.1 +0 -0
- passagemath_singular.libs/libncursesw-9c9e32c3.so.6.5 +0 -0
- passagemath_singular.libs/libntl-26885ca2.so.44.0.1 +0 -0
- passagemath_singular.libs/libomalloc-0-e9ff96db.9.6.so +0 -0
- passagemath_singular.libs/libopenblasp-r0-905cb27d.3.29.so +0 -0
- passagemath_singular.libs/libpolys-4-8bcf8e7d.4.1.so +0 -0
- passagemath_singular.libs/libquadmath-bb76a5fc.so.0.0.0 +0 -0
- passagemath_singular.libs/libreadline-06542304.so.8.2 +0 -0
- passagemath_singular.libs/libsingular_resources-4-73bf7623.4.1.so +0 -0
- passagemath_singular.libs/libstdc++-5d72f927.so.6.0.33 +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-x86_64-linux-musl.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-x86_64-linux-musl.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-x86_64-linux-musl.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-x86_64-linux-musl.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-x86_64-linux-musl.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-x86_64-linux-musl.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-x86_64-linux-musl.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-x86_64-linux-musl.so +0 -0
- sage/algebras/quatalg/quaternion_algebra_cython.pyx +261 -0
- sage/algebras/quatalg/quaternion_algebra_element.cpython-314-x86_64-linux-musl.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-x86_64-linux-musl.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-x86_64-linux-musl.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-x86_64-linux-musl.so +0 -0
- sage/libs/singular/option.pyx +671 -0
- sage/libs/singular/polynomial.cpython-314-x86_64-linux-musl.so +0 -0
- sage/libs/singular/polynomial.pxd +39 -0
- sage/libs/singular/polynomial.pyx +661 -0
- sage/libs/singular/ring.cpython-314-x86_64-linux-musl.so +0 -0
- sage/libs/singular/ring.pxd +58 -0
- sage/libs/singular/ring.pyx +893 -0
- sage/libs/singular/singular.cpython-314-x86_64-linux-musl.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-x86_64-linux-musl.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-x86_64-linux-musl.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-x86_64-linux-musl.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-x86_64-linux-musl.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-x86_64-linux-musl.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-x86_64-linux-musl.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,465 @@
|
|
|
1
|
+
////////////////////////////////////////////////////////////////////////////
|
|
2
|
+
version="version reesclos.lib 4.1.2.0 Feb_2019 "; // $Id: 8d61ada04d2ac09dcd4d1b03cedac17dc3359533 $
|
|
3
|
+
category="Commutative Algebra";
|
|
4
|
+
|
|
5
|
+
info="
|
|
6
|
+
LIBRARY: reesclos.lib PROCEDURES TO COMPUTE THE INT. CLOSURE OF AN IDEAL
|
|
7
|
+
AUTHOR: Tobias Hirsch, email: hirsch@math.tu-cottbus.de
|
|
8
|
+
Janko Boehm, email: boehm@mathematik.uni-kl.de
|
|
9
|
+
Magdaleen Marais, email: magdaleen@aims.ac.za
|
|
10
|
+
|
|
11
|
+
OVERVIEW:
|
|
12
|
+
A library to compute the integral closure of an ideal I in a polynomial ring
|
|
13
|
+
R=k[x(1),...,x(n)] using the Rees Algebra R[It] of I. It computes the integral
|
|
14
|
+
closure of R[It],
|
|
15
|
+
which is a graded subalgebra of R[t]. The degree-k-component is the integral
|
|
16
|
+
closure of the k-th power of I.
|
|
17
|
+
|
|
18
|
+
In contrast to the previous version, the library uses 'normal.lib' to compute the
|
|
19
|
+
integral closure of R[It]. This improves the performance considerably.
|
|
20
|
+
|
|
21
|
+
PROCEDURES:
|
|
22
|
+
ReesAlgebra(I); computes the Rees Algebra of an ideal I
|
|
23
|
+
normalI(I[,p[,r]]); computes the integral closure of an ideal I using R[It]
|
|
24
|
+
";
|
|
25
|
+
|
|
26
|
+
LIB "normal.lib"; // for HomJJ
|
|
27
|
+
LIB "standard.lib"; // for groebner
|
|
28
|
+
|
|
29
|
+
///////////////////////////////////////////////////////////////////////////////
|
|
30
|
+
|
|
31
|
+
proc ReesAlgebra (ideal I)
|
|
32
|
+
"USAGE: ReesAlgebra (I); I = ideal
|
|
33
|
+
RETURN: The Rees algebra R[It] as an affine ring, where I is an ideal in R.
|
|
34
|
+
The procedure returns a list containing two rings:
|
|
35
|
+
[1]: a ring, say RR; in the ring an ideal ker such that R[It]=RR/ker
|
|
36
|
+
|
|
37
|
+
[2]: a ring, say Kxt; the basering with additional variable t
|
|
38
|
+
containing an ideal mapI that defines the map RR-->Kxt
|
|
39
|
+
EXAMPLE: example ReesAlgebra; shows an example
|
|
40
|
+
"
|
|
41
|
+
{
|
|
42
|
+
// remember the data of the basering
|
|
43
|
+
|
|
44
|
+
def oldring = basering;
|
|
45
|
+
string oldchar = charstr(basering);
|
|
46
|
+
string oldvar = varstr(basering);
|
|
47
|
+
string oldord = ordstr(basering);
|
|
48
|
+
int n = ncols(I);
|
|
49
|
+
ideal m = maxideal(1);
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
// Create a new ring with variables for each generator of I
|
|
53
|
+
|
|
54
|
+
execute ("ring Rees = "+oldchar+",("+oldvar+",U(1.."+string(n)+")),dp");
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
// Kxt is the old ring with additional variable t
|
|
58
|
+
// Here I -> t*I, so the generators of I generate the subalgebra R[It] in Kxt
|
|
59
|
+
|
|
60
|
+
ring Kxt = create_ring(ring_list(oldring)[1],"("+oldvar+",t)","dp");
|
|
61
|
+
ideal I = fetch(oldring,I);
|
|
62
|
+
ideal m = fetch(oldring,m);
|
|
63
|
+
int k;
|
|
64
|
+
for (k=1;k<=n;k++)
|
|
65
|
+
{
|
|
66
|
+
I[k]=t*I[k];
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
// Now we map from Rees to Kxt, identity on the original variables, and
|
|
71
|
+
// U(k) -> I[k]
|
|
72
|
+
|
|
73
|
+
ideal mapI = m,I;
|
|
74
|
+
map phi = Rees,mapI;
|
|
75
|
+
ideal zero = 0;
|
|
76
|
+
export (mapI);
|
|
77
|
+
|
|
78
|
+
// Now the Rees-Algebra is Rees/ker(phi)
|
|
79
|
+
|
|
80
|
+
setring Rees;
|
|
81
|
+
ideal ker = preimage(Kxt,phi,zero);
|
|
82
|
+
export (ker);
|
|
83
|
+
|
|
84
|
+
list result = Rees,Kxt;
|
|
85
|
+
|
|
86
|
+
return(result);
|
|
87
|
+
|
|
88
|
+
}
|
|
89
|
+
example
|
|
90
|
+
{
|
|
91
|
+
"EXAMPLE:"; echo=2;
|
|
92
|
+
ring R = 0,(x,y),dp;
|
|
93
|
+
ideal I = x2,xy4,y5;
|
|
94
|
+
list L = ReesAlgebra(I);
|
|
95
|
+
def Rees = L[1]; // defines the ring Rees, containing the ideal ker
|
|
96
|
+
setring Rees; // passes to the ring Rees
|
|
97
|
+
Rees;
|
|
98
|
+
ker; // R[It] is isomorphic to Rees/ker
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
////////////////////////////////////////////////////////////////////////////
|
|
103
|
+
|
|
104
|
+
static
|
|
105
|
+
proc ClosureRees (list L, int useLocNormal)
|
|
106
|
+
"USAGE: ClosureRees (L,useLocNormal); L a list, useLocNormal an integer
|
|
107
|
+
ASSUME: L is a list containing
|
|
108
|
+
- a ring L[1], inside L[1] an ideal ker such that L[1]/ker is
|
|
109
|
+
isomorphic to the Rees Algebra R[It] of an ideal I in k[x]
|
|
110
|
+
- a ring L[2]=k[x,t], inside L[1] an ideal mapI defining the
|
|
111
|
+
map L[1] --> L[2] with image R[It]
|
|
112
|
+
RETURN: quotients of elements of k[x,t] representing generators of the
|
|
113
|
+
integral closure of R[It]. The result of ClosureRees is a list
|
|
114
|
+
images, the first size(images)-1 entries are the numerators of the
|
|
115
|
+
generators, the last one is the universal denominator
|
|
116
|
+
"
|
|
117
|
+
{
|
|
118
|
+
int dblvl=printlevel-voice+2; // toggles how much data is printed
|
|
119
|
+
// during the procedure
|
|
120
|
+
|
|
121
|
+
def Kxt = basering;
|
|
122
|
+
def R(1) = L[1];
|
|
123
|
+
setring R(1); // declaration of variables used later
|
|
124
|
+
ideal ker(1)=ker; // in STEP 2
|
|
125
|
+
if (useLocNormal==1) {
|
|
126
|
+
list preimages1 = locNormal(ker);
|
|
127
|
+
ideal preimagesI=preimages1[1];
|
|
128
|
+
list preimagesL = list(preimagesI[2..size(preimagesI)])+list(preimagesI[1]);
|
|
129
|
+
ideal preimages = ideal(preimagesL[1..size(preimagesL)]);
|
|
130
|
+
} else {
|
|
131
|
+
list nor = normal(ker);
|
|
132
|
+
ideal preimages=nor[2][1];
|
|
133
|
+
}
|
|
134
|
+
setring Kxt;
|
|
135
|
+
map psi=R(1),mapI; // from ReesAlgebra: the map Rees->Kxt
|
|
136
|
+
ideal images=psi(preimages);
|
|
137
|
+
ideal psii = images[size(images)]*ideal(psi);
|
|
138
|
+
list imagesl = images[1..size(images)];
|
|
139
|
+
list psil =psii[1..size(psii)];
|
|
140
|
+
imagesl=psil+imagesl;
|
|
141
|
+
return(imagesl);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
////////////////////////////////////////////////////////////////////////////
|
|
146
|
+
|
|
147
|
+
static
|
|
148
|
+
proc ClosurePower(list images, list #)
|
|
149
|
+
"USAGE: ClosurePower (L [,#]); L a list, # an optional list containing an
|
|
150
|
+
integer
|
|
151
|
+
ASSUME: - L is a list containing generators of the closure of R[It] in k[x,t]
|
|
152
|
+
(the first size(L)-1 elements are the numerators, the last one
|
|
153
|
+
is the denominator)
|
|
154
|
+
- if # is given: #[1] is an integer, compute generators for the
|
|
155
|
+
closure of I, I^2, ..., I^#[1]
|
|
156
|
+
RETURN: the integral closure of I, ... I^#[1]. If # is not given, compute
|
|
157
|
+
the closure of all powers up to the maximum degree in t occurring
|
|
158
|
+
in the closure of R[It] (so this is the last power whose closure is
|
|
159
|
+
not just the sum/product of the smaller powers). The returned
|
|
160
|
+
result is a list of elements of k[x,t] containing generators of the
|
|
161
|
+
closure of the desired powers of I. "
|
|
162
|
+
{
|
|
163
|
+
int dblvl=printlevel-voice+2; // toggles how much data is printed
|
|
164
|
+
// during the procedure
|
|
165
|
+
|
|
166
|
+
int j,k,d,computepow; // some counters
|
|
167
|
+
int pow=0;
|
|
168
|
+
int length = size(images)-1; // the number of generators
|
|
169
|
+
poly image;
|
|
170
|
+
poly @denominator = images[length+1]; // the universal denominator
|
|
171
|
+
|
|
172
|
+
if (size(#)>0)
|
|
173
|
+
{
|
|
174
|
+
pow=#[1];
|
|
175
|
+
}
|
|
176
|
+
computepow=pow;
|
|
177
|
+
|
|
178
|
+
if (dblvl>0)
|
|
179
|
+
{
|
|
180
|
+
"";
|
|
181
|
+
"// The generators of the closure of R[It]:";
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
intmat m[nvars(basering)-1][1]; // an intvec used for jet and maxdeg1
|
|
185
|
+
intvec tw=m,1; // such that t has weight 1 and all
|
|
186
|
+
// other variables have weight 0
|
|
187
|
+
|
|
188
|
+
// Construct the generators of the closure of R[It] as elements of k[x,t]
|
|
189
|
+
// If # is not given, determine the highest degree pow in t that occurs.
|
|
190
|
+
|
|
191
|
+
for (j=1;j<=length;j++)
|
|
192
|
+
{
|
|
193
|
+
images[j] = (images[j]/@denominator); // construct the fraction
|
|
194
|
+
image = images[j];
|
|
195
|
+
if (dblvl>0)
|
|
196
|
+
{
|
|
197
|
+
"generator",j,":",image;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
if (computepow==0) // #[1] not given or ==0 => compute pow
|
|
201
|
+
{
|
|
202
|
+
if (maxdeg1(image,tw)>pow) // from polylib.lib
|
|
203
|
+
{
|
|
204
|
+
pow=maxdeg1(image,tw);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
if (dblvl>0)
|
|
210
|
+
{
|
|
211
|
+
"";
|
|
212
|
+
if (computepow==0)
|
|
213
|
+
{
|
|
214
|
+
"// Compute the closure up to the given powers of I";
|
|
215
|
+
}
|
|
216
|
+
else
|
|
217
|
+
{
|
|
218
|
+
"// Compute the closure up to the maximal power of t that occurred:",pow;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
// Construct a list consisting of #[1] resp. pow times the zero ideal
|
|
223
|
+
|
|
224
|
+
ideal CurrentPower=0;
|
|
225
|
+
list result;
|
|
226
|
+
for (k=1;k<=pow;k++)
|
|
227
|
+
{
|
|
228
|
+
result=insert(result,CurrentPower);
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
// For each generator and each k, add its degree-k-coefficient to the #
|
|
232
|
+
// closure of I^k
|
|
233
|
+
|
|
234
|
+
for (j=1;j<=length;j++)
|
|
235
|
+
{
|
|
236
|
+
for (k=1;k<=pow;k++)
|
|
237
|
+
{
|
|
238
|
+
image=images[j]-jet(images[j],k-1,tw);
|
|
239
|
+
if (image<>0)
|
|
240
|
+
{
|
|
241
|
+
image=subst(image/t^k,t,0);
|
|
242
|
+
if (image<>0)
|
|
243
|
+
{
|
|
244
|
+
result[k]=result[k]+image;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
if (dblvl>0)
|
|
251
|
+
{
|
|
252
|
+
"";
|
|
253
|
+
"// The 'pure' parts of degrees 1..pow:";
|
|
254
|
+
result;
|
|
255
|
+
"";
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
// finally, add the suitable products of generators in lower degrees
|
|
259
|
+
|
|
260
|
+
for (k=2;k<=pow;k++)
|
|
261
|
+
{
|
|
262
|
+
for (j=1;j<=(k div 2);j++)
|
|
263
|
+
{
|
|
264
|
+
result[k]=result[k]+result[j]*result[k-j];
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
return(result);
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
////////////////////////////////////////////////////////////////////////////
|
|
272
|
+
|
|
273
|
+
proc normalI(ideal I, list #)
|
|
274
|
+
"USAGE: normalI (I [,p [,r [,l]]]); I an ideal, p, r, and l optional integers
|
|
275
|
+
RETURN: the integral closure of I, ..., I^p, where I is an ideal in the
|
|
276
|
+
polynomial ring R=k[x(1),...x(n)]. If p is not given, or p==0,
|
|
277
|
+
compute the closure of all powers up to the maximum degree in t
|
|
278
|
+
occurring in the closure of R[It] (so this is the last power whose
|
|
279
|
+
closure is not just the sum/product of the smaller). If r
|
|
280
|
+
is given and r==1, normalI starts with a check whether I is already a
|
|
281
|
+
radical ideal.
|
|
282
|
+
If l==1 then locNormal instead of normal is used to compute normalization.
|
|
283
|
+
The result is a list containing the closure of the desired powers of
|
|
284
|
+
I as ideals of the basering.
|
|
285
|
+
DISPLAY: The procedure displays more comments for higher printlevel.
|
|
286
|
+
EXAMPLE: example normalI; shows an example
|
|
287
|
+
"
|
|
288
|
+
{
|
|
289
|
+
int dblvl=printlevel-voice+2; // toggles how much data is printed
|
|
290
|
+
// during the procedure
|
|
291
|
+
|
|
292
|
+
def BAS=basering; // remember the basering
|
|
293
|
+
|
|
294
|
+
// two simple cases: principal ideals and radical ideals are always
|
|
295
|
+
// integrally closed
|
|
296
|
+
|
|
297
|
+
if (size(I)<=1) // includes the case I=(0)
|
|
298
|
+
{
|
|
299
|
+
if (dblvl>0)
|
|
300
|
+
{
|
|
301
|
+
"// Trivial case: I is a principal ideal";
|
|
302
|
+
}
|
|
303
|
+
list result=I;
|
|
304
|
+
if (size(#)>0)
|
|
305
|
+
{
|
|
306
|
+
for (int k=1;k<=#[1]-1;k++)
|
|
307
|
+
{
|
|
308
|
+
result=insert(result,I*result[k],k);
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
return(result);
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
int testrad=0; // do the radical check?
|
|
315
|
+
int uselocNormal=0;
|
|
316
|
+
if (size(#)>1)
|
|
317
|
+
{
|
|
318
|
+
testrad=#[2];
|
|
319
|
+
if (size(#)==3) {
|
|
320
|
+
uselocNormal=#[3];
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
if (testrad==1)
|
|
325
|
+
{
|
|
326
|
+
if (dblvl>0)
|
|
327
|
+
{
|
|
328
|
+
"//Check whether I is radical";
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
if (size(reduce(radical(I),std(I),5))==0)
|
|
332
|
+
{
|
|
333
|
+
if (dblvl>0)
|
|
334
|
+
{
|
|
335
|
+
"//Trivial case: I is a radical ideal";
|
|
336
|
+
}
|
|
337
|
+
list result=I;
|
|
338
|
+
if (size(#)>0)
|
|
339
|
+
{
|
|
340
|
+
for (int k=1;k<=#[1]-1;k++)
|
|
341
|
+
{
|
|
342
|
+
result=insert(result,I*result[k],k);
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
return(result);
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
// start with the computation of the Rees Algebra R[It] of I
|
|
350
|
+
|
|
351
|
+
if (dblvl>0)
|
|
352
|
+
{
|
|
353
|
+
"// We start with the Rees Algebra of I:";
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
list Rees = ReesAlgebra(I);
|
|
357
|
+
def R(1)=Rees[1];
|
|
358
|
+
def Kxt=Rees[2];
|
|
359
|
+
setring R(1);
|
|
360
|
+
|
|
361
|
+
if (dblvl>0)
|
|
362
|
+
{
|
|
363
|
+
R(1);
|
|
364
|
+
ker;
|
|
365
|
+
"";
|
|
366
|
+
"// Now ClosureRees computes generators for the integral closure";
|
|
367
|
+
"// of R[It] step by step";
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
// ClosureRees computes fractions in R[x,t] representing the generators
|
|
371
|
+
// of the closure of R[It] in k[x,t], which is the same as the closure
|
|
372
|
+
// in Q(R[It]).
|
|
373
|
+
// the first size(images)-1 entries are the numerators of the gene-
|
|
374
|
+
// rators, the last entry is the 'universal' denominator
|
|
375
|
+
|
|
376
|
+
setring Kxt;
|
|
377
|
+
list images = ClosureRees(Rees,uselocNormal);
|
|
378
|
+
|
|
379
|
+
// ClosureRees was done after the first HomJJ-call
|
|
380
|
+
// ==> I is integrally closed, and images consists of the only entry "closed"
|
|
381
|
+
|
|
382
|
+
if ((size(images)==1) && (typeof(images[1])=="string"))
|
|
383
|
+
{
|
|
384
|
+
if (dblvl>0)
|
|
385
|
+
{
|
|
386
|
+
"//I is integrally closed!";
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
setring BAS;
|
|
390
|
+
list result=I;
|
|
391
|
+
if (size(#)>0)
|
|
392
|
+
{
|
|
393
|
+
for (int k=1;k<=#[1]-1;k++)
|
|
394
|
+
{
|
|
395
|
+
result=insert(result,I*result[k],k);
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
return(result);
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
// construct the fractions corresponding to the generators of the
|
|
402
|
+
// closure of I and its powers, depending on # (in fact, they will
|
|
403
|
+
// not be real fractions, of course). This is done in ClosurePower.
|
|
404
|
+
list result = ClosurePower(images,#);
|
|
405
|
+
|
|
406
|
+
// finally fetch the result to the old basering
|
|
407
|
+
|
|
408
|
+
setring BAS;
|
|
409
|
+
list result=fetch(Kxt,result);
|
|
410
|
+
return(result);
|
|
411
|
+
}
|
|
412
|
+
example
|
|
413
|
+
{
|
|
414
|
+
"EXAMPLE:"; echo=2;
|
|
415
|
+
ring R=0,(x,y),dp;
|
|
416
|
+
ideal I = x2,xy4,y5;
|
|
417
|
+
list J = normalI(I);
|
|
418
|
+
I;
|
|
419
|
+
J; // J[1] is the integral closure of I
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
/*
|
|
423
|
+
LIB"reesclos.lib";
|
|
424
|
+
|
|
425
|
+
|
|
426
|
+
// 1. x^i,y^i in k[x,y]
|
|
427
|
+
// geht bis i = 19 (800sec), bis i=10 wenige Sekunden,
|
|
428
|
+
// bei i = 20 ueber 1GB Hauptspeicher, in der 9. Iteration no memory
|
|
429
|
+
// (braucht 20 Iterationen)
|
|
430
|
+
|
|
431
|
+
ring r = 0,(x,y),dp;
|
|
432
|
+
int i = 6;
|
|
433
|
+
ideal I = x^i,y^i;
|
|
434
|
+
list J = normalI(I);
|
|
435
|
+
I;
|
|
436
|
+
J;
|
|
437
|
+
|
|
438
|
+
|
|
439
|
+
//================================================================
|
|
440
|
+
|
|
441
|
+
|
|
442
|
+
// 2. x^i,y^i,z^i in k[x,y,z]
|
|
443
|
+
// aehnlich wie 1., funktioniert aber nur bis i=5 und dauert dort
|
|
444
|
+
// >1 h
|
|
445
|
+
|
|
446
|
+
|
|
447
|
+
//================================================================
|
|
448
|
+
|
|
449
|
+
|
|
450
|
+
// 3. scheitert in der ersten Iteration beim Radikal
|
|
451
|
+
// Standardbasis des singulaeren Ortes: 7h (in char0),
|
|
452
|
+
// in char(p) viel schneller, obwohl kleine Koeffizienten
|
|
453
|
+
// schon bei Radikal -Test braucht er zu lang (>1h)
|
|
454
|
+
|
|
455
|
+
ring r = 0,(x,y,z),dp;
|
|
456
|
+
//ring r = 32003,(x,y,z),dp;
|
|
457
|
+
|
|
458
|
+
ideal I = x2+xy3-5z,z3+y2-xzy,x2y3z5+y3-y5;
|
|
459
|
+
list l= ReesAlgebra(I);
|
|
460
|
+
list J = normalI(I);
|
|
461
|
+
I;
|
|
462
|
+
J;
|
|
463
|
+
|
|
464
|
+
*/
|
|
465
|
+
|