passagemath-singular 10.6.31rc3__cp314-cp314-musllinux_1_2_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.

Files changed (493) hide show
  1. PySingular.cpython-314-x86_64-linux-musl.so +0 -0
  2. passagemath_singular-10.6.31rc3.dist-info/METADATA +183 -0
  3. passagemath_singular-10.6.31rc3.dist-info/RECORD +493 -0
  4. passagemath_singular-10.6.31rc3.dist-info/WHEEL +5 -0
  5. passagemath_singular-10.6.31rc3.dist-info/top_level.txt +3 -0
  6. passagemath_singular.libs/libSingular-4-67059f19.4.1.so +0 -0
  7. passagemath_singular.libs/libcddgmp-30166d29.so.0.1.3 +0 -0
  8. passagemath_singular.libs/libfactory-4-9d37bcf4.4.1.so +0 -0
  9. passagemath_singular.libs/libflint-fd6f12fc.so.21.0.0 +0 -0
  10. passagemath_singular.libs/libgcc_s-0cd532bd.so.1 +0 -0
  11. passagemath_singular.libs/libgf2x-9e30c3e3.so.3.0.0 +0 -0
  12. passagemath_singular.libs/libgfortran-2c33b284.so.5.0.0 +0 -0
  13. passagemath_singular.libs/libgmp-0e7fc84e.so.10.5.0 +0 -0
  14. passagemath_singular.libs/libgsl-42cda06f.so.28.0.0 +0 -0
  15. passagemath_singular.libs/libmpfr-aaecbfc0.so.6.2.1 +0 -0
  16. passagemath_singular.libs/libncursesw-9c9e32c3.so.6.5 +0 -0
  17. passagemath_singular.libs/libntl-26885ca2.so.44.0.1 +0 -0
  18. passagemath_singular.libs/libomalloc-0-e9ff96db.9.6.so +0 -0
  19. passagemath_singular.libs/libopenblasp-r0-905cb27d.3.29.so +0 -0
  20. passagemath_singular.libs/libpolys-4-8bcf8e7d.4.1.so +0 -0
  21. passagemath_singular.libs/libquadmath-bb76a5fc.so.0.0.0 +0 -0
  22. passagemath_singular.libs/libreadline-06542304.so.8.2 +0 -0
  23. passagemath_singular.libs/libsingular_resources-4-73bf7623.4.1.so +0 -0
  24. passagemath_singular.libs/libstdc++-5d72f927.so.6.0.33 +0 -0
  25. sage/algebras/all__sagemath_singular.py +3 -0
  26. sage/algebras/fusion_rings/all.py +19 -0
  27. sage/algebras/fusion_rings/f_matrix.py +2448 -0
  28. sage/algebras/fusion_rings/fast_parallel_fmats_methods.cpython-314-x86_64-linux-musl.so +0 -0
  29. sage/algebras/fusion_rings/fast_parallel_fmats_methods.pxd +5 -0
  30. sage/algebras/fusion_rings/fast_parallel_fmats_methods.pyx +538 -0
  31. sage/algebras/fusion_rings/fast_parallel_fusion_ring_braid_repn.cpython-314-x86_64-linux-musl.so +0 -0
  32. sage/algebras/fusion_rings/fast_parallel_fusion_ring_braid_repn.pxd +3 -0
  33. sage/algebras/fusion_rings/fast_parallel_fusion_ring_braid_repn.pyx +331 -0
  34. sage/algebras/fusion_rings/fusion_double.py +899 -0
  35. sage/algebras/fusion_rings/fusion_ring.py +1580 -0
  36. sage/algebras/fusion_rings/poly_tup_engine.cpython-314-x86_64-linux-musl.so +0 -0
  37. sage/algebras/fusion_rings/poly_tup_engine.pxd +24 -0
  38. sage/algebras/fusion_rings/poly_tup_engine.pyx +579 -0
  39. sage/algebras/fusion_rings/shm_managers.cpython-314-x86_64-linux-musl.so +0 -0
  40. sage/algebras/fusion_rings/shm_managers.pxd +24 -0
  41. sage/algebras/fusion_rings/shm_managers.pyx +780 -0
  42. sage/algebras/letterplace/all.py +1 -0
  43. sage/algebras/letterplace/free_algebra_element_letterplace.cpython-314-x86_64-linux-musl.so +0 -0
  44. sage/algebras/letterplace/free_algebra_element_letterplace.pxd +18 -0
  45. sage/algebras/letterplace/free_algebra_element_letterplace.pyx +755 -0
  46. sage/algebras/letterplace/free_algebra_letterplace.cpython-314-x86_64-linux-musl.so +0 -0
  47. sage/algebras/letterplace/free_algebra_letterplace.pxd +35 -0
  48. sage/algebras/letterplace/free_algebra_letterplace.pyx +914 -0
  49. sage/algebras/letterplace/letterplace_ideal.cpython-314-x86_64-linux-musl.so +0 -0
  50. sage/algebras/letterplace/letterplace_ideal.pyx +408 -0
  51. sage/algebras/quatalg/all.py +2 -0
  52. sage/algebras/quatalg/quaternion_algebra.py +4778 -0
  53. sage/algebras/quatalg/quaternion_algebra_cython.cpython-314-x86_64-linux-musl.so +0 -0
  54. sage/algebras/quatalg/quaternion_algebra_cython.pyx +261 -0
  55. sage/algebras/quatalg/quaternion_algebra_element.cpython-314-x86_64-linux-musl.so +0 -0
  56. sage/algebras/quatalg/quaternion_algebra_element.pxd +29 -0
  57. sage/algebras/quatalg/quaternion_algebra_element.pyx +2176 -0
  58. sage/all__sagemath_singular.py +11 -0
  59. sage/ext_data/all__sagemath_singular.py +1 -0
  60. sage/ext_data/singular/function_field/core.lib +98 -0
  61. sage/interfaces/all__sagemath_singular.py +1 -0
  62. sage/interfaces/singular.py +2835 -0
  63. sage/libs/all__sagemath_singular.py +1 -0
  64. sage/libs/singular/__init__.py +1 -0
  65. sage/libs/singular/decl.pxd +1168 -0
  66. sage/libs/singular/function.cpython-314-x86_64-linux-musl.so +0 -0
  67. sage/libs/singular/function.pxd +87 -0
  68. sage/libs/singular/function.pyx +1901 -0
  69. sage/libs/singular/function_factory.py +61 -0
  70. sage/libs/singular/groebner_strategy.cpython-314-x86_64-linux-musl.so +0 -0
  71. sage/libs/singular/groebner_strategy.pxd +22 -0
  72. sage/libs/singular/groebner_strategy.pyx +582 -0
  73. sage/libs/singular/option.cpython-314-x86_64-linux-musl.so +0 -0
  74. sage/libs/singular/option.pyx +671 -0
  75. sage/libs/singular/polynomial.cpython-314-x86_64-linux-musl.so +0 -0
  76. sage/libs/singular/polynomial.pxd +39 -0
  77. sage/libs/singular/polynomial.pyx +661 -0
  78. sage/libs/singular/ring.cpython-314-x86_64-linux-musl.so +0 -0
  79. sage/libs/singular/ring.pxd +58 -0
  80. sage/libs/singular/ring.pyx +893 -0
  81. sage/libs/singular/singular.cpython-314-x86_64-linux-musl.so +0 -0
  82. sage/libs/singular/singular.pxd +72 -0
  83. sage/libs/singular/singular.pyx +1944 -0
  84. sage/libs/singular/standard_options.py +145 -0
  85. sage/matrix/all__sagemath_singular.py +1 -0
  86. sage/matrix/matrix_mpolynomial_dense.cpython-314-x86_64-linux-musl.so +0 -0
  87. sage/matrix/matrix_mpolynomial_dense.pxd +7 -0
  88. sage/matrix/matrix_mpolynomial_dense.pyx +615 -0
  89. sage/rings/all__sagemath_singular.py +1 -0
  90. sage/rings/function_field/all__sagemath_singular.py +1 -0
  91. sage/rings/function_field/derivations_polymod.py +911 -0
  92. sage/rings/function_field/element_polymod.cpython-314-x86_64-linux-musl.so +0 -0
  93. sage/rings/function_field/element_polymod.pyx +406 -0
  94. sage/rings/function_field/function_field_polymod.py +2611 -0
  95. sage/rings/function_field/ideal_polymod.py +1775 -0
  96. sage/rings/function_field/order_polymod.py +1475 -0
  97. sage/rings/function_field/place_polymod.py +681 -0
  98. sage/rings/polynomial/all__sagemath_singular.py +1 -0
  99. sage/rings/polynomial/multi_polynomial_ideal_libsingular.cpython-314-x86_64-linux-musl.so +0 -0
  100. sage/rings/polynomial/multi_polynomial_ideal_libsingular.pxd +5 -0
  101. sage/rings/polynomial/multi_polynomial_ideal_libsingular.pyx +339 -0
  102. sage/rings/polynomial/multi_polynomial_libsingular.cpython-314-x86_64-linux-musl.so +0 -0
  103. sage/rings/polynomial/multi_polynomial_libsingular.pxd +30 -0
  104. sage/rings/polynomial/multi_polynomial_libsingular.pyx +6277 -0
  105. sage/rings/polynomial/plural.cpython-314-x86_64-linux-musl.so +0 -0
  106. sage/rings/polynomial/plural.pxd +48 -0
  107. sage/rings/polynomial/plural.pyx +3171 -0
  108. sage/symbolic/all__sagemath_singular.py +1 -0
  109. sage/symbolic/comparison_impl.pxi +428 -0
  110. sage/symbolic/constants_c_impl.pxi +178 -0
  111. sage/symbolic/expression.cpython-314-x86_64-linux-musl.so +0 -0
  112. sage/symbolic/expression.pxd +7 -0
  113. sage/symbolic/expression.pyx +14200 -0
  114. sage/symbolic/getitem_impl.pxi +202 -0
  115. sage/symbolic/pynac.pxi +572 -0
  116. sage/symbolic/pynac_constant_impl.pxi +133 -0
  117. sage/symbolic/pynac_function_impl.pxi +206 -0
  118. sage/symbolic/pynac_impl.pxi +2576 -0
  119. sage/symbolic/pynac_wrap.h +124 -0
  120. sage/symbolic/series_impl.pxi +272 -0
  121. sage/symbolic/substitution_map_impl.pxi +94 -0
  122. sage_wheels/bin/ESingular +0 -0
  123. sage_wheels/bin/Singular +0 -0
  124. sage_wheels/bin/TSingular +0 -0
  125. sage_wheels/lib/singular/MOD/cohomo.la +41 -0
  126. sage_wheels/lib/singular/MOD/cohomo.so +0 -0
  127. sage_wheels/lib/singular/MOD/customstd.la +41 -0
  128. sage_wheels/lib/singular/MOD/customstd.so +0 -0
  129. sage_wheels/lib/singular/MOD/freealgebra.la +41 -0
  130. sage_wheels/lib/singular/MOD/freealgebra.so +0 -0
  131. sage_wheels/lib/singular/MOD/gfanlib.la +41 -0
  132. sage_wheels/lib/singular/MOD/gfanlib.so +0 -0
  133. sage_wheels/lib/singular/MOD/gitfan.la +41 -0
  134. sage_wheels/lib/singular/MOD/gitfan.so +0 -0
  135. sage_wheels/lib/singular/MOD/interval.la +41 -0
  136. sage_wheels/lib/singular/MOD/interval.so +0 -0
  137. sage_wheels/lib/singular/MOD/loctriv.la +41 -0
  138. sage_wheels/lib/singular/MOD/loctriv.so +0 -0
  139. sage_wheels/lib/singular/MOD/machinelearning.la +41 -0
  140. sage_wheels/lib/singular/MOD/machinelearning.so +0 -0
  141. sage_wheels/lib/singular/MOD/p_Procs_FieldGeneral.la +41 -0
  142. sage_wheels/lib/singular/MOD/p_Procs_FieldGeneral.so +0 -0
  143. sage_wheels/lib/singular/MOD/p_Procs_FieldIndep.la +41 -0
  144. sage_wheels/lib/singular/MOD/p_Procs_FieldIndep.so +0 -0
  145. sage_wheels/lib/singular/MOD/p_Procs_FieldQ.la +41 -0
  146. sage_wheels/lib/singular/MOD/p_Procs_FieldQ.so +0 -0
  147. sage_wheels/lib/singular/MOD/p_Procs_FieldZp.la +41 -0
  148. sage_wheels/lib/singular/MOD/p_Procs_FieldZp.so +0 -0
  149. sage_wheels/lib/singular/MOD/partialgb.la +41 -0
  150. sage_wheels/lib/singular/MOD/partialgb.so +0 -0
  151. sage_wheels/lib/singular/MOD/pyobject.la +41 -0
  152. sage_wheels/lib/singular/MOD/pyobject.so +0 -0
  153. sage_wheels/lib/singular/MOD/singmathic.la +41 -0
  154. sage_wheels/lib/singular/MOD/singmathic.so +0 -0
  155. sage_wheels/lib/singular/MOD/sispasm.la +41 -0
  156. sage_wheels/lib/singular/MOD/sispasm.so +0 -0
  157. sage_wheels/lib/singular/MOD/subsets.la +41 -0
  158. sage_wheels/lib/singular/MOD/subsets.so +0 -0
  159. sage_wheels/lib/singular/MOD/systhreads.la +41 -0
  160. sage_wheels/lib/singular/MOD/systhreads.so +0 -0
  161. sage_wheels/lib/singular/MOD/syzextra.la +41 -0
  162. sage_wheels/lib/singular/MOD/syzextra.so +0 -0
  163. sage_wheels/libexec/singular/MOD/change_cost +0 -0
  164. sage_wheels/libexec/singular/MOD/singularsurf +11 -0
  165. sage_wheels/libexec/singular/MOD/singularsurf_jupyter +9 -0
  166. sage_wheels/libexec/singular/MOD/singularsurf_win +10 -0
  167. sage_wheels/libexec/singular/MOD/solve_IP +0 -0
  168. sage_wheels/libexec/singular/MOD/surfex +16 -0
  169. sage_wheels/libexec/singular/MOD/toric_ideal +0 -0
  170. sage_wheels/share/factory/gftables/10201 +342 -0
  171. sage_wheels/share/factory/gftables/1024 +37 -0
  172. sage_wheels/share/factory/gftables/10609 +356 -0
  173. sage_wheels/share/factory/gftables/11449 +384 -0
  174. sage_wheels/share/factory/gftables/11881 +398 -0
  175. sage_wheels/share/factory/gftables/121 +6 -0
  176. sage_wheels/share/factory/gftables/12167 +408 -0
  177. sage_wheels/share/factory/gftables/125 +7 -0
  178. sage_wheels/share/factory/gftables/12769 +428 -0
  179. sage_wheels/share/factory/gftables/128 +7 -0
  180. sage_wheels/share/factory/gftables/1331 +47 -0
  181. sage_wheels/share/factory/gftables/1369 +48 -0
  182. sage_wheels/share/factory/gftables/14641 +490 -0
  183. sage_wheels/share/factory/gftables/15625 +523 -0
  184. sage_wheels/share/factory/gftables/16 +3 -0
  185. sage_wheels/share/factory/gftables/16129 +540 -0
  186. sage_wheels/share/factory/gftables/16384 +549 -0
  187. sage_wheels/share/factory/gftables/16807 +563 -0
  188. sage_wheels/share/factory/gftables/1681 +58 -0
  189. sage_wheels/share/factory/gftables/169 +8 -0
  190. sage_wheels/share/factory/gftables/17161 +574 -0
  191. sage_wheels/share/factory/gftables/1849 +64 -0
  192. sage_wheels/share/factory/gftables/18769 +628 -0
  193. sage_wheels/share/factory/gftables/19321 +646 -0
  194. sage_wheels/share/factory/gftables/19683 +659 -0
  195. sage_wheels/share/factory/gftables/2048 +71 -0
  196. sage_wheels/share/factory/gftables/2187 +75 -0
  197. sage_wheels/share/factory/gftables/2197 +76 -0
  198. sage_wheels/share/factory/gftables/2209 +76 -0
  199. sage_wheels/share/factory/gftables/22201 +742 -0
  200. sage_wheels/share/factory/gftables/22801 +762 -0
  201. sage_wheels/share/factory/gftables/2401 +82 -0
  202. sage_wheels/share/factory/gftables/243 +11 -0
  203. sage_wheels/share/factory/gftables/24389 +815 -0
  204. sage_wheels/share/factory/gftables/24649 +824 -0
  205. sage_wheels/share/factory/gftables/25 +3 -0
  206. sage_wheels/share/factory/gftables/256 +11 -0
  207. sage_wheels/share/factory/gftables/26569 +888 -0
  208. sage_wheels/share/factory/gftables/27 +3 -0
  209. sage_wheels/share/factory/gftables/27889 +932 -0
  210. sage_wheels/share/factory/gftables/2809 +96 -0
  211. sage_wheels/share/factory/gftables/28561 +954 -0
  212. sage_wheels/share/factory/gftables/289 +12 -0
  213. sage_wheels/share/factory/gftables/29791 +995 -0
  214. sage_wheels/share/factory/gftables/29929 +1000 -0
  215. sage_wheels/share/factory/gftables/3125 +107 -0
  216. sage_wheels/share/factory/gftables/32 +4 -0
  217. sage_wheels/share/factory/gftables/32041 +1070 -0
  218. sage_wheels/share/factory/gftables/32761 +1094 -0
  219. sage_wheels/share/factory/gftables/32768 +1095 -0
  220. sage_wheels/share/factory/gftables/343 +14 -0
  221. sage_wheels/share/factory/gftables/3481 +118 -0
  222. sage_wheels/share/factory/gftables/361 +14 -0
  223. sage_wheels/share/factory/gftables/36481 +1218 -0
  224. sage_wheels/share/factory/gftables/3721 +126 -0
  225. sage_wheels/share/factory/gftables/37249 +1244 -0
  226. sage_wheels/share/factory/gftables/38809 +1296 -0
  227. sage_wheels/share/factory/gftables/39601 +1322 -0
  228. sage_wheels/share/factory/gftables/4 +3 -0
  229. sage_wheels/share/factory/gftables/4096 +139 -0
  230. sage_wheels/share/factory/gftables/44521 +1486 -0
  231. sage_wheels/share/factory/gftables/4489 +152 -0
  232. sage_wheels/share/factory/gftables/49 +4 -0
  233. sage_wheels/share/factory/gftables/4913 +166 -0
  234. sage_wheels/share/factory/gftables/49729 +1660 -0
  235. sage_wheels/share/factory/gftables/5041 +170 -0
  236. sage_wheels/share/factory/gftables/50653 +1691 -0
  237. sage_wheels/share/factory/gftables/512 +20 -0
  238. sage_wheels/share/factory/gftables/51529 +1720 -0
  239. sage_wheels/share/factory/gftables/52441 +1750 -0
  240. sage_wheels/share/factory/gftables/529 +20 -0
  241. sage_wheels/share/factory/gftables/5329 +180 -0
  242. sage_wheels/share/factory/gftables/54289 +1812 -0
  243. sage_wheels/share/factory/gftables/57121 +1906 -0
  244. sage_wheels/share/factory/gftables/58081 +1938 -0
  245. sage_wheels/share/factory/gftables/59049 +1971 -0
  246. sage_wheels/share/factory/gftables/6241 +210 -0
  247. sage_wheels/share/factory/gftables/625 +23 -0
  248. sage_wheels/share/factory/gftables/63001 +2102 -0
  249. sage_wheels/share/factory/gftables/64 +5 -0
  250. sage_wheels/share/factory/gftables/6561 +221 -0
  251. sage_wheels/share/factory/gftables/6859 +231 -0
  252. sage_wheels/share/factory/gftables/6889 +232 -0
  253. sage_wheels/share/factory/gftables/729 +27 -0
  254. sage_wheels/share/factory/gftables/7921 +266 -0
  255. sage_wheels/share/factory/gftables/8 +3 -0
  256. sage_wheels/share/factory/gftables/81 +5 -0
  257. sage_wheels/share/factory/gftables/8192 +276 -0
  258. sage_wheels/share/factory/gftables/841 +30 -0
  259. sage_wheels/share/factory/gftables/9 +3 -0
  260. sage_wheels/share/factory/gftables/9409 +316 -0
  261. sage_wheels/share/factory/gftables/961 +34 -0
  262. sage_wheels/share/info/singular.info +191898 -0
  263. sage_wheels/share/singular/LIB/GND.lib +1359 -0
  264. sage_wheels/share/singular/LIB/JMBTest.lib +976 -0
  265. sage_wheels/share/singular/LIB/JMSConst.lib +1363 -0
  266. sage_wheels/share/singular/LIB/KVequiv.lib +699 -0
  267. sage_wheels/share/singular/LIB/SingularityDBM.lib +491 -0
  268. sage_wheels/share/singular/LIB/VecField.lib +1542 -0
  269. sage_wheels/share/singular/LIB/absfact.lib +959 -0
  270. sage_wheels/share/singular/LIB/ainvar.lib +730 -0
  271. sage_wheels/share/singular/LIB/aksaka.lib +419 -0
  272. sage_wheels/share/singular/LIB/alexpoly.lib +2542 -0
  273. sage_wheels/share/singular/LIB/algebra.lib +1193 -0
  274. sage_wheels/share/singular/LIB/all.lib +136 -0
  275. sage_wheels/share/singular/LIB/arcpoint.lib +514 -0
  276. sage_wheels/share/singular/LIB/arnold.lib +4553 -0
  277. sage_wheels/share/singular/LIB/arnoldclassify.lib +2058 -0
  278. sage_wheels/share/singular/LIB/arr.lib +3486 -0
  279. sage_wheels/share/singular/LIB/assprimeszerodim.lib +755 -0
  280. sage_wheels/share/singular/LIB/autgradalg.lib +3361 -0
  281. sage_wheels/share/singular/LIB/bfun.lib +1964 -0
  282. sage_wheels/share/singular/LIB/bimodules.lib +774 -0
  283. sage_wheels/share/singular/LIB/brillnoether.lib +226 -0
  284. sage_wheels/share/singular/LIB/brnoeth.lib +5017 -0
  285. sage_wheels/share/singular/LIB/central.lib +2169 -0
  286. sage_wheels/share/singular/LIB/chern.lib +4162 -0
  287. sage_wheels/share/singular/LIB/cimonom.lib +571 -0
  288. sage_wheels/share/singular/LIB/cisimplicial.lib +1835 -0
  289. sage_wheels/share/singular/LIB/classify.lib +3239 -0
  290. sage_wheels/share/singular/LIB/classify2.lib +1462 -0
  291. sage_wheels/share/singular/LIB/classifyMapGerms.lib +1515 -0
  292. sage_wheels/share/singular/LIB/classify_aeq.lib +3253 -0
  293. sage_wheels/share/singular/LIB/classifyceq.lib +2092 -0
  294. sage_wheels/share/singular/LIB/classifyci.lib +1133 -0
  295. sage_wheels/share/singular/LIB/combinat.lib +91 -0
  296. sage_wheels/share/singular/LIB/compregb.lib +276 -0
  297. sage_wheels/share/singular/LIB/control.lib +1636 -0
  298. sage_wheels/share/singular/LIB/crypto.lib +3795 -0
  299. sage_wheels/share/singular/LIB/curveInv.lib +667 -0
  300. sage_wheels/share/singular/LIB/curvepar.lib +1817 -0
  301. sage_wheels/share/singular/LIB/customstd.lib +100 -0
  302. sage_wheels/share/singular/LIB/deRham.lib +5979 -0
  303. sage_wheels/share/singular/LIB/decodegb.lib +2134 -0
  304. sage_wheels/share/singular/LIB/decomp.lib +1655 -0
  305. sage_wheels/share/singular/LIB/deflation.lib +872 -0
  306. sage_wheels/share/singular/LIB/deform.lib +925 -0
  307. sage_wheels/share/singular/LIB/difform.lib +3055 -0
  308. sage_wheels/share/singular/LIB/divisors.lib +750 -0
  309. sage_wheels/share/singular/LIB/dmod.lib +5817 -0
  310. sage_wheels/share/singular/LIB/dmodapp.lib +3269 -0
  311. sage_wheels/share/singular/LIB/dmodideal.lib +1211 -0
  312. sage_wheels/share/singular/LIB/dmodloc.lib +2645 -0
  313. sage_wheels/share/singular/LIB/dmodvar.lib +818 -0
  314. sage_wheels/share/singular/LIB/dummy.lib +17 -0
  315. sage_wheels/share/singular/LIB/elim.lib +1009 -0
  316. sage_wheels/share/singular/LIB/ellipticcovers.lib +548 -0
  317. sage_wheels/share/singular/LIB/enumpoints.lib +146 -0
  318. sage_wheels/share/singular/LIB/equising.lib +2127 -0
  319. sage_wheels/share/singular/LIB/ffmodstd.lib +2384 -0
  320. sage_wheels/share/singular/LIB/ffsolve.lib +1289 -0
  321. sage_wheels/share/singular/LIB/findifs.lib +778 -0
  322. sage_wheels/share/singular/LIB/finitediff.lib +1768 -0
  323. sage_wheels/share/singular/LIB/finvar.lib +7989 -0
  324. sage_wheels/share/singular/LIB/fpadim.lib +2429 -0
  325. sage_wheels/share/singular/LIB/fpalgebras.lib +1666 -0
  326. sage_wheels/share/singular/LIB/fpaprops.lib +1462 -0
  327. sage_wheels/share/singular/LIB/freegb.lib +3853 -0
  328. sage_wheels/share/singular/LIB/general.lib +1350 -0
  329. sage_wheels/share/singular/LIB/gfan.lib +1768 -0
  330. sage_wheels/share/singular/LIB/gitfan.lib +3130 -0
  331. sage_wheels/share/singular/LIB/gkdim.lib +99 -0
  332. sage_wheels/share/singular/LIB/gmspoly.lib +589 -0
  333. sage_wheels/share/singular/LIB/gmssing.lib +1739 -0
  334. sage_wheels/share/singular/LIB/goettsche.lib +909 -0
  335. sage_wheels/share/singular/LIB/graal.lib +1366 -0
  336. sage_wheels/share/singular/LIB/gradedModules.lib +2541 -0
  337. sage_wheels/share/singular/LIB/graphics.lib +360 -0
  338. sage_wheels/share/singular/LIB/grobcov.lib +7706 -0
  339. sage_wheels/share/singular/LIB/groups.lib +1123 -0
  340. sage_wheels/share/singular/LIB/grwalk.lib +507 -0
  341. sage_wheels/share/singular/LIB/hdepth.lib +194 -0
  342. sage_wheels/share/singular/LIB/help.cnf +57 -0
  343. sage_wheels/share/singular/LIB/hess.lib +1946 -0
  344. sage_wheels/share/singular/LIB/hnoether.lib +4292 -0
  345. sage_wheels/share/singular/LIB/hodge.lib +400 -0
  346. sage_wheels/share/singular/LIB/homolog.lib +1965 -0
  347. sage_wheels/share/singular/LIB/hyperel.lib +975 -0
  348. sage_wheels/share/singular/LIB/inout.lib +679 -0
  349. sage_wheels/share/singular/LIB/integralbasis.lib +6224 -0
  350. sage_wheels/share/singular/LIB/interval.lib +1418 -0
  351. sage_wheels/share/singular/LIB/intprog.lib +778 -0
  352. sage_wheels/share/singular/LIB/invar.lib +443 -0
  353. sage_wheels/share/singular/LIB/involut.lib +980 -0
  354. sage_wheels/share/singular/LIB/jacobson.lib +1215 -0
  355. sage_wheels/share/singular/LIB/kskernel.lib +534 -0
  356. sage_wheels/share/singular/LIB/latex.lib +3146 -0
  357. sage_wheels/share/singular/LIB/lejeune.lib +651 -0
  358. sage_wheels/share/singular/LIB/linalg.lib +2040 -0
  359. sage_wheels/share/singular/LIB/locnormal.lib +212 -0
  360. sage_wheels/share/singular/LIB/lrcalc.lib +526 -0
  361. sage_wheels/share/singular/LIB/makedbm.lib +294 -0
  362. sage_wheels/share/singular/LIB/mathml.lib +813 -0
  363. sage_wheels/share/singular/LIB/matrix.lib +1372 -0
  364. sage_wheels/share/singular/LIB/maxlike.lib +1132 -0
  365. sage_wheels/share/singular/LIB/methods.lib +212 -0
  366. sage_wheels/share/singular/LIB/moddiq.lib +322 -0
  367. sage_wheels/share/singular/LIB/modfinduni.lib +181 -0
  368. sage_wheels/share/singular/LIB/modnormal.lib +218 -0
  369. sage_wheels/share/singular/LIB/modprimdec.lib +1278 -0
  370. sage_wheels/share/singular/LIB/modquotient.lib +269 -0
  371. sage_wheels/share/singular/LIB/modstd.lib +1024 -0
  372. sage_wheels/share/singular/LIB/modular.lib +545 -0
  373. sage_wheels/share/singular/LIB/modules.lib +2561 -0
  374. sage_wheels/share/singular/LIB/modwalk.lib +609 -0
  375. sage_wheels/share/singular/LIB/mondromy.lib +1016 -0
  376. sage_wheels/share/singular/LIB/monomialideal.lib +3851 -0
  377. sage_wheels/share/singular/LIB/mprimdec.lib +2353 -0
  378. sage_wheels/share/singular/LIB/mregular.lib +1863 -0
  379. sage_wheels/share/singular/LIB/multigrading.lib +5629 -0
  380. sage_wheels/share/singular/LIB/ncHilb.lib +777 -0
  381. sage_wheels/share/singular/LIB/ncModslimgb.lib +791 -0
  382. sage_wheels/share/singular/LIB/ncalg.lib +16311 -0
  383. sage_wheels/share/singular/LIB/ncall.lib +31 -0
  384. sage_wheels/share/singular/LIB/ncdecomp.lib +468 -0
  385. sage_wheels/share/singular/LIB/ncfactor.lib +13371 -0
  386. sage_wheels/share/singular/LIB/ncfrac.lib +1023 -0
  387. sage_wheels/share/singular/LIB/nchilbert.lib +448 -0
  388. sage_wheels/share/singular/LIB/nchomolog.lib +759 -0
  389. sage_wheels/share/singular/LIB/ncloc.lib +361 -0
  390. sage_wheels/share/singular/LIB/ncpreim.lib +795 -0
  391. sage_wheels/share/singular/LIB/ncrat.lib +2849 -0
  392. sage_wheels/share/singular/LIB/nctools.lib +1887 -0
  393. sage_wheels/share/singular/LIB/nets.lib +1456 -0
  394. sage_wheels/share/singular/LIB/nfmodstd.lib +1000 -0
  395. sage_wheels/share/singular/LIB/nfmodsyz.lib +732 -0
  396. sage_wheels/share/singular/LIB/noether.lib +1106 -0
  397. sage_wheels/share/singular/LIB/normal.lib +8700 -0
  398. sage_wheels/share/singular/LIB/normaliz.lib +2226 -0
  399. sage_wheels/share/singular/LIB/ntsolve.lib +362 -0
  400. sage_wheels/share/singular/LIB/numerAlg.lib +560 -0
  401. sage_wheels/share/singular/LIB/numerDecom.lib +2261 -0
  402. sage_wheels/share/singular/LIB/olga.lib +1933 -0
  403. sage_wheels/share/singular/LIB/orbitparam.lib +351 -0
  404. sage_wheels/share/singular/LIB/parallel.lib +319 -0
  405. sage_wheels/share/singular/LIB/paraplanecurves.lib +3110 -0
  406. sage_wheels/share/singular/LIB/perron.lib +202 -0
  407. sage_wheels/share/singular/LIB/pfd.lib +2223 -0
  408. sage_wheels/share/singular/LIB/phindex.lib +642 -0
  409. sage_wheels/share/singular/LIB/pointid.lib +673 -0
  410. sage_wheels/share/singular/LIB/polybori.lib +1430 -0
  411. sage_wheels/share/singular/LIB/polyclass.lib +525 -0
  412. sage_wheels/share/singular/LIB/polylib.lib +1174 -0
  413. sage_wheels/share/singular/LIB/polymake.lib +1902 -0
  414. sage_wheels/share/singular/LIB/presolve.lib +1533 -0
  415. sage_wheels/share/singular/LIB/primdec.lib +9576 -0
  416. sage_wheels/share/singular/LIB/primdecint.lib +1782 -0
  417. sage_wheels/share/singular/LIB/primitiv.lib +401 -0
  418. sage_wheels/share/singular/LIB/puiseuxexpansions.lib +1631 -0
  419. sage_wheels/share/singular/LIB/purityfiltration.lib +960 -0
  420. sage_wheels/share/singular/LIB/qhmoduli.lib +1561 -0
  421. sage_wheels/share/singular/LIB/qmatrix.lib +293 -0
  422. sage_wheels/share/singular/LIB/random.lib +455 -0
  423. sage_wheels/share/singular/LIB/ratgb.lib +489 -0
  424. sage_wheels/share/singular/LIB/realclassify.lib +5759 -0
  425. sage_wheels/share/singular/LIB/realizationMatroids.lib +772 -0
  426. sage_wheels/share/singular/LIB/realrad.lib +1197 -0
  427. sage_wheels/share/singular/LIB/recover.lib +2628 -0
  428. sage_wheels/share/singular/LIB/redcgs.lib +3984 -0
  429. sage_wheels/share/singular/LIB/reesclos.lib +465 -0
  430. sage_wheels/share/singular/LIB/resbinomial.lib +2802 -0
  431. sage_wheels/share/singular/LIB/resgraph.lib +789 -0
  432. sage_wheels/share/singular/LIB/resjung.lib +820 -0
  433. sage_wheels/share/singular/LIB/resolve.lib +5110 -0
  434. sage_wheels/share/singular/LIB/resources.lib +170 -0
  435. sage_wheels/share/singular/LIB/reszeta.lib +5473 -0
  436. sage_wheels/share/singular/LIB/ring.lib +1328 -0
  437. sage_wheels/share/singular/LIB/ringgb.lib +343 -0
  438. sage_wheels/share/singular/LIB/rinvar.lib +1153 -0
  439. sage_wheels/share/singular/LIB/rootisolation.lib +1481 -0
  440. sage_wheels/share/singular/LIB/rootsmr.lib +709 -0
  441. sage_wheels/share/singular/LIB/rootsur.lib +886 -0
  442. sage_wheels/share/singular/LIB/rstandard.lib +607 -0
  443. sage_wheels/share/singular/LIB/rwalk.lib +336 -0
  444. sage_wheels/share/singular/LIB/sagbi.lib +1353 -0
  445. sage_wheels/share/singular/LIB/sagbiNormaliz.lib +1622 -0
  446. sage_wheels/share/singular/LIB/sagbiNormaliz0.lib +1498 -0
  447. sage_wheels/share/singular/LIB/sagbigrob.lib +449 -0
  448. sage_wheels/share/singular/LIB/schreyer.lib +321 -0
  449. sage_wheels/share/singular/LIB/schubert.lib +2551 -0
  450. sage_wheels/share/singular/LIB/sets.lib +524 -0
  451. sage_wheels/share/singular/LIB/sheafcoh.lib +1663 -0
  452. sage_wheels/share/singular/LIB/signcond.lib +437 -0
  453. sage_wheels/share/singular/LIB/sing.lib +1094 -0
  454. sage_wheels/share/singular/LIB/sing4ti2.lib +419 -0
  455. sage_wheels/share/singular/LIB/solve.lib +2243 -0
  456. sage_wheels/share/singular/LIB/spcurve.lib +1077 -0
  457. sage_wheels/share/singular/LIB/spectrum.lib +62 -0
  458. sage_wheels/share/singular/LIB/sresext.lib +757 -0
  459. sage_wheels/share/singular/LIB/ssi.lib +143 -0
  460. sage_wheels/share/singular/LIB/standard.lib +2769 -0
  461. sage_wheels/share/singular/LIB/stanleyreisner.lib +473 -0
  462. sage_wheels/share/singular/LIB/stdmodule.lib +547 -0
  463. sage_wheels/share/singular/LIB/stratify.lib +1070 -0
  464. sage_wheels/share/singular/LIB/surf.lib +506 -0
  465. sage_wheels/share/singular/LIB/surf_jupyter.lib +223 -0
  466. sage_wheels/share/singular/LIB/surfacesignature.lib +522 -0
  467. sage_wheels/share/singular/LIB/surfex.lib +1462 -0
  468. sage_wheels/share/singular/LIB/swalk.lib +877 -0
  469. sage_wheels/share/singular/LIB/symodstd.lib +1570 -0
  470. sage_wheels/share/singular/LIB/systhreads.lib +74 -0
  471. sage_wheels/share/singular/LIB/tasks.lib +1324 -0
  472. sage_wheels/share/singular/LIB/tateProdCplxNegGrad.lib +2412 -0
  473. sage_wheels/share/singular/LIB/teachstd.lib +858 -0
  474. sage_wheels/share/singular/LIB/template.lib +116 -0
  475. sage_wheels/share/singular/LIB/toric.lib +1119 -0
  476. sage_wheels/share/singular/LIB/transformation.lib +116 -0
  477. sage_wheels/share/singular/LIB/triang.lib +1197 -0
  478. sage_wheels/share/singular/LIB/tropical.lib +8741 -0
  479. sage_wheels/share/singular/LIB/tropicalEllipticCovers.lib +2922 -0
  480. sage_wheels/share/singular/LIB/tropicalNewton.lib +1128 -0
  481. sage_wheels/share/singular/LIB/tst.lib +1108 -0
  482. sage_wheels/share/singular/LIB/weierstr.lib +241 -0
  483. sage_wheels/share/singular/LIB/zeroset.lib +1478 -0
  484. sage_wheels/share/singular/emacs/.emacs-general +184 -0
  485. sage_wheels/share/singular/emacs/.emacs-singular +234 -0
  486. sage_wheels/share/singular/emacs/COPYING +44 -0
  487. sage_wheels/share/singular/emacs/cmd-cmpl.el +241 -0
  488. sage_wheels/share/singular/emacs/ex-cmpl.el +1681 -0
  489. sage_wheels/share/singular/emacs/hlp-cmpl.el +4318 -0
  490. sage_wheels/share/singular/emacs/lib-cmpl.el +179 -0
  491. sage_wheels/share/singular/emacs/singular.el +4273 -0
  492. sage_wheels/share/singular/emacs/singular.xpm +39 -0
  493. 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
+ }