passagemath-singular 10.6.30__cp313-cp313-macosx_13_0_arm64.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-313-darwin.so +0 -0
- passagemath_singular-10.6.30.dist-info/METADATA +182 -0
- passagemath_singular-10.6.30.dist-info/RECORD +488 -0
- passagemath_singular-10.6.30.dist-info/WHEEL +6 -0
- passagemath_singular-10.6.30.dist-info/top_level.txt +3 -0
- passagemath_singular.dylibs/libSingular-4.4.1.dylib +0 -0
- passagemath_singular.dylibs/libcddgmp.0.dylib +0 -0
- passagemath_singular.dylibs/libfactory-4.4.1.dylib +0 -0
- passagemath_singular.dylibs/libflint.21.0.dylib +0 -0
- passagemath_singular.dylibs/libgf2x.3.dylib +0 -0
- passagemath_singular.dylibs/libgfortran.5.dylib +0 -0
- passagemath_singular.dylibs/libgmp.10.dylib +0 -0
- passagemath_singular.dylibs/libgsl.28.dylib +0 -0
- passagemath_singular.dylibs/libmpfr.6.dylib +0 -0
- passagemath_singular.dylibs/libntl.44.dylib +0 -0
- passagemath_singular.dylibs/libomalloc-0.9.6.dylib +0 -0
- passagemath_singular.dylibs/libopenblasp-r0.3.29.dylib +0 -0
- passagemath_singular.dylibs/libpolys-4.4.1.dylib +0 -0
- passagemath_singular.dylibs/libquadmath.0.dylib +0 -0
- passagemath_singular.dylibs/libreadline.8.2.dylib +0 -0
- passagemath_singular.dylibs/libsingular_resources-4.4.1.dylib +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-313-darwin.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-313-darwin.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-313-darwin.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-313-darwin.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-313-darwin.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-313-darwin.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-313-darwin.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-313-darwin.so +0 -0
- sage/algebras/quatalg/quaternion_algebra_cython.pyx +261 -0
- sage/algebras/quatalg/quaternion_algebra_element.cpython-313-darwin.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-313-darwin.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-313-darwin.so +0 -0
- sage/libs/singular/groebner_strategy.pxd +22 -0
- sage/libs/singular/groebner_strategy.pyx +582 -0
- sage/libs/singular/option.cpython-313-darwin.so +0 -0
- sage/libs/singular/option.pyx +671 -0
- sage/libs/singular/polynomial.cpython-313-darwin.so +0 -0
- sage/libs/singular/polynomial.pxd +39 -0
- sage/libs/singular/polynomial.pyx +661 -0
- sage/libs/singular/ring.cpython-313-darwin.so +0 -0
- sage/libs/singular/ring.pxd +58 -0
- sage/libs/singular/ring.pyx +893 -0
- sage/libs/singular/singular.cpython-313-darwin.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-313-darwin.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-313-darwin.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-313-darwin.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-313-darwin.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-313-darwin.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-313-darwin.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 +187111 -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 +769 -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 +1927 -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 +1258 -0
- sage_wheels/share/singular/LIB/modquotient.lib +269 -0
- sage_wheels/share/singular/LIB/modstd.lib +1025 -0
- sage_wheels/share/singular/LIB/modular.lib +438 -0
- sage_wheels/share/singular/LIB/modules.lib +2553 -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 +2140 -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 +305 -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 +9593 -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 +169 -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 +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/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 +1195 -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 +4310 -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 +4986 -0
|
@@ -0,0 +1,339 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-singular
|
|
2
|
+
"""
|
|
3
|
+
Direct low-level access to SINGULAR's Groebner basis engine via libSINGULAR
|
|
4
|
+
|
|
5
|
+
AUTHOR:
|
|
6
|
+
|
|
7
|
+
- Martin Albrecht (2007-08-08): initial version
|
|
8
|
+
|
|
9
|
+
EXAMPLES::
|
|
10
|
+
|
|
11
|
+
sage: x,y,z = QQ['x,y,z'].gens()
|
|
12
|
+
sage: I = ideal(x^5 + y^4 + z^3 - 1, x^3 + y^3 + z^2 - 1)
|
|
13
|
+
sage: I.groebner_basis('libsingular:std')
|
|
14
|
+
[y^6 + x*y^4 + 2*y^3*z^2 + x*z^3 + z^4 - 2*y^3 - 2*z^2 - x + 1,
|
|
15
|
+
x^2*y^3 - y^4 + x^2*z^2 - z^3 - x^2 + 1, x^3 + y^3 + z^2 - 1]
|
|
16
|
+
|
|
17
|
+
We compute a Groebner basis for cyclic 6, which is a standard
|
|
18
|
+
benchmark and test ideal::
|
|
19
|
+
|
|
20
|
+
sage: R.<x,y,z,t,u,v> = QQ['x,y,z,t,u,v']
|
|
21
|
+
sage: I = sage.rings.ideal.Cyclic(R,6)
|
|
22
|
+
sage: B = I.groebner_basis('libsingular:std')
|
|
23
|
+
sage: len(B)
|
|
24
|
+
45
|
|
25
|
+
|
|
26
|
+
Two examples from the Mathematica documentation (done in Sage):
|
|
27
|
+
|
|
28
|
+
- We compute a Groebner basis::
|
|
29
|
+
|
|
30
|
+
sage: R.<x,y> = PolynomialRing(QQ, order='lex')
|
|
31
|
+
sage: ideal(x^2 - 2*y^2, x*y - 3).groebner_basis('libsingular:slimgb')
|
|
32
|
+
[x - 2/3*y^3, y^4 - 9/2]
|
|
33
|
+
|
|
34
|
+
- We show that three polynomials have no common root::
|
|
35
|
+
|
|
36
|
+
sage: R.<x,y> = QQ[]
|
|
37
|
+
sage: ideal(x+y, x^2 - 1, y^2 - 2*x).groebner_basis('libsingular:slimgb')
|
|
38
|
+
[1]
|
|
39
|
+
"""
|
|
40
|
+
|
|
41
|
+
#*****************************************************************************
|
|
42
|
+
# Copyright (C) 2007 Martin Albrecht <malb@informatik.uni-bremen.de>
|
|
43
|
+
# Copyright (C) 2007 William Stein <wstein@gmail.com>
|
|
44
|
+
#
|
|
45
|
+
# This program is free software: you can redistribute it and/or modify
|
|
46
|
+
# it under the terms of the GNU General Public License as published by
|
|
47
|
+
# the Free Software Foundation, either version 2 of the License, or
|
|
48
|
+
# (at your option) any later version.
|
|
49
|
+
# http://www.gnu.org/licenses/
|
|
50
|
+
#*****************************************************************************
|
|
51
|
+
|
|
52
|
+
from cysignals.signals cimport sig_on, sig_off
|
|
53
|
+
|
|
54
|
+
from sage.libs.singular.decl cimport tHomog, number, IDELEMS, p_Copy, rChangeCurrRing
|
|
55
|
+
from sage.libs.singular.decl cimport idInit, id_Delete, currRing, Sy_bit, OPT_REDSB
|
|
56
|
+
from sage.libs.singular.decl cimport scKBase, poly, testHomog, idSkipZeroes, id_RankFreeModule, kStd
|
|
57
|
+
from sage.libs.singular.decl cimport OPT_REDTAIL, singular_options, kInterRed, t_rep_gb, p_GetCoeff
|
|
58
|
+
from sage.libs.singular.decl cimport pp_Mult_nn, p_Delete, n_Delete
|
|
59
|
+
from sage.libs.singular.decl cimport rIsPluralRing
|
|
60
|
+
from sage.libs.singular.decl cimport n_Z, n_Zn, n_Znm, n_Z2m
|
|
61
|
+
|
|
62
|
+
from sage.rings.polynomial.multi_polynomial_libsingular cimport new_MP
|
|
63
|
+
from sage.rings.polynomial.plural cimport new_NCP
|
|
64
|
+
|
|
65
|
+
from sage.rings.polynomial.multi_polynomial_libsingular cimport MPolynomial_libsingular
|
|
66
|
+
from sage.rings.polynomial.multi_polynomial_libsingular cimport MPolynomialRing_libsingular
|
|
67
|
+
from sage.structure.sequence import Sequence
|
|
68
|
+
|
|
69
|
+
from sage.rings.polynomial.plural cimport NCPolynomialRing_plural, NCPolynomial_plural
|
|
70
|
+
|
|
71
|
+
cdef object singular_ideal_to_sage_sequence(ideal *i, ring *r, object parent):
|
|
72
|
+
"""
|
|
73
|
+
Convert a SINGULAR ideal to a Sage Sequence (the format Sage
|
|
74
|
+
stores a Groebner basis in).
|
|
75
|
+
|
|
76
|
+
INPUT:
|
|
77
|
+
|
|
78
|
+
- ``i`` -- a SINGULAR ideal
|
|
79
|
+
- ``r`` -- a SINGULAR ring
|
|
80
|
+
- ``parent`` -- a Sage ring matching r
|
|
81
|
+
"""
|
|
82
|
+
cdef int j
|
|
83
|
+
cdef MPolynomial_libsingular p
|
|
84
|
+
cdef NCPolynomial_plural p_nc
|
|
85
|
+
|
|
86
|
+
l = []
|
|
87
|
+
|
|
88
|
+
if rIsPluralRing(r):
|
|
89
|
+
for j from 0 <= j < IDELEMS(i):
|
|
90
|
+
p_nc = new_NCP(parent, p_Copy(i.m[j], r))
|
|
91
|
+
l.append( p_nc )
|
|
92
|
+
else:
|
|
93
|
+
for j from 0 <= j < IDELEMS(i):
|
|
94
|
+
p = new_MP(parent, p_Copy(i.m[j], r))
|
|
95
|
+
l.append( p )
|
|
96
|
+
|
|
97
|
+
return Sequence(l, check=False, immutable=True)
|
|
98
|
+
|
|
99
|
+
cdef ideal *sage_ideal_to_singular_ideal(I) except NULL:
|
|
100
|
+
"""
|
|
101
|
+
convert a Sage ideal to a SINGULAR ideal
|
|
102
|
+
|
|
103
|
+
INPUT:
|
|
104
|
+
|
|
105
|
+
- ``I`` -- a Sage ideal in a ring of type
|
|
106
|
+
:class:`~sage.rings.polynomial.multi_polynomial_libsingular.MPolynomialRing_libsingular`
|
|
107
|
+
or a list of generators
|
|
108
|
+
|
|
109
|
+
TESTS:
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
We test conversion::
|
|
113
|
+
|
|
114
|
+
sage: P.<x,y,z> = QQ[]
|
|
115
|
+
sage: sage.libs.singular.function_factory.ff.std(Sequence([x,y,z]))
|
|
116
|
+
[z, y, x]
|
|
117
|
+
sage: sage.libs.singular.function_factory.ff.std(Ideal([x,y,z]))
|
|
118
|
+
[z, y, x]
|
|
119
|
+
"""
|
|
120
|
+
R = I.ring()
|
|
121
|
+
try:
|
|
122
|
+
gens = I.gens()
|
|
123
|
+
except AttributeError:
|
|
124
|
+
gens = I
|
|
125
|
+
cdef ring *r
|
|
126
|
+
cdef ideal *i
|
|
127
|
+
cdef int j = 0
|
|
128
|
+
|
|
129
|
+
if isinstance(R, MPolynomialRing_libsingular):
|
|
130
|
+
r = (<MPolynomialRing_libsingular>R)._ring
|
|
131
|
+
elif isinstance(R, NCPolynomialRing_plural):
|
|
132
|
+
r = (<NCPolynomialRing_plural>R)._ring
|
|
133
|
+
else:
|
|
134
|
+
raise TypeError("Ring must be of type 'MPolynomialRing_libsingular'")
|
|
135
|
+
|
|
136
|
+
rChangeCurrRing(r)
|
|
137
|
+
|
|
138
|
+
i = idInit(len(gens),1)
|
|
139
|
+
for j,f in enumerate(gens):
|
|
140
|
+
if isinstance(f, MPolynomial_libsingular):
|
|
141
|
+
i.m[j] = p_Copy((<MPolynomial_libsingular>f)._poly, r)
|
|
142
|
+
elif isinstance(f, NCPolynomial_plural):
|
|
143
|
+
i.m[j] = p_Copy((<NCPolynomial_plural>f)._poly, r)
|
|
144
|
+
else:
|
|
145
|
+
id_Delete(&i, r)
|
|
146
|
+
raise TypeError("All generators must be of type MPolynomial_libsingular.")
|
|
147
|
+
return i
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
def kbase_libsingular(I, degree=None):
|
|
151
|
+
"""
|
|
152
|
+
SINGULAR's ``kbase()`` algorithm.
|
|
153
|
+
|
|
154
|
+
INPUT:
|
|
155
|
+
|
|
156
|
+
- ``I`` -- a groebner basis of an ideal
|
|
157
|
+
|
|
158
|
+
- ``degree`` -- integer (default: ``None``); if not ``None``, return
|
|
159
|
+
only the monomials of the given degree
|
|
160
|
+
|
|
161
|
+
OUTPUT:
|
|
162
|
+
|
|
163
|
+
Computes a vector space basis (consisting of monomials) of the quotient
|
|
164
|
+
ring by the ideal, resp. of a free module by the module, in case it is
|
|
165
|
+
finite dimensional and if the input is a standard basis with respect to
|
|
166
|
+
the ring ordering. If the input is not a standard basis, the leading terms
|
|
167
|
+
of the input are used and the result may have no meaning.
|
|
168
|
+
|
|
169
|
+
With two arguments: computes the part of a vector space basis of the
|
|
170
|
+
respective quotient with degree of the monomials equal to the second
|
|
171
|
+
argument. Here, the quotient does not need to be finite dimensional.
|
|
172
|
+
|
|
173
|
+
EXAMPLES::
|
|
174
|
+
|
|
175
|
+
sage: R.<x,y> = PolynomialRing(QQ, order='lex')
|
|
176
|
+
sage: I = R.ideal(x^2-2*y^2, x*y-3)
|
|
177
|
+
sage: I.normal_basis() # indirect doctest
|
|
178
|
+
[y^3, y^2, y, 1]
|
|
179
|
+
sage: J = R.ideal(x^2-2*y^2)
|
|
180
|
+
sage: [J.normal_basis(d) for d in (0..4)] # indirect doctest
|
|
181
|
+
[[1], [y, x], [y^2, x*y], [y^3, x*y^2], [y^4, x*y^3]]
|
|
182
|
+
"""
|
|
183
|
+
|
|
184
|
+
global singular_options
|
|
185
|
+
|
|
186
|
+
cdef ideal *i = sage_ideal_to_singular_ideal(I)
|
|
187
|
+
cdef ring *r = currRing
|
|
188
|
+
cdef ideal *q = currRing.qideal
|
|
189
|
+
|
|
190
|
+
cdef ideal *result
|
|
191
|
+
singular_options = singular_options | Sy_bit(OPT_REDSB)
|
|
192
|
+
|
|
193
|
+
degree = -1 if degree is None else int(degree)
|
|
194
|
+
|
|
195
|
+
sig_on()
|
|
196
|
+
result = scKBase(degree, i, q)
|
|
197
|
+
sig_off()
|
|
198
|
+
|
|
199
|
+
id_Delete(&i, r)
|
|
200
|
+
res = singular_ideal_to_sage_sequence(result,r,I.ring())
|
|
201
|
+
|
|
202
|
+
id_Delete(&result, r)
|
|
203
|
+
|
|
204
|
+
return res
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
def std_libsingular(I):
|
|
208
|
+
"""
|
|
209
|
+
SINGULAR's ``std()`` algorithm.
|
|
210
|
+
|
|
211
|
+
INPUT:
|
|
212
|
+
|
|
213
|
+
- ``I`` -- a Sage ideal
|
|
214
|
+
"""
|
|
215
|
+
global singular_options
|
|
216
|
+
|
|
217
|
+
cdef ideal *i = sage_ideal_to_singular_ideal(I)
|
|
218
|
+
cdef ring *r = currRing
|
|
219
|
+
cdef tHomog hom = testHomog
|
|
220
|
+
cdef ideal *result
|
|
221
|
+
|
|
222
|
+
singular_options = singular_options | Sy_bit(OPT_REDSB)
|
|
223
|
+
|
|
224
|
+
sig_on()
|
|
225
|
+
result =kStd(i,NULL,hom,NULL)
|
|
226
|
+
sig_off()
|
|
227
|
+
|
|
228
|
+
idSkipZeroes(result)
|
|
229
|
+
|
|
230
|
+
id_Delete(&i,r)
|
|
231
|
+
|
|
232
|
+
res = singular_ideal_to_sage_sequence(result,r,I.ring())
|
|
233
|
+
|
|
234
|
+
id_Delete(&result,r)
|
|
235
|
+
return res
|
|
236
|
+
|
|
237
|
+
|
|
238
|
+
def slimgb_libsingular(I):
|
|
239
|
+
"""
|
|
240
|
+
SINGULAR's ``slimgb()`` algorithm.
|
|
241
|
+
|
|
242
|
+
INPUT:
|
|
243
|
+
|
|
244
|
+
- ``I`` -- a Sage ideal
|
|
245
|
+
"""
|
|
246
|
+
global singular_options
|
|
247
|
+
|
|
248
|
+
cdef ideal *i
|
|
249
|
+
cdef ring *r
|
|
250
|
+
cdef ideal *result
|
|
251
|
+
|
|
252
|
+
i = sage_ideal_to_singular_ideal(I)
|
|
253
|
+
r = currRing
|
|
254
|
+
|
|
255
|
+
if r.OrdSgn != 1:
|
|
256
|
+
id_Delete(&i, r)
|
|
257
|
+
raise TypeError("ordering must be global for slimgb")
|
|
258
|
+
|
|
259
|
+
if i.rank < id_RankFreeModule(i, r):
|
|
260
|
+
id_Delete(&i, r)
|
|
261
|
+
raise TypeError
|
|
262
|
+
|
|
263
|
+
singular_options = singular_options | Sy_bit(OPT_REDSB)
|
|
264
|
+
|
|
265
|
+
sig_on()
|
|
266
|
+
result = t_rep_gb(r, i, i.rank, 0)
|
|
267
|
+
sig_off()
|
|
268
|
+
|
|
269
|
+
id_Delete(&i, r)
|
|
270
|
+
|
|
271
|
+
res = singular_ideal_to_sage_sequence(result, r, I.ring())
|
|
272
|
+
|
|
273
|
+
id_Delete(&result, r)
|
|
274
|
+
return res
|
|
275
|
+
|
|
276
|
+
|
|
277
|
+
def interred_libsingular(I):
|
|
278
|
+
"""
|
|
279
|
+
SINGULAR's ``interred()`` command.
|
|
280
|
+
|
|
281
|
+
INPUT:
|
|
282
|
+
|
|
283
|
+
- ``I`` -- a Sage ideal
|
|
284
|
+
|
|
285
|
+
EXAMPLES::
|
|
286
|
+
|
|
287
|
+
sage: P.<x,y,z> = PolynomialRing(ZZ)
|
|
288
|
+
sage: I = ideal( x^2 - 3*y, y^3 - x*y, z^3 - x, x^4 - y*z + 1 )
|
|
289
|
+
sage: I.interreduced_basis()
|
|
290
|
+
[y*z^2 - 81*x*y - 9*y - z, z^3 - x, x^2 - 3*y, 9*y^2 - y*z + 1]
|
|
291
|
+
|
|
292
|
+
sage: P.<x,y,z> = PolynomialRing(QQ)
|
|
293
|
+
sage: I = ideal( x^2 - 3*y, y^3 - x*y, z^3 - x, x^4 - y*z + 1 )
|
|
294
|
+
sage: I.interreduced_basis()
|
|
295
|
+
[y*z^2 - 81*x*y - 9*y - z, z^3 - x, x^2 - 3*y, y^2 - 1/9*y*z + 1/9]
|
|
296
|
+
"""
|
|
297
|
+
global singular_options
|
|
298
|
+
|
|
299
|
+
cdef ideal *i
|
|
300
|
+
cdef ideal *result
|
|
301
|
+
cdef ring *r
|
|
302
|
+
cdef number *n
|
|
303
|
+
cdef poly *p
|
|
304
|
+
cdef int j
|
|
305
|
+
cdef int bck
|
|
306
|
+
|
|
307
|
+
try:
|
|
308
|
+
if len(I.gens()) == 0:
|
|
309
|
+
return Sequence([], check=False, immutable=True)
|
|
310
|
+
except AttributeError:
|
|
311
|
+
pass
|
|
312
|
+
|
|
313
|
+
i = sage_ideal_to_singular_ideal(I)
|
|
314
|
+
r = currRing
|
|
315
|
+
|
|
316
|
+
bck = singular_options
|
|
317
|
+
singular_options = singular_options | Sy_bit(OPT_REDTAIL)|Sy_bit(OPT_REDSB)
|
|
318
|
+
sig_on()
|
|
319
|
+
result = kInterRed(i,NULL)
|
|
320
|
+
sig_off()
|
|
321
|
+
singular_options = bck
|
|
322
|
+
|
|
323
|
+
# divide head by coefficients
|
|
324
|
+
if r.cf.type != n_Z and r.cf.type != n_Znm and r.cf.type != n_Zn and r.cf.type != n_Z2m:
|
|
325
|
+
for j from 0 <= j < IDELEMS(result):
|
|
326
|
+
p = result.m[j]
|
|
327
|
+
if p:
|
|
328
|
+
n = p_GetCoeff(p, r)
|
|
329
|
+
n = r.cf.cfInvers(n, r.cf)
|
|
330
|
+
result.m[j] = pp_Mult_nn(p, n, r)
|
|
331
|
+
p_Delete(&p, r)
|
|
332
|
+
n_Delete(&n, r.cf)
|
|
333
|
+
|
|
334
|
+
id_Delete(&i, r)
|
|
335
|
+
|
|
336
|
+
res = sorted(singular_ideal_to_sage_sequence(result,r,I.ring()),reverse=True)
|
|
337
|
+
|
|
338
|
+
id_Delete(&result, r)
|
|
339
|
+
return res
|
|
Binary file
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-singular
|
|
2
|
+
from sage.libs.singular.decl cimport poly, ring
|
|
3
|
+
|
|
4
|
+
from sage.rings.polynomial.multi_polynomial cimport MPolynomial_libsingular as MPolynomial_libsingular_base
|
|
5
|
+
from sage.rings.polynomial.multi_polynomial_ring_base cimport MPolynomialRing_base
|
|
6
|
+
|
|
7
|
+
cdef class MPolynomialRing_libsingular
|
|
8
|
+
|
|
9
|
+
cdef class MPolynomial_libsingular(MPolynomial_libsingular_base):
|
|
10
|
+
cdef poly *_poly
|
|
11
|
+
cdef ring *_parent_ring
|
|
12
|
+
cpdef _add_(self, other)
|
|
13
|
+
cpdef _mul_(self, other)
|
|
14
|
+
cpdef _floordiv_(self, right)
|
|
15
|
+
cpdef _repr_short_(self)
|
|
16
|
+
cpdef is_constant(self)
|
|
17
|
+
cpdef _homogenize(self, int var)
|
|
18
|
+
cpdef MPolynomial_libsingular _new_constant_poly(self, x, MPolynomialRing_libsingular P)
|
|
19
|
+
cpdef long number_of_terms(self) noexcept
|
|
20
|
+
|
|
21
|
+
cdef class MPolynomialRing_libsingular(MPolynomialRing_base):
|
|
22
|
+
cdef object __singular
|
|
23
|
+
cdef object __macaulay2
|
|
24
|
+
cdef object __m2_set_ring_cache
|
|
25
|
+
cdef object __minpoly
|
|
26
|
+
cdef poly *_one_element_poly
|
|
27
|
+
cdef ring *_ring
|
|
28
|
+
|
|
29
|
+
# new polynomials
|
|
30
|
+
cdef MPolynomial_libsingular new_MP(MPolynomialRing_libsingular parent, poly *p)
|