passagemath-singular 10.6.31rc3__cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_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-gnu.so +0 -0
- passagemath_singular-10.6.31rc3.dist-info/METADATA +183 -0
- passagemath_singular-10.6.31rc3.dist-info/RECORD +491 -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-20aec911.4.1.so +0 -0
- passagemath_singular.libs/libcddgmp-21acf0c6.so.0.1.3 +0 -0
- passagemath_singular.libs/libfactory-4-fcee31da.4.1.so +0 -0
- passagemath_singular.libs/libflint-66e12231.so.21.0.0 +0 -0
- passagemath_singular.libs/libgf2x-a4cdec90.so.3.0.0 +0 -0
- passagemath_singular.libs/libgfortran-83c28eba.so.5.0.0 +0 -0
- passagemath_singular.libs/libgmp-6e109695.so.10.5.0 +0 -0
- passagemath_singular.libs/libgsl-cda90e79.so.28.0.0 +0 -0
- passagemath_singular.libs/libmpfr-82690d50.so.6.2.1 +0 -0
- passagemath_singular.libs/libntl-e6f0d543.so.44.0.1 +0 -0
- passagemath_singular.libs/libomalloc-0-5c9e866e.9.6.so +0 -0
- passagemath_singular.libs/libopenblasp-r0-6dcb67f9.3.29.so +0 -0
- passagemath_singular.libs/libpolys-4-5c0a87e0.4.1.so +0 -0
- passagemath_singular.libs/libquadmath-2284e583.so.0.0.0 +0 -0
- passagemath_singular.libs/libreadline-ea270e21.so.8.2 +0 -0
- passagemath_singular.libs/libsingular_resources-4-a1aafc6d.4.1.so +0 -0
- passagemath_singular.libs/libtinfo-ceb117d9.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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-linux-gnu.so +0 -0
- sage/algebras/quatalg/quaternion_algebra_cython.pyx +261 -0
- sage/algebras/quatalg/quaternion_algebra_element.cpython-314-x86_64-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-x86_64-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-x86_64-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-x86_64-linux-gnu.so +0 -0
- sage/libs/singular/option.pyx +671 -0
- sage/libs/singular/polynomial.cpython-314-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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-x86_64-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,772 @@
|
|
|
1
|
+
//////////////////////////////////////////////////////////////////////////
|
|
2
|
+
version="version realizationMatroids.lib 4.1.2.0 Feb_2019 "; // $Id: 72e390b11d399319ac080179bd006435bcb1b9f0 $
|
|
3
|
+
category="Tropical Geometry";
|
|
4
|
+
info="
|
|
5
|
+
LIBRARY: realizationMatroids.lib Deciding Relative Realizability for Tropical Fan Curves in 2-Dimensional Matroidal Fans
|
|
6
|
+
AUTHORS: Anna Lena Winstel, winstel@mathematik.uni-kl.de
|
|
7
|
+
OVERVIEW: In tropical geometry, one question to ask is the following: given a one-dimensional balanced polyhedral fan C which is set theoretically contained in the tropicalization trop(Y) of an algebraic variety Y, does there exist a curve X in Y such that trop(X) = C? This equality of C and trop(X) denotes an equality of both, the fans trop(X) and C and their weights on the maximal cones. The relative realization space of C with respect to Y is the space of all algebraic curves in Y which tropicalize to C.
|
|
8
|
+
|
|
9
|
+
This library provides procedures deciding relative realizability for tropical fan curves, i.e. one-dimensional weighted balanced polyhedral fans, contained in two-dimensional matroidal fans trop(Y) where Y is a projective plane.
|
|
10
|
+
|
|
11
|
+
NOTATION: If Y is a projective plane in (n-1)-dimensional projective space, we consider trop(Y) in R^n/<1>. Moreover, for the relative realization space of C with respect to Y we only consider algebraic curves of degree deg(C) in Y which tropicalize to C.
|
|
12
|
+
|
|
13
|
+
PROCEDURES:
|
|
14
|
+
|
|
15
|
+
realizationDim(I,C); For a given tropical fan curve C in trop(Y), where Y = V(I) is a projective plane, this routine returns the dimension of the relative realization space of C with respect to Y, that is the space of all algebraic curves of degree deg(C) in Y which tropicalize to C. If the realization space is empty, the output is set to -1.
|
|
16
|
+
|
|
17
|
+
irrRealizationDim(I,C); This routine returns the dimension of the irreducible relative realization space of the tropical fan curve C with respect to Y = V(I), that is the space of all irreducible algebraic curves of degree deg(C) in Y which tropicalize to C. If the irreducible relative realization space is empty, the output is set to -1.
|
|
18
|
+
|
|
19
|
+
realizationDimPoly(I,C); If C is a tropical fan curve contained in the tropicalization trop(Y) of the projective plane Y = V(I) such that the relative realization space M of C is non-empty, this routine returns the tuple (dim(M),f) where f is an example of a homogeneous polynomial of degree deg(C) cutting out a curve X in Y which tropicalizes to C. If M is empty, the output is set to -1.
|
|
20
|
+
|
|
21
|
+
";
|
|
22
|
+
|
|
23
|
+
LIB "control.lib";
|
|
24
|
+
LIB "qhmoduli.lib";
|
|
25
|
+
|
|
26
|
+
static proc gcdvector(intvec v)
|
|
27
|
+
{
|
|
28
|
+
int i;
|
|
29
|
+
int ggt = 0;
|
|
30
|
+
for(i=1;i<=size(v);i++)
|
|
31
|
+
{
|
|
32
|
+
ggt = gcd(ggt,v[i]);
|
|
33
|
+
if( ggt == 1 )
|
|
34
|
+
{
|
|
35
|
+
return(ggt);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return(ggt);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
static proc balanced(list lInput)
|
|
42
|
+
{
|
|
43
|
+
list ba;
|
|
44
|
+
int i;
|
|
45
|
+
int j;
|
|
46
|
+
if(size(lInput)>0)
|
|
47
|
+
{
|
|
48
|
+
for(i=1;i<=size(lInput[1]);i++)
|
|
49
|
+
{
|
|
50
|
+
ba[i] = 0;
|
|
51
|
+
for(j=1;j<=size(lInput);j++)
|
|
52
|
+
{
|
|
53
|
+
ba[i] = ba[i] + lInput[j][i];
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
int boolean = 1;
|
|
57
|
+
for(i=2;i<=size(ba);i++)
|
|
58
|
+
{
|
|
59
|
+
if(ba[i] != ba[1])
|
|
60
|
+
{
|
|
61
|
+
boolean = 0;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
if(boolean == 1)
|
|
65
|
+
{
|
|
66
|
+
return(ba[1]);
|
|
67
|
+
}
|
|
68
|
+
else
|
|
69
|
+
{
|
|
70
|
+
return(0);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
else
|
|
74
|
+
{
|
|
75
|
+
return(0);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
static proc genPoly(int d, int i, int j, int k)
|
|
80
|
+
{
|
|
81
|
+
int ii;
|
|
82
|
+
int ij;
|
|
83
|
+
int ik = 1;
|
|
84
|
+
poly f = 0;
|
|
85
|
+
for(ii=0;ii<=d;ii++)
|
|
86
|
+
{
|
|
87
|
+
for(ij=0;ij<=d-ii;ij++)
|
|
88
|
+
{
|
|
89
|
+
f = f + a(ik)*x(i)^(d-ii-ij)*x(j)^ij*x(k)^ii;
|
|
90
|
+
ik = ik + 1;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return(f);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
static proc prodvar(int n)
|
|
97
|
+
{
|
|
98
|
+
int i;
|
|
99
|
+
poly f = 1;
|
|
100
|
+
for(i=1;i<=n;i++)
|
|
101
|
+
{
|
|
102
|
+
f = f * x(i);
|
|
103
|
+
}
|
|
104
|
+
return(f);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
static proc lessThan(int i, int j, intvec v, intvec w)
|
|
108
|
+
{
|
|
109
|
+
number a = v[i];
|
|
110
|
+
number b = v[j];
|
|
111
|
+
number c = w[i];
|
|
112
|
+
number d = w[j];
|
|
113
|
+
if((a/b)<(c/d))
|
|
114
|
+
{ return(1); }
|
|
115
|
+
else
|
|
116
|
+
{ return(0); }
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
static proc sortSlope(int i, int j, list lInput)
|
|
120
|
+
{
|
|
121
|
+
int k;
|
|
122
|
+
int l;
|
|
123
|
+
intvec v;
|
|
124
|
+
for(k=1;k<size(lInput);k++)
|
|
125
|
+
{
|
|
126
|
+
for(l=1;l<=size(lInput)-k;l++)
|
|
127
|
+
{
|
|
128
|
+
if(lessThan(i,j,lInput[l+1],lInput[l]))
|
|
129
|
+
{
|
|
130
|
+
v = lInput[l];
|
|
131
|
+
lInput[l] = lInput[l+1];
|
|
132
|
+
lInput[l+1] = v;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
return(lInput);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
static proc coefMonomial(poly f, poly g, int n)
|
|
140
|
+
{
|
|
141
|
+
matrix m = coef(f,prodvar(n));
|
|
142
|
+
poly h;
|
|
143
|
+
for(int i=1;i<=ncols(m);i++)
|
|
144
|
+
{
|
|
145
|
+
if(m[1,i] == g)
|
|
146
|
+
{
|
|
147
|
+
h = m[2,i];
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
return(h);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
static proc ismultiple(intvec v, intvec w)
|
|
154
|
+
{
|
|
155
|
+
int boolean = 1;
|
|
156
|
+
if(v[1] != 0)
|
|
157
|
+
{
|
|
158
|
+
if((number(w[2]) == number(v[2])*number(w[1])/number(v[1])) and (number(w[3]) == number(v[3])*number(w[1])/number(v[1])))
|
|
159
|
+
{
|
|
160
|
+
return(1);
|
|
161
|
+
}
|
|
162
|
+
else
|
|
163
|
+
{
|
|
164
|
+
return(0);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
else
|
|
168
|
+
{
|
|
169
|
+
if(v[2] != 0)
|
|
170
|
+
{
|
|
171
|
+
if((number(w[1]) == number(v[1])*number(w[2])/number(v[2])) and (number(w[3]) == number(v[3])*number(w[2])/number(v[2])))
|
|
172
|
+
{
|
|
173
|
+
return(1);
|
|
174
|
+
}
|
|
175
|
+
else
|
|
176
|
+
{
|
|
177
|
+
return(0);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
else
|
|
181
|
+
{
|
|
182
|
+
if((w[2] == 0) and (w[1] == 0))
|
|
183
|
+
{
|
|
184
|
+
return(1);
|
|
185
|
+
}
|
|
186
|
+
else
|
|
187
|
+
{
|
|
188
|
+
return(0);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
static proc simplifyList(list lInput);
|
|
195
|
+
{
|
|
196
|
+
int i;
|
|
197
|
+
int k = size(lInput);
|
|
198
|
+
for(i=1;i<=k;i++)
|
|
199
|
+
{
|
|
200
|
+
if(lInput[i] == intvec(0,0,0))
|
|
201
|
+
{
|
|
202
|
+
lInput = delete(lInput,i);
|
|
203
|
+
k = k-1;
|
|
204
|
+
i = i-1;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
k = size(lInput);
|
|
208
|
+
int j;
|
|
209
|
+
for(i=1;i<k;i++)
|
|
210
|
+
{
|
|
211
|
+
for(j=i+1;j<=k;j++)
|
|
212
|
+
{
|
|
213
|
+
if(ismultiple(lInput[i],lInput[j]))
|
|
214
|
+
{
|
|
215
|
+
lInput[i] = lInput[i] + lInput[j];
|
|
216
|
+
lInput = delete(lInput,j);
|
|
217
|
+
j = j-1;
|
|
218
|
+
k = k-1;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
return(lInput);
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
static proc realizationDimIdeal(ideal iInput, list lInput)
|
|
226
|
+
{
|
|
227
|
+
//normalize the vectors
|
|
228
|
+
intvec helpintvec = 1;
|
|
229
|
+
int i;
|
|
230
|
+
int c;
|
|
231
|
+
for(i=1;i<size(lInput[1]);i++)
|
|
232
|
+
{
|
|
233
|
+
helpintvec = helpintvec,1;
|
|
234
|
+
}
|
|
235
|
+
for(i=1;i<=size(lInput);i++)
|
|
236
|
+
{
|
|
237
|
+
lInput[i] = lInput[i] - Min(lInput[i])*helpintvec;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
//check if the curve is balanced and compute its degree
|
|
241
|
+
int d = balanced(lInput);
|
|
242
|
+
if(d == 0)
|
|
243
|
+
{
|
|
244
|
+
printf("The curve is not balanced.");
|
|
245
|
+
return(-2);
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
//change basering, store the actual basering in a variable
|
|
249
|
+
def save = basering;
|
|
250
|
+
int n = size(lInput[1]);
|
|
251
|
+
int N = (d+2)*(d+1) div 2;
|
|
252
|
+
ring r1;
|
|
253
|
+
ring r = 0,(x(1..n),a(1..N),t),dp;
|
|
254
|
+
setring r;
|
|
255
|
+
ideal I = fetch(save,iInput);
|
|
256
|
+
I = std(I);
|
|
257
|
+
|
|
258
|
+
if(dim(I) != (4+N))
|
|
259
|
+
{
|
|
260
|
+
printf("The ideal is not defining a projective plane.");
|
|
261
|
+
return(-2);
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
//for any three variables, compute the projection
|
|
265
|
+
int i2;
|
|
266
|
+
int i3;
|
|
267
|
+
int i4;
|
|
268
|
+
int j;
|
|
269
|
+
int k;
|
|
270
|
+
int l;
|
|
271
|
+
int i_w;
|
|
272
|
+
int good;
|
|
273
|
+
int i_good = 0;
|
|
274
|
+
list P;
|
|
275
|
+
intvec v;
|
|
276
|
+
intvec w;
|
|
277
|
+
ideal E;
|
|
278
|
+
list NE;
|
|
279
|
+
list S1;
|
|
280
|
+
list S2;
|
|
281
|
+
list S3;
|
|
282
|
+
poly h;
|
|
283
|
+
poly g;
|
|
284
|
+
poly coefMon;
|
|
285
|
+
matrix F;
|
|
286
|
+
matrix G;
|
|
287
|
+
list listunitvec;
|
|
288
|
+
v = 1;
|
|
289
|
+
for(i=2;i<=n+N+1;i++)
|
|
290
|
+
{
|
|
291
|
+
v = v,0;
|
|
292
|
+
}
|
|
293
|
+
listunitvec = list(v);
|
|
294
|
+
for(i=2;i<=n;i++)
|
|
295
|
+
{
|
|
296
|
+
v = 0;
|
|
297
|
+
for(j=2;j<=n+N+1;j++)
|
|
298
|
+
{
|
|
299
|
+
if(i != j)
|
|
300
|
+
{
|
|
301
|
+
v = v,0;
|
|
302
|
+
}
|
|
303
|
+
else
|
|
304
|
+
{
|
|
305
|
+
v = v,1;
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
listunitvec = listunitvec + list(v);
|
|
309
|
+
}
|
|
310
|
+
intmat M[n+N+1][n+N+1];
|
|
311
|
+
for(i=n+1;i<=n+N+1;i++)
|
|
312
|
+
{
|
|
313
|
+
M[i,i] = 1;
|
|
314
|
+
}
|
|
315
|
+
int i_start;
|
|
316
|
+
list luv1;
|
|
317
|
+
intmat M1[n+N+1][n+N+1];
|
|
318
|
+
for(i=1;i<=n-2;i++)
|
|
319
|
+
{
|
|
320
|
+
for(j=i+1;j<=n-1;j++)
|
|
321
|
+
{
|
|
322
|
+
for(k=j+1;k<=n;k++)
|
|
323
|
+
{
|
|
324
|
+
//compute the algebraic projection
|
|
325
|
+
luv1 = listunitvec;
|
|
326
|
+
luv1 = delete(luv1,k);
|
|
327
|
+
luv1 = delete(luv1,j);
|
|
328
|
+
luv1 = delete(luv1,i);
|
|
329
|
+
luv1 = luv1 + list(listunitvec[i],listunitvec[j],listunitvec[k]);
|
|
330
|
+
M1 = M;
|
|
331
|
+
for(l=1;l<=size(luv1);l++)
|
|
332
|
+
{
|
|
333
|
+
M1[l,1..(n+N+1)] = luv1[l];
|
|
334
|
+
}
|
|
335
|
+
r1 = ring(0,(x(1..n),a(1..N),t),M(M1));
|
|
336
|
+
setring r1;
|
|
337
|
+
ideal Ir1 = fetch(r,I);
|
|
338
|
+
Ir1 = std(Ir1);
|
|
339
|
+
//check if this projection is "good"
|
|
340
|
+
good = 1;
|
|
341
|
+
ideal Ii = x(i);
|
|
342
|
+
ideal Ij = x(j);
|
|
343
|
+
ideal Ik = x(k);
|
|
344
|
+
for(l=1;l<=size(Ir1);l++)
|
|
345
|
+
{
|
|
346
|
+
if((reduce(lead(Ir1[l]),Ii) == 0) or (reduce(lead(Ir1[l]),Ij) == 0) or (reduce(lead(Ir1[l]),Ik) == 0))
|
|
347
|
+
{
|
|
348
|
+
good = 0;
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
if(good == 1)
|
|
352
|
+
{
|
|
353
|
+
//for the first "good" projection, initialise the general polynomial f
|
|
354
|
+
if(i_good == 0)
|
|
355
|
+
{
|
|
356
|
+
setring r;
|
|
357
|
+
poly f = genPoly(d,i,j,k);
|
|
358
|
+
setring r1;
|
|
359
|
+
i_good = 1;
|
|
360
|
+
intvec vgood = i,j,k;
|
|
361
|
+
}
|
|
362
|
+
poly fr1 = fetch(r,f);
|
|
363
|
+
poly hr1 = reduce(fr1,Ir1);
|
|
364
|
+
setring r;
|
|
365
|
+
h = fetch(r1,hr1);
|
|
366
|
+
//compute the tropical projection
|
|
367
|
+
P = list();
|
|
368
|
+
for(l=1;l<=size(lInput);l++)
|
|
369
|
+
{
|
|
370
|
+
v = lInput[l][i],lInput[l][j],lInput[l][k];
|
|
371
|
+
P[l] = v;
|
|
372
|
+
}
|
|
373
|
+
P = simplifyList(P);
|
|
374
|
+
//collect the conditions coming from the Newton polytopes
|
|
375
|
+
S1 = list();
|
|
376
|
+
S2 = list();
|
|
377
|
+
S3 = list();
|
|
378
|
+
for(l=1;l<=size(P);l++)
|
|
379
|
+
{
|
|
380
|
+
if((P[l][1] != 0) and (P[l][2] != 0))
|
|
381
|
+
{ S3 = S3 + list(P[l]); }
|
|
382
|
+
if((P[l][2] != 0) and (P[l][3] != 0))
|
|
383
|
+
{ S1 = S1 + list(P[l]); }
|
|
384
|
+
if((P[l][1] != 0) and (P[l][3] != 0))
|
|
385
|
+
{ S2 = S2 + list(P[l]); }
|
|
386
|
+
}
|
|
387
|
+
//sort the lists
|
|
388
|
+
S1 = sortSlope(3,2,S1);
|
|
389
|
+
S2 = sortSlope(1,3,S2);
|
|
390
|
+
S3 = sortSlope(2,1,S3);
|
|
391
|
+
//find conditions from S1
|
|
392
|
+
i_start = 0;
|
|
393
|
+
for(l=1;l<=size(S1);l++)
|
|
394
|
+
{
|
|
395
|
+
i_start = i_start + S1[l][2];
|
|
396
|
+
}
|
|
397
|
+
//find starting point
|
|
398
|
+
w = intvec(0,i_start);
|
|
399
|
+
coefMon = coefMonomial(h,x(k)^(w[2])*x(i)^(d-w[2]),n);
|
|
400
|
+
NE = NE + list(coefMon);
|
|
401
|
+
for(i2=1;i2<=size(S1);i2++)
|
|
402
|
+
{
|
|
403
|
+
w[1] = w[1] + S1[i2][3];
|
|
404
|
+
w[2] = w[2] - S1[i2][2];
|
|
405
|
+
coefMon = coefMonomial(h,x(k)^(w[2])*x(j)^(w[1])*x(i)^(d-w[1]-w[2]),n);
|
|
406
|
+
NE = NE + list(coefMon);
|
|
407
|
+
g = subst(h,x(j),x(j)*t^(S1[i2][2]),x(k),x(k)*t^(S1[i2][3]));
|
|
408
|
+
i_w = S1[i2][2]*w[1] + S1[i2][3]*w[2];
|
|
409
|
+
F = coeffs(g,t);
|
|
410
|
+
for(i3=1;i3<=i_w;i3++)
|
|
411
|
+
{
|
|
412
|
+
G = coef(F[i3,1],prodvar(n));
|
|
413
|
+
for(i4=1;i4<=ncols(G);i4++)
|
|
414
|
+
{
|
|
415
|
+
E = E + ideal(G[2,i4]);
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
//find conditions from S2
|
|
420
|
+
i_start = 0;
|
|
421
|
+
for(l=1;l<=size(S2);l++)
|
|
422
|
+
{
|
|
423
|
+
i_start = i_start + S2[l][3];
|
|
424
|
+
}
|
|
425
|
+
//find starting point
|
|
426
|
+
w = intvec(i_start,0);
|
|
427
|
+
coefMon = coefMonomial(h,x(i)^(w[1])*x(j)^(d-w[1]),n);
|
|
428
|
+
NE = NE + list(coefMon);
|
|
429
|
+
for(i2=1;i2<=size(S2);i2++)
|
|
430
|
+
{
|
|
431
|
+
w[1] = w[1] - S2[i2][3];
|
|
432
|
+
w[2] = w[2] + S2[i2][1];
|
|
433
|
+
coefMon = coefMonomial(h,x(i)^(w[1])*x(k)^(w[2])*x(j)^(d-w[1]-w[2]),n);
|
|
434
|
+
NE = NE + list(coefMon);
|
|
435
|
+
g = subst(h,x(i),x(i)*t^(S2[i2][1]),x(k),x(k)*t^(S2[i2][3]));
|
|
436
|
+
i_w = S2[i2][3]*w[2] + S2[i2][1]*w[1];
|
|
437
|
+
F = coeffs(g,t);
|
|
438
|
+
for(i3=1;i3<=i_w;i3++)
|
|
439
|
+
{
|
|
440
|
+
G = coef(F[i3,1],prodvar(n));
|
|
441
|
+
for(i4=1;i4<=ncols(G);i4++)
|
|
442
|
+
{
|
|
443
|
+
E = E + ideal(G[2,i4]);
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
//find conditions from S3
|
|
448
|
+
i_start = 0;
|
|
449
|
+
for(l=1;l<=size(S3);l++)
|
|
450
|
+
{
|
|
451
|
+
i_start = i_start + S3[l][1];
|
|
452
|
+
}
|
|
453
|
+
//find starting point
|
|
454
|
+
w = intvec(0,i_start);
|
|
455
|
+
coefMon = coefMonomial(h,x(j)^(w[2])*x(k)^(d-w[2]),n);
|
|
456
|
+
NE = NE + list(coefMon);
|
|
457
|
+
for(i2=1;i2<=size(S3);i2++)
|
|
458
|
+
{
|
|
459
|
+
w[1] = w[1] + S3[i2][2];
|
|
460
|
+
w[2] = w[2] - S3[i2][1];
|
|
461
|
+
coefMon = coefMonomial(h,x(i)^(w[1])*x(j)^(w[2])*x(k)^(d-w[1]-w[2]),n);
|
|
462
|
+
NE = NE + list(coefMon);
|
|
463
|
+
g = subst(h,x(i),x(i)*t^(S3[i2][1]),x(j),x(j)*t^(S3[i2][2]));
|
|
464
|
+
i_w = S3[i2][2]*w[2] + S3[i2][1]*w[1];
|
|
465
|
+
F = coeffs(g,t);
|
|
466
|
+
for(i3=1;i3<=i_w;i3++)
|
|
467
|
+
{
|
|
468
|
+
G = coef(F[i3,1],prodvar(n));
|
|
469
|
+
for(i4=1;i4<=ncols(G);i4++)
|
|
470
|
+
{
|
|
471
|
+
E = E + ideal(G[2,i4]);
|
|
472
|
+
}
|
|
473
|
+
}
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
//check whether or not there is a common solution
|
|
481
|
+
setring r;
|
|
482
|
+
int isRealizable = 1;
|
|
483
|
+
E = std(E);
|
|
484
|
+
int i_dim = dim(E)-n-2;
|
|
485
|
+
for(i=1;i<=size(NE);i++)
|
|
486
|
+
{
|
|
487
|
+
if(reduce(NE[i],E) == 0)
|
|
488
|
+
{
|
|
489
|
+
isRealizable = 0;
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
|
|
493
|
+
if(isRealizable == 1)
|
|
494
|
+
{
|
|
495
|
+
setring save;
|
|
496
|
+
return(i_dim,fetch(r,E),fetch(r,NE),vgood);
|
|
497
|
+
}
|
|
498
|
+
else
|
|
499
|
+
{
|
|
500
|
+
return(-1);
|
|
501
|
+
}
|
|
502
|
+
}
|
|
503
|
+
|
|
504
|
+
proc realizationDim(ideal iInput, list lInput)
|
|
505
|
+
"USAGE: realizationDim(I,C); where I is a homogeneous linear ideal defining the projective plane Y = V(I) and C is a list of intvectors such that each intvector represents a one-dimensional cone in the tropical fan curve whose relative realizability should be checked. This representation is done in the following way: the one-dimensional cone K is represented by a vector w whose equivalence class [w] in R^n/<1> can be written as [w] = m*[v] where [v] is the primitive generator of K and m is the weight of K.
|
|
506
|
+
RETURNS: the dimension of the relative realization space of the tropical curve C with respect to Y, and -1 if the relative realization space is empty.
|
|
507
|
+
EXAMPLE: realizationDim; shows an example"
|
|
508
|
+
{
|
|
509
|
+
int ret = list(realizationDimIdeal(iInput,lInput))[1];
|
|
510
|
+
if(ret[1] == -2)
|
|
511
|
+
{
|
|
512
|
+
printf("WARNING: no computation possible, return value is not meaningful!");
|
|
513
|
+
return(-2);
|
|
514
|
+
}
|
|
515
|
+
else
|
|
516
|
+
{
|
|
517
|
+
return(ret);
|
|
518
|
+
}
|
|
519
|
+
}
|
|
520
|
+
example
|
|
521
|
+
{
|
|
522
|
+
"EXAMPLE:"; echo=2;
|
|
523
|
+
ring r = 0,(x(1..4)),dp;
|
|
524
|
+
ideal I = x(1)+x(2)+x(3)+x(4);
|
|
525
|
+
list C = list(intvec(2,2,0,0),intvec(0,0,2,1),intvec(0,0,0,1));
|
|
526
|
+
//C represents the tropical fan curve which consists of the cones
|
|
527
|
+
//cone([(1,1,0,0)]) (with weight 2), cone([(0,0,2,1)]) (with weight 1)
|
|
528
|
+
//and cone([(0,0,0,1)]) (with weight 1)
|
|
529
|
+
realizationDim(I,C);
|
|
530
|
+
}
|
|
531
|
+
|
|
532
|
+
proc irrRealizationDim(ideal iInput, list lInput)
|
|
533
|
+
"USAGE: irrRealizationDim(I,C); where I is a homogeneous linear ideal defining the projective plane Y = V(I) and C is a list of intvectors such that each intvector represents a one-dimensional cone in the tropical fan curve whose irreducible relative realizability should be checked. This representation is done in the following way: a one-dimensional cone K is represented by a vector w whose equivalence class [w] in R^n/<1> can be written as [w] = m*[v] where [v] is the primitive generator of K and m is the weight of K.
|
|
534
|
+
RETURNS: the dimension of the irreducible relative realization space of C with respect to Y, and -1 if the irreducible realization space is empty.
|
|
535
|
+
EXAMPLE: irrRealizationDim; shows an example"
|
|
536
|
+
{
|
|
537
|
+
int i;
|
|
538
|
+
int i_dim = realizationDim(iInput,lInput);
|
|
539
|
+
if(i_dim > -1)
|
|
540
|
+
{
|
|
541
|
+
//check if also realizable by an irreducible curve
|
|
542
|
+
list lweight;
|
|
543
|
+
int i_rdim = -1;
|
|
544
|
+
//substitute the vectors by a primitive one and store the multiplicities
|
|
545
|
+
for(i=1;i<=size(lInput);i++)
|
|
546
|
+
{
|
|
547
|
+
lweight[i] = gcdvector(lInput[i]);
|
|
548
|
+
lInput[i] = lInput[i] div lweight[i];
|
|
549
|
+
}
|
|
550
|
+
//find all decompositions into two tropical curves
|
|
551
|
+
intvec tm;
|
|
552
|
+
for(i=1;i<=size(lInput);i++)
|
|
553
|
+
{
|
|
554
|
+
tm[i] = 0;
|
|
555
|
+
}
|
|
556
|
+
int na;
|
|
557
|
+
list C1;
|
|
558
|
+
list C2;
|
|
559
|
+
int dimC1;
|
|
560
|
+
int dimC2;
|
|
561
|
+
while(na==0)
|
|
562
|
+
{
|
|
563
|
+
na = 1;
|
|
564
|
+
for(i=1;i<=size(lInput);i++)
|
|
565
|
+
{
|
|
566
|
+
if(tm[i] < lweight[i])
|
|
567
|
+
{
|
|
568
|
+
tm[i] = tm[i]+1;
|
|
569
|
+
na = 0;
|
|
570
|
+
i = size(lInput);
|
|
571
|
+
}
|
|
572
|
+
else
|
|
573
|
+
{
|
|
574
|
+
tm[i] = 0;
|
|
575
|
+
}
|
|
576
|
+
}
|
|
577
|
+
if(na == 0)
|
|
578
|
+
{
|
|
579
|
+
C1 = list();
|
|
580
|
+
C2 = list();
|
|
581
|
+
for(i=1;i<=size(lInput);i++)
|
|
582
|
+
{
|
|
583
|
+
if(tm[i] > 0)
|
|
584
|
+
{
|
|
585
|
+
C1 = C1 + list(tm[i]*lInput[i]);
|
|
586
|
+
if(tm[i] < lweight[i])
|
|
587
|
+
{
|
|
588
|
+
C2 = C2 + list((lweight[i]-tm[i])*lInput[i]);
|
|
589
|
+
}
|
|
590
|
+
}
|
|
591
|
+
else
|
|
592
|
+
{
|
|
593
|
+
C2 = C2 + list(lweight[i]*lInput[i]);
|
|
594
|
+
}
|
|
595
|
+
}
|
|
596
|
+
if((balanced(C2) != 0) and (balanced(C2) <= balanced(C1)))
|
|
597
|
+
{
|
|
598
|
+
dimC1 = realizationDim(iInput,C1);
|
|
599
|
+
dimC2 = realizationDim(iInput,C2);
|
|
600
|
+
if((dimC1 >= 0) and (dimC2 >= 0))
|
|
601
|
+
{
|
|
602
|
+
i_rdim = Max(intvec(i_rdim,dimC1 + dimC2));
|
|
603
|
+
}
|
|
604
|
+
}
|
|
605
|
+
}
|
|
606
|
+
}
|
|
607
|
+
if(i_rdim < i_dim)
|
|
608
|
+
{
|
|
609
|
+
return(i_dim);
|
|
610
|
+
}
|
|
611
|
+
else
|
|
612
|
+
{
|
|
613
|
+
return(-1);
|
|
614
|
+
}
|
|
615
|
+
}
|
|
616
|
+
else
|
|
617
|
+
{
|
|
618
|
+
return(-1);
|
|
619
|
+
}
|
|
620
|
+
}
|
|
621
|
+
example
|
|
622
|
+
{
|
|
623
|
+
"EXAMPLE:"; echo=2;
|
|
624
|
+
ring r = 0,(x(1..4)),dp;
|
|
625
|
+
ideal I = x(1)+x(2)+x(3)+x(4);
|
|
626
|
+
list C = list(intvec(2,2,0,0),intvec(0,0,2,2));
|
|
627
|
+
//C represents the tropical fan curve which consists of the cones
|
|
628
|
+
//cone([(1,1,0,0)]) and cone([(1,1,0,0)]), both with weight 2
|
|
629
|
+
realizationDim(I,C);
|
|
630
|
+
irrRealizationDim(I,C);
|
|
631
|
+
}
|
|
632
|
+
|
|
633
|
+
proc realizationDimPoly(ideal iInput, list lInput)
|
|
634
|
+
"USAGE: realizationDimPoly(I,C); where I is a homogeneous linear ideal defining the projective plane Y = V(I) and C is a list of intvectors such that each intvector represents a one-dimensional cone in the tropical fan curve whose relative realizability should be checked. This representation is done in the following way: the one-dimensional cone K is represented by a vector w whose equivalence class [w] in R^n/<1> can be written as [w] = m*[v] where [v] is the primitive generator of K and m is the weight of K.
|
|
635
|
+
RETURNS: If the relative realization space of the tropical fan curve C is non-empty, this routine returns the tuple (r,f), where r is the dimension of the relative realization space and f is an example of a homogeneous polynomial of degree deg(C) cutting out a curve X in Y which tropicalizes to C. In case the relative realization space is empty, the output is set to -1.
|
|
636
|
+
EXAMPLE: realizationDimPoly; shows an example"
|
|
637
|
+
{
|
|
638
|
+
def save = basering;
|
|
639
|
+
int d = balanced(lInput);
|
|
640
|
+
int n = size(lInput[1]);
|
|
641
|
+
int N = (d+2)*(d+1) div 2;
|
|
642
|
+
int i;
|
|
643
|
+
ring r = 0,(x(1..n),a(1..N)),dp;
|
|
644
|
+
list ret = realizationDimIdeal(fetch(save,iInput),lInput);
|
|
645
|
+
int realdim = ret[1];
|
|
646
|
+
if(realdim != -1)
|
|
647
|
+
{
|
|
648
|
+
ideal E = ret[2];
|
|
649
|
+
list NE = ret[3];
|
|
650
|
+
E = std(E);
|
|
651
|
+
//find variables which are free to choose
|
|
652
|
+
intvec v;
|
|
653
|
+
for(i=1;i<=size(E);i++)
|
|
654
|
+
{
|
|
655
|
+
v = v + leadexp(E[i]);
|
|
656
|
+
}
|
|
657
|
+
int j;
|
|
658
|
+
int k;
|
|
659
|
+
int boolean;
|
|
660
|
+
ideal E1;
|
|
661
|
+
list NE1;
|
|
662
|
+
poly f;
|
|
663
|
+
poly g;
|
|
664
|
+
//initialize the list of the free variables
|
|
665
|
+
list lValues;
|
|
666
|
+
if(size(v) > 1)
|
|
667
|
+
{
|
|
668
|
+
for(j=1;j<=N;j++)
|
|
669
|
+
{
|
|
670
|
+
if(v[j+n] == 0)
|
|
671
|
+
{
|
|
672
|
+
lValues = lValues + list(list(a(j),0));
|
|
673
|
+
}
|
|
674
|
+
}
|
|
675
|
+
}
|
|
676
|
+
else
|
|
677
|
+
{
|
|
678
|
+
for(j=1;j<=N;j++)
|
|
679
|
+
{
|
|
680
|
+
lValues = lValues + list(list(a(j),0));
|
|
681
|
+
}
|
|
682
|
+
}
|
|
683
|
+
//try to find an easy solution
|
|
684
|
+
boolean = 1;
|
|
685
|
+
for(j=1;j<=size(lValues);j++)
|
|
686
|
+
{
|
|
687
|
+
if(boolean == 1)
|
|
688
|
+
{
|
|
689
|
+
lValues[j][2] = 0;
|
|
690
|
+
}
|
|
691
|
+
else
|
|
692
|
+
{
|
|
693
|
+
lValues[j][2] = lValues[j][2] + 1;
|
|
694
|
+
}
|
|
695
|
+
boolean = 1;
|
|
696
|
+
E1 = E;
|
|
697
|
+
for(i=1;i<=size(E1);i++)
|
|
698
|
+
{
|
|
699
|
+
for(k=1;k<=j;k++)
|
|
700
|
+
{
|
|
701
|
+
E1[i] = subst(E1[i],lValues[k][1],lValues[k][2]);
|
|
702
|
+
}
|
|
703
|
+
}
|
|
704
|
+
NE1 = NE;
|
|
705
|
+
for(i=1;i<=size(NE);i++)
|
|
706
|
+
{
|
|
707
|
+
for(k=1;k<=j;k++)
|
|
708
|
+
{
|
|
709
|
+
NE1[i] = subst(NE1[i],lValues[k][1],lValues[k][2]);
|
|
710
|
+
}
|
|
711
|
+
}
|
|
712
|
+
E1 = std(E1);
|
|
713
|
+
for(i=1;i<=size(NE1);i++)
|
|
714
|
+
{
|
|
715
|
+
if(reduce(NE1[i],E1) == 0)
|
|
716
|
+
{
|
|
717
|
+
boolean = 0;
|
|
718
|
+
}
|
|
719
|
+
}
|
|
720
|
+
if(boolean == 0)
|
|
721
|
+
{
|
|
722
|
+
j = j-1;
|
|
723
|
+
}
|
|
724
|
+
}
|
|
725
|
+
//compute the values of the dependent variables
|
|
726
|
+
for(j=1;j<=size(E);j++)
|
|
727
|
+
{
|
|
728
|
+
f = E[j];
|
|
729
|
+
for(k=1;k<=size(lValues);k++)
|
|
730
|
+
{
|
|
731
|
+
f = subst(f,lValues[k][1],lValues[k][2]);
|
|
732
|
+
}
|
|
733
|
+
if(leadcoef(f) != 1)
|
|
734
|
+
{
|
|
735
|
+
for(k=1;k<=size(lValues);k++)
|
|
736
|
+
{
|
|
737
|
+
lValues[k][2] = lValues[k][2] * leadcoef(f);
|
|
738
|
+
}
|
|
739
|
+
}
|
|
740
|
+
f = subst(f,leadmonom(f),0);
|
|
741
|
+
lValues = lValues + list(list(leadmonom(E[j]),-f));
|
|
742
|
+
}
|
|
743
|
+
g = genPoly(d,ret[4][1],ret[4][2],ret[4][3]);
|
|
744
|
+
for(j=1;j<=N;j++)
|
|
745
|
+
{
|
|
746
|
+
g = subst(g,lValues[j][1],lValues[j][2]);
|
|
747
|
+
}
|
|
748
|
+
setring save;
|
|
749
|
+
return(realdim,fetch(r,g));
|
|
750
|
+
}
|
|
751
|
+
else
|
|
752
|
+
{
|
|
753
|
+
return(-1);
|
|
754
|
+
}
|
|
755
|
+
}
|
|
756
|
+
example
|
|
757
|
+
{
|
|
758
|
+
"EXAMPLE:"; echo=2;
|
|
759
|
+
ring r = 0,(x(1..4)),dp;
|
|
760
|
+
ideal I = x(1)+x(2)+x(3)+x(4);
|
|
761
|
+
list C = list(intvec(2,2,0,0),intvec(0,0,2,2));
|
|
762
|
+
//C represents the tropical fan curve which consists of the cones
|
|
763
|
+
//cone([(1,1,0,0)]) and cone([(1,1,0,0)]), both with weight 2
|
|
764
|
+
realizationDimPoly(I,C);
|
|
765
|
+
C = list(intvec(0,0,0,4),intvec(0,1,3,0),intvec(1,0,1,0),intvec(0,2,0,0),intvec(3,1,0,0));
|
|
766
|
+
//C represents the tropical fan curve which consists of the cones
|
|
767
|
+
//cone([(0,0,0,1)]) with weight 4,
|
|
768
|
+
//cone([(0,1,3,0)]), cone([(1,0,1,0)]) both with weight 1,
|
|
769
|
+
//cone([(0,1,0,0)]) with weight 2, and
|
|
770
|
+
//cone([(3,1,0,0)]) with weight 1
|
|
771
|
+
realizationDimPoly(I,C);
|
|
772
|
+
}
|