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,789 @@
|
|
|
1
|
+
////////////////////////////////////////////////////////////////////////////
|
|
2
|
+
version="version resgraph.lib 4.1.2.0 Feb_2019 "; // $Id: 17dd959e9a046cc0539ae2bd9419db631b941273 $
|
|
3
|
+
category="Visualization";
|
|
4
|
+
info="
|
|
5
|
+
LIBRARY: resgraph.lib Visualization of Resolution Data
|
|
6
|
+
|
|
7
|
+
AUTHOR: A. Fruehbis-Krueger, anne@mathematik.uni-kl.de,
|
|
8
|
+
|
|
9
|
+
NOTE: This library uses the external programs surf, graphviz and imagemagick.
|
|
10
|
+
@* Input data is assumed to originate from resolve.lib and reszeta.lib
|
|
11
|
+
|
|
12
|
+
PROCEDURES:
|
|
13
|
+
InterDiv(M[,name]) dual graph of resolution of a surface (uses graphviz,imagemagick)
|
|
14
|
+
ResTree(L,M[,name]) tree of charts of resolution (uses graphviz,imagemagick)
|
|
15
|
+
finalCharts(L,...) pictures of final charts of surface (uses surf)
|
|
16
|
+
";
|
|
17
|
+
|
|
18
|
+
proc InterDiv(intmat M, list #)
|
|
19
|
+
"USAGE: InterDiv(M[,name]);
|
|
20
|
+
@* M = matrix
|
|
21
|
+
@* name = string
|
|
22
|
+
ASSUME: - M is first list entry of output of 'intersectionDiv'
|
|
23
|
+
@* from library reszeta.lib
|
|
24
|
+
@* - write permission in the current directory or in the
|
|
25
|
+
@* directory in which the file with name 'name' resides
|
|
26
|
+
CREATE: file 'name.jpg' containing dual graph of resolution
|
|
27
|
+
@* if filename is given
|
|
28
|
+
NOTE: only available on UNIX-type systems and programs
|
|
29
|
+
@* 'display' (imagemagick package) and 'dot' (Graphviz package) need to
|
|
30
|
+
@* be in the standard search PATH
|
|
31
|
+
RETURN: nothing, only generating graphics output in separate window
|
|
32
|
+
EXAMPLE: not available (for technical reasons)
|
|
33
|
+
"
|
|
34
|
+
{
|
|
35
|
+
"Warning: alpha testing version of this procedure";
|
|
36
|
+
int i,j;
|
|
37
|
+
string tempstr;
|
|
38
|
+
//---------------------------------------------------------------------------
|
|
39
|
+
// build up temporary filename and open file for writing
|
|
40
|
+
//---------------------------------------------------------------------------
|
|
41
|
+
if(size(#)>0)
|
|
42
|
+
{
|
|
43
|
+
if((typeof(#[1])=="string") && (goodFilename(#[1])))
|
|
44
|
+
{
|
|
45
|
+
string @filename=#[1];
|
|
46
|
+
}
|
|
47
|
+
else
|
|
48
|
+
{
|
|
49
|
+
ERROR("Second argument should specify a WRITABLE file");
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
if(!defined(@filename))
|
|
53
|
+
{
|
|
54
|
+
string @filename=buildFilename("InterDiv.dot");
|
|
55
|
+
}
|
|
56
|
+
link eing=":w "+@filename;
|
|
57
|
+
//--------------------------------------------------------------------------
|
|
58
|
+
// write input for external program dot to file
|
|
59
|
+
//--------------------------------------------------------------------------
|
|
60
|
+
write(eing,"graph G{");
|
|
61
|
+
for(i=1;i<=ncols(M);i++)
|
|
62
|
+
{
|
|
63
|
+
if(M[i,i]!=-2)
|
|
64
|
+
{
|
|
65
|
+
tempstr=string(i)+"[shape=circle,label=\""+string(M[i,i])+"\"];";
|
|
66
|
+
}
|
|
67
|
+
else
|
|
68
|
+
{
|
|
69
|
+
tempstr=string(i)+"[shape=point,label=\" \"];";
|
|
70
|
+
}
|
|
71
|
+
write(eing,tempstr);
|
|
72
|
+
}
|
|
73
|
+
for(i=1;i<=nrows(M);i++)
|
|
74
|
+
{
|
|
75
|
+
for(j=i+1;j<=ncols(M);j++)
|
|
76
|
+
{
|
|
77
|
+
if(M[i,j]!=0)
|
|
78
|
+
{
|
|
79
|
+
tempstr=string(i) + "--" + string(j) + ";";
|
|
80
|
+
write(eing,tempstr);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
write(eing,"}");
|
|
85
|
+
close(eing);
|
|
86
|
+
//---------------------------------------------------------------------------
|
|
87
|
+
// produce graphics output using the programs dot and display
|
|
88
|
+
//---------------------------------------------------------------------------
|
|
89
|
+
string outfile=@filename + ".jpg";
|
|
90
|
+
if(!find(outfile,"/"))
|
|
91
|
+
{
|
|
92
|
+
//--- display needs fully qualified path to file
|
|
93
|
+
outfile=system("getenv","PWD") + "/" + outfile;
|
|
94
|
+
}
|
|
95
|
+
j=system("sh","dot -Tjpg " + @filename + " -o "+ outfile);
|
|
96
|
+
j=system("sh","display " + outfile + " &");
|
|
97
|
+
//---------------------------------------------------------------------------
|
|
98
|
+
// clean up if necessary
|
|
99
|
+
//---------------------------------------------------------------------------
|
|
100
|
+
"Currently showing graphics in separate window";
|
|
101
|
+
"Press <Return> to continue";
|
|
102
|
+
pause();
|
|
103
|
+
if((size(#)==0)&&(find(@filename,"/tmp/")))
|
|
104
|
+
{
|
|
105
|
+
//--- do not leave any garbage in the public directories
|
|
106
|
+
j=system("sh","command rm " + outfile + " " + @filename);
|
|
107
|
+
}
|
|
108
|
+
return();
|
|
109
|
+
}
|
|
110
|
+
///////////////////////////////////////////////////////////////////////////////
|
|
111
|
+
//static
|
|
112
|
+
proc goodFilename(string datei)
|
|
113
|
+
{
|
|
114
|
+
//--- check whether the specified file datei is writable for us
|
|
115
|
+
if(!system("sh","touch " + datei + " > /dev/null 2>&1"))
|
|
116
|
+
{
|
|
117
|
+
return(1);
|
|
118
|
+
}
|
|
119
|
+
else
|
|
120
|
+
{
|
|
121
|
+
return(0);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
125
|
+
//static
|
|
126
|
+
proc buildFilename(string datei)
|
|
127
|
+
{
|
|
128
|
+
if(goodFilename(datei))
|
|
129
|
+
{
|
|
130
|
+
return(datei);
|
|
131
|
+
}
|
|
132
|
+
if(find(datei,"/"))
|
|
133
|
+
{
|
|
134
|
+
ERROR("Specified directory/file is not writable");
|
|
135
|
+
}
|
|
136
|
+
datei="/tmp/" + datei;
|
|
137
|
+
if(goodFilename(datei))
|
|
138
|
+
{
|
|
139
|
+
return(datei);
|
|
140
|
+
}
|
|
141
|
+
//--- not reached
|
|
142
|
+
ERROR("At least /tmp should be writable");
|
|
143
|
+
}
|
|
144
|
+
///////////////////////////////////////////////////////////////////////////////
|
|
145
|
+
|
|
146
|
+
proc ResTree(list re, intmat DivMat, list #)
|
|
147
|
+
"USAGE: ResTree(L,M[,name][,mark]);
|
|
148
|
+
@* L = list
|
|
149
|
+
@* M = matrix
|
|
150
|
+
@* name = string
|
|
151
|
+
@* mark = intvec
|
|
152
|
+
ASSUME: - L is the output of 'resolve' from resolve.lib
|
|
153
|
+
@* - M is first entry of output of 'collectDiv(L);' from reszeta.lib
|
|
154
|
+
@* - write permission in the current directory or in the
|
|
155
|
+
@* directory in which the file with name 'name' resides
|
|
156
|
+
@* - mark intvec of size size(L[2])
|
|
157
|
+
@* mark[i]=0 (default) border of box black
|
|
158
|
+
@* mark[i]=1 border of box red
|
|
159
|
+
CREATE: file 'name.jpg' containing the tree of charts of L
|
|
160
|
+
@* if filename is given
|
|
161
|
+
NOTE: only available on UNIX-type systems and programs
|
|
162
|
+
@* 'display' (imagemagick package) and 'dot' (Graphviz package) need to
|
|
163
|
+
@* be in the standard search PATH
|
|
164
|
+
RETURN: nothing, only generating graphics output in separate window
|
|
165
|
+
EXAMPLE: not available (for technical reasons)
|
|
166
|
+
"
|
|
167
|
+
{
|
|
168
|
+
//-----------------------------------------------------------------------------
|
|
169
|
+
// Initialization and definition of the temporary filename
|
|
170
|
+
//-----------------------------------------------------------------------------
|
|
171
|
+
int i,j,dimC,jsave;
|
|
172
|
+
string tempstr;
|
|
173
|
+
def R=basering;
|
|
174
|
+
if(size(#)>0)
|
|
175
|
+
{
|
|
176
|
+
if(typeof(#[1])=="string")
|
|
177
|
+
{
|
|
178
|
+
if(goodFilename(#[1]))
|
|
179
|
+
{
|
|
180
|
+
string @filename=#[1];
|
|
181
|
+
}
|
|
182
|
+
else
|
|
183
|
+
{
|
|
184
|
+
ERROR("optional argument of type string "+
|
|
185
|
+
"should specify a writable file.");
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
if(typeof(#[1])=="intvec")
|
|
189
|
+
{
|
|
190
|
+
intvec @rot=#[1];
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
if(size(#)>1)
|
|
194
|
+
{
|
|
195
|
+
if((typeof(#[2])=="string")&&(!defined(@filename)))
|
|
196
|
+
{
|
|
197
|
+
if(goodFilename(#[1]))
|
|
198
|
+
{
|
|
199
|
+
string @filename=#[1];
|
|
200
|
+
}
|
|
201
|
+
else
|
|
202
|
+
{
|
|
203
|
+
ERROR("optional argument of type string "+
|
|
204
|
+
"should specify a writable file.");
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
if((typeof(#[2])=="intvec")&&(!defined(@rot)))
|
|
208
|
+
{
|
|
209
|
+
intvec @rot=#[2];
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
if(!defined(@filename))
|
|
213
|
+
{
|
|
214
|
+
string @filename=buildFilename("ResTree.dot");
|
|
215
|
+
}
|
|
216
|
+
if(!defined(@rot))
|
|
217
|
+
{
|
|
218
|
+
intvec @rot;
|
|
219
|
+
@rot[size(re[2])]=0;
|
|
220
|
+
}
|
|
221
|
+
link eing=":w "+@filename;
|
|
222
|
+
//----------------------------------------------------------------------------
|
|
223
|
+
// writing the input to the program dot into a file
|
|
224
|
+
//----------------------------------------------------------------------------
|
|
225
|
+
write(eing,"graph G{");
|
|
226
|
+
tempstr="1[shape=box,label=\"chart 1\"];";
|
|
227
|
+
write(eing,tempstr);
|
|
228
|
+
for(i=2;i<=size(re[2]);i++)
|
|
229
|
+
{
|
|
230
|
+
tempstr=string(i)+"[shape=box,label=\"chart " + string(i)
|
|
231
|
+
+ "\\nE:"+string(simplify(ideal(DivMat[i,1..ncols(DivMat)]),2))
|
|
232
|
+
+ " \"";
|
|
233
|
+
if(@rot[i]==1)
|
|
234
|
+
{
|
|
235
|
+
tempstr=tempstr + "color=\"red\"];";
|
|
236
|
+
}
|
|
237
|
+
else
|
|
238
|
+
{
|
|
239
|
+
tempstr=tempstr + "];";
|
|
240
|
+
}
|
|
241
|
+
write(eing,tempstr);
|
|
242
|
+
}
|
|
243
|
+
for(i=2;i<=size(re[2]);i++)
|
|
244
|
+
{
|
|
245
|
+
def S=re[2][i];
|
|
246
|
+
setring S;
|
|
247
|
+
j=int(leadcoef(path[1,ncols(path)]));
|
|
248
|
+
if(j!=jsave)
|
|
249
|
+
{
|
|
250
|
+
def T=re[2][j];
|
|
251
|
+
setring T;
|
|
252
|
+
dimC=dim(std(BO[1]+cent));
|
|
253
|
+
setring S;
|
|
254
|
+
kill T;
|
|
255
|
+
}
|
|
256
|
+
setring R;
|
|
257
|
+
kill S;
|
|
258
|
+
if(j!=jsave)
|
|
259
|
+
{
|
|
260
|
+
tempstr=string(j) + "--" + string(i) +"[label=\"d=" + string(dimC)
|
|
261
|
+
+ "\"];";
|
|
262
|
+
jsave=j;
|
|
263
|
+
}
|
|
264
|
+
else
|
|
265
|
+
{
|
|
266
|
+
tempstr=string(j) + "--" + string(i) +";";
|
|
267
|
+
}
|
|
268
|
+
write(eing,tempstr);
|
|
269
|
+
}
|
|
270
|
+
write(eing,"}");
|
|
271
|
+
close(eing);
|
|
272
|
+
//---------------------------------------------------------------------------
|
|
273
|
+
// Create the graphics output using the programs dot and display
|
|
274
|
+
//---------------------------------------------------------------------------
|
|
275
|
+
string outfile=@filename + ".jpg";
|
|
276
|
+
if(!find(outfile,"/"))
|
|
277
|
+
{
|
|
278
|
+
//--- display needs fully qualified path to file
|
|
279
|
+
outfile=system("getenv","PWD") + "/" + outfile;
|
|
280
|
+
}
|
|
281
|
+
j=system("sh", "dot -Tjpg " + @filename + " -o "+ outfile);
|
|
282
|
+
j=system("sh","display " + outfile + "&");
|
|
283
|
+
//---------------------------------------------------------------------------
|
|
284
|
+
// Clean up public directories if necessary
|
|
285
|
+
//---------------------------------------------------------------------------
|
|
286
|
+
"Currently showing graphics in separate window";
|
|
287
|
+
"Press <Return> to continue";
|
|
288
|
+
pause();
|
|
289
|
+
if(find(@filename,"/tmp/"))
|
|
290
|
+
{
|
|
291
|
+
//--- do not leave any garbage in the public directories
|
|
292
|
+
j=system("sh","command rm " + @filename + ".jpg "+ @filename);
|
|
293
|
+
}
|
|
294
|
+
return();
|
|
295
|
+
}
|
|
296
|
+
/////////////////////////////////////////////////////////////////////////////
|
|
297
|
+
|
|
298
|
+
proc finalCharts(list re, list inter, intvec endiv, list #)
|
|
299
|
+
"USAGE: finalCharts(L1,L2,iv[,name]);
|
|
300
|
+
@* L1 = list
|
|
301
|
+
@* L2 = list
|
|
302
|
+
@* iv = intvec
|
|
303
|
+
@* name = string
|
|
304
|
+
ASSUME: - L1 is the output of 'resolve' from resolve.lib
|
|
305
|
+
@* - L2 is the output of 'intersectionDiv(L1)' from reszeta.lib
|
|
306
|
+
@* - iv is the first entry of the output of 'abstractR(L1)'
|
|
307
|
+
@* - write permission in the current directory or in the
|
|
308
|
+
@* directory in which the file with name 'name' resides
|
|
309
|
+
CREATE: - new windows in which surf-images of the final charts are presented
|
|
310
|
+
@* - several '.ras' files in the directory in which 'name' resides
|
|
311
|
+
NOTE: only available on UNIX-type systems
|
|
312
|
+
@* external programs 'surf' and 'display' (imagemagick package) need to be
|
|
313
|
+
@* in the standard search PATH
|
|
314
|
+
RETURN: nothing, only generating graphics output in separate window
|
|
315
|
+
EXAMPLE: not available (for technical reasons)
|
|
316
|
+
"
|
|
317
|
+
{
|
|
318
|
+
//-----------------------------------------------------------------------------
|
|
319
|
+
// Initialization and Sanity Checks
|
|
320
|
+
//-----------------------------------------------------------------------------
|
|
321
|
+
int i,j,k,a,b,cnt,whichE,offset,haveDcE8;
|
|
322
|
+
def R=basering;
|
|
323
|
+
list endCharts;
|
|
324
|
+
string fname,tempstr;
|
|
325
|
+
for(i=1;i<=size(endiv);i++)
|
|
326
|
+
{
|
|
327
|
+
if(endiv[i]==1)
|
|
328
|
+
{
|
|
329
|
+
endCharts[size(endCharts)+1]=i;
|
|
330
|
+
//--- Sanity checks for the chart i
|
|
331
|
+
if(nvars(re[2][i])!=3)
|
|
332
|
+
{
|
|
333
|
+
ERROR("This chart is not embedded in 3-dimensional space");
|
|
334
|
+
}
|
|
335
|
+
if(defined(S)){kill S;}
|
|
336
|
+
def S=re[2][i];
|
|
337
|
+
setring S;
|
|
338
|
+
if(dim(std(BO[1]+BO[2]))!=2)
|
|
339
|
+
{
|
|
340
|
+
ERROR("Strict Transform is not a surface");
|
|
341
|
+
}
|
|
342
|
+
if(size(equidim(BO[1]+BO[2]))!=1)
|
|
343
|
+
{
|
|
344
|
+
ERROR("Strict Transform has lower dimensional components.");
|
|
345
|
+
}
|
|
346
|
+
//--- put the missing information into dcE, if necessary
|
|
347
|
+
for(k=1;k<=size(dcE);k++)
|
|
348
|
+
{
|
|
349
|
+
for(j=1;j<=size(dcE[k]);j++)
|
|
350
|
+
{
|
|
351
|
+
if(deg(std(dcE[k][j][1])[1])!=0)
|
|
352
|
+
{
|
|
353
|
+
if(size(dcE[k][j][1]) < 8)
|
|
354
|
+
{
|
|
355
|
+
setring R;
|
|
356
|
+
k=prepareDcE(re,inter,endiv);
|
|
357
|
+
setring S;
|
|
358
|
+
}
|
|
359
|
+
haveDcE8=1;
|
|
360
|
+
break;
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
if(haveDcE8!=0) break;
|
|
364
|
+
}
|
|
365
|
+
setring R;
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
if(!defined(colorlist))
|
|
369
|
+
{
|
|
370
|
+
list colorlist;
|
|
371
|
+
for(i=1;i<=10;i++)
|
|
372
|
+
{
|
|
373
|
+
colorlist[i]="curve_red = "+string((i-1)*25)+"; curve_green = "+
|
|
374
|
+
string(255-(i-1)*25)+"; curve_blue = "+
|
|
375
|
+
string(((i-1) mod 5)*50)+";";
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
else
|
|
379
|
+
{
|
|
380
|
+
"Warning!";
|
|
381
|
+
"Using colors specified in variable colorlist. No syntax checks";
|
|
382
|
+
"performed on the content of this list.";
|
|
383
|
+
"If built-in colors should be used, please rename the global";
|
|
384
|
+
"object colorlist";
|
|
385
|
+
}
|
|
386
|
+
if(ncols(inter[1])>size(colorlist))
|
|
387
|
+
{
|
|
388
|
+
ERROR("Too many exceptional curves on this surface.....");
|
|
389
|
+
}
|
|
390
|
+
if((size(endCharts)>20)&&(size(#)==0))
|
|
391
|
+
{
|
|
392
|
+
ERROR("More than 20 final charts...");
|
|
393
|
+
}
|
|
394
|
+
//-----------------------------------------------------------------------------
|
|
395
|
+
// Determine the basename of the temporary files
|
|
396
|
+
//-----------------------------------------------------------------------------
|
|
397
|
+
if(size(#)>0)
|
|
398
|
+
{
|
|
399
|
+
if((typeof(#[1])=="string") && (goodFilename(#[1])))
|
|
400
|
+
{
|
|
401
|
+
string fnamebase=#[1];
|
|
402
|
+
}
|
|
403
|
+
else
|
|
404
|
+
{
|
|
405
|
+
ERROR("Second argument should specify a WRITABLE file");
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
if(!defined(@fnamebase))
|
|
409
|
+
{
|
|
410
|
+
string fnamebase=buildFilename("Chart");
|
|
411
|
+
}
|
|
412
|
+
//-----------------------------------------------------------------------------
|
|
413
|
+
// Go through all final charts and write a separate surf input file for each
|
|
414
|
+
//-----------------------------------------------------------------------------
|
|
415
|
+
for(i=1;i<=size(endCharts);i++)
|
|
416
|
+
{
|
|
417
|
+
fname=fnamebase + string(endCharts[i]) + ".surf";
|
|
418
|
+
if(defined(eing)){kill eing;}
|
|
419
|
+
link eing=":w "+fname;
|
|
420
|
+
//--- define surf's root finding algorithm
|
|
421
|
+
tempstr="root_finder = d_chain_bisection; epsilon = 0.000000001;";
|
|
422
|
+
write(eing,tempstr);
|
|
423
|
+
//--- define image size
|
|
424
|
+
tempstr="int wid = 480;width = wid; height = wid;";
|
|
425
|
+
write(eing,tempstr);
|
|
426
|
+
//--- define ambient lighting
|
|
427
|
+
tempstr="ambient=50;";
|
|
428
|
+
write(eing,tempstr);
|
|
429
|
+
//--- define background colour: some shade of gray
|
|
430
|
+
tempstr="background_red=200; background_green=200; background_blue=200;";
|
|
431
|
+
write(eing,tempstr);
|
|
432
|
+
//--- define surface colour (one side):
|
|
433
|
+
tempstr="surface_red=22; surface_green=150; surface_blue=255;";
|
|
434
|
+
write(eing,tempstr);
|
|
435
|
+
//--- define surface colour (other side):
|
|
436
|
+
tempstr="inside_red=255; inside_green=192; inside_blue=0;";
|
|
437
|
+
write(eing,tempstr);
|
|
438
|
+
//--- define scaling factor
|
|
439
|
+
tempstr="scale_x=0.5; scale_y=0.5; scale_z=0.5;";
|
|
440
|
+
write(eing,tempstr);
|
|
441
|
+
//--- rotate a little bit
|
|
442
|
+
tempstr="rot_y=0.9013941717697173; rot_x=-0.5556596516994916; rot_z=0.103062920202253447;";
|
|
443
|
+
write(eing,tempstr);
|
|
444
|
+
//----------------------------------------------------------------------------
|
|
445
|
+
// change to the chart and extract the equation of the surface
|
|
446
|
+
// then draw the surface
|
|
447
|
+
//----------------------------------------------------------------------------
|
|
448
|
+
if(defined(S)){kill S;}
|
|
449
|
+
def S=re[2][endCharts[i]];
|
|
450
|
+
setring S;
|
|
451
|
+
//--- define equation of strict transform (hypersurface of dim 2)
|
|
452
|
+
ideal drawJ=simplify(mstd(radical(BO[1]+BO[2]))[2],2);
|
|
453
|
+
if(size(drawJ)>1)
|
|
454
|
+
{
|
|
455
|
+
//!!! unnoetig! Da kann man auch surface2,... machen
|
|
456
|
+
ERROR("Did not find generator of principal ideal " + string(drawJ));
|
|
457
|
+
}
|
|
458
|
+
tempstr="poly f = " + map2Surf(string(drawJ[1])) + ";";
|
|
459
|
+
write(eing,tempstr);
|
|
460
|
+
tempstr="surface = f;draw_surface;";
|
|
461
|
+
write(eing,tempstr);
|
|
462
|
+
//----------------------------------------------------------------------------
|
|
463
|
+
// now consider all exceptional curves in this chart separately
|
|
464
|
+
// and draw them
|
|
465
|
+
//---------------------------------------------------------------------------
|
|
466
|
+
if(!defined(dcE))
|
|
467
|
+
{
|
|
468
|
+
//--- Oups, exceptional curves not yet decomposed in this chart
|
|
469
|
+
//--- should not happen in practice
|
|
470
|
+
ERROR("The procedure intersectionDiv has not been used
|
|
471
|
+
on this tree of charts");
|
|
472
|
+
}
|
|
473
|
+
for(j=1;j<=size(dcE);j++)
|
|
474
|
+
{
|
|
475
|
+
//--- Run through all exceptional divisors (in the embedded sense)
|
|
476
|
+
for(k=1;k<=size(dcE[j]);k++)
|
|
477
|
+
{
|
|
478
|
+
//--- Run through all curves corresponding to the current divisor
|
|
479
|
+
if(deg(std(dcE[j][k][1])[1])==0)
|
|
480
|
+
{
|
|
481
|
+
//--- This one is empty - skip it
|
|
482
|
+
k++;
|
|
483
|
+
if(k>size(dcE[j])) {break;}
|
|
484
|
+
continue;
|
|
485
|
+
}
|
|
486
|
+
for(a=1;a<=size(inter[3]);a++)
|
|
487
|
+
{
|
|
488
|
+
//--- this curve belongs to which (Q-irred.) divisor in global numbering?
|
|
489
|
+
if(inIVList(intvec(endCharts[i],j,k),inter[3][a])) break;
|
|
490
|
+
}
|
|
491
|
+
if(a>size(inter[3]))
|
|
492
|
+
{
|
|
493
|
+
//--- curve not found in list
|
|
494
|
+
ERROR("Inconsistency between data of arguments 1 and 2");
|
|
495
|
+
}
|
|
496
|
+
whichE=a;
|
|
497
|
+
offset=0;
|
|
498
|
+
for(a=1;a<whichE;a++)
|
|
499
|
+
{
|
|
500
|
+
//--- count C-irred. divisors up to this (Q-irred. divisor) index
|
|
501
|
+
offset=offset+inter[4][a];
|
|
502
|
+
}
|
|
503
|
+
for(a=1;a<=size(dcE[j][k][7]);a++)
|
|
504
|
+
{
|
|
505
|
+
//--- run through all C-irred divisors corresponding to this Q-irred. one
|
|
506
|
+
//--- run through all generators of the ideal of the curve
|
|
507
|
+
//--- unfortunately the ideal is encoded in a string,
|
|
508
|
+
//--- and we need to work to find the generators
|
|
509
|
+
int tempint=find(dcE[j][k][6],",");
|
|
510
|
+
b=0;
|
|
511
|
+
cnt=1;
|
|
512
|
+
while(tempint!=0)
|
|
513
|
+
{
|
|
514
|
+
if(!find(dcE[j][k][7][a],"i"))
|
|
515
|
+
{
|
|
516
|
+
//--- 1) surf can only handle real numbers ==> we ignore the other curves
|
|
517
|
+
//--- 2) we can only form substrings of named strings:
|
|
518
|
+
tempstr=dcE[j][k][6]; // give it a name
|
|
519
|
+
tempstr=tempstr[b+1..tempint-1]; // find correct substring
|
|
520
|
+
tempstr="poly f" + string(offset+dcE[j][k][8][a])+ "_" +
|
|
521
|
+
string(b+1) + " = " +
|
|
522
|
+
map2Surf(plugInNumZero(tempstr,dcE[j][k][7][a])) + ";";
|
|
523
|
+
write(eing,tempstr);
|
|
524
|
+
tempstr="cutsurface" + string(cnt) + " = f" +
|
|
525
|
+
string(offset+dcE[j][k][8][a]) + "_" +string(b+1) + ";";
|
|
526
|
+
write(eing,tempstr);
|
|
527
|
+
cnt++;
|
|
528
|
+
}
|
|
529
|
+
b=tempint; // save end-mark
|
|
530
|
+
tempint=find(dcE[j][k][6],",",b+1); // next one please
|
|
531
|
+
}
|
|
532
|
+
if(!find(dcE[j][k][7][a],"i"))
|
|
533
|
+
{
|
|
534
|
+
tempstr=dcE[j][k][6]; // as before, but for last
|
|
535
|
+
tempstr=tempstr[b+1..size(tempstr)]; // fragment
|
|
536
|
+
tempstr="poly f" + string(offset+dcE[j][k][8][a])+ "_" +
|
|
537
|
+
string(b+1) + " = " +
|
|
538
|
+
map2Surf(plugInNumZero(tempstr,dcE[j][k][7][a])) + ";";
|
|
539
|
+
write(eing,tempstr);
|
|
540
|
+
tempstr="cutsurface" + string(cnt)+ " = f" +
|
|
541
|
+
string(offset+dcE[j][k][8][a]) + "_" +string(b+1) + ";";
|
|
542
|
+
write(eing,tempstr);
|
|
543
|
+
cnt++;
|
|
544
|
+
}
|
|
545
|
+
//--- draw the curve on the surface
|
|
546
|
+
if(cnt>1)
|
|
547
|
+
{
|
|
548
|
+
tempstr=colorlist[offset+dcE[j][k][8][a]];
|
|
549
|
+
write(eing,tempstr);
|
|
550
|
+
write(eing,"cut_with_surface;");
|
|
551
|
+
}
|
|
552
|
+
kill tempint;
|
|
553
|
+
}
|
|
554
|
+
}
|
|
555
|
+
}
|
|
556
|
+
if(!find(fnamebase,"/"))
|
|
557
|
+
{
|
|
558
|
+
//--- display needs fully qualified path to file
|
|
559
|
+
if(defined(outfile)) {kill outfile;}
|
|
560
|
+
string outfile=system("getenv","PWD") + "/" + fnamebase;
|
|
561
|
+
}
|
|
562
|
+
if(!defined(outfile))
|
|
563
|
+
{
|
|
564
|
+
tempstr="filename = \"" + fnamebase + string(endCharts[i]) + ".ras\";";
|
|
565
|
+
}
|
|
566
|
+
else
|
|
567
|
+
{
|
|
568
|
+
tempstr="filename = \"" + outfile + string(endCharts[i]) + ".ras\";";
|
|
569
|
+
}
|
|
570
|
+
write(eing,tempstr);
|
|
571
|
+
tempstr="color_file_format = sun;";
|
|
572
|
+
write(eing,tempstr);
|
|
573
|
+
tempstr="save_color_image;";
|
|
574
|
+
write(eing,tempstr);
|
|
575
|
+
close(eing);
|
|
576
|
+
j=system("sh", "surf -n " + fnamebase +string(endCharts[i]) + ".surf");
|
|
577
|
+
if(!defined(outfile))
|
|
578
|
+
{
|
|
579
|
+
j=system("sh","display " + fnamebase
|
|
580
|
+
+ string(endCharts[i]) + ".ras &");
|
|
581
|
+
}
|
|
582
|
+
else
|
|
583
|
+
{
|
|
584
|
+
j=system("sh","display " + outfile
|
|
585
|
+
+ string(endCharts[i]) + ".ras &");
|
|
586
|
+
kill outfile;
|
|
587
|
+
}
|
|
588
|
+
"Currently showing graphics for chart "+string(endCharts[i])
|
|
589
|
+
+" in separate window";
|
|
590
|
+
"Press <Return> to continue";
|
|
591
|
+
pause();
|
|
592
|
+
}
|
|
593
|
+
return(0);
|
|
594
|
+
}
|
|
595
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
596
|
+
// static
|
|
597
|
+
proc plugInNumZero(string f,string num)
|
|
598
|
+
{
|
|
599
|
+
int i;
|
|
600
|
+
string fStr=f;
|
|
601
|
+
i=find(fStr,"t");
|
|
602
|
+
while(i!=0)
|
|
603
|
+
{
|
|
604
|
+
fStr = string(fStr[1..i-1]) + "(" + num + ")"
|
|
605
|
+
+ string(fStr[i+1..size(fStr)]);
|
|
606
|
+
i=find(fStr,"t");
|
|
607
|
+
}
|
|
608
|
+
return(fStr);
|
|
609
|
+
}
|
|
610
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
611
|
+
// static
|
|
612
|
+
proc replaceInStr(string alles, string alt, string neu)
|
|
613
|
+
{
|
|
614
|
+
int i=find(alles,alt);
|
|
615
|
+
while(i!=0)
|
|
616
|
+
{
|
|
617
|
+
if((i-1)<1)
|
|
618
|
+
{
|
|
619
|
+
if(size(alt)==size(alles))
|
|
620
|
+
{
|
|
621
|
+
alles=neu;
|
|
622
|
+
}
|
|
623
|
+
else
|
|
624
|
+
{
|
|
625
|
+
alles=neu + string(alles[i+size(alt)..size(alles)]);
|
|
626
|
+
}
|
|
627
|
+
}
|
|
628
|
+
else
|
|
629
|
+
{
|
|
630
|
+
if(i+size(alt)>size(alles))
|
|
631
|
+
{
|
|
632
|
+
alles=string(alles[1..i-1]) + neu;
|
|
633
|
+
}
|
|
634
|
+
else
|
|
635
|
+
{
|
|
636
|
+
alles=string(alles[1..i-1]) + neu +
|
|
637
|
+
string(alles[i+size(alt)..size(alles)]);
|
|
638
|
+
}
|
|
639
|
+
}
|
|
640
|
+
i=find(alles,alt);
|
|
641
|
+
}
|
|
642
|
+
return(alles);
|
|
643
|
+
}
|
|
644
|
+
/////////////////////////////////////////////////////////////////////////////
|
|
645
|
+
// static
|
|
646
|
+
proc map2Surf(string str)
|
|
647
|
+
{
|
|
648
|
+
str=replaceInStr(str,string(var(1)),"x");
|
|
649
|
+
str=replaceInStr(str,string(var(2)),"y");
|
|
650
|
+
str=replaceInStr(str,string(var(3)),"z");
|
|
651
|
+
return(str);
|
|
652
|
+
}
|
|
653
|
+
/////////////////////////////////////////////////////////////////////////////
|
|
654
|
+
// static
|
|
655
|
+
proc prepareDcE(list re, list inter, list endCharts)
|
|
656
|
+
{
|
|
657
|
+
def R=basering;
|
|
658
|
+
//---Test whether we are in the irreducible surface case
|
|
659
|
+
def S=re[2][1];
|
|
660
|
+
setring S;
|
|
661
|
+
BO[2]=BO[2]+BO[1]; // make sure we are living in the smooth W
|
|
662
|
+
if(dim(std(BO[2]))!=2)
|
|
663
|
+
{
|
|
664
|
+
ERROR("The given original object is not a surface");
|
|
665
|
+
}
|
|
666
|
+
if(dim(std(slocus(BO[2])))>0)
|
|
667
|
+
{
|
|
668
|
+
ERROR("The given original object has non-isolated singularities.");
|
|
669
|
+
}
|
|
670
|
+
setring R;
|
|
671
|
+
//----------------------------------------------------------------------------
|
|
672
|
+
// Compute a non-embedded resolution from the given embedded one by
|
|
673
|
+
// dropping redundant trailing blow-ups
|
|
674
|
+
//----------------------------------------------------------------------------
|
|
675
|
+
//--- compute non-embedded resolution
|
|
676
|
+
int ii,j,k,a,b,comPa;
|
|
677
|
+
list abst=abstractR(re);
|
|
678
|
+
intvec endiv=abst[1];
|
|
679
|
+
intvec deleted=abst[2];
|
|
680
|
+
//--- identify the divisors in the various final charts
|
|
681
|
+
list iden0=collectDiv(re,deleted)[2];
|
|
682
|
+
// list of final divisors
|
|
683
|
+
//----------------------------------------------------------------------------
|
|
684
|
+
// For each Q-irred. divisor (specified in inter[3]), run through all
|
|
685
|
+
// occurrences and identify the different C-components
|
|
686
|
+
//----------------------------------------------------------------------------
|
|
687
|
+
for(ii=1;ii<=size(inter[3]);ii++)
|
|
688
|
+
{
|
|
689
|
+
//--- run through all Q-irred. curves,
|
|
690
|
+
//--- set up the first occurrence for reference
|
|
691
|
+
if(defined(S)) {kill S;}
|
|
692
|
+
def S=re[2][inter[3][ii][1][1]];
|
|
693
|
+
// inter[3] = list of Q-irred div.
|
|
694
|
+
// inter[3][ii] = ii-th thereof
|
|
695
|
+
// inter[3][ii][1] = first occurrence
|
|
696
|
+
// inter[3][ii][1][1] = corr. chart index
|
|
697
|
+
setring S;
|
|
698
|
+
dcE[inter[3][ii][1][2]][inter[3][ii][1][3]][8]=
|
|
699
|
+
intvec(1..ncols(dcE[inter[3][ii][1][2]][inter[3][ii][1][3]][4]));
|
|
700
|
+
//--- prepare the ideal of the divisor for mapping to different chart
|
|
701
|
+
if(defined(idlist1)){kill idlist1;}
|
|
702
|
+
list idlist1;
|
|
703
|
+
idlist1[1]=dcE[inter[3][ii][1][2]][inter[3][ii][1][3]][6];
|
|
704
|
+
exportto(Top,idlist1);
|
|
705
|
+
for(j=2;j<=size(inter[3][ii]);j++)
|
|
706
|
+
{
|
|
707
|
+
//--- now do the comparison with the other occurrences
|
|
708
|
+
//--- 1. find a common parent for inter[3][ii][1][1] and inter[3][ii][j][1]
|
|
709
|
+
if(defined(S)){kill S;}
|
|
710
|
+
def S=re[2][inter[3][ii][j][1]];
|
|
711
|
+
setring S;
|
|
712
|
+
if(defined(opath)){kill opath;}
|
|
713
|
+
def opath=imap(re[2][inter[3][ii][1][1]],path);
|
|
714
|
+
k=1;
|
|
715
|
+
while(opath[1,k]==path[1,k])
|
|
716
|
+
{
|
|
717
|
+
k++;
|
|
718
|
+
if((k>ncols(opath))||(k>ncols(path))) break;
|
|
719
|
+
}
|
|
720
|
+
comPa=int(leadcoef(opath[1,k-1]));
|
|
721
|
+
//--- 2. use fetchInTree to transfer the C-components
|
|
722
|
+
if(defined(str)) {kill str;}
|
|
723
|
+
if(defined(il)) {kill il;}
|
|
724
|
+
if(defined(mpi)) {kill mpi;}
|
|
725
|
+
if(defined(nulli)) {kill nulli;}
|
|
726
|
+
string str="idlist1";
|
|
727
|
+
attrib(str,"algext",imap(re[2][inter[3][ii][1][1]],dcE)[inter[3][ii][1][2]][inter[3][ii][1][3]][5]);
|
|
728
|
+
list il=fetchInTree(re,inter[3][ii][1][1],comPa,inter[3][ii][j][1],str,iden0,1);
|
|
729
|
+
list nulli=imap(re[2][inter[3][ii][1][1]],dcE)[inter[3][ii][1][2]][inter[3][ii][1][3]][7];
|
|
730
|
+
string mpi=imap(re[2][inter[3][ii][1][1]],dcE)[inter[3][ii][1][2]][inter[3][ii][1][3]][5];
|
|
731
|
+
if(mpi!=dcE[inter[3][ii][j][2]][inter[3][ii][j][3]][5])
|
|
732
|
+
{
|
|
733
|
+
ERROR("Problem identifying the appropriate field extension.!");
|
|
734
|
+
}
|
|
735
|
+
if(defined(ringt)){kill ringt;}
|
|
736
|
+
ring ringt=0,(t),dp;
|
|
737
|
+
if(defined(St)){kill St;}
|
|
738
|
+
def St=S+ringt;
|
|
739
|
+
setring St;
|
|
740
|
+
if(defined(strId)) {kill strId;}
|
|
741
|
+
string strId="ideal id1=" + il[1] + ";";
|
|
742
|
+
execute(strId);
|
|
743
|
+
id1=std(id1);
|
|
744
|
+
strId="ideal idj="
|
|
745
|
+
+ imap(S,dcE)[inter[3][ii][j][2]][inter[3][ii][j][3]][6]
|
|
746
|
+
+ ";";
|
|
747
|
+
execute(strId);
|
|
748
|
+
idj=std(idj);
|
|
749
|
+
if(defined(nullj)){kill nullj;}
|
|
750
|
+
list nullj=imap(S,dcE)[inter[3][ii][1][2]][inter[3][ii][1][3]][7];
|
|
751
|
+
if(defined(rcomp)){kill rcomp;}
|
|
752
|
+
ring rcomp = create_ring(complex, "(" +varstr(basering) +")", "(" +ordstr(basering) + ")");
|
|
753
|
+
def id1=imap(St,id1);
|
|
754
|
+
def idj=imap(St,idj);
|
|
755
|
+
ideal id10,idj0;
|
|
756
|
+
if(defined(tintvec)){kill tintvec;}
|
|
757
|
+
intvec tintvec;
|
|
758
|
+
tintvec[size(nullj)]=0;
|
|
759
|
+
for(a=1;a<=size(nullj);a++)
|
|
760
|
+
{
|
|
761
|
+
if(defined(numa)) {kill numa;}
|
|
762
|
+
strId="number numa=" + string(nullj[a]) + ";";
|
|
763
|
+
execute(strId);
|
|
764
|
+
idj0=subst(idj,t,numa);
|
|
765
|
+
for(b=1;b<=size(nulli);b++)
|
|
766
|
+
{
|
|
767
|
+
if(defined(numb)) {kill numb;}
|
|
768
|
+
strId="number numb=" + string(nulli[b]) + ";";
|
|
769
|
+
execute(strId);
|
|
770
|
+
id10=subst(id1,t,numb);
|
|
771
|
+
attrib(id10,"isSB",1);
|
|
772
|
+
if(size(reduce(idj0,id10,5))==0)
|
|
773
|
+
{
|
|
774
|
+
tintvec[a]=b;
|
|
775
|
+
break;
|
|
776
|
+
}
|
|
777
|
+
}
|
|
778
|
+
if(!find(string(tintvec),string(b)))
|
|
779
|
+
{
|
|
780
|
+
~;
|
|
781
|
+
ERROR("Problem identifying C-components in different charts.");
|
|
782
|
+
}
|
|
783
|
+
}
|
|
784
|
+
setring S;
|
|
785
|
+
dcE[inter[3][ii][1][2]][inter[3][ii][1][3]][8]=tintvec;
|
|
786
|
+
}
|
|
787
|
+
}
|
|
788
|
+
return(0);
|
|
789
|
+
}
|