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,777 @@
|
|
|
1
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
2
|
+
version="version nc_hilb.lib 4.1.2.0 Feb_2019 "; // $Id: 20f16a74fdb3c37b2ef388e9772f24d716707452 $
|
|
3
|
+
category="Noncommutative";
|
|
4
|
+
info="
|
|
5
|
+
LIBRARY: ncHilb.lib Computation of graded and multi-graded Hilbert series of non-commutative algebras (Letterplace).
|
|
6
|
+
|
|
7
|
+
AUTHOR: Sharwan K. Tiwari shrawant@gmail.com
|
|
8
|
+
Roberto La Scala
|
|
9
|
+
Viktor Levandovskyy (adaptation to the new Letterplace release)
|
|
10
|
+
|
|
11
|
+
REFERENCES:
|
|
12
|
+
La Scala R.: Monomial right ideals and the Hilbert series of non-commutative modules,
|
|
13
|
+
Journal of Symbolic Computation (2016).
|
|
14
|
+
|
|
15
|
+
La Scala R., Tiwari Sharwan K.: Multigraded Hilbert Series of noncommutative modules, https://arxiv.org/abs/1705.01083.
|
|
16
|
+
|
|
17
|
+
KEYWORDS: finitely presented algebra; infinitely presented algebra; graded Hilbert series; multi-graded Hilbert series
|
|
18
|
+
|
|
19
|
+
PROCEDURES:
|
|
20
|
+
nchilb(L,d,#); Hilbert series of a non-commutative algebra
|
|
21
|
+
rcolon(I, w, d); Right colon ideal of a two-sided monomial ideal with respect to a monomial w
|
|
22
|
+
";
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
/*
|
|
26
|
+
// NEW HEADER
|
|
27
|
+
info="
|
|
28
|
+
LIBRARY: fpahilb.lib: Computation of graded and multi-graded Hilbert series of non-commutative algebras (Letterplace).
|
|
29
|
+
|
|
30
|
+
AUTHOR: Sharwan K. Tiwari shrawant@gmail.com
|
|
31
|
+
Roberto La Scala
|
|
32
|
+
Viktor Levandovskyy (adaptation to the new Letterplace release)
|
|
33
|
+
|
|
34
|
+
REFERENCES:
|
|
35
|
+
La Scala R.: Monomial right ideals and the Hilbert series of non-commutative modules,
|
|
36
|
+
Journal of Symbolic Computation (2016).
|
|
37
|
+
|
|
38
|
+
La Scala R., Tiwari Sharwan K.: Multigraded Hilbert Series of noncommutative modules, https://arxiv.org/abs/1705.01083.
|
|
39
|
+
|
|
40
|
+
KEYWORDS: finitely presented algebra; infinitely presented algebra; graded Hilbert series; multi-graded Hilbert series
|
|
41
|
+
|
|
42
|
+
PROCEDURES:
|
|
43
|
+
fpahilb(L,d,#); Hilbert series of a non-commutative algebra
|
|
44
|
+
rcolon(I, w, d); Right colon ideal of a two-sided monomial ideal with respect to a monomial w
|
|
45
|
+
";
|
|
46
|
+
*/
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
LIB "freegb.lib";
|
|
50
|
+
|
|
51
|
+
// under construction by VL; need kernel adjustments by Sharwan Tiwari
|
|
52
|
+
|
|
53
|
+
/* VERY NEW DOC PART HERE !*/
|
|
54
|
+
static proc fpahilb(ideal I, list #)
|
|
55
|
+
"USAGE: fpahilb(I[, L]), ideal I, optional list L
|
|
56
|
+
PURPOSE: compute Hilbert series of a non-commutative algebra, presented by I
|
|
57
|
+
RETURN: nothing (prints data out)
|
|
58
|
+
ASSUME: basering is a Letterplace ring, I is given via its Groebner basis
|
|
59
|
+
NOTE: the sequence of the values in the list L is as follows:
|
|
60
|
+
L[1] of type int: 0 if I stands for finitely generated regular ideal, 1 otherwise
|
|
61
|
+
L[2] of type int: 0 if univariate Hilbert series is to be computed, 1 otherwise (e.g. for multi-graded Hilbert series)
|
|
62
|
+
L[3] of type int: the truncation degree for truncated Hilbert series (if >2 value is given)
|
|
63
|
+
L[4] of type string: if nonempty, then the details about the orbit computations will be printed.
|
|
64
|
+
EXAMPLE: example fpahilb; shows an example "
|
|
65
|
+
{
|
|
66
|
+
if (!isFreeAlgebra(basering))
|
|
67
|
+
{
|
|
68
|
+
ERROR("Basering should be Letterplace ring");
|
|
69
|
+
}
|
|
70
|
+
def save = basering;
|
|
71
|
+
int sz=size(#);
|
|
72
|
+
int lV=lpVarBlockSize(save); // nvars(orig comm ring)
|
|
73
|
+
int ig=0;
|
|
74
|
+
int mgrad=0;
|
|
75
|
+
int tdeg=0;
|
|
76
|
+
string odp="";
|
|
77
|
+
int i;
|
|
78
|
+
for(i=sz; i >= 1; i--)
|
|
79
|
+
{
|
|
80
|
+
if(typeof(#[i])=="string")
|
|
81
|
+
{
|
|
82
|
+
if(#[i]!="")
|
|
83
|
+
{
|
|
84
|
+
odp = "p";
|
|
85
|
+
}
|
|
86
|
+
# = delete(#,i);
|
|
87
|
+
sz = sz-1;
|
|
88
|
+
break;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
i=1;
|
|
92
|
+
// VL: changing the old "only one optional parameter (for printing the details) is allowed as a string."
|
|
93
|
+
while( (typeof(#[i])=="int") && (i<=sz) )
|
|
94
|
+
{
|
|
95
|
+
if( (#[i] == 1) && (ig==0) )
|
|
96
|
+
{
|
|
97
|
+
ig = 1;
|
|
98
|
+
}
|
|
99
|
+
else
|
|
100
|
+
{
|
|
101
|
+
if ( (#[i] == 2) && (mgrad==0) )
|
|
102
|
+
{
|
|
103
|
+
mgrad = 2;
|
|
104
|
+
}
|
|
105
|
+
else
|
|
106
|
+
{
|
|
107
|
+
if ( (#[i] > 2) && (tdeg==0) )
|
|
108
|
+
{
|
|
109
|
+
tdeg = #[i];
|
|
110
|
+
}
|
|
111
|
+
else
|
|
112
|
+
{
|
|
113
|
+
ERROR("error: only int 1,2 and >2 are allowed as optional parameters");
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
i = i + 1;
|
|
118
|
+
}
|
|
119
|
+
if( i <= sz)
|
|
120
|
+
{
|
|
121
|
+
ERROR("error:only int 1,2, >2, and a string are allowed as optional parameters");
|
|
122
|
+
}
|
|
123
|
+
int maxdegJ = 0;
|
|
124
|
+
ideal J_lm = I;
|
|
125
|
+
for(i=1; i<=size(J_lm); i++)
|
|
126
|
+
{
|
|
127
|
+
J_lm[i]=leadmonom(J_lm[i]);
|
|
128
|
+
if ( deg(J_lm[i]) > maxdegJ )
|
|
129
|
+
{
|
|
130
|
+
maxdegJ = deg(J_lm[i]);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
// new: truncation should be < than degbound/2
|
|
134
|
+
int degbnd = lpDegBound(save);
|
|
135
|
+
if (tdeg == 0)
|
|
136
|
+
{
|
|
137
|
+
// orig code: LPRing is created with degree bound=2*d
|
|
138
|
+
// therefore check here, that maxdeg(gens) <=uptodeg/2
|
|
139
|
+
if ( 2*maxdegJ != degbnd)
|
|
140
|
+
{
|
|
141
|
+
ERROR("Degree bound on the basering should be precisely "+ string(2*maxdegJ));
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
else
|
|
145
|
+
{ // ie tdeg>0
|
|
146
|
+
// orig code: LPRing is created with degree bound=2*(tdeg-1)
|
|
147
|
+
if ( 2*(tdeg - 1) != degbnd)
|
|
148
|
+
{
|
|
149
|
+
ERROR("Degree bound on the basering should be precisely "+ string(2*(tdeg - 1)));
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
// if (tdeg > (degbnd-1) div 2)
|
|
153
|
+
// {
|
|
154
|
+
// ERROR("Degree bound on the basering should be at least 2*N+1");
|
|
155
|
+
// }
|
|
156
|
+
// def save2 = basering;
|
|
157
|
+
// setring save2;
|
|
158
|
+
//compute the Hilbert series
|
|
159
|
+
// system call : HilbertSeries_OrbitData: sharwan need to change it as well...
|
|
160
|
+
//(ideal S, int lV, bool IG_CASE, bool mgrad, bool odp, int trunDegHs)
|
|
161
|
+
|
|
162
|
+
//"Debug: nc hilb is called with with lV="+string(lV)+", ig="+string(ig)+", mgrad="+string(mgrad)+", tdeg="+string(tdeg);
|
|
163
|
+
if(odp == "")
|
|
164
|
+
{
|
|
165
|
+
//system("nc_hilb", J_lm, lV, ig, mgrad,tdeg);
|
|
166
|
+
system("nc_hilb", J_lm, L[1], L[2], L[3]); // or even better with the list L!!!
|
|
167
|
+
}
|
|
168
|
+
else
|
|
169
|
+
{
|
|
170
|
+
system("nc_hilb", J_lm, L[1], L[2], L[3], L[4]); // the final part: only one call without if-else will be made
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
example
|
|
174
|
+
{
|
|
175
|
+
"EXAMPLE:"; echo = 2;
|
|
176
|
+
ring r=0,(X,Y,Z),dp;
|
|
177
|
+
def R = makeLetterplaceRing(4); setring R;
|
|
178
|
+
ideal I = Y*Z, Y*Z*X, Y*Z*Z*X, Y*Z*Z*Z*X;
|
|
179
|
+
list L = 0, 0, 3, ""; // ie finitely generated, univariate HS, truncated up to degree 3, no printing
|
|
180
|
+
fpahilb(I, L);
|
|
181
|
+
}
|
|
182
|
+
/* VERY NEW PART HERE (ABOVE) !*/
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
/*
|
|
186
|
+
// // examples
|
|
187
|
+
//test_1:
|
|
188
|
+
ring r=0,(X,Y,Z),dp;
|
|
189
|
+
module p1 =[1,Y,Z]; //represents the poly Y*Z
|
|
190
|
+
module p2 =[1,Y,Z,X]; //represents the poly Y*Z*X
|
|
191
|
+
module p3 =[1,Y,Z,Z,X,Z];
|
|
192
|
+
module p4 =[1,Y,Z,Z,Z,X,Z];
|
|
193
|
+
module p5 =[1,Y,Z,Z,Z,Z,X,Z];
|
|
194
|
+
module p6 =[1,Y,Z,Z,Z,Z,Z,X,Z];
|
|
195
|
+
module p7 =[1,Y,Z,Z,Z,Z,Z,Z,X,Z];
|
|
196
|
+
module p8 =[1,Y,Z,Z,Z,Z,Z,Z,Z,X,Z];
|
|
197
|
+
list l1=list(p1,p2,p3,p4,p5,p6,p7,p8);
|
|
198
|
+
nchilb(l1,10);
|
|
199
|
+
|
|
200
|
+
ring r=0,(x,y,z),dp;
|
|
201
|
+
|
|
202
|
+
module p1=[1,y,z],[-1,z,y]; //y*z-z*y
|
|
203
|
+
module p2=[1,x,z,x],[-1,z,x,z]; // x*z*x-z*x*z
|
|
204
|
+
module p3=[1,x,z,z,x,z],[-1,z,x,z,z,x]; // x*z^2*x*z-z*x*z^2*x
|
|
205
|
+
module p4=[1,x,z,z,z,x,z];[-1,z,x,z,z,x,x]; // x*z^3*x*z-z*x*z^2*x^2
|
|
206
|
+
list l2=list(p1,p2,p3,p4);
|
|
207
|
+
|
|
208
|
+
nchilb(l2,6,1); //third argument '1' is for non-finitely generated case
|
|
209
|
+
// ** TEST 3: ORIG
|
|
210
|
+
ring r=0,(a,b),dp;
|
|
211
|
+
module p1=[1,a,a,a];
|
|
212
|
+
module p2=[1,a,b,b];
|
|
213
|
+
module p3=[1,a,a,b];
|
|
214
|
+
list l3=list(p1,p2,p3);
|
|
215
|
+
nchilb(l3,5); // new vl: usual HS
|
|
216
|
+
nchilb(l3,5,2);//third argument '2' is to compute multi-graded HS
|
|
217
|
+
// ** TEST 3: NEW
|
|
218
|
+
LIB "ncHilb.lib";
|
|
219
|
+
ring r=0,(a,b),dp;
|
|
220
|
+
def R2 = freeAlgebra(r,8); setring R2; // tdeg=5 => dgb = 2*4=8
|
|
221
|
+
ideal I = a*a*a, a*b*b, a*a*b;
|
|
222
|
+
fpahilb(I,4,"p");//fpahilb(I,5,"p");
|
|
223
|
+
//nchilb(l3,5);// no third argument '2' = to compute the usual HS
|
|
224
|
+
fpahilb(I,5,2,"p");
|
|
225
|
+
//nchilb(l3,5,2);//third argument '2' is to compute multi-graded HS
|
|
226
|
+
|
|
227
|
+
//(ideal S, int lV, bool IG_CASE, bool mgrad, bool odp, int trunDegHs)
|
|
228
|
+
//system("nc_hilb", J_lm, lV, ig, mgrad,tdeg,trunDegHs);
|
|
229
|
+
system("nc_hilb", I, 2, 0, 0, 0, 0); // ok
|
|
230
|
+
system("nc_hilb", I, 2, 0, 2, 0, 0); // ok
|
|
231
|
+
|
|
232
|
+
*/
|
|
233
|
+
|
|
234
|
+
static proc conversion_problems()
|
|
235
|
+
{
|
|
236
|
+
// b) HilbertSeries_OrbitData changes currRing [doesn't help while doing copies]
|
|
237
|
+
// second call of same procedure changes the input: FIXED
|
|
238
|
+
|
|
239
|
+
// a) still we get very different results (suspected: via TwordMap() )
|
|
240
|
+
|
|
241
|
+
// very easy:
|
|
242
|
+
LIB "ncHilb.lib";
|
|
243
|
+
ring r=0,(a,b),dp;
|
|
244
|
+
module p1=[1,a,a,a];
|
|
245
|
+
module p2=[1,a,b,b];
|
|
246
|
+
module p3=[1,a,a,b];
|
|
247
|
+
list l3=list(p1,p2,p3);
|
|
248
|
+
nchilb(l3,5,2);//third argument '2' is to compute multi-graded HS
|
|
249
|
+
// output ORIG:
|
|
250
|
+
/*
|
|
251
|
+
maximal length of words = 3
|
|
252
|
+
length of the Orbit = 5
|
|
253
|
+
Hilbert series:
|
|
254
|
+
(t1^2+t1+1)/(t1*t2^2-t1*t2-t2+1)
|
|
255
|
+
*/
|
|
256
|
+
nchilb(l3,5);// usual graded HS
|
|
257
|
+
// output ORIG:
|
|
258
|
+
/*
|
|
259
|
+
*/
|
|
260
|
+
//input new Letterplace:
|
|
261
|
+
LIB "./ncHilb.lib";
|
|
262
|
+
ring r=0,(a,b),dp;
|
|
263
|
+
def R2 = makeLetterplaceRing(8); setring R2; // tdeg=5 => dgb = 2*4=8
|
|
264
|
+
ideal I = a*a*a, a*b*b, a*a*b;
|
|
265
|
+
fpahilb(I,5,2,"p");
|
|
266
|
+
// output NEWLP
|
|
267
|
+
/*
|
|
268
|
+
Debug: nc hilb is called with with lV=2, ig=0, mgrad=2, tdeg=5
|
|
269
|
+
Truncation degree = 5
|
|
270
|
+
maximal length of words = 4
|
|
271
|
+
length of the Orbit = 12
|
|
272
|
+
words description of the Orbit:
|
|
273
|
+
1 a b a*a a*b b*a b*b a*a*a a*b*a b*a*a b*a*b a*b*a*a
|
|
274
|
+
|
|
275
|
+
maximal degree, #(sum_j R(w,w_j))
|
|
276
|
+
NULL
|
|
277
|
+
2, 3
|
|
278
|
+
NULL
|
|
279
|
+
1, 2
|
|
280
|
+
1, 1
|
|
281
|
+
2, 3
|
|
282
|
+
NULL
|
|
283
|
+
0, 1
|
|
284
|
+
2, 3
|
|
285
|
+
1, 2
|
|
286
|
+
1, 1
|
|
287
|
+
1, 2
|
|
288
|
+
|
|
289
|
+
linear system:
|
|
290
|
+
H(1) = (t1)*H(2) + (t2)*H(3) + 1
|
|
291
|
+
H(2) = (t1)*H(4) + (t2)*H(5) + 1
|
|
292
|
+
H(3) = (t1)*H(6) + (t2)*H(7) + 1
|
|
293
|
+
H(4) = (t1)*H(8) + (t2)*H(8) + 1
|
|
294
|
+
H(5) = (t1)*H(9) + (t2)*H(8) + 1
|
|
295
|
+
H(6) = (t1)*H(10) + (t2)*H(11) + 1
|
|
296
|
+
H(7) = (t1)*H(9) + (t2)*H(9) + 1
|
|
297
|
+
H(8) = (t1)*H(8) + (t2)*H(8) + 0
|
|
298
|
+
H(9) = (t1)*H(12) + (t2)*H(12) + 1
|
|
299
|
+
H(10) = (t1)*H(8) + (t2)*H(8) + 1
|
|
300
|
+
H(11) = (t1)*H(12) + (t2)*H(8) + 1
|
|
301
|
+
H(12) = (t1)*H(8) + (t2)*H(8) + 1
|
|
302
|
+
where H(1) represents the series corresp. to input ideal
|
|
303
|
+
|
|
304
|
+
Hilbert series:
|
|
305
|
+
(t1^3*t2+3*t1^2*t2^2+2*t1^2*t2+t1^2+2*t1*t2^3+2*t1*t2^2+2*t1*t2+t1+t2^4+t2^3+t2^2+t2+1)
|
|
306
|
+
*/
|
|
307
|
+
|
|
308
|
+
fpahilb(I,5,"p");
|
|
309
|
+
// output NEWLP
|
|
310
|
+
/*
|
|
311
|
+
Debug: nc hilb is called with with lV=2, ig=0, mgrad=0, tdeg=5
|
|
312
|
+
Truncation degree = 5
|
|
313
|
+
maximal length of words = 4
|
|
314
|
+
length of the Orbit = 12
|
|
315
|
+
words description of the Orbit:
|
|
316
|
+
1 a b a*a a*b b*a b*b a*a*a a*b*a b*a*a b*a*b a*b*a*a
|
|
317
|
+
maximal degree, #(sum_j R(w,w_j))
|
|
318
|
+
NULL
|
|
319
|
+
2, 3
|
|
320
|
+
NULL
|
|
321
|
+
1, 2
|
|
322
|
+
1, 1
|
|
323
|
+
2, 3
|
|
324
|
+
NULL
|
|
325
|
+
0, 1
|
|
326
|
+
2, 3
|
|
327
|
+
1, 2
|
|
328
|
+
1, 1
|
|
329
|
+
1, 2
|
|
330
|
+
|
|
331
|
+
linear system:
|
|
332
|
+
H(1) = (t)*H(2) + (t)*H(3) + 1
|
|
333
|
+
H(2) = (t)*H(4) + (t)*H(5) + 1
|
|
334
|
+
H(3) = (t)*H(6) + (t)*H(7) + 1
|
|
335
|
+
H(4) = (t)*H(8) + (t)*H(8) + 1
|
|
336
|
+
H(5) = (t)*H(9) + (t)*H(8) + 1
|
|
337
|
+
H(6) = (t)*H(10) + (t)*H(11) + 1
|
|
338
|
+
H(7) = (t)*H(9) + (t)*H(9) + 1
|
|
339
|
+
H(8) = (t)*H(8) + (t)*H(8) + 0
|
|
340
|
+
H(9) = (t)*H(12) + (t)*H(12) + 1
|
|
341
|
+
H(10) = (t)*H(8) + (t)*H(8) + 1
|
|
342
|
+
H(11) = (t)*H(12) + (t)*H(8) + 1
|
|
343
|
+
H(12) = (t)*H(8) + (t)*H(8) + 1
|
|
344
|
+
where H(1) represents the series corresp. to input ideal
|
|
345
|
+
and i^th summand in the rhs of an eqn. is according
|
|
346
|
+
to the right colon map corresp. to the i^th variable
|
|
347
|
+
|
|
348
|
+
Hilbert series:
|
|
349
|
+
(7t4+5t3+4t2+2t+1)
|
|
350
|
+
*/
|
|
351
|
+
|
|
352
|
+
nchilb(l3,5,"p");// no third argument: usual HS
|
|
353
|
+
// output:
|
|
354
|
+
/* maximal length of words = 3
|
|
355
|
+
length of the Orbit = 5
|
|
356
|
+
words description of the Orbit:
|
|
357
|
+
1 a(1) a(1)*a(2) a(1)*b(2) a(1)*a(2)*a(3)
|
|
358
|
+
maximal degree, #(sum_j R(w,w_j))
|
|
359
|
+
NULL
|
|
360
|
+
2, 3
|
|
361
|
+
1, 2
|
|
362
|
+
1, 1
|
|
363
|
+
0, 1
|
|
364
|
+
linear system:
|
|
365
|
+
H(1) = (t)*H(2) + (t)*H(1) + 1
|
|
366
|
+
H(2) = (t)*H(3) + (t)*H(4) + 1
|
|
367
|
+
H(3) = (t)*H(5) + (t)*H(5) + 1
|
|
368
|
+
H(4) = (t)*H(2) + (t)*H(5) + 1
|
|
369
|
+
H(5) = (t)*H(5) + (t)*H(5) + 0
|
|
370
|
+
where H(1) represents the series corresp. to input ideal
|
|
371
|
+
and i^th summand in the rhs of an eqn. is according
|
|
372
|
+
to the right colon map corresp. to the i^th variable
|
|
373
|
+
Hilbert series:
|
|
374
|
+
(t2+t+1)/(t3-t2-t+1)
|
|
375
|
+
*/
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
static proc boo()
|
|
379
|
+
{
|
|
380
|
+
// very different input; long example
|
|
381
|
+
ring r2=0,(x,y,z),dp;
|
|
382
|
+
def R2 = makeLetterplaceRing(10); setring R2; // tdeg=6 => dgb = 2*5=10
|
|
383
|
+
ideal I = y*z-z*y, x*z*x-z*x*z, x*z^2*x*z-z*x*z^2*x, x*z^3*x*z-z*x*z^2*x^2;
|
|
384
|
+
//ideal J = std(I); // compute a Groebner basis up to degree bound, which is 12
|
|
385
|
+
fpahilb(I,6,1,"p");
|
|
386
|
+
// inspecting J we see that this is a homogeneous Groebner basis
|
|
387
|
+
// which is potentially infinite, i.e. J is not finitely generated
|
|
388
|
+
fpahilb(J,5,1,2,"p"); // '1' i for non-finitely generated case, string to print details
|
|
389
|
+
//'5' here is to compute the truncated HS up to degree 5.
|
|
390
|
+
//'2' is to compute multi-graded Hilbert series
|
|
391
|
+
fpahilb(J,7,1,"p");
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
|
|
395
|
+
// overhauled by VL, seem to work fine
|
|
396
|
+
/* VERY NEW PART HERE !*/
|
|
397
|
+
//static proc rcolon(ideal I, poly W)
|
|
398
|
+
//"USAGE: rcolon(I,w); ideal I, poly w
|
|
399
|
+
//RETURNS: ideal
|
|
400
|
+
//ASSUME: - basering is a Letterplace ring with degree bound
|
|
401
|
+
//equal to 2*maximal degree of elements in I
|
|
402
|
+
//- I is a monomial ideal
|
|
403
|
+
//- w is a monomial
|
|
404
|
+
//PURPOSE: compute a right colon ideal of I by a monomial w
|
|
405
|
+
//NOTE: Output is the set of generators, which should be added to I
|
|
406
|
+
//EXAMPLE: example rcolon; shows an example"
|
|
407
|
+
//{
|
|
408
|
+
// int lV = lpVarBlockSize(R); //nvars(save);
|
|
409
|
+
// if (lV == 0)
|
|
410
|
+
// {
|
|
411
|
+
// ERROR("Basering must be a Letterplace ring");
|
|
412
|
+
// }
|
|
413
|
+
// // test whether degree bound == 2*maxdeg(elts of the ideal)
|
|
414
|
+
// int maxdegI = 0;
|
|
415
|
+
// int i;
|
|
416
|
+
// for(i=1; i<=ncols(I); i++)
|
|
417
|
+
// {
|
|
418
|
+
// I[i]=leadmonom(I[i]);
|
|
419
|
+
// if ( deg(I[i]) > maxdegI )
|
|
420
|
+
// {
|
|
421
|
+
// maxdegI = deg(I[i]);
|
|
422
|
+
// }
|
|
423
|
+
// }
|
|
424
|
+
// int degbnd = lpDegBound(R);
|
|
425
|
+
// if ( 2*maxdegI != degbnd)
|
|
426
|
+
// {
|
|
427
|
+
// ERROR("Degree bound on the basering should be precisely "+ string(2*maxdegI));
|
|
428
|
+
// }
|
|
429
|
+
// poly wc = leadmonom(W);
|
|
430
|
+
// //"Debug: rcolon is called with lV="+string(lV);
|
|
431
|
+
// // VL: printlevel here? before only printing was there, no output
|
|
432
|
+
// ideal J = system("rcolon", I, wc, lV);
|
|
433
|
+
// return(J);
|
|
434
|
+
// }
|
|
435
|
+
//example
|
|
436
|
+
//{
|
|
437
|
+
//"EXAMPLE:"; echo = 2;
|
|
438
|
+
// ring r=0,(X,Y,Z),dp;
|
|
439
|
+
// def R = freeAlgebra(r,10); setring R;
|
|
440
|
+
// ideal I = Y*Z, Y*Z*X, Y*Z*Z*X, Y*Z*Z*Z*X;
|
|
441
|
+
// poly w = Y;
|
|
442
|
+
// ideal J = rcolon_new(I,w);
|
|
443
|
+
// J; // new generators, which need to be added to I
|
|
444
|
+
// rcolon_new(I,Y*Z); // 1 will be the result
|
|
445
|
+
// rcolon_new(I,X); // nothing to add
|
|
446
|
+
//}
|
|
447
|
+
|
|
448
|
+
// original version of the proc +
|
|
449
|
+
// minor fixes by VL in the example: redefine ring excluded, binomial fixed
|
|
450
|
+
proc nchilb(list L_wp, int d, list #)
|
|
451
|
+
"USAGE: nchilb(I, d[, L]), list I, int d, optional list L
|
|
452
|
+
PURPOSE: compute Hilbert series of a non-commutative algebra
|
|
453
|
+
ASSUME:
|
|
454
|
+
NOTE: d is an integer for the degree bound (maximal total degree of
|
|
455
|
+
polynomials of the generating set of the input ideal),
|
|
456
|
+
#[]=1, computation for non-finitely generated regular ideals,
|
|
457
|
+
#[]=2, computation of multi-graded Hilbert series,
|
|
458
|
+
#[]=tdeg, for obtaining the truncated Hilbert series up to the total degree tdeg-1 (tdeg should be > 2), and
|
|
459
|
+
#[]=string(p), to print the details about the orbit and system of equations.
|
|
460
|
+
Let the orbit is O_I = {T_{w_1}(I),...,T_{w_r}(I)} ($w_i\in W$), where we assume that if T_{w_i}(I)=T_{w_i'}(I)$
|
|
461
|
+
for some $w'_i\in W$, then $deg(w_i)\leq deg(w'_i)$.
|
|
462
|
+
Then, it prints words description of orbit: w_1,...,w_r.
|
|
463
|
+
It also prints the maximal degree and the cardinality of \sum_j R(w_i, b_j) corresponding to each w_i,
|
|
464
|
+
where {b_j} is a basis of I.
|
|
465
|
+
Moreover, it also prints the linear system (for the information about adjacency matrix) and its solving time.
|
|
466
|
+
|
|
467
|
+
NOTE : A Groebner basis of two-sided ideal of the input should be given in a
|
|
468
|
+
special form. This form is a list of modules, where each generator
|
|
469
|
+
of every module represents a monomial times a coefficient in the free
|
|
470
|
+
associative algebra. The first entry, in each generator, represents a
|
|
471
|
+
coefficient and every next entry is a variable.
|
|
472
|
+
|
|
473
|
+
Ex: module p1=[1,y,z],[-1,z,y], represents the poly y*z-z*y;
|
|
474
|
+
module p2=[1,x,z,x],[-1,z,x,z], represents the poly x*z*x-z*x*z
|
|
475
|
+
for more details about the input, see examples.
|
|
476
|
+
EXAMPLE: example nchilb; shows an example "
|
|
477
|
+
{
|
|
478
|
+
if (d<1)
|
|
479
|
+
{
|
|
480
|
+
ERROR("bad degree bound");
|
|
481
|
+
}
|
|
482
|
+
|
|
483
|
+
def save = basering;
|
|
484
|
+
int sz=size(#);
|
|
485
|
+
int lV=nvars(save);
|
|
486
|
+
int ig=0;
|
|
487
|
+
int mgrad=0;
|
|
488
|
+
int tdeg=0;
|
|
489
|
+
string odp="";
|
|
490
|
+
int i;
|
|
491
|
+
for(i=sz ;i >= 1; i--)
|
|
492
|
+
{
|
|
493
|
+
if(typeof(#[i])=="string")
|
|
494
|
+
{
|
|
495
|
+
if(#[i]!="")
|
|
496
|
+
{
|
|
497
|
+
odp = "p";
|
|
498
|
+
}
|
|
499
|
+
# = delete(#,i);
|
|
500
|
+
sz = sz-1;
|
|
501
|
+
break;
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
i=1;
|
|
505
|
+
//only one optional parameter (for printing the details) is allowed as a string.
|
|
506
|
+
while(typeof(#[i])=="int" && i<=sz)
|
|
507
|
+
{
|
|
508
|
+
if(#[i] == 1 && ig==0)
|
|
509
|
+
{
|
|
510
|
+
ig = 1;
|
|
511
|
+
}
|
|
512
|
+
else
|
|
513
|
+
{
|
|
514
|
+
if(#[i] == 2 && mgrad==0)
|
|
515
|
+
{
|
|
516
|
+
mgrad = 2;
|
|
517
|
+
}
|
|
518
|
+
else
|
|
519
|
+
{
|
|
520
|
+
if(#[i] > 2 && tdeg==0)
|
|
521
|
+
{
|
|
522
|
+
tdeg = #[i];
|
|
523
|
+
}
|
|
524
|
+
else
|
|
525
|
+
{
|
|
526
|
+
ERROR("error: only int 1,2 and >2 are allowed as
|
|
527
|
+
optional parameters");
|
|
528
|
+
}
|
|
529
|
+
}
|
|
530
|
+
}
|
|
531
|
+
i = i + 1;
|
|
532
|
+
}
|
|
533
|
+
if( i <= sz)
|
|
534
|
+
{
|
|
535
|
+
ERROR("error:only int 1,2, >2, and a string are allowed as
|
|
536
|
+
optional parameters");
|
|
537
|
+
}
|
|
538
|
+
if(tdeg==0)
|
|
539
|
+
{def R = makeLetterplaceRing(2*d);}
|
|
540
|
+
else
|
|
541
|
+
{def R = makeLetterplaceRing(2*(tdeg-1));}
|
|
542
|
+
setring R;
|
|
543
|
+
ideal I;
|
|
544
|
+
poly p;
|
|
545
|
+
poly q=0;
|
|
546
|
+
// convert list L_wp of free-poly to letterPlace-poly format
|
|
547
|
+
setring save;
|
|
548
|
+
module M;
|
|
549
|
+
int j,k,sw,sm,slm;
|
|
550
|
+
vector w;
|
|
551
|
+
poly pc=0;
|
|
552
|
+
intvec v;
|
|
553
|
+
slm = size(L_wp); // number of polys in the given ideal
|
|
554
|
+
for (i=1; i<=slm; i++)
|
|
555
|
+
{
|
|
556
|
+
M = L_wp[i];
|
|
557
|
+
sm = ncols(M); // number of words in the free-poly M
|
|
558
|
+
for (j=1; j<=sm; j++)
|
|
559
|
+
{
|
|
560
|
+
w = M[j];
|
|
561
|
+
sw = size(w);
|
|
562
|
+
for (k=2; k<=sw; k++)
|
|
563
|
+
{
|
|
564
|
+
v[k-1]=rvar(w[k]);
|
|
565
|
+
}
|
|
566
|
+
pc=w[1];
|
|
567
|
+
setring R;
|
|
568
|
+
p=imap(save,pc);
|
|
569
|
+
for (k=2; k<=sw; k++)
|
|
570
|
+
{
|
|
571
|
+
p=p*var(v[k-1]+(k-2)*lV);
|
|
572
|
+
}
|
|
573
|
+
q=q+p;
|
|
574
|
+
setring save;
|
|
575
|
+
}
|
|
576
|
+
setring R;
|
|
577
|
+
I = I,q; //lp-polynomial added to I
|
|
578
|
+
q=0; //ready for the next polynomial
|
|
579
|
+
setring save;
|
|
580
|
+
}
|
|
581
|
+
setring R;
|
|
582
|
+
I=simplify(I,2);
|
|
583
|
+
ideal J_lm;
|
|
584
|
+
for(i=1;i<=size(I);i++)
|
|
585
|
+
{
|
|
586
|
+
J_lm[i]=leadmonom(I[i]);
|
|
587
|
+
}
|
|
588
|
+
//compute the Hilbert series
|
|
589
|
+
if(odp == "")
|
|
590
|
+
{system("nc_hilb", J_lm, lV, ig, mgrad,tdeg);}
|
|
591
|
+
else
|
|
592
|
+
{system("nc_hilb", J_lm, lV, ig, mgrad,tdeg, odp);}
|
|
593
|
+
}
|
|
594
|
+
|
|
595
|
+
example
|
|
596
|
+
{
|
|
597
|
+
"EXAMPLE:"; echo = 2;
|
|
598
|
+
|
|
599
|
+
ring r=0,(X,Y,Z),dp;
|
|
600
|
+
module p1 =[1,Y,Z]; //represents the poly Y*Z
|
|
601
|
+
module p2 =[1,Y,Z,X]; //represents the poly Y*Z*X
|
|
602
|
+
module p3 =[1,Y,Z,Z,X,Z];
|
|
603
|
+
module p4 =[1,Y,Z,Z,Z,X,Z];
|
|
604
|
+
module p5 =[1,Y,Z,Z,Z,Z,X,Z];
|
|
605
|
+
module p6 =[1,Y,Z,Z,Z,Z,Z,X,Z];
|
|
606
|
+
module p7 =[1,Y,Z,Z,Z,Z,Z,Z,X,Z];
|
|
607
|
+
module p8 =[1,Y,Z,Z,Z,Z,Z,Z,Z,X,Z];
|
|
608
|
+
list l1=list(p1,p2,p3,p4,p5,p6,p7,p8);
|
|
609
|
+
nchilb(l1,10);
|
|
610
|
+
|
|
611
|
+
ring r2=0,(x,y,z),dp;
|
|
612
|
+
|
|
613
|
+
module p1=[1,y,z],[-1,z,y]; //y*z-z*y
|
|
614
|
+
module p2=[1,x,z,x],[-1,z,x,z]; // x*z*x-z*x*z
|
|
615
|
+
module p3=[1,x,z,z,x,z],[-1,z,x,z,z,x]; // x*z^2*x*z-z*x*z^2*x
|
|
616
|
+
module p4=[1,x,z,z,z,x,z],[-1,z,x,z,z,x,x]; // x*z^3*x*z-z*x*z^2*x^2
|
|
617
|
+
list l2=list(p1,p2,p3,p4);
|
|
618
|
+
|
|
619
|
+
nchilb(l2,6,1); //third argument '1' is for non-finitely generated case
|
|
620
|
+
|
|
621
|
+
ring r3=0,(a,b),dp;
|
|
622
|
+
module p1=[1,a,a,a];
|
|
623
|
+
module p2=[1,a,b,b];
|
|
624
|
+
module p3=[1,a,a,b];
|
|
625
|
+
|
|
626
|
+
list l3=list(p1,p2,p3);
|
|
627
|
+
nchilb(l3,5,2);//third argument '2' is to compute multi-graded HS
|
|
628
|
+
|
|
629
|
+
ring r4=0,(x,y,z),dp;
|
|
630
|
+
module p1=[1,x,z,y,z,x,z];
|
|
631
|
+
module p2=[1,x,z,x];
|
|
632
|
+
module p3=[1,x,z,y,z,z,x,z];
|
|
633
|
+
module p4=[1,y,z];
|
|
634
|
+
module p5=[1,x,z,z,x,z];
|
|
635
|
+
|
|
636
|
+
list l4=list(p1,p2,p3,p4,p5);
|
|
637
|
+
nchilb(l4,7,"p"); //third argument "p" is to print the details
|
|
638
|
+
// of the orbit and system
|
|
639
|
+
}
|
|
640
|
+
|
|
641
|
+
/*
|
|
642
|
+
// long orig example
|
|
643
|
+
ring r=0,(x,y,z),dp;
|
|
644
|
+
|
|
645
|
+
module p1=[1,y,z,z];
|
|
646
|
+
module p2=[1,y,y,z];
|
|
647
|
+
module p3=[1,x,z,z];
|
|
648
|
+
module p4=[1,x,z,y];
|
|
649
|
+
module p5=[1,x,y,z];
|
|
650
|
+
module p6=[1,x,y,y];
|
|
651
|
+
module p7=[1,x,x,z];
|
|
652
|
+
module p8=[1,x,x,y];
|
|
653
|
+
module p9=[1,y,z,y,z];
|
|
654
|
+
module p10=[1,y,z,x,z];
|
|
655
|
+
module p11=[1,y,z,x,y];
|
|
656
|
+
module p12=[1,x,z,x,z];
|
|
657
|
+
module p13=[1,x,z,x,y];
|
|
658
|
+
module p14=[1,x,y,x,z];
|
|
659
|
+
module p15=[1,x,y,x,y];
|
|
660
|
+
module p16=[1,y,z,y,x,z];
|
|
661
|
+
module p17=[1,y,z,y,x,y];
|
|
662
|
+
module p18=[1,y,z,y,y,x,z];
|
|
663
|
+
module p19=[1,y,z,y,y,x,y];
|
|
664
|
+
module p20=[1,y,z,y,y,y,x,z];
|
|
665
|
+
module p21=[1,y,z,y,y,y,x,y];
|
|
666
|
+
|
|
667
|
+
list l5=list(p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,
|
|
668
|
+
p14,p15,p16,p17,p18,p19,p20,p21);
|
|
669
|
+
nchilb(l5,7,1,2,"p");
|
|
670
|
+
|
|
671
|
+
nchilb(l5,7,1,2,11,"p");
|
|
672
|
+
//'11' is to compute the truncated HS up to degree 10.
|
|
673
|
+
}
|
|
674
|
+
*/
|
|
675
|
+
|
|
676
|
+
|
|
677
|
+
// original version of the procedure
|
|
678
|
+
proc rcolon(list L_wp, module W, int d)
|
|
679
|
+
"USAGE: rcolon(list of relations, a monomial, an integer);
|
|
680
|
+
L is a list of modules (each module represents a monomial),
|
|
681
|
+
w is a monomail
|
|
682
|
+
d is an integer for the degree bound (maximal total degree of
|
|
683
|
+
monomials of the generating set of the input monomial ideal),
|
|
684
|
+
NOTE : A two-sided monomial ideal and a monomial w for the input should be given
|
|
685
|
+
in a special form. This form is a list of modules, where the generator
|
|
686
|
+
of every module represents a monomial times a coefficient in the free
|
|
687
|
+
associative algebra. The first entry, in each generator, represents a
|
|
688
|
+
coefficient, that is 1, and every next entry is a variable.
|
|
689
|
+
|
|
690
|
+
Ex: module p1=[1,y,z], represents the monomial y*z;
|
|
691
|
+
module p2=[1,x,z,x], represents the monomial x*z*x
|
|
692
|
+
for more details about the input, see examples.
|
|
693
|
+
EXAMPLE: example rcolon; shows an example "
|
|
694
|
+
{
|
|
695
|
+
|
|
696
|
+
if (d<1)
|
|
697
|
+
{
|
|
698
|
+
ERROR("bad degree bound");
|
|
699
|
+
}
|
|
700
|
+
|
|
701
|
+
def save = basering;
|
|
702
|
+
int lV=nvars(save);
|
|
703
|
+
int i;
|
|
704
|
+
def R = makeLetterplaceRing(2*d);
|
|
705
|
+
setring R;
|
|
706
|
+
ideal I;
|
|
707
|
+
poly p; poly q=0;
|
|
708
|
+
setring save;
|
|
709
|
+
module M;
|
|
710
|
+
int k,sw,slm;
|
|
711
|
+
vector w; poly pc=0;
|
|
712
|
+
intvec v;
|
|
713
|
+
slm = size(L_wp); // number of words in the given ideal
|
|
714
|
+
for (i=1; i<=slm; i++)
|
|
715
|
+
{
|
|
716
|
+
M = L_wp[i];
|
|
717
|
+
w = M[1];
|
|
718
|
+
sw = size(w);
|
|
719
|
+
for (k=2; k<=sw; k++)
|
|
720
|
+
{
|
|
721
|
+
v[k-1]=rvar(w[k]);
|
|
722
|
+
}
|
|
723
|
+
pc=w[1];
|
|
724
|
+
setring R;
|
|
725
|
+
p=imap(save,pc);
|
|
726
|
+
for (k=2; k<=sw; k++)
|
|
727
|
+
{
|
|
728
|
+
p=p*var(v[k-1]+(k-2)*lV);
|
|
729
|
+
}
|
|
730
|
+
q=q+p;
|
|
731
|
+
I = I,q; //lp-monomial added to I
|
|
732
|
+
q=0; //ready for the next monomial
|
|
733
|
+
setring save;
|
|
734
|
+
}
|
|
735
|
+
//=====lp-format for W==============
|
|
736
|
+
w=W[1];
|
|
737
|
+
sw = size(w);
|
|
738
|
+
for (k=2; k<=sw; k++)
|
|
739
|
+
{
|
|
740
|
+
v[k-1]=rvar(w[k]);
|
|
741
|
+
}
|
|
742
|
+
pc=w[1];
|
|
743
|
+
setring R;
|
|
744
|
+
poly wc=imap(save,pc);
|
|
745
|
+
for (k=2; k<=sw; k++)
|
|
746
|
+
{
|
|
747
|
+
wc=wc*var(v[k-1]+(k-2)*lV);
|
|
748
|
+
}
|
|
749
|
+
I=simplify(I,2);
|
|
750
|
+
//
|
|
751
|
+
ideal J = system("rcolon", I, wc, lV);
|
|
752
|
+
if(J==1)
|
|
753
|
+
{"<1>"}
|
|
754
|
+
else{
|
|
755
|
+
//lp2lstr(J,save);
|
|
756
|
+
J;
|
|
757
|
+
//lst2str(@LN, 1);
|
|
758
|
+
"+ generators of the given ideal;";}
|
|
759
|
+
setring save;
|
|
760
|
+
}
|
|
761
|
+
example
|
|
762
|
+
{
|
|
763
|
+
"EXAMPLE:"; echo = 2;
|
|
764
|
+
|
|
765
|
+
ring r=0,(X,Y,Z),dp;
|
|
766
|
+
module w =[1,Y];
|
|
767
|
+
module p1 =[1,Y,Z];
|
|
768
|
+
module p2 =[1,Y,Z,X];
|
|
769
|
+
module p3 =[1,Y,Z,Z,X,Z];
|
|
770
|
+
module p4 =[1,Y,Z,Z,Z,X,Z];
|
|
771
|
+
module p5 =[1,Y,Z,Z,Z,Z,X,Z];
|
|
772
|
+
module p6 =[1,Y,Z,Z,Z,Z,Z,X,Z];
|
|
773
|
+
module p7 =[1,Y,Z,Z,Z,Z,Z,Z,X,Z];
|
|
774
|
+
module p8 =[1,Y,Z,Z,Z,Z,Z,Z,Z,X,Z];
|
|
775
|
+
list l1=list(p1,p2,p3,p4,p5,p6,p7,p8);
|
|
776
|
+
rcolon(l1,w,10);
|
|
777
|
+
}
|