passagemath-singular 10.6.31rc3__cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of passagemath-singular might be problematic. Click here for more details.
- PySingular.cpython-314-aarch64-linux-gnu.so +0 -0
- passagemath_singular-10.6.31rc3.dist-info/METADATA +183 -0
- passagemath_singular-10.6.31rc3.dist-info/RECORD +490 -0
- passagemath_singular-10.6.31rc3.dist-info/WHEEL +6 -0
- passagemath_singular-10.6.31rc3.dist-info/top_level.txt +3 -0
- passagemath_singular.libs/libSingular-4-6a2a8666.4.1.so +0 -0
- passagemath_singular.libs/libcddgmp-ac579979.so.0.1.3 +0 -0
- passagemath_singular.libs/libfactory-4-66e33516.4.1.so +0 -0
- passagemath_singular.libs/libflint-81de1160.so.21.0.0 +0 -0
- passagemath_singular.libs/libgf2x-fbd36f80.so.3.0.0 +0 -0
- passagemath_singular.libs/libgfortran-e1b7dfc8.so.5.0.0 +0 -0
- passagemath_singular.libs/libgmp-93ebf16a.so.10.5.0 +0 -0
- passagemath_singular.libs/libgsl-e3525837.so.28.0.0 +0 -0
- passagemath_singular.libs/libmpfr-e0f11cf3.so.6.2.1 +0 -0
- passagemath_singular.libs/libntl-0043a3a2.so.44.0.1 +0 -0
- passagemath_singular.libs/libomalloc-0-06512335.9.6.so +0 -0
- passagemath_singular.libs/libopenblasp-r0-4c5b64b1.3.29.so +0 -0
- passagemath_singular.libs/libpolys-4-cb7246b5.4.1.so +0 -0
- passagemath_singular.libs/libreadline-28330744.so.8.2 +0 -0
- passagemath_singular.libs/libsingular_resources-4-8c425241.4.1.so +0 -0
- passagemath_singular.libs/libtinfo-f81c2d16.so.6.3 +0 -0
- sage/algebras/all__sagemath_singular.py +3 -0
- sage/algebras/fusion_rings/all.py +19 -0
- sage/algebras/fusion_rings/f_matrix.py +2448 -0
- sage/algebras/fusion_rings/fast_parallel_fmats_methods.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/algebras/fusion_rings/fast_parallel_fmats_methods.pxd +5 -0
- sage/algebras/fusion_rings/fast_parallel_fmats_methods.pyx +538 -0
- sage/algebras/fusion_rings/fast_parallel_fusion_ring_braid_repn.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/algebras/fusion_rings/fast_parallel_fusion_ring_braid_repn.pxd +3 -0
- sage/algebras/fusion_rings/fast_parallel_fusion_ring_braid_repn.pyx +331 -0
- sage/algebras/fusion_rings/fusion_double.py +899 -0
- sage/algebras/fusion_rings/fusion_ring.py +1580 -0
- sage/algebras/fusion_rings/poly_tup_engine.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/algebras/fusion_rings/poly_tup_engine.pxd +24 -0
- sage/algebras/fusion_rings/poly_tup_engine.pyx +579 -0
- sage/algebras/fusion_rings/shm_managers.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/algebras/fusion_rings/shm_managers.pxd +24 -0
- sage/algebras/fusion_rings/shm_managers.pyx +780 -0
- sage/algebras/letterplace/all.py +1 -0
- sage/algebras/letterplace/free_algebra_element_letterplace.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/algebras/letterplace/free_algebra_element_letterplace.pxd +18 -0
- sage/algebras/letterplace/free_algebra_element_letterplace.pyx +755 -0
- sage/algebras/letterplace/free_algebra_letterplace.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/algebras/letterplace/free_algebra_letterplace.pxd +35 -0
- sage/algebras/letterplace/free_algebra_letterplace.pyx +914 -0
- sage/algebras/letterplace/letterplace_ideal.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/algebras/letterplace/letterplace_ideal.pyx +408 -0
- sage/algebras/quatalg/all.py +2 -0
- sage/algebras/quatalg/quaternion_algebra.py +4778 -0
- sage/algebras/quatalg/quaternion_algebra_cython.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/algebras/quatalg/quaternion_algebra_cython.pyx +261 -0
- sage/algebras/quatalg/quaternion_algebra_element.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/algebras/quatalg/quaternion_algebra_element.pxd +29 -0
- sage/algebras/quatalg/quaternion_algebra_element.pyx +2176 -0
- sage/all__sagemath_singular.py +11 -0
- sage/ext_data/all__sagemath_singular.py +1 -0
- sage/ext_data/singular/function_field/core.lib +98 -0
- sage/interfaces/all__sagemath_singular.py +1 -0
- sage/interfaces/singular.py +2835 -0
- sage/libs/all__sagemath_singular.py +1 -0
- sage/libs/singular/__init__.py +1 -0
- sage/libs/singular/decl.pxd +1168 -0
- sage/libs/singular/function.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/libs/singular/function.pxd +87 -0
- sage/libs/singular/function.pyx +1901 -0
- sage/libs/singular/function_factory.py +61 -0
- sage/libs/singular/groebner_strategy.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/libs/singular/groebner_strategy.pxd +22 -0
- sage/libs/singular/groebner_strategy.pyx +582 -0
- sage/libs/singular/option.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/libs/singular/option.pyx +671 -0
- sage/libs/singular/polynomial.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/libs/singular/polynomial.pxd +39 -0
- sage/libs/singular/polynomial.pyx +661 -0
- sage/libs/singular/ring.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/libs/singular/ring.pxd +58 -0
- sage/libs/singular/ring.pyx +893 -0
- sage/libs/singular/singular.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/libs/singular/singular.pxd +72 -0
- sage/libs/singular/singular.pyx +1944 -0
- sage/libs/singular/standard_options.py +145 -0
- sage/matrix/all__sagemath_singular.py +1 -0
- sage/matrix/matrix_mpolynomial_dense.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/matrix/matrix_mpolynomial_dense.pxd +7 -0
- sage/matrix/matrix_mpolynomial_dense.pyx +615 -0
- sage/rings/all__sagemath_singular.py +1 -0
- sage/rings/function_field/all__sagemath_singular.py +1 -0
- sage/rings/function_field/derivations_polymod.py +911 -0
- sage/rings/function_field/element_polymod.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/rings/function_field/element_polymod.pyx +406 -0
- sage/rings/function_field/function_field_polymod.py +2611 -0
- sage/rings/function_field/ideal_polymod.py +1775 -0
- sage/rings/function_field/order_polymod.py +1475 -0
- sage/rings/function_field/place_polymod.py +681 -0
- sage/rings/polynomial/all__sagemath_singular.py +1 -0
- sage/rings/polynomial/multi_polynomial_ideal_libsingular.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/rings/polynomial/multi_polynomial_ideal_libsingular.pxd +5 -0
- sage/rings/polynomial/multi_polynomial_ideal_libsingular.pyx +339 -0
- sage/rings/polynomial/multi_polynomial_libsingular.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/rings/polynomial/multi_polynomial_libsingular.pxd +30 -0
- sage/rings/polynomial/multi_polynomial_libsingular.pyx +6277 -0
- sage/rings/polynomial/plural.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/rings/polynomial/plural.pxd +48 -0
- sage/rings/polynomial/plural.pyx +3171 -0
- sage/symbolic/all__sagemath_singular.py +1 -0
- sage/symbolic/comparison_impl.pxi +428 -0
- sage/symbolic/constants_c_impl.pxi +178 -0
- sage/symbolic/expression.cpython-314-aarch64-linux-gnu.so +0 -0
- sage/symbolic/expression.pxd +7 -0
- sage/symbolic/expression.pyx +14200 -0
- sage/symbolic/getitem_impl.pxi +202 -0
- sage/symbolic/pynac.pxi +572 -0
- sage/symbolic/pynac_constant_impl.pxi +133 -0
- sage/symbolic/pynac_function_impl.pxi +206 -0
- sage/symbolic/pynac_impl.pxi +2576 -0
- sage/symbolic/pynac_wrap.h +124 -0
- sage/symbolic/series_impl.pxi +272 -0
- sage/symbolic/substitution_map_impl.pxi +94 -0
- sage_wheels/bin/ESingular +0 -0
- sage_wheels/bin/Singular +0 -0
- sage_wheels/bin/TSingular +0 -0
- sage_wheels/lib/singular/MOD/cohomo.la +41 -0
- sage_wheels/lib/singular/MOD/cohomo.so +0 -0
- sage_wheels/lib/singular/MOD/customstd.la +41 -0
- sage_wheels/lib/singular/MOD/customstd.so +0 -0
- sage_wheels/lib/singular/MOD/freealgebra.la +41 -0
- sage_wheels/lib/singular/MOD/freealgebra.so +0 -0
- sage_wheels/lib/singular/MOD/gfanlib.la +41 -0
- sage_wheels/lib/singular/MOD/gfanlib.so +0 -0
- sage_wheels/lib/singular/MOD/gitfan.la +41 -0
- sage_wheels/lib/singular/MOD/gitfan.so +0 -0
- sage_wheels/lib/singular/MOD/interval.la +41 -0
- sage_wheels/lib/singular/MOD/interval.so +0 -0
- sage_wheels/lib/singular/MOD/loctriv.la +41 -0
- sage_wheels/lib/singular/MOD/loctriv.so +0 -0
- sage_wheels/lib/singular/MOD/machinelearning.la +41 -0
- sage_wheels/lib/singular/MOD/machinelearning.so +0 -0
- sage_wheels/lib/singular/MOD/p_Procs_FieldGeneral.la +41 -0
- sage_wheels/lib/singular/MOD/p_Procs_FieldGeneral.so +0 -0
- sage_wheels/lib/singular/MOD/p_Procs_FieldIndep.la +41 -0
- sage_wheels/lib/singular/MOD/p_Procs_FieldIndep.so +0 -0
- sage_wheels/lib/singular/MOD/p_Procs_FieldQ.la +41 -0
- sage_wheels/lib/singular/MOD/p_Procs_FieldQ.so +0 -0
- sage_wheels/lib/singular/MOD/p_Procs_FieldZp.la +41 -0
- sage_wheels/lib/singular/MOD/p_Procs_FieldZp.so +0 -0
- sage_wheels/lib/singular/MOD/partialgb.la +41 -0
- sage_wheels/lib/singular/MOD/partialgb.so +0 -0
- sage_wheels/lib/singular/MOD/pyobject.la +41 -0
- sage_wheels/lib/singular/MOD/pyobject.so +0 -0
- sage_wheels/lib/singular/MOD/singmathic.la +41 -0
- sage_wheels/lib/singular/MOD/singmathic.so +0 -0
- sage_wheels/lib/singular/MOD/sispasm.la +41 -0
- sage_wheels/lib/singular/MOD/sispasm.so +0 -0
- sage_wheels/lib/singular/MOD/subsets.la +41 -0
- sage_wheels/lib/singular/MOD/subsets.so +0 -0
- sage_wheels/lib/singular/MOD/systhreads.la +41 -0
- sage_wheels/lib/singular/MOD/systhreads.so +0 -0
- sage_wheels/lib/singular/MOD/syzextra.la +41 -0
- sage_wheels/lib/singular/MOD/syzextra.so +0 -0
- sage_wheels/libexec/singular/MOD/change_cost +0 -0
- sage_wheels/libexec/singular/MOD/singularsurf +11 -0
- sage_wheels/libexec/singular/MOD/singularsurf_jupyter +9 -0
- sage_wheels/libexec/singular/MOD/singularsurf_win +10 -0
- sage_wheels/libexec/singular/MOD/solve_IP +0 -0
- sage_wheels/libexec/singular/MOD/surfex +16 -0
- sage_wheels/libexec/singular/MOD/toric_ideal +0 -0
- sage_wheels/share/factory/gftables/10201 +342 -0
- sage_wheels/share/factory/gftables/1024 +37 -0
- sage_wheels/share/factory/gftables/10609 +356 -0
- sage_wheels/share/factory/gftables/11449 +384 -0
- sage_wheels/share/factory/gftables/11881 +398 -0
- sage_wheels/share/factory/gftables/121 +6 -0
- sage_wheels/share/factory/gftables/12167 +408 -0
- sage_wheels/share/factory/gftables/125 +7 -0
- sage_wheels/share/factory/gftables/12769 +428 -0
- sage_wheels/share/factory/gftables/128 +7 -0
- sage_wheels/share/factory/gftables/1331 +47 -0
- sage_wheels/share/factory/gftables/1369 +48 -0
- sage_wheels/share/factory/gftables/14641 +490 -0
- sage_wheels/share/factory/gftables/15625 +523 -0
- sage_wheels/share/factory/gftables/16 +3 -0
- sage_wheels/share/factory/gftables/16129 +540 -0
- sage_wheels/share/factory/gftables/16384 +549 -0
- sage_wheels/share/factory/gftables/16807 +563 -0
- sage_wheels/share/factory/gftables/1681 +58 -0
- sage_wheels/share/factory/gftables/169 +8 -0
- sage_wheels/share/factory/gftables/17161 +574 -0
- sage_wheels/share/factory/gftables/1849 +64 -0
- sage_wheels/share/factory/gftables/18769 +628 -0
- sage_wheels/share/factory/gftables/19321 +646 -0
- sage_wheels/share/factory/gftables/19683 +659 -0
- sage_wheels/share/factory/gftables/2048 +71 -0
- sage_wheels/share/factory/gftables/2187 +75 -0
- sage_wheels/share/factory/gftables/2197 +76 -0
- sage_wheels/share/factory/gftables/2209 +76 -0
- sage_wheels/share/factory/gftables/22201 +742 -0
- sage_wheels/share/factory/gftables/22801 +762 -0
- sage_wheels/share/factory/gftables/2401 +82 -0
- sage_wheels/share/factory/gftables/243 +11 -0
- sage_wheels/share/factory/gftables/24389 +815 -0
- sage_wheels/share/factory/gftables/24649 +824 -0
- sage_wheels/share/factory/gftables/25 +3 -0
- sage_wheels/share/factory/gftables/256 +11 -0
- sage_wheels/share/factory/gftables/26569 +888 -0
- sage_wheels/share/factory/gftables/27 +3 -0
- sage_wheels/share/factory/gftables/27889 +932 -0
- sage_wheels/share/factory/gftables/2809 +96 -0
- sage_wheels/share/factory/gftables/28561 +954 -0
- sage_wheels/share/factory/gftables/289 +12 -0
- sage_wheels/share/factory/gftables/29791 +995 -0
- sage_wheels/share/factory/gftables/29929 +1000 -0
- sage_wheels/share/factory/gftables/3125 +107 -0
- sage_wheels/share/factory/gftables/32 +4 -0
- sage_wheels/share/factory/gftables/32041 +1070 -0
- sage_wheels/share/factory/gftables/32761 +1094 -0
- sage_wheels/share/factory/gftables/32768 +1095 -0
- sage_wheels/share/factory/gftables/343 +14 -0
- sage_wheels/share/factory/gftables/3481 +118 -0
- sage_wheels/share/factory/gftables/361 +14 -0
- sage_wheels/share/factory/gftables/36481 +1218 -0
- sage_wheels/share/factory/gftables/3721 +126 -0
- sage_wheels/share/factory/gftables/37249 +1244 -0
- sage_wheels/share/factory/gftables/38809 +1296 -0
- sage_wheels/share/factory/gftables/39601 +1322 -0
- sage_wheels/share/factory/gftables/4 +3 -0
- sage_wheels/share/factory/gftables/4096 +139 -0
- sage_wheels/share/factory/gftables/44521 +1486 -0
- sage_wheels/share/factory/gftables/4489 +152 -0
- sage_wheels/share/factory/gftables/49 +4 -0
- sage_wheels/share/factory/gftables/4913 +166 -0
- sage_wheels/share/factory/gftables/49729 +1660 -0
- sage_wheels/share/factory/gftables/5041 +170 -0
- sage_wheels/share/factory/gftables/50653 +1691 -0
- sage_wheels/share/factory/gftables/512 +20 -0
- sage_wheels/share/factory/gftables/51529 +1720 -0
- sage_wheels/share/factory/gftables/52441 +1750 -0
- sage_wheels/share/factory/gftables/529 +20 -0
- sage_wheels/share/factory/gftables/5329 +180 -0
- sage_wheels/share/factory/gftables/54289 +1812 -0
- sage_wheels/share/factory/gftables/57121 +1906 -0
- sage_wheels/share/factory/gftables/58081 +1938 -0
- sage_wheels/share/factory/gftables/59049 +1971 -0
- sage_wheels/share/factory/gftables/6241 +210 -0
- sage_wheels/share/factory/gftables/625 +23 -0
- sage_wheels/share/factory/gftables/63001 +2102 -0
- sage_wheels/share/factory/gftables/64 +5 -0
- sage_wheels/share/factory/gftables/6561 +221 -0
- sage_wheels/share/factory/gftables/6859 +231 -0
- sage_wheels/share/factory/gftables/6889 +232 -0
- sage_wheels/share/factory/gftables/729 +27 -0
- sage_wheels/share/factory/gftables/7921 +266 -0
- sage_wheels/share/factory/gftables/8 +3 -0
- sage_wheels/share/factory/gftables/81 +5 -0
- sage_wheels/share/factory/gftables/8192 +276 -0
- sage_wheels/share/factory/gftables/841 +30 -0
- sage_wheels/share/factory/gftables/9 +3 -0
- sage_wheels/share/factory/gftables/9409 +316 -0
- sage_wheels/share/factory/gftables/961 +34 -0
- sage_wheels/share/info/singular.info +191898 -0
- sage_wheels/share/singular/LIB/GND.lib +1359 -0
- sage_wheels/share/singular/LIB/JMBTest.lib +976 -0
- sage_wheels/share/singular/LIB/JMSConst.lib +1363 -0
- sage_wheels/share/singular/LIB/KVequiv.lib +699 -0
- sage_wheels/share/singular/LIB/SingularityDBM.lib +491 -0
- sage_wheels/share/singular/LIB/VecField.lib +1542 -0
- sage_wheels/share/singular/LIB/absfact.lib +959 -0
- sage_wheels/share/singular/LIB/ainvar.lib +730 -0
- sage_wheels/share/singular/LIB/aksaka.lib +419 -0
- sage_wheels/share/singular/LIB/alexpoly.lib +2542 -0
- sage_wheels/share/singular/LIB/algebra.lib +1193 -0
- sage_wheels/share/singular/LIB/all.lib +136 -0
- sage_wheels/share/singular/LIB/arcpoint.lib +514 -0
- sage_wheels/share/singular/LIB/arnold.lib +4553 -0
- sage_wheels/share/singular/LIB/arnoldclassify.lib +2058 -0
- sage_wheels/share/singular/LIB/arr.lib +3486 -0
- sage_wheels/share/singular/LIB/assprimeszerodim.lib +755 -0
- sage_wheels/share/singular/LIB/autgradalg.lib +3361 -0
- sage_wheels/share/singular/LIB/bfun.lib +1964 -0
- sage_wheels/share/singular/LIB/bimodules.lib +774 -0
- sage_wheels/share/singular/LIB/brillnoether.lib +226 -0
- sage_wheels/share/singular/LIB/brnoeth.lib +5017 -0
- sage_wheels/share/singular/LIB/central.lib +2169 -0
- sage_wheels/share/singular/LIB/chern.lib +4162 -0
- sage_wheels/share/singular/LIB/cimonom.lib +571 -0
- sage_wheels/share/singular/LIB/cisimplicial.lib +1835 -0
- sage_wheels/share/singular/LIB/classify.lib +3239 -0
- sage_wheels/share/singular/LIB/classify2.lib +1462 -0
- sage_wheels/share/singular/LIB/classifyMapGerms.lib +1515 -0
- sage_wheels/share/singular/LIB/classify_aeq.lib +3253 -0
- sage_wheels/share/singular/LIB/classifyceq.lib +2092 -0
- sage_wheels/share/singular/LIB/classifyci.lib +1133 -0
- sage_wheels/share/singular/LIB/combinat.lib +91 -0
- sage_wheels/share/singular/LIB/compregb.lib +276 -0
- sage_wheels/share/singular/LIB/control.lib +1636 -0
- sage_wheels/share/singular/LIB/crypto.lib +3795 -0
- sage_wheels/share/singular/LIB/curveInv.lib +667 -0
- sage_wheels/share/singular/LIB/curvepar.lib +1817 -0
- sage_wheels/share/singular/LIB/customstd.lib +100 -0
- sage_wheels/share/singular/LIB/deRham.lib +5979 -0
- sage_wheels/share/singular/LIB/decodegb.lib +2134 -0
- sage_wheels/share/singular/LIB/decomp.lib +1655 -0
- sage_wheels/share/singular/LIB/deflation.lib +872 -0
- sage_wheels/share/singular/LIB/deform.lib +925 -0
- sage_wheels/share/singular/LIB/difform.lib +3055 -0
- sage_wheels/share/singular/LIB/divisors.lib +750 -0
- sage_wheels/share/singular/LIB/dmod.lib +5817 -0
- sage_wheels/share/singular/LIB/dmodapp.lib +3269 -0
- sage_wheels/share/singular/LIB/dmodideal.lib +1211 -0
- sage_wheels/share/singular/LIB/dmodloc.lib +2645 -0
- sage_wheels/share/singular/LIB/dmodvar.lib +818 -0
- sage_wheels/share/singular/LIB/dummy.lib +17 -0
- sage_wheels/share/singular/LIB/elim.lib +1009 -0
- sage_wheels/share/singular/LIB/ellipticcovers.lib +548 -0
- sage_wheels/share/singular/LIB/enumpoints.lib +146 -0
- sage_wheels/share/singular/LIB/equising.lib +2127 -0
- sage_wheels/share/singular/LIB/ffmodstd.lib +2384 -0
- sage_wheels/share/singular/LIB/ffsolve.lib +1289 -0
- sage_wheels/share/singular/LIB/findifs.lib +778 -0
- sage_wheels/share/singular/LIB/finitediff.lib +1768 -0
- sage_wheels/share/singular/LIB/finvar.lib +7989 -0
- sage_wheels/share/singular/LIB/fpadim.lib +2429 -0
- sage_wheels/share/singular/LIB/fpalgebras.lib +1666 -0
- sage_wheels/share/singular/LIB/fpaprops.lib +1462 -0
- sage_wheels/share/singular/LIB/freegb.lib +3853 -0
- sage_wheels/share/singular/LIB/general.lib +1350 -0
- sage_wheels/share/singular/LIB/gfan.lib +1768 -0
- sage_wheels/share/singular/LIB/gitfan.lib +3130 -0
- sage_wheels/share/singular/LIB/gkdim.lib +99 -0
- sage_wheels/share/singular/LIB/gmspoly.lib +589 -0
- sage_wheels/share/singular/LIB/gmssing.lib +1739 -0
- sage_wheels/share/singular/LIB/goettsche.lib +909 -0
- sage_wheels/share/singular/LIB/graal.lib +1366 -0
- sage_wheels/share/singular/LIB/gradedModules.lib +2541 -0
- sage_wheels/share/singular/LIB/graphics.lib +360 -0
- sage_wheels/share/singular/LIB/grobcov.lib +7706 -0
- sage_wheels/share/singular/LIB/groups.lib +1123 -0
- sage_wheels/share/singular/LIB/grwalk.lib +507 -0
- sage_wheels/share/singular/LIB/hdepth.lib +194 -0
- sage_wheels/share/singular/LIB/help.cnf +57 -0
- sage_wheels/share/singular/LIB/hess.lib +1946 -0
- sage_wheels/share/singular/LIB/hnoether.lib +4292 -0
- sage_wheels/share/singular/LIB/hodge.lib +400 -0
- sage_wheels/share/singular/LIB/homolog.lib +1965 -0
- sage_wheels/share/singular/LIB/hyperel.lib +975 -0
- sage_wheels/share/singular/LIB/inout.lib +679 -0
- sage_wheels/share/singular/LIB/integralbasis.lib +6224 -0
- sage_wheels/share/singular/LIB/interval.lib +1418 -0
- sage_wheels/share/singular/LIB/intprog.lib +778 -0
- sage_wheels/share/singular/LIB/invar.lib +443 -0
- sage_wheels/share/singular/LIB/involut.lib +980 -0
- sage_wheels/share/singular/LIB/jacobson.lib +1215 -0
- sage_wheels/share/singular/LIB/kskernel.lib +534 -0
- sage_wheels/share/singular/LIB/latex.lib +3146 -0
- sage_wheels/share/singular/LIB/lejeune.lib +651 -0
- sage_wheels/share/singular/LIB/linalg.lib +2040 -0
- sage_wheels/share/singular/LIB/locnormal.lib +212 -0
- sage_wheels/share/singular/LIB/lrcalc.lib +526 -0
- sage_wheels/share/singular/LIB/makedbm.lib +294 -0
- sage_wheels/share/singular/LIB/mathml.lib +813 -0
- sage_wheels/share/singular/LIB/matrix.lib +1372 -0
- sage_wheels/share/singular/LIB/maxlike.lib +1132 -0
- sage_wheels/share/singular/LIB/methods.lib +212 -0
- sage_wheels/share/singular/LIB/moddiq.lib +322 -0
- sage_wheels/share/singular/LIB/modfinduni.lib +181 -0
- sage_wheels/share/singular/LIB/modnormal.lib +218 -0
- sage_wheels/share/singular/LIB/modprimdec.lib +1278 -0
- sage_wheels/share/singular/LIB/modquotient.lib +269 -0
- sage_wheels/share/singular/LIB/modstd.lib +1024 -0
- sage_wheels/share/singular/LIB/modular.lib +545 -0
- sage_wheels/share/singular/LIB/modules.lib +2561 -0
- sage_wheels/share/singular/LIB/modwalk.lib +609 -0
- sage_wheels/share/singular/LIB/mondromy.lib +1016 -0
- sage_wheels/share/singular/LIB/monomialideal.lib +3851 -0
- sage_wheels/share/singular/LIB/mprimdec.lib +2353 -0
- sage_wheels/share/singular/LIB/mregular.lib +1863 -0
- sage_wheels/share/singular/LIB/multigrading.lib +5629 -0
- sage_wheels/share/singular/LIB/ncHilb.lib +777 -0
- sage_wheels/share/singular/LIB/ncModslimgb.lib +791 -0
- sage_wheels/share/singular/LIB/ncalg.lib +16311 -0
- sage_wheels/share/singular/LIB/ncall.lib +31 -0
- sage_wheels/share/singular/LIB/ncdecomp.lib +468 -0
- sage_wheels/share/singular/LIB/ncfactor.lib +13371 -0
- sage_wheels/share/singular/LIB/ncfrac.lib +1023 -0
- sage_wheels/share/singular/LIB/nchilbert.lib +448 -0
- sage_wheels/share/singular/LIB/nchomolog.lib +759 -0
- sage_wheels/share/singular/LIB/ncloc.lib +361 -0
- sage_wheels/share/singular/LIB/ncpreim.lib +795 -0
- sage_wheels/share/singular/LIB/ncrat.lib +2849 -0
- sage_wheels/share/singular/LIB/nctools.lib +1887 -0
- sage_wheels/share/singular/LIB/nets.lib +1456 -0
- sage_wheels/share/singular/LIB/nfmodstd.lib +1000 -0
- sage_wheels/share/singular/LIB/nfmodsyz.lib +732 -0
- sage_wheels/share/singular/LIB/noether.lib +1106 -0
- sage_wheels/share/singular/LIB/normal.lib +8700 -0
- sage_wheels/share/singular/LIB/normaliz.lib +2226 -0
- sage_wheels/share/singular/LIB/ntsolve.lib +362 -0
- sage_wheels/share/singular/LIB/numerAlg.lib +560 -0
- sage_wheels/share/singular/LIB/numerDecom.lib +2261 -0
- sage_wheels/share/singular/LIB/olga.lib +1933 -0
- sage_wheels/share/singular/LIB/orbitparam.lib +351 -0
- sage_wheels/share/singular/LIB/parallel.lib +319 -0
- sage_wheels/share/singular/LIB/paraplanecurves.lib +3110 -0
- sage_wheels/share/singular/LIB/perron.lib +202 -0
- sage_wheels/share/singular/LIB/pfd.lib +2223 -0
- sage_wheels/share/singular/LIB/phindex.lib +642 -0
- sage_wheels/share/singular/LIB/pointid.lib +673 -0
- sage_wheels/share/singular/LIB/polybori.lib +1430 -0
- sage_wheels/share/singular/LIB/polyclass.lib +525 -0
- sage_wheels/share/singular/LIB/polylib.lib +1174 -0
- sage_wheels/share/singular/LIB/polymake.lib +1902 -0
- sage_wheels/share/singular/LIB/presolve.lib +1533 -0
- sage_wheels/share/singular/LIB/primdec.lib +9576 -0
- sage_wheels/share/singular/LIB/primdecint.lib +1782 -0
- sage_wheels/share/singular/LIB/primitiv.lib +401 -0
- sage_wheels/share/singular/LIB/puiseuxexpansions.lib +1631 -0
- sage_wheels/share/singular/LIB/purityfiltration.lib +960 -0
- sage_wheels/share/singular/LIB/qhmoduli.lib +1561 -0
- sage_wheels/share/singular/LIB/qmatrix.lib +293 -0
- sage_wheels/share/singular/LIB/random.lib +455 -0
- sage_wheels/share/singular/LIB/ratgb.lib +489 -0
- sage_wheels/share/singular/LIB/realclassify.lib +5759 -0
- sage_wheels/share/singular/LIB/realizationMatroids.lib +772 -0
- sage_wheels/share/singular/LIB/realrad.lib +1197 -0
- sage_wheels/share/singular/LIB/recover.lib +2628 -0
- sage_wheels/share/singular/LIB/redcgs.lib +3984 -0
- sage_wheels/share/singular/LIB/reesclos.lib +465 -0
- sage_wheels/share/singular/LIB/resbinomial.lib +2802 -0
- sage_wheels/share/singular/LIB/resgraph.lib +789 -0
- sage_wheels/share/singular/LIB/resjung.lib +820 -0
- sage_wheels/share/singular/LIB/resolve.lib +5110 -0
- sage_wheels/share/singular/LIB/resources.lib +170 -0
- sage_wheels/share/singular/LIB/reszeta.lib +5473 -0
- sage_wheels/share/singular/LIB/ring.lib +1328 -0
- sage_wheels/share/singular/LIB/ringgb.lib +343 -0
- sage_wheels/share/singular/LIB/rinvar.lib +1153 -0
- sage_wheels/share/singular/LIB/rootisolation.lib +1481 -0
- sage_wheels/share/singular/LIB/rootsmr.lib +709 -0
- sage_wheels/share/singular/LIB/rootsur.lib +886 -0
- sage_wheels/share/singular/LIB/rstandard.lib +607 -0
- sage_wheels/share/singular/LIB/rwalk.lib +336 -0
- sage_wheels/share/singular/LIB/sagbi.lib +1353 -0
- sage_wheels/share/singular/LIB/sagbiNormaliz.lib +1622 -0
- sage_wheels/share/singular/LIB/sagbiNormaliz0.lib +1498 -0
- sage_wheels/share/singular/LIB/sagbigrob.lib +449 -0
- sage_wheels/share/singular/LIB/schreyer.lib +321 -0
- sage_wheels/share/singular/LIB/schubert.lib +2551 -0
- sage_wheels/share/singular/LIB/sets.lib +524 -0
- sage_wheels/share/singular/LIB/sheafcoh.lib +1663 -0
- sage_wheels/share/singular/LIB/signcond.lib +437 -0
- sage_wheels/share/singular/LIB/sing.lib +1094 -0
- sage_wheels/share/singular/LIB/sing4ti2.lib +419 -0
- sage_wheels/share/singular/LIB/solve.lib +2243 -0
- sage_wheels/share/singular/LIB/spcurve.lib +1077 -0
- sage_wheels/share/singular/LIB/spectrum.lib +62 -0
- sage_wheels/share/singular/LIB/sresext.lib +757 -0
- sage_wheels/share/singular/LIB/ssi.lib +143 -0
- sage_wheels/share/singular/LIB/standard.lib +2769 -0
- sage_wheels/share/singular/LIB/stanleyreisner.lib +473 -0
- sage_wheels/share/singular/LIB/stdmodule.lib +547 -0
- sage_wheels/share/singular/LIB/stratify.lib +1070 -0
- sage_wheels/share/singular/LIB/surf.lib +506 -0
- sage_wheels/share/singular/LIB/surf_jupyter.lib +223 -0
- sage_wheels/share/singular/LIB/surfacesignature.lib +522 -0
- sage_wheels/share/singular/LIB/surfex.lib +1462 -0
- sage_wheels/share/singular/LIB/swalk.lib +877 -0
- sage_wheels/share/singular/LIB/symodstd.lib +1570 -0
- sage_wheels/share/singular/LIB/systhreads.lib +74 -0
- sage_wheels/share/singular/LIB/tasks.lib +1324 -0
- sage_wheels/share/singular/LIB/tateProdCplxNegGrad.lib +2412 -0
- sage_wheels/share/singular/LIB/teachstd.lib +858 -0
- sage_wheels/share/singular/LIB/template.lib +116 -0
- sage_wheels/share/singular/LIB/toric.lib +1119 -0
- sage_wheels/share/singular/LIB/transformation.lib +116 -0
- sage_wheels/share/singular/LIB/triang.lib +1197 -0
- sage_wheels/share/singular/LIB/tropical.lib +8741 -0
- sage_wheels/share/singular/LIB/tropicalEllipticCovers.lib +2922 -0
- sage_wheels/share/singular/LIB/tropicalNewton.lib +1128 -0
- sage_wheels/share/singular/LIB/tst.lib +1108 -0
- sage_wheels/share/singular/LIB/weierstr.lib +241 -0
- sage_wheels/share/singular/LIB/zeroset.lib +1478 -0
- sage_wheels/share/singular/emacs/.emacs-general +184 -0
- sage_wheels/share/singular/emacs/.emacs-singular +234 -0
- sage_wheels/share/singular/emacs/COPYING +44 -0
- sage_wheels/share/singular/emacs/cmd-cmpl.el +241 -0
- sage_wheels/share/singular/emacs/ex-cmpl.el +1681 -0
- sage_wheels/share/singular/emacs/hlp-cmpl.el +4318 -0
- sage_wheels/share/singular/emacs/lib-cmpl.el +179 -0
- sage_wheels/share/singular/emacs/singular.el +4273 -0
- sage_wheels/share/singular/emacs/singular.xpm +39 -0
- sage_wheels/share/singular/singular.idx +5002 -0
|
@@ -0,0 +1,524 @@
|
|
|
1
|
+
///////////////////////////////////////////////////////////////////////////////
|
|
2
|
+
version="version sets.lib 4.2.0.0 Dec_2020 "; //$Id: 1fc32cbc49f3078c8165eb4ec52dadd44ad21899 $
|
|
3
|
+
category="Miscellaneous";
|
|
4
|
+
info="
|
|
5
|
+
LIBRARY: sets.lib Sets in Singular
|
|
6
|
+
|
|
7
|
+
AUTHORS: J. Boehm, boehm @ mathematik.uni-kl.de
|
|
8
|
+
D. Wienholz, wienholz @ mathematik.uni-kl.de
|
|
9
|
+
S. Zillien, zillien @ rhrk.uni-kl.de
|
|
10
|
+
|
|
11
|
+
OVERVIEW:
|
|
12
|
+
|
|
13
|
+
We implement the new class set and all basic methods needed to work with sets.
|
|
14
|
+
A set is generated from a list. After the generating of a set, the adding of an
|
|
15
|
+
element or the union of two sets, automatically every double element is removed
|
|
16
|
+
to secure that no element occurs in a set more than once.
|
|
17
|
+
|
|
18
|
+
There is a comparison operator, we access the operator via the function isEqual.
|
|
19
|
+
This function isEqual can be used to compare two elements of the same type
|
|
20
|
+
(Set, list, int, bigint, string, intmat, bigintmat, intvec, ring, map, poly, matrix,
|
|
21
|
+
ideal, module, vector, resolution) and also works for comparing of int, bigint and
|
|
22
|
+
number with each other, similarly for matrix, bigintmat and intmat.
|
|
23
|
+
|
|
24
|
+
The function size can be used to determine the number of elements.
|
|
25
|
+
|
|
26
|
+
The + operator is used for the union, the * operator for the intersection.
|
|
27
|
+
|
|
28
|
+
The operators < and > can be used for inclusion tests.
|
|
29
|
+
|
|
30
|
+
The print function can be used for printing sets.
|
|
31
|
+
|
|
32
|
+
Note that the implementation of the underlying data structure and algorithms is
|
|
33
|
+
very trivial and will at some point be replaced with something more efficient.
|
|
34
|
+
|
|
35
|
+
KEYWORDS:
|
|
36
|
+
set, intersectionSet, union, complement, equality, isEqual
|
|
37
|
+
|
|
38
|
+
TYPES:
|
|
39
|
+
Set The class of all sets
|
|
40
|
+
|
|
41
|
+
PROCEDURES:
|
|
42
|
+
set(list) general procedure to generate a set from a list
|
|
43
|
+
union(Set,Set) union of sets
|
|
44
|
+
intersectionSet(Set,Set) intersection of sets
|
|
45
|
+
complement(Set,Set) complement of sets
|
|
46
|
+
isElement(def,Set) test whether an object is in a set
|
|
47
|
+
isSubset(Set,Set) test whether a set is a subset of another set
|
|
48
|
+
isSuperset(Set,Set) test whether a set is a superset of another set
|
|
49
|
+
addElement(Set,def) adds an element to the set
|
|
50
|
+
";
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
static proc mod_init()
|
|
54
|
+
{
|
|
55
|
+
LIB "methods.lib"; // mod_init needs Hashtable/Method from methods.lib
|
|
56
|
+
newstruct("Set","list elements");
|
|
57
|
+
system("install","Set","print",printSet,1);
|
|
58
|
+
system("install","Set","+",union,2);
|
|
59
|
+
system("install","Set","*",intersectionSet,2);
|
|
60
|
+
system("install","Set","<",isSubset,2);
|
|
61
|
+
system("install","Set","size",sizeSet,1);
|
|
62
|
+
system("install","Set",">",isSuperset,2);
|
|
63
|
+
system("install","Set","==",isEqualSet,2);
|
|
64
|
+
HashTable F = hashTable(
|
|
65
|
+
list(
|
|
66
|
+
list("Set","Set"), list("int","number"), list("number","bigint"),
|
|
67
|
+
list("poly","poly"), list("matrix","matrix"), list("ideal","ideal"),
|
|
68
|
+
list("map","map"), list("ring","ring"), list("list","list"),
|
|
69
|
+
list("bigint","int"), list("int","bigint"), list("bigint","bigint"),
|
|
70
|
+
list("string","string"), list("vector","vector"), list("intvec","intvec"),
|
|
71
|
+
list("intmat","intmat"), list("bigintmat","bigintmat"), list("matrix","intmat"),
|
|
72
|
+
list("intmat","matrix"), list("intmat","bigintmat"), list("bigintmat","intmat"),
|
|
73
|
+
list("int","int"), list("number","int"), list("bigint","number"),
|
|
74
|
+
list("module","module"), list("number","number"), list("resolution","resolution"),
|
|
75
|
+
list("vector","intvec"), list("intvec","vector")
|
|
76
|
+
),
|
|
77
|
+
list(
|
|
78
|
+
"isEqualSet", "isEqualInt", "isEqualInt",
|
|
79
|
+
"isEqualInt", "isEqualInt", "isEqualIdeal",
|
|
80
|
+
"isEqualMap", "isEqualRing", "isEqualList",
|
|
81
|
+
"isEqualInt", "isEqualInt", "isEqualInt",
|
|
82
|
+
"isEqualInt", "isEqualInt", "isEqualInt",
|
|
83
|
+
"isEqualInt", "isEqualInt", "isEqualInt",
|
|
84
|
+
"isEqualInt", "isEqualInt", "isEqualInt",
|
|
85
|
+
"isEqualInt", "isEqualInt", "isEqualInt",
|
|
86
|
+
"isEqualModule", "isEqualInt", "isEqualResolution",
|
|
87
|
+
"isEqualInt","isEqualInt"
|
|
88
|
+
)
|
|
89
|
+
);
|
|
90
|
+
Method isEqual_ = method(F);
|
|
91
|
+
export(isEqual_);
|
|
92
|
+
installMethod(isEqual_,"isEqual");
|
|
93
|
+
system("install","Set","=",set,1);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
proc sizeSet(Set a)
|
|
97
|
+
{
|
|
98
|
+
list L =a.elements;
|
|
99
|
+
return(size(L));
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
proc isEqualInt(def a,def b) //exists for matrix, int, bigint, poly, string, vector, intvec, number, intmat, bigintmat, cone
|
|
104
|
+
{
|
|
105
|
+
return(a==b);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
proc isEqualMap(def a, def b)
|
|
110
|
+
{
|
|
111
|
+
if(!(isEqualRing(preimage(a),preimage(b)))) //check the startring of the maps
|
|
112
|
+
{
|
|
113
|
+
return(0);
|
|
114
|
+
}
|
|
115
|
+
for(int i=1;i<=size(ring_list(preimage(a))[2]);i++){ //check if the two maps are the same
|
|
116
|
+
if(a[i]!=b[i]){ //in every component
|
|
117
|
+
return(0);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return(1);}
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
proc isEqualModule(def m0, def s0)
|
|
124
|
+
{
|
|
125
|
+
intvec o=option(get);
|
|
126
|
+
option(redSB);
|
|
127
|
+
module m=std(m0);
|
|
128
|
+
module s=std(s0);
|
|
129
|
+
option(set,o);
|
|
130
|
+
if(size(m)!=size(s)){return(0);}
|
|
131
|
+
for(int i=1;i<=size(m);i++){
|
|
132
|
+
if(m[i]!=s[i]){return(0);}
|
|
133
|
+
}
|
|
134
|
+
return(1);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
proc isEqualResolution(def r, def s)
|
|
139
|
+
{
|
|
140
|
+
list l=r;
|
|
141
|
+
list j=s;
|
|
142
|
+
return(isEqual(l,j));
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
proc isEqualRing(def r, def t)
|
|
146
|
+
{
|
|
147
|
+
list a=ringlist(r); //creating two lists with everything that defines the rings
|
|
148
|
+
list b=ringlist(t);
|
|
149
|
+
return(isEqual(a,b));
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
proc isEqualList(def a, def b)
|
|
153
|
+
{
|
|
154
|
+
if(size(a)!=size(b)){ //check if the two lists have the same size
|
|
155
|
+
return(0);
|
|
156
|
+
}
|
|
157
|
+
for(int i=1;i<=size(a);i++){ //checking every element of the two lists
|
|
158
|
+
if(!(isEqual(a[i],b[i]))){
|
|
159
|
+
return(0);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
return(1);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
proc isEqualSet(def a, def b)
|
|
166
|
+
{
|
|
167
|
+
if(size(a)!=size(b)) //check if the two sets have the same size
|
|
168
|
+
{
|
|
169
|
+
return(0);
|
|
170
|
+
}
|
|
171
|
+
list L = a.elements;
|
|
172
|
+
for(int i=1;i<=size(a);i++) //check if every element of the first set occurs in
|
|
173
|
+
{
|
|
174
|
+
if(!(isElement(L[i],b))) //the second set
|
|
175
|
+
{
|
|
176
|
+
return(0);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
return(1);
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
proc isEqualIdeal(def a, def b)
|
|
183
|
+
{
|
|
184
|
+
option(redSB);
|
|
185
|
+
intvec o=option(get);
|
|
186
|
+
ideal I = std(a);
|
|
187
|
+
ideal J = std(b);
|
|
188
|
+
option(set,o);
|
|
189
|
+
if(size(I)!=size(J)){
|
|
190
|
+
return(0);
|
|
191
|
+
}
|
|
192
|
+
for(int i = 1;i<=size(I); i++){
|
|
193
|
+
if(I[i]!=J[i]){
|
|
194
|
+
return(0);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
return(1);
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
static proc removeDouble(list L)
|
|
201
|
+
{
|
|
202
|
+
int j;
|
|
203
|
+
list L1; //creating a list tagging the first appearance with 1 and the following with 0
|
|
204
|
+
list Output; //creating an empty list for the return
|
|
205
|
+
for(int i=1; i<=size(L); i++){
|
|
206
|
+
L1=insert(L1,1); //at the beginning every element is tagged with 1
|
|
207
|
+
}
|
|
208
|
+
for(i=1; i<size(L); i++){
|
|
209
|
+
if(L1[i]){ //for every element tagged with 1
|
|
210
|
+
for(j=i+1; j<=size(L); j++){ //check if it appearace again
|
|
211
|
+
if(isEqual(L[i],L[j])){ //and tag those appearances with 0
|
|
212
|
+
L1[j] = 0;
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
for(i=1; i<=size(L); i++){
|
|
218
|
+
if(L1[i]){ //adding every element tagged with 1 to the list
|
|
219
|
+
Output=insert(Output,L[i]); //for the return
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
return(Output);
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
static proc complementOfLists(list L,list J)
|
|
227
|
+
{
|
|
228
|
+
int j;
|
|
229
|
+
list L1; //create a list to tag the elements with 1 or 0
|
|
230
|
+
list Output; //create a list for the return
|
|
231
|
+
for(int i=1; i<=size(J); i++){
|
|
232
|
+
L1=insert(L1,1); //every element of the second list is tagged with 1
|
|
233
|
+
}
|
|
234
|
+
for(i=1; i<=size(L); i++){ //for every element of the first list
|
|
235
|
+
for(j=1; j<=size(J); j++){ //test if it is equal to the elements of the
|
|
236
|
+
if(isEqual(L[i],J[j])){ //second list
|
|
237
|
+
L1[j] = 0; //and tag those with 0
|
|
238
|
+
break;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
for(i=1; i<=size(J); i++){ //adding every element tagged with 1 to the set
|
|
243
|
+
if(L1[i]){ //for the return
|
|
244
|
+
Output=insert(Output,J[i]);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
return(Output);
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
proc addElement(Set M, def a)
|
|
251
|
+
"USAGE: addElement(M,a) ; M Set, a freely chosen element
|
|
252
|
+
RETURN: adds the Element a to the Set M
|
|
253
|
+
EXAMPLE: example addElement, shows an example
|
|
254
|
+
"
|
|
255
|
+
{
|
|
256
|
+
Set S=a;
|
|
257
|
+
return(M+S);
|
|
258
|
+
}
|
|
259
|
+
example
|
|
260
|
+
{ "EXAMPLE:"; echo = 2; //example for addElement
|
|
261
|
+
int a=4;
|
|
262
|
+
list L = 1,2,3;
|
|
263
|
+
Set S = L;
|
|
264
|
+
S;
|
|
265
|
+
a;
|
|
266
|
+
addElement(S,a);
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
proc set(list L)
|
|
270
|
+
"USAGE: set(l) or *=l (short form of * = set(l)); l list
|
|
271
|
+
RETURN: Set, the set createt from the entered list
|
|
272
|
+
EXAMPLE: example set, shows an example
|
|
273
|
+
"
|
|
274
|
+
{
|
|
275
|
+
Set S;
|
|
276
|
+
S.elements=removeDouble(L); //removing every element which occurs more then once
|
|
277
|
+
return(S);
|
|
278
|
+
}
|
|
279
|
+
example
|
|
280
|
+
{
|
|
281
|
+
"EXAMPLE:"; echo = 2; //example for set
|
|
282
|
+
Set S0a = list(list(1,2,3),list(list(1,2)),list(10,11));
|
|
283
|
+
Set S0b = list(list(10,11),list(list(1,2)));
|
|
284
|
+
S0b<S0a;
|
|
285
|
+
S0a<S0b;
|
|
286
|
+
S0a==S0a;
|
|
287
|
+
S0a==S0b;
|
|
288
|
+
list L = 1,1,2,3;
|
|
289
|
+
Set S1 = L;
|
|
290
|
+
S1;
|
|
291
|
+
ring R1;
|
|
292
|
+
ring R2 = 0,(x,y),dp;
|
|
293
|
+
Set S2 = list(R1,R1,R2);
|
|
294
|
+
S2;
|
|
295
|
+
ideal I1 = x+y;
|
|
296
|
+
ideal I2 = y^2;
|
|
297
|
+
ideal I3 = x+y, (x+y)^3;
|
|
298
|
+
Set S3 = list(I1,I2,I3);
|
|
299
|
+
S3;
|
|
300
|
+
isEqual(I1,I3);
|
|
301
|
+
isEqual(I1,I2);
|
|
302
|
+
module M1 = x*gen(1), y*gen(1);
|
|
303
|
+
module M2 = y^2*gen(2);
|
|
304
|
+
module M3 = (x+y)*gen(1), (x-y)*gen(1);
|
|
305
|
+
Set S4 = list(M1,M2,M3);
|
|
306
|
+
S4;
|
|
307
|
+
intmat m1[2][3]= 1,2,3,4,5,6;
|
|
308
|
+
intmat m2[2][3]= 1,2,3,4,5,7;
|
|
309
|
+
Set S5 = list(m1,m2,m1);
|
|
310
|
+
S5;
|
|
311
|
+
bigintmat b1[2][3]= 1,2,3,4,5,6;
|
|
312
|
+
bigintmat b2[2][3]= 1,2,3,4,5,7;
|
|
313
|
+
Set S6 = list(b1,b2,b1);
|
|
314
|
+
S6;
|
|
315
|
+
resolution r1 = res(maxideal(3),0);
|
|
316
|
+
resolution r2 = res(maxideal(4),0);
|
|
317
|
+
Set S7 = list(r1,r1,r2);
|
|
318
|
+
size(S7);
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
proc printSet(Set M)
|
|
322
|
+
{
|
|
323
|
+
string st;
|
|
324
|
+
list L = M.elements;
|
|
325
|
+
if (size(L)==0) {
|
|
326
|
+
print("Empty set"); //returning Empty Set if the set contains no elements
|
|
327
|
+
}
|
|
328
|
+
else
|
|
329
|
+
{
|
|
330
|
+
string s ="{"; //if the set isn't empty creating a string with
|
|
331
|
+
for (int j=1; j<=size(L)-1; j++) //with every element of the set
|
|
332
|
+
{
|
|
333
|
+
s=s+string((L[j]))+"; ";
|
|
334
|
+
}
|
|
335
|
+
s=s+string((L[size(L)]))+"}";
|
|
336
|
+
print(s); //printing the string
|
|
337
|
+
if (size(L)>1){st ="s";}
|
|
338
|
+
print("Set with "+string(size(L))+" element"+st); //printing a string with the number
|
|
339
|
+
} //of elements of the set
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
static proc setJoinOfLists(list L1,list L2)
|
|
343
|
+
{
|
|
344
|
+
for(int i=1; i<=size(L2); i++){
|
|
345
|
+
L1 = insert(L1,L2[i]); //adding every element of the second list to the first
|
|
346
|
+
}
|
|
347
|
+
return(L1);
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
|
|
351
|
+
proc union(Set N, Set M)
|
|
352
|
+
"USAGE: union(N,M) or N+M; N,M sets
|
|
353
|
+
RETURN: Set, the union of the sets N and M
|
|
354
|
+
EXAMPLE: example union, shows an example
|
|
355
|
+
"
|
|
356
|
+
{
|
|
357
|
+
Set S;
|
|
358
|
+
list L1 = N.elements; //converting the sets into lists
|
|
359
|
+
list L2 = M.elements;
|
|
360
|
+
list L = setJoinOfLists(L1,L2); //creating the joint of the two lists
|
|
361
|
+
S.elements = removeDouble(L); //removing every element which occurs more then once
|
|
362
|
+
return(S);
|
|
363
|
+
}
|
|
364
|
+
example //example for union
|
|
365
|
+
{ "EXAMPLE:"; echo = 2;
|
|
366
|
+
list l =1,2,3;
|
|
367
|
+
list j =2,3,4;
|
|
368
|
+
Set N=l;
|
|
369
|
+
Set M=j;
|
|
370
|
+
N;
|
|
371
|
+
M;
|
|
372
|
+
N+M;
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
|
|
376
|
+
static proc setIntersectionOfLists(list L1,list L2)
|
|
377
|
+
{
|
|
378
|
+
if(size(L1)>size(L2)){ //secure that the first list isn't bigger then the second
|
|
379
|
+
list J = L1;
|
|
380
|
+
L1=L2;
|
|
381
|
+
L2=J;
|
|
382
|
+
}
|
|
383
|
+
list M; //creating an empty set, which will be returned
|
|
384
|
+
if(size(L1)==0){ //if the first list is empty, the intersection is empty
|
|
385
|
+
return(M);
|
|
386
|
+
}
|
|
387
|
+
Set S = set(L2);
|
|
388
|
+
for(int i=1; i<=size(L1); i++){ //check for every element of the first list
|
|
389
|
+
if(isElement(L1[i],S)){ //is in the second list
|
|
390
|
+
M=insert(M,L1[i]); //an element of both lists, is added the set
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
return(M);
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
proc intersectionSet(Set N, Set M)
|
|
397
|
+
"USAGE: intersectionSet(N,M) or N*M; N,M sets
|
|
398
|
+
RETURN: Set, the interseection of the sets N and M
|
|
399
|
+
EXAMPLE: example intersection, shows an example
|
|
400
|
+
KEYWORDS: intersection
|
|
401
|
+
"
|
|
402
|
+
{
|
|
403
|
+
Set S;
|
|
404
|
+
list L1 = N.elements;
|
|
405
|
+
list L2 = M.elements;
|
|
406
|
+
list L = setIntersectionOfLists(L1,L2);
|
|
407
|
+
S.elements = removeDouble(L);
|
|
408
|
+
return(S);
|
|
409
|
+
}
|
|
410
|
+
example //example for intersection
|
|
411
|
+
{ "EXAMPLE:"; echo = 2;
|
|
412
|
+
list l =1,2,3;
|
|
413
|
+
list j =2,3,4;
|
|
414
|
+
Set N=l;
|
|
415
|
+
Set M=j;
|
|
416
|
+
N;
|
|
417
|
+
M;
|
|
418
|
+
N*M;
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
proc isElement(def a, Set M)
|
|
422
|
+
"USAGE: isElement(a,M); M set a def
|
|
423
|
+
RETURN: bool, 1 if a is an element of M, 0 if not
|
|
424
|
+
EXAMPLE: example isElement, shows an example
|
|
425
|
+
"
|
|
426
|
+
{
|
|
427
|
+
list L = M.elements;
|
|
428
|
+
for(int i=1; i<=size(L); i++){ //test for every element of the set, if it is the
|
|
429
|
+
if(isEqual(a,L[i])){ //element to be checked
|
|
430
|
+
return(1);
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
return(0);
|
|
434
|
+
}
|
|
435
|
+
example //example for isElement
|
|
436
|
+
{
|
|
437
|
+
"EXAMPLE:"; echo = 2;
|
|
438
|
+
int i=1;
|
|
439
|
+
int j=5;
|
|
440
|
+
list k =1,2,3,4;
|
|
441
|
+
Set M=k;
|
|
442
|
+
i;
|
|
443
|
+
j;
|
|
444
|
+
M;
|
|
445
|
+
isElement(i,M);
|
|
446
|
+
isElement(j,M);
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
proc complement(Set S, Set M)
|
|
450
|
+
"USAGE: complement(N,M); N,M sets
|
|
451
|
+
RETURN: Set, the complement of the set N in M
|
|
452
|
+
EXAMPLE: example complement, shows an example
|
|
453
|
+
"
|
|
454
|
+
{
|
|
455
|
+
if (!(S<M)){ //check if the complement can be created
|
|
456
|
+
return("Error, first set isn't a subset of the second set.");
|
|
457
|
+
}
|
|
458
|
+
Set N;
|
|
459
|
+
list L1 = S.elements;
|
|
460
|
+
list L2 = M.elements;
|
|
461
|
+
list L = complementOfLists(L1,L2);
|
|
462
|
+
N.elements = L;
|
|
463
|
+
return(N);
|
|
464
|
+
}
|
|
465
|
+
example //example for complement
|
|
466
|
+
{ "EXAMPLE:"; echo = 2;
|
|
467
|
+
list l =1,2;
|
|
468
|
+
list j =1,2,3,4;
|
|
469
|
+
Set N=l;
|
|
470
|
+
Set M=j;
|
|
471
|
+
N;
|
|
472
|
+
M;
|
|
473
|
+
complement(N,M);
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
proc isSubset(Set S, Set M)
|
|
477
|
+
"USAGE: isSubset(N,M) or N<M ; N,M sets
|
|
478
|
+
RETURN: bool, 1 if N is a Subset of M or 0 if not
|
|
479
|
+
EXAMPLE: example isSubset, shows an example
|
|
480
|
+
"
|
|
481
|
+
{
|
|
482
|
+
list L = S.elements;
|
|
483
|
+
list J = M.elements;
|
|
484
|
+
if(size(L)>size(J)){ //check if the first set is smaller then the second
|
|
485
|
+
return(0);
|
|
486
|
+
}
|
|
487
|
+
for(int i=1; i<=size(L); i++){
|
|
488
|
+
if(!isElement(L[i],M)){ //check if every element of the first set is in the
|
|
489
|
+
return(0); //second set
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
return(1);
|
|
493
|
+
}
|
|
494
|
+
example //example for isSubset
|
|
495
|
+
{ "EXAMPLE:"; echo = 2;
|
|
496
|
+
list l =1,2;
|
|
497
|
+
list j =1,2,3,4;
|
|
498
|
+
Set N=l;
|
|
499
|
+
Set M=j;
|
|
500
|
+
N;
|
|
501
|
+
M;
|
|
502
|
+
N<M;
|
|
503
|
+
M<N;
|
|
504
|
+
}
|
|
505
|
+
|
|
506
|
+
proc isSuperset(Set S, Set M) //opposite of isSubset
|
|
507
|
+
"USAGE: isSuperset(N,M) or N>M ; N,M sets
|
|
508
|
+
RETURN: bool, 1 if N is a Superset of M or 0 if not
|
|
509
|
+
EXAMPLE: example isSuperset, shows an example
|
|
510
|
+
"
|
|
511
|
+
{
|
|
512
|
+
return(M<S);
|
|
513
|
+
}
|
|
514
|
+
example //example for isSuperset
|
|
515
|
+
{ "EXAMPLE:"; echo = 2;
|
|
516
|
+
list l =1,2;
|
|
517
|
+
list j =1,2,3,4;
|
|
518
|
+
Set N=l;
|
|
519
|
+
Set M=j;
|
|
520
|
+
N;
|
|
521
|
+
M;
|
|
522
|
+
N>M;
|
|
523
|
+
M>N;
|
|
524
|
+
}
|