passagemath-singular 10.6.31rc3__cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of passagemath-singular might be problematic. Click here for more details.

Files changed (491) hide show
  1. PySingular.cpython-314-x86_64-linux-gnu.so +0 -0
  2. passagemath_singular-10.6.31rc3.dist-info/METADATA +183 -0
  3. passagemath_singular-10.6.31rc3.dist-info/RECORD +491 -0
  4. passagemath_singular-10.6.31rc3.dist-info/WHEEL +6 -0
  5. passagemath_singular-10.6.31rc3.dist-info/top_level.txt +3 -0
  6. passagemath_singular.libs/libSingular-4-20aec911.4.1.so +0 -0
  7. passagemath_singular.libs/libcddgmp-21acf0c6.so.0.1.3 +0 -0
  8. passagemath_singular.libs/libfactory-4-fcee31da.4.1.so +0 -0
  9. passagemath_singular.libs/libflint-66e12231.so.21.0.0 +0 -0
  10. passagemath_singular.libs/libgf2x-a4cdec90.so.3.0.0 +0 -0
  11. passagemath_singular.libs/libgfortran-83c28eba.so.5.0.0 +0 -0
  12. passagemath_singular.libs/libgmp-6e109695.so.10.5.0 +0 -0
  13. passagemath_singular.libs/libgsl-cda90e79.so.28.0.0 +0 -0
  14. passagemath_singular.libs/libmpfr-82690d50.so.6.2.1 +0 -0
  15. passagemath_singular.libs/libntl-e6f0d543.so.44.0.1 +0 -0
  16. passagemath_singular.libs/libomalloc-0-5c9e866e.9.6.so +0 -0
  17. passagemath_singular.libs/libopenblasp-r0-6dcb67f9.3.29.so +0 -0
  18. passagemath_singular.libs/libpolys-4-5c0a87e0.4.1.so +0 -0
  19. passagemath_singular.libs/libquadmath-2284e583.so.0.0.0 +0 -0
  20. passagemath_singular.libs/libreadline-ea270e21.so.8.2 +0 -0
  21. passagemath_singular.libs/libsingular_resources-4-a1aafc6d.4.1.so +0 -0
  22. passagemath_singular.libs/libtinfo-ceb117d9.so.6.3 +0 -0
  23. sage/algebras/all__sagemath_singular.py +3 -0
  24. sage/algebras/fusion_rings/all.py +19 -0
  25. sage/algebras/fusion_rings/f_matrix.py +2448 -0
  26. sage/algebras/fusion_rings/fast_parallel_fmats_methods.cpython-314-x86_64-linux-gnu.so +0 -0
  27. sage/algebras/fusion_rings/fast_parallel_fmats_methods.pxd +5 -0
  28. sage/algebras/fusion_rings/fast_parallel_fmats_methods.pyx +538 -0
  29. sage/algebras/fusion_rings/fast_parallel_fusion_ring_braid_repn.cpython-314-x86_64-linux-gnu.so +0 -0
  30. sage/algebras/fusion_rings/fast_parallel_fusion_ring_braid_repn.pxd +3 -0
  31. sage/algebras/fusion_rings/fast_parallel_fusion_ring_braid_repn.pyx +331 -0
  32. sage/algebras/fusion_rings/fusion_double.py +899 -0
  33. sage/algebras/fusion_rings/fusion_ring.py +1580 -0
  34. sage/algebras/fusion_rings/poly_tup_engine.cpython-314-x86_64-linux-gnu.so +0 -0
  35. sage/algebras/fusion_rings/poly_tup_engine.pxd +24 -0
  36. sage/algebras/fusion_rings/poly_tup_engine.pyx +579 -0
  37. sage/algebras/fusion_rings/shm_managers.cpython-314-x86_64-linux-gnu.so +0 -0
  38. sage/algebras/fusion_rings/shm_managers.pxd +24 -0
  39. sage/algebras/fusion_rings/shm_managers.pyx +780 -0
  40. sage/algebras/letterplace/all.py +1 -0
  41. sage/algebras/letterplace/free_algebra_element_letterplace.cpython-314-x86_64-linux-gnu.so +0 -0
  42. sage/algebras/letterplace/free_algebra_element_letterplace.pxd +18 -0
  43. sage/algebras/letterplace/free_algebra_element_letterplace.pyx +755 -0
  44. sage/algebras/letterplace/free_algebra_letterplace.cpython-314-x86_64-linux-gnu.so +0 -0
  45. sage/algebras/letterplace/free_algebra_letterplace.pxd +35 -0
  46. sage/algebras/letterplace/free_algebra_letterplace.pyx +914 -0
  47. sage/algebras/letterplace/letterplace_ideal.cpython-314-x86_64-linux-gnu.so +0 -0
  48. sage/algebras/letterplace/letterplace_ideal.pyx +408 -0
  49. sage/algebras/quatalg/all.py +2 -0
  50. sage/algebras/quatalg/quaternion_algebra.py +4778 -0
  51. sage/algebras/quatalg/quaternion_algebra_cython.cpython-314-x86_64-linux-gnu.so +0 -0
  52. sage/algebras/quatalg/quaternion_algebra_cython.pyx +261 -0
  53. sage/algebras/quatalg/quaternion_algebra_element.cpython-314-x86_64-linux-gnu.so +0 -0
  54. sage/algebras/quatalg/quaternion_algebra_element.pxd +29 -0
  55. sage/algebras/quatalg/quaternion_algebra_element.pyx +2176 -0
  56. sage/all__sagemath_singular.py +11 -0
  57. sage/ext_data/all__sagemath_singular.py +1 -0
  58. sage/ext_data/singular/function_field/core.lib +98 -0
  59. sage/interfaces/all__sagemath_singular.py +1 -0
  60. sage/interfaces/singular.py +2835 -0
  61. sage/libs/all__sagemath_singular.py +1 -0
  62. sage/libs/singular/__init__.py +1 -0
  63. sage/libs/singular/decl.pxd +1168 -0
  64. sage/libs/singular/function.cpython-314-x86_64-linux-gnu.so +0 -0
  65. sage/libs/singular/function.pxd +87 -0
  66. sage/libs/singular/function.pyx +1901 -0
  67. sage/libs/singular/function_factory.py +61 -0
  68. sage/libs/singular/groebner_strategy.cpython-314-x86_64-linux-gnu.so +0 -0
  69. sage/libs/singular/groebner_strategy.pxd +22 -0
  70. sage/libs/singular/groebner_strategy.pyx +582 -0
  71. sage/libs/singular/option.cpython-314-x86_64-linux-gnu.so +0 -0
  72. sage/libs/singular/option.pyx +671 -0
  73. sage/libs/singular/polynomial.cpython-314-x86_64-linux-gnu.so +0 -0
  74. sage/libs/singular/polynomial.pxd +39 -0
  75. sage/libs/singular/polynomial.pyx +661 -0
  76. sage/libs/singular/ring.cpython-314-x86_64-linux-gnu.so +0 -0
  77. sage/libs/singular/ring.pxd +58 -0
  78. sage/libs/singular/ring.pyx +893 -0
  79. sage/libs/singular/singular.cpython-314-x86_64-linux-gnu.so +0 -0
  80. sage/libs/singular/singular.pxd +72 -0
  81. sage/libs/singular/singular.pyx +1944 -0
  82. sage/libs/singular/standard_options.py +145 -0
  83. sage/matrix/all__sagemath_singular.py +1 -0
  84. sage/matrix/matrix_mpolynomial_dense.cpython-314-x86_64-linux-gnu.so +0 -0
  85. sage/matrix/matrix_mpolynomial_dense.pxd +7 -0
  86. sage/matrix/matrix_mpolynomial_dense.pyx +615 -0
  87. sage/rings/all__sagemath_singular.py +1 -0
  88. sage/rings/function_field/all__sagemath_singular.py +1 -0
  89. sage/rings/function_field/derivations_polymod.py +911 -0
  90. sage/rings/function_field/element_polymod.cpython-314-x86_64-linux-gnu.so +0 -0
  91. sage/rings/function_field/element_polymod.pyx +406 -0
  92. sage/rings/function_field/function_field_polymod.py +2611 -0
  93. sage/rings/function_field/ideal_polymod.py +1775 -0
  94. sage/rings/function_field/order_polymod.py +1475 -0
  95. sage/rings/function_field/place_polymod.py +681 -0
  96. sage/rings/polynomial/all__sagemath_singular.py +1 -0
  97. sage/rings/polynomial/multi_polynomial_ideal_libsingular.cpython-314-x86_64-linux-gnu.so +0 -0
  98. sage/rings/polynomial/multi_polynomial_ideal_libsingular.pxd +5 -0
  99. sage/rings/polynomial/multi_polynomial_ideal_libsingular.pyx +339 -0
  100. sage/rings/polynomial/multi_polynomial_libsingular.cpython-314-x86_64-linux-gnu.so +0 -0
  101. sage/rings/polynomial/multi_polynomial_libsingular.pxd +30 -0
  102. sage/rings/polynomial/multi_polynomial_libsingular.pyx +6277 -0
  103. sage/rings/polynomial/plural.cpython-314-x86_64-linux-gnu.so +0 -0
  104. sage/rings/polynomial/plural.pxd +48 -0
  105. sage/rings/polynomial/plural.pyx +3171 -0
  106. sage/symbolic/all__sagemath_singular.py +1 -0
  107. sage/symbolic/comparison_impl.pxi +428 -0
  108. sage/symbolic/constants_c_impl.pxi +178 -0
  109. sage/symbolic/expression.cpython-314-x86_64-linux-gnu.so +0 -0
  110. sage/symbolic/expression.pxd +7 -0
  111. sage/symbolic/expression.pyx +14200 -0
  112. sage/symbolic/getitem_impl.pxi +202 -0
  113. sage/symbolic/pynac.pxi +572 -0
  114. sage/symbolic/pynac_constant_impl.pxi +133 -0
  115. sage/symbolic/pynac_function_impl.pxi +206 -0
  116. sage/symbolic/pynac_impl.pxi +2576 -0
  117. sage/symbolic/pynac_wrap.h +124 -0
  118. sage/symbolic/series_impl.pxi +272 -0
  119. sage/symbolic/substitution_map_impl.pxi +94 -0
  120. sage_wheels/bin/ESingular +0 -0
  121. sage_wheels/bin/Singular +0 -0
  122. sage_wheels/bin/TSingular +0 -0
  123. sage_wheels/lib/singular/MOD/cohomo.la +41 -0
  124. sage_wheels/lib/singular/MOD/cohomo.so +0 -0
  125. sage_wheels/lib/singular/MOD/customstd.la +41 -0
  126. sage_wheels/lib/singular/MOD/customstd.so +0 -0
  127. sage_wheels/lib/singular/MOD/freealgebra.la +41 -0
  128. sage_wheels/lib/singular/MOD/freealgebra.so +0 -0
  129. sage_wheels/lib/singular/MOD/gfanlib.la +41 -0
  130. sage_wheels/lib/singular/MOD/gfanlib.so +0 -0
  131. sage_wheels/lib/singular/MOD/gitfan.la +41 -0
  132. sage_wheels/lib/singular/MOD/gitfan.so +0 -0
  133. sage_wheels/lib/singular/MOD/interval.la +41 -0
  134. sage_wheels/lib/singular/MOD/interval.so +0 -0
  135. sage_wheels/lib/singular/MOD/loctriv.la +41 -0
  136. sage_wheels/lib/singular/MOD/loctriv.so +0 -0
  137. sage_wheels/lib/singular/MOD/machinelearning.la +41 -0
  138. sage_wheels/lib/singular/MOD/machinelearning.so +0 -0
  139. sage_wheels/lib/singular/MOD/p_Procs_FieldGeneral.la +41 -0
  140. sage_wheels/lib/singular/MOD/p_Procs_FieldGeneral.so +0 -0
  141. sage_wheels/lib/singular/MOD/p_Procs_FieldIndep.la +41 -0
  142. sage_wheels/lib/singular/MOD/p_Procs_FieldIndep.so +0 -0
  143. sage_wheels/lib/singular/MOD/p_Procs_FieldQ.la +41 -0
  144. sage_wheels/lib/singular/MOD/p_Procs_FieldQ.so +0 -0
  145. sage_wheels/lib/singular/MOD/p_Procs_FieldZp.la +41 -0
  146. sage_wheels/lib/singular/MOD/p_Procs_FieldZp.so +0 -0
  147. sage_wheels/lib/singular/MOD/partialgb.la +41 -0
  148. sage_wheels/lib/singular/MOD/partialgb.so +0 -0
  149. sage_wheels/lib/singular/MOD/pyobject.la +41 -0
  150. sage_wheels/lib/singular/MOD/pyobject.so +0 -0
  151. sage_wheels/lib/singular/MOD/singmathic.la +41 -0
  152. sage_wheels/lib/singular/MOD/singmathic.so +0 -0
  153. sage_wheels/lib/singular/MOD/sispasm.la +41 -0
  154. sage_wheels/lib/singular/MOD/sispasm.so +0 -0
  155. sage_wheels/lib/singular/MOD/subsets.la +41 -0
  156. sage_wheels/lib/singular/MOD/subsets.so +0 -0
  157. sage_wheels/lib/singular/MOD/systhreads.la +41 -0
  158. sage_wheels/lib/singular/MOD/systhreads.so +0 -0
  159. sage_wheels/lib/singular/MOD/syzextra.la +41 -0
  160. sage_wheels/lib/singular/MOD/syzextra.so +0 -0
  161. sage_wheels/libexec/singular/MOD/change_cost +0 -0
  162. sage_wheels/libexec/singular/MOD/singularsurf +11 -0
  163. sage_wheels/libexec/singular/MOD/singularsurf_jupyter +9 -0
  164. sage_wheels/libexec/singular/MOD/singularsurf_win +10 -0
  165. sage_wheels/libexec/singular/MOD/solve_IP +0 -0
  166. sage_wheels/libexec/singular/MOD/surfex +16 -0
  167. sage_wheels/libexec/singular/MOD/toric_ideal +0 -0
  168. sage_wheels/share/factory/gftables/10201 +342 -0
  169. sage_wheels/share/factory/gftables/1024 +37 -0
  170. sage_wheels/share/factory/gftables/10609 +356 -0
  171. sage_wheels/share/factory/gftables/11449 +384 -0
  172. sage_wheels/share/factory/gftables/11881 +398 -0
  173. sage_wheels/share/factory/gftables/121 +6 -0
  174. sage_wheels/share/factory/gftables/12167 +408 -0
  175. sage_wheels/share/factory/gftables/125 +7 -0
  176. sage_wheels/share/factory/gftables/12769 +428 -0
  177. sage_wheels/share/factory/gftables/128 +7 -0
  178. sage_wheels/share/factory/gftables/1331 +47 -0
  179. sage_wheels/share/factory/gftables/1369 +48 -0
  180. sage_wheels/share/factory/gftables/14641 +490 -0
  181. sage_wheels/share/factory/gftables/15625 +523 -0
  182. sage_wheels/share/factory/gftables/16 +3 -0
  183. sage_wheels/share/factory/gftables/16129 +540 -0
  184. sage_wheels/share/factory/gftables/16384 +549 -0
  185. sage_wheels/share/factory/gftables/16807 +563 -0
  186. sage_wheels/share/factory/gftables/1681 +58 -0
  187. sage_wheels/share/factory/gftables/169 +8 -0
  188. sage_wheels/share/factory/gftables/17161 +574 -0
  189. sage_wheels/share/factory/gftables/1849 +64 -0
  190. sage_wheels/share/factory/gftables/18769 +628 -0
  191. sage_wheels/share/factory/gftables/19321 +646 -0
  192. sage_wheels/share/factory/gftables/19683 +659 -0
  193. sage_wheels/share/factory/gftables/2048 +71 -0
  194. sage_wheels/share/factory/gftables/2187 +75 -0
  195. sage_wheels/share/factory/gftables/2197 +76 -0
  196. sage_wheels/share/factory/gftables/2209 +76 -0
  197. sage_wheels/share/factory/gftables/22201 +742 -0
  198. sage_wheels/share/factory/gftables/22801 +762 -0
  199. sage_wheels/share/factory/gftables/2401 +82 -0
  200. sage_wheels/share/factory/gftables/243 +11 -0
  201. sage_wheels/share/factory/gftables/24389 +815 -0
  202. sage_wheels/share/factory/gftables/24649 +824 -0
  203. sage_wheels/share/factory/gftables/25 +3 -0
  204. sage_wheels/share/factory/gftables/256 +11 -0
  205. sage_wheels/share/factory/gftables/26569 +888 -0
  206. sage_wheels/share/factory/gftables/27 +3 -0
  207. sage_wheels/share/factory/gftables/27889 +932 -0
  208. sage_wheels/share/factory/gftables/2809 +96 -0
  209. sage_wheels/share/factory/gftables/28561 +954 -0
  210. sage_wheels/share/factory/gftables/289 +12 -0
  211. sage_wheels/share/factory/gftables/29791 +995 -0
  212. sage_wheels/share/factory/gftables/29929 +1000 -0
  213. sage_wheels/share/factory/gftables/3125 +107 -0
  214. sage_wheels/share/factory/gftables/32 +4 -0
  215. sage_wheels/share/factory/gftables/32041 +1070 -0
  216. sage_wheels/share/factory/gftables/32761 +1094 -0
  217. sage_wheels/share/factory/gftables/32768 +1095 -0
  218. sage_wheels/share/factory/gftables/343 +14 -0
  219. sage_wheels/share/factory/gftables/3481 +118 -0
  220. sage_wheels/share/factory/gftables/361 +14 -0
  221. sage_wheels/share/factory/gftables/36481 +1218 -0
  222. sage_wheels/share/factory/gftables/3721 +126 -0
  223. sage_wheels/share/factory/gftables/37249 +1244 -0
  224. sage_wheels/share/factory/gftables/38809 +1296 -0
  225. sage_wheels/share/factory/gftables/39601 +1322 -0
  226. sage_wheels/share/factory/gftables/4 +3 -0
  227. sage_wheels/share/factory/gftables/4096 +139 -0
  228. sage_wheels/share/factory/gftables/44521 +1486 -0
  229. sage_wheels/share/factory/gftables/4489 +152 -0
  230. sage_wheels/share/factory/gftables/49 +4 -0
  231. sage_wheels/share/factory/gftables/4913 +166 -0
  232. sage_wheels/share/factory/gftables/49729 +1660 -0
  233. sage_wheels/share/factory/gftables/5041 +170 -0
  234. sage_wheels/share/factory/gftables/50653 +1691 -0
  235. sage_wheels/share/factory/gftables/512 +20 -0
  236. sage_wheels/share/factory/gftables/51529 +1720 -0
  237. sage_wheels/share/factory/gftables/52441 +1750 -0
  238. sage_wheels/share/factory/gftables/529 +20 -0
  239. sage_wheels/share/factory/gftables/5329 +180 -0
  240. sage_wheels/share/factory/gftables/54289 +1812 -0
  241. sage_wheels/share/factory/gftables/57121 +1906 -0
  242. sage_wheels/share/factory/gftables/58081 +1938 -0
  243. sage_wheels/share/factory/gftables/59049 +1971 -0
  244. sage_wheels/share/factory/gftables/6241 +210 -0
  245. sage_wheels/share/factory/gftables/625 +23 -0
  246. sage_wheels/share/factory/gftables/63001 +2102 -0
  247. sage_wheels/share/factory/gftables/64 +5 -0
  248. sage_wheels/share/factory/gftables/6561 +221 -0
  249. sage_wheels/share/factory/gftables/6859 +231 -0
  250. sage_wheels/share/factory/gftables/6889 +232 -0
  251. sage_wheels/share/factory/gftables/729 +27 -0
  252. sage_wheels/share/factory/gftables/7921 +266 -0
  253. sage_wheels/share/factory/gftables/8 +3 -0
  254. sage_wheels/share/factory/gftables/81 +5 -0
  255. sage_wheels/share/factory/gftables/8192 +276 -0
  256. sage_wheels/share/factory/gftables/841 +30 -0
  257. sage_wheels/share/factory/gftables/9 +3 -0
  258. sage_wheels/share/factory/gftables/9409 +316 -0
  259. sage_wheels/share/factory/gftables/961 +34 -0
  260. sage_wheels/share/info/singular.info +191898 -0
  261. sage_wheels/share/singular/LIB/GND.lib +1359 -0
  262. sage_wheels/share/singular/LIB/JMBTest.lib +976 -0
  263. sage_wheels/share/singular/LIB/JMSConst.lib +1363 -0
  264. sage_wheels/share/singular/LIB/KVequiv.lib +699 -0
  265. sage_wheels/share/singular/LIB/SingularityDBM.lib +491 -0
  266. sage_wheels/share/singular/LIB/VecField.lib +1542 -0
  267. sage_wheels/share/singular/LIB/absfact.lib +959 -0
  268. sage_wheels/share/singular/LIB/ainvar.lib +730 -0
  269. sage_wheels/share/singular/LIB/aksaka.lib +419 -0
  270. sage_wheels/share/singular/LIB/alexpoly.lib +2542 -0
  271. sage_wheels/share/singular/LIB/algebra.lib +1193 -0
  272. sage_wheels/share/singular/LIB/all.lib +136 -0
  273. sage_wheels/share/singular/LIB/arcpoint.lib +514 -0
  274. sage_wheels/share/singular/LIB/arnold.lib +4553 -0
  275. sage_wheels/share/singular/LIB/arnoldclassify.lib +2058 -0
  276. sage_wheels/share/singular/LIB/arr.lib +3486 -0
  277. sage_wheels/share/singular/LIB/assprimeszerodim.lib +755 -0
  278. sage_wheels/share/singular/LIB/autgradalg.lib +3361 -0
  279. sage_wheels/share/singular/LIB/bfun.lib +1964 -0
  280. sage_wheels/share/singular/LIB/bimodules.lib +774 -0
  281. sage_wheels/share/singular/LIB/brillnoether.lib +226 -0
  282. sage_wheels/share/singular/LIB/brnoeth.lib +5017 -0
  283. sage_wheels/share/singular/LIB/central.lib +2169 -0
  284. sage_wheels/share/singular/LIB/chern.lib +4162 -0
  285. sage_wheels/share/singular/LIB/cimonom.lib +571 -0
  286. sage_wheels/share/singular/LIB/cisimplicial.lib +1835 -0
  287. sage_wheels/share/singular/LIB/classify.lib +3239 -0
  288. sage_wheels/share/singular/LIB/classify2.lib +1462 -0
  289. sage_wheels/share/singular/LIB/classifyMapGerms.lib +1515 -0
  290. sage_wheels/share/singular/LIB/classify_aeq.lib +3253 -0
  291. sage_wheels/share/singular/LIB/classifyceq.lib +2092 -0
  292. sage_wheels/share/singular/LIB/classifyci.lib +1133 -0
  293. sage_wheels/share/singular/LIB/combinat.lib +91 -0
  294. sage_wheels/share/singular/LIB/compregb.lib +276 -0
  295. sage_wheels/share/singular/LIB/control.lib +1636 -0
  296. sage_wheels/share/singular/LIB/crypto.lib +3795 -0
  297. sage_wheels/share/singular/LIB/curveInv.lib +667 -0
  298. sage_wheels/share/singular/LIB/curvepar.lib +1817 -0
  299. sage_wheels/share/singular/LIB/customstd.lib +100 -0
  300. sage_wheels/share/singular/LIB/deRham.lib +5979 -0
  301. sage_wheels/share/singular/LIB/decodegb.lib +2134 -0
  302. sage_wheels/share/singular/LIB/decomp.lib +1655 -0
  303. sage_wheels/share/singular/LIB/deflation.lib +872 -0
  304. sage_wheels/share/singular/LIB/deform.lib +925 -0
  305. sage_wheels/share/singular/LIB/difform.lib +3055 -0
  306. sage_wheels/share/singular/LIB/divisors.lib +750 -0
  307. sage_wheels/share/singular/LIB/dmod.lib +5817 -0
  308. sage_wheels/share/singular/LIB/dmodapp.lib +3269 -0
  309. sage_wheels/share/singular/LIB/dmodideal.lib +1211 -0
  310. sage_wheels/share/singular/LIB/dmodloc.lib +2645 -0
  311. sage_wheels/share/singular/LIB/dmodvar.lib +818 -0
  312. sage_wheels/share/singular/LIB/dummy.lib +17 -0
  313. sage_wheels/share/singular/LIB/elim.lib +1009 -0
  314. sage_wheels/share/singular/LIB/ellipticcovers.lib +548 -0
  315. sage_wheels/share/singular/LIB/enumpoints.lib +146 -0
  316. sage_wheels/share/singular/LIB/equising.lib +2127 -0
  317. sage_wheels/share/singular/LIB/ffmodstd.lib +2384 -0
  318. sage_wheels/share/singular/LIB/ffsolve.lib +1289 -0
  319. sage_wheels/share/singular/LIB/findifs.lib +778 -0
  320. sage_wheels/share/singular/LIB/finitediff.lib +1768 -0
  321. sage_wheels/share/singular/LIB/finvar.lib +7989 -0
  322. sage_wheels/share/singular/LIB/fpadim.lib +2429 -0
  323. sage_wheels/share/singular/LIB/fpalgebras.lib +1666 -0
  324. sage_wheels/share/singular/LIB/fpaprops.lib +1462 -0
  325. sage_wheels/share/singular/LIB/freegb.lib +3853 -0
  326. sage_wheels/share/singular/LIB/general.lib +1350 -0
  327. sage_wheels/share/singular/LIB/gfan.lib +1768 -0
  328. sage_wheels/share/singular/LIB/gitfan.lib +3130 -0
  329. sage_wheels/share/singular/LIB/gkdim.lib +99 -0
  330. sage_wheels/share/singular/LIB/gmspoly.lib +589 -0
  331. sage_wheels/share/singular/LIB/gmssing.lib +1739 -0
  332. sage_wheels/share/singular/LIB/goettsche.lib +909 -0
  333. sage_wheels/share/singular/LIB/graal.lib +1366 -0
  334. sage_wheels/share/singular/LIB/gradedModules.lib +2541 -0
  335. sage_wheels/share/singular/LIB/graphics.lib +360 -0
  336. sage_wheels/share/singular/LIB/grobcov.lib +7706 -0
  337. sage_wheels/share/singular/LIB/groups.lib +1123 -0
  338. sage_wheels/share/singular/LIB/grwalk.lib +507 -0
  339. sage_wheels/share/singular/LIB/hdepth.lib +194 -0
  340. sage_wheels/share/singular/LIB/help.cnf +57 -0
  341. sage_wheels/share/singular/LIB/hess.lib +1946 -0
  342. sage_wheels/share/singular/LIB/hnoether.lib +4292 -0
  343. sage_wheels/share/singular/LIB/hodge.lib +400 -0
  344. sage_wheels/share/singular/LIB/homolog.lib +1965 -0
  345. sage_wheels/share/singular/LIB/hyperel.lib +975 -0
  346. sage_wheels/share/singular/LIB/inout.lib +679 -0
  347. sage_wheels/share/singular/LIB/integralbasis.lib +6224 -0
  348. sage_wheels/share/singular/LIB/interval.lib +1418 -0
  349. sage_wheels/share/singular/LIB/intprog.lib +778 -0
  350. sage_wheels/share/singular/LIB/invar.lib +443 -0
  351. sage_wheels/share/singular/LIB/involut.lib +980 -0
  352. sage_wheels/share/singular/LIB/jacobson.lib +1215 -0
  353. sage_wheels/share/singular/LIB/kskernel.lib +534 -0
  354. sage_wheels/share/singular/LIB/latex.lib +3146 -0
  355. sage_wheels/share/singular/LIB/lejeune.lib +651 -0
  356. sage_wheels/share/singular/LIB/linalg.lib +2040 -0
  357. sage_wheels/share/singular/LIB/locnormal.lib +212 -0
  358. sage_wheels/share/singular/LIB/lrcalc.lib +526 -0
  359. sage_wheels/share/singular/LIB/makedbm.lib +294 -0
  360. sage_wheels/share/singular/LIB/mathml.lib +813 -0
  361. sage_wheels/share/singular/LIB/matrix.lib +1372 -0
  362. sage_wheels/share/singular/LIB/maxlike.lib +1132 -0
  363. sage_wheels/share/singular/LIB/methods.lib +212 -0
  364. sage_wheels/share/singular/LIB/moddiq.lib +322 -0
  365. sage_wheels/share/singular/LIB/modfinduni.lib +181 -0
  366. sage_wheels/share/singular/LIB/modnormal.lib +218 -0
  367. sage_wheels/share/singular/LIB/modprimdec.lib +1278 -0
  368. sage_wheels/share/singular/LIB/modquotient.lib +269 -0
  369. sage_wheels/share/singular/LIB/modstd.lib +1024 -0
  370. sage_wheels/share/singular/LIB/modular.lib +545 -0
  371. sage_wheels/share/singular/LIB/modules.lib +2561 -0
  372. sage_wheels/share/singular/LIB/modwalk.lib +609 -0
  373. sage_wheels/share/singular/LIB/mondromy.lib +1016 -0
  374. sage_wheels/share/singular/LIB/monomialideal.lib +3851 -0
  375. sage_wheels/share/singular/LIB/mprimdec.lib +2353 -0
  376. sage_wheels/share/singular/LIB/mregular.lib +1863 -0
  377. sage_wheels/share/singular/LIB/multigrading.lib +5629 -0
  378. sage_wheels/share/singular/LIB/ncHilb.lib +777 -0
  379. sage_wheels/share/singular/LIB/ncModslimgb.lib +791 -0
  380. sage_wheels/share/singular/LIB/ncalg.lib +16311 -0
  381. sage_wheels/share/singular/LIB/ncall.lib +31 -0
  382. sage_wheels/share/singular/LIB/ncdecomp.lib +468 -0
  383. sage_wheels/share/singular/LIB/ncfactor.lib +13371 -0
  384. sage_wheels/share/singular/LIB/ncfrac.lib +1023 -0
  385. sage_wheels/share/singular/LIB/nchilbert.lib +448 -0
  386. sage_wheels/share/singular/LIB/nchomolog.lib +759 -0
  387. sage_wheels/share/singular/LIB/ncloc.lib +361 -0
  388. sage_wheels/share/singular/LIB/ncpreim.lib +795 -0
  389. sage_wheels/share/singular/LIB/ncrat.lib +2849 -0
  390. sage_wheels/share/singular/LIB/nctools.lib +1887 -0
  391. sage_wheels/share/singular/LIB/nets.lib +1456 -0
  392. sage_wheels/share/singular/LIB/nfmodstd.lib +1000 -0
  393. sage_wheels/share/singular/LIB/nfmodsyz.lib +732 -0
  394. sage_wheels/share/singular/LIB/noether.lib +1106 -0
  395. sage_wheels/share/singular/LIB/normal.lib +8700 -0
  396. sage_wheels/share/singular/LIB/normaliz.lib +2226 -0
  397. sage_wheels/share/singular/LIB/ntsolve.lib +362 -0
  398. sage_wheels/share/singular/LIB/numerAlg.lib +560 -0
  399. sage_wheels/share/singular/LIB/numerDecom.lib +2261 -0
  400. sage_wheels/share/singular/LIB/olga.lib +1933 -0
  401. sage_wheels/share/singular/LIB/orbitparam.lib +351 -0
  402. sage_wheels/share/singular/LIB/parallel.lib +319 -0
  403. sage_wheels/share/singular/LIB/paraplanecurves.lib +3110 -0
  404. sage_wheels/share/singular/LIB/perron.lib +202 -0
  405. sage_wheels/share/singular/LIB/pfd.lib +2223 -0
  406. sage_wheels/share/singular/LIB/phindex.lib +642 -0
  407. sage_wheels/share/singular/LIB/pointid.lib +673 -0
  408. sage_wheels/share/singular/LIB/polybori.lib +1430 -0
  409. sage_wheels/share/singular/LIB/polyclass.lib +525 -0
  410. sage_wheels/share/singular/LIB/polylib.lib +1174 -0
  411. sage_wheels/share/singular/LIB/polymake.lib +1902 -0
  412. sage_wheels/share/singular/LIB/presolve.lib +1533 -0
  413. sage_wheels/share/singular/LIB/primdec.lib +9576 -0
  414. sage_wheels/share/singular/LIB/primdecint.lib +1782 -0
  415. sage_wheels/share/singular/LIB/primitiv.lib +401 -0
  416. sage_wheels/share/singular/LIB/puiseuxexpansions.lib +1631 -0
  417. sage_wheels/share/singular/LIB/purityfiltration.lib +960 -0
  418. sage_wheels/share/singular/LIB/qhmoduli.lib +1561 -0
  419. sage_wheels/share/singular/LIB/qmatrix.lib +293 -0
  420. sage_wheels/share/singular/LIB/random.lib +455 -0
  421. sage_wheels/share/singular/LIB/ratgb.lib +489 -0
  422. sage_wheels/share/singular/LIB/realclassify.lib +5759 -0
  423. sage_wheels/share/singular/LIB/realizationMatroids.lib +772 -0
  424. sage_wheels/share/singular/LIB/realrad.lib +1197 -0
  425. sage_wheels/share/singular/LIB/recover.lib +2628 -0
  426. sage_wheels/share/singular/LIB/redcgs.lib +3984 -0
  427. sage_wheels/share/singular/LIB/reesclos.lib +465 -0
  428. sage_wheels/share/singular/LIB/resbinomial.lib +2802 -0
  429. sage_wheels/share/singular/LIB/resgraph.lib +789 -0
  430. sage_wheels/share/singular/LIB/resjung.lib +820 -0
  431. sage_wheels/share/singular/LIB/resolve.lib +5110 -0
  432. sage_wheels/share/singular/LIB/resources.lib +170 -0
  433. sage_wheels/share/singular/LIB/reszeta.lib +5473 -0
  434. sage_wheels/share/singular/LIB/ring.lib +1328 -0
  435. sage_wheels/share/singular/LIB/ringgb.lib +343 -0
  436. sage_wheels/share/singular/LIB/rinvar.lib +1153 -0
  437. sage_wheels/share/singular/LIB/rootisolation.lib +1481 -0
  438. sage_wheels/share/singular/LIB/rootsmr.lib +709 -0
  439. sage_wheels/share/singular/LIB/rootsur.lib +886 -0
  440. sage_wheels/share/singular/LIB/rstandard.lib +607 -0
  441. sage_wheels/share/singular/LIB/rwalk.lib +336 -0
  442. sage_wheels/share/singular/LIB/sagbi.lib +1353 -0
  443. sage_wheels/share/singular/LIB/sagbiNormaliz.lib +1622 -0
  444. sage_wheels/share/singular/LIB/sagbiNormaliz0.lib +1498 -0
  445. sage_wheels/share/singular/LIB/sagbigrob.lib +449 -0
  446. sage_wheels/share/singular/LIB/schreyer.lib +321 -0
  447. sage_wheels/share/singular/LIB/schubert.lib +2551 -0
  448. sage_wheels/share/singular/LIB/sets.lib +524 -0
  449. sage_wheels/share/singular/LIB/sheafcoh.lib +1663 -0
  450. sage_wheels/share/singular/LIB/signcond.lib +437 -0
  451. sage_wheels/share/singular/LIB/sing.lib +1094 -0
  452. sage_wheels/share/singular/LIB/sing4ti2.lib +419 -0
  453. sage_wheels/share/singular/LIB/solve.lib +2243 -0
  454. sage_wheels/share/singular/LIB/spcurve.lib +1077 -0
  455. sage_wheels/share/singular/LIB/spectrum.lib +62 -0
  456. sage_wheels/share/singular/LIB/sresext.lib +757 -0
  457. sage_wheels/share/singular/LIB/ssi.lib +143 -0
  458. sage_wheels/share/singular/LIB/standard.lib +2769 -0
  459. sage_wheels/share/singular/LIB/stanleyreisner.lib +473 -0
  460. sage_wheels/share/singular/LIB/stdmodule.lib +547 -0
  461. sage_wheels/share/singular/LIB/stratify.lib +1070 -0
  462. sage_wheels/share/singular/LIB/surf.lib +506 -0
  463. sage_wheels/share/singular/LIB/surf_jupyter.lib +223 -0
  464. sage_wheels/share/singular/LIB/surfacesignature.lib +522 -0
  465. sage_wheels/share/singular/LIB/surfex.lib +1462 -0
  466. sage_wheels/share/singular/LIB/swalk.lib +877 -0
  467. sage_wheels/share/singular/LIB/symodstd.lib +1570 -0
  468. sage_wheels/share/singular/LIB/systhreads.lib +74 -0
  469. sage_wheels/share/singular/LIB/tasks.lib +1324 -0
  470. sage_wheels/share/singular/LIB/tateProdCplxNegGrad.lib +2412 -0
  471. sage_wheels/share/singular/LIB/teachstd.lib +858 -0
  472. sage_wheels/share/singular/LIB/template.lib +116 -0
  473. sage_wheels/share/singular/LIB/toric.lib +1119 -0
  474. sage_wheels/share/singular/LIB/transformation.lib +116 -0
  475. sage_wheels/share/singular/LIB/triang.lib +1197 -0
  476. sage_wheels/share/singular/LIB/tropical.lib +8741 -0
  477. sage_wheels/share/singular/LIB/tropicalEllipticCovers.lib +2922 -0
  478. sage_wheels/share/singular/LIB/tropicalNewton.lib +1128 -0
  479. sage_wheels/share/singular/LIB/tst.lib +1108 -0
  480. sage_wheels/share/singular/LIB/weierstr.lib +241 -0
  481. sage_wheels/share/singular/LIB/zeroset.lib +1478 -0
  482. sage_wheels/share/singular/emacs/.emacs-general +184 -0
  483. sage_wheels/share/singular/emacs/.emacs-singular +234 -0
  484. sage_wheels/share/singular/emacs/COPYING +44 -0
  485. sage_wheels/share/singular/emacs/cmd-cmpl.el +241 -0
  486. sage_wheels/share/singular/emacs/ex-cmpl.el +1681 -0
  487. sage_wheels/share/singular/emacs/hlp-cmpl.el +4318 -0
  488. sage_wheels/share/singular/emacs/lib-cmpl.el +179 -0
  489. sage_wheels/share/singular/emacs/singular.el +4273 -0
  490. sage_wheels/share/singular/emacs/singular.xpm +39 -0
  491. sage_wheels/share/singular/singular.idx +5002 -0
@@ -0,0 +1,1024 @@
1
+ ///////////////////////////////////////////////////////////////////////////////
2
+ version="version modstd.lib 4.3.0.1 Mar_2022 "; // $Id: f61b67b01efbf6f676552231c956f9e079dc9c20 $
3
+ category="Commutative Algebra";
4
+ info="
5
+ LIBRARY: modstd.lib Groebner bases of ideals/modules using modular methods
6
+
7
+ AUTHORS: A. Hashemi Amir.Hashemi@lip6.fr
8
+ G. Pfister pfister@mathematik.uni-kl.de
9
+ H. Schoenemann hannes@mathematik.uni-kl.de
10
+ A. Steenpass steenpass@mathematik.uni-kl.de
11
+ S. Steidel steidel@mathematik.uni-kl.de
12
+
13
+ OVERVIEW:
14
+ A library for computing Groebner bases of ideals/modules in the polynomial ring
15
+ over the rational numbers using modular methods.
16
+
17
+ REFERENCES:
18
+ E. A. Arnold: Modular algorithms for computing Groebner bases.
19
+ J. Symb. Comp. 35, 403-419 (2003).
20
+
21
+ N. Idrees, G. Pfister, S. Steidel: Parallelization of Modular Algorithms.
22
+ J. Symb. Comp. 46, 672-684 (2011).
23
+
24
+ PROCEDURES:
25
+ modStd(I); standard basis of I using modular methods
26
+ modGB(cmd,I); standard basis of I using modular methods via cmd
27
+ modSyz(I); syzygy module of I using modular methods
28
+ modIntersect(I,J); intersection of I and J using modular methods
29
+ ";
30
+
31
+ LIB "polylib.lib";
32
+ LIB "modular.lib";
33
+
34
+ proc modStd(def I, list #)
35
+ "USAGE: modStd(I[, exactness]); I ideal/module, exactness int
36
+ RETURN: a standard basis of I
37
+ NOTE: The procedure computes a standard basis of I (over the rational
38
+ numbers) by using modular methods.
39
+ @* An optional parameter 'exactness' can be provided.
40
+ If exactness = 1(default), the procedure computes a standard basis
41
+ of I for sure; if exactness = 0, it computes a standard basis of I
42
+ with high probability.
43
+ SEE ALSO: modular
44
+ EXAMPLE: example modStd; shows an example"
45
+ {
46
+ /* read optional parameter */
47
+ int exactness = 1;
48
+ if (size(#) > 0)
49
+ {
50
+ /* For compatibility, we only test size(#) > 4. This can be changed to
51
+ * size(#) > 1 in the future. */
52
+ if (size(#) > 4 || typeof(#[1]) != "int")
53
+ {
54
+ ERROR("wrong optional parameter");
55
+ }
56
+ exactness = #[1];
57
+ }
58
+
59
+ /* save options */
60
+ intvec opt = option(get);
61
+ option(redSB);
62
+ if (attrib(basering,"global")==0)
63
+ {
64
+ if (noether!=0) { option(infRedTail);}
65
+ else
66
+ { def II=I; attrib(II,"isSB",1);
67
+ if (highcorner(II)!=0) { option(infRedTail);}
68
+ }
69
+ }
70
+
71
+ /* choose the right command */
72
+ string command = "std";
73
+ if ((system("nblocks")>2) || (npars(basering) > 0))
74
+ { command = "Modstd::groebner_norm"; }
75
+
76
+ /* call modular() */
77
+ if (exactness)
78
+ {
79
+ if(hasCommutativeVars(basering) && (attrib(basering,"global")==1))
80
+ {
81
+ I = modular(command, list(I), primeTest_std,
82
+ deleteUnluckyPrimes_std, pTest_std, finalTest_std_comm);
83
+ }
84
+ else
85
+ {
86
+ I = modular(command, list(I), primeTest_std,
87
+ deleteUnluckyPrimes_std, pTest_std, finalTest_std);
88
+ }
89
+ }
90
+ else
91
+ {
92
+ I = modular(command, list(I), primeTest_std,
93
+ deleteUnluckyPrimes_std, pTest_std);
94
+ }
95
+
96
+ /* return the result */
97
+ attrib(I, "isSB", 1);
98
+ option(set, opt);
99
+ return(I);
100
+ }
101
+ example
102
+ {
103
+ "EXAMPLE:";
104
+ echo = 2;
105
+ ring R1 = 0, (x,y,z,t), dp;
106
+ ideal I = 3x3+x2+1, 11y5+y3+2, 5z4+z2+4;
107
+ ideal J = modStd(I);
108
+ J;
109
+ I = homog(I, t);
110
+ J = modStd(I);
111
+ J;
112
+
113
+ ring R2 = 0, (x,y,z), ds;
114
+ ideal I = jacob(x5+y6+z7+xyz);
115
+ ideal J = modStd(I, 0);
116
+ J;
117
+
118
+ ring R3 = 0, x(1..4), lp;
119
+ ideal I = cyclic(4);
120
+ ideal J1 = modStd(I, 1); // default
121
+ ideal J2 = modStd(I, 0);
122
+ size(reduce(J1, J2));
123
+ size(reduce(J2, J1));
124
+ }
125
+
126
+ proc modGB(string command, def I, list #)
127
+ "USAGE: modGB(method, I[, exactness]); I ideal/module, exactness int
128
+ method can be: std, slimgb, sba
129
+ RETURN: a standard basis of I
130
+ NOTE: The procedure computes a standard basis of I (over the rational
131
+ numbers) by using modular methods.
132
+ @* An optional parameter 'exactness' can be provided.
133
+ If exactness = 1(default), the procedure computes a standard basis
134
+ of I for sure; if exactness = 0, it computes a standard basis of I
135
+ with high probability.
136
+ SEE ALSO: modular
137
+ EXAMPLE: example modGB; shows an example"
138
+ {
139
+ /* read optional parameter */
140
+ int exactness = 1;
141
+ if (size(#) > 0)
142
+ {
143
+ if (typeof(#[1]) != "int")
144
+ {
145
+ ERROR("wrong optional parameter");
146
+ }
147
+ exactness = #[1];
148
+ }
149
+
150
+ /* save options */
151
+ intvec opt = option(get);
152
+ option(redSB);
153
+ option(redTail);
154
+
155
+ /* call modular() */
156
+ if (exactness)
157
+ {
158
+ if(hasCommutativeVars(basering) && (attrib(basering,"global")==1))
159
+ {
160
+ I = modular(command, list(I), primeTest_std,
161
+ deleteUnluckyPrimes_std, pTest_std, finalTest_std_comm);
162
+ }
163
+ else
164
+ {
165
+ I = modular(command, list(I), primeTest_std,
166
+ deleteUnluckyPrimes_std, pTest_std, finalTest_std);
167
+ }
168
+ }
169
+ else
170
+ {
171
+ I = modular(command, list(I), primeTest_std,
172
+ deleteUnluckyPrimes_std, pTest_std);
173
+ }
174
+
175
+ /* return the result */
176
+ attrib(I, "isSB", 1);
177
+ option(set, opt);
178
+ return(I);
179
+ }
180
+ example
181
+ {
182
+ "EXAMPLE:";
183
+ echo = 2;
184
+ ring R1 = 0, (x,y,z,t), dp;
185
+ ideal I = 3x3+x2+1, 11y5+y3+2, 5z4+z2+4;
186
+ ideal J = modGB("slimgb",I);
187
+ J;
188
+ I = homog(I, t);
189
+ J = modGB("slimgb",I);
190
+ J;
191
+
192
+ ring R3 = 0, x(1..4), lp;
193
+ ideal I = cyclic(4);
194
+ ideal J1 = modGB("slimgb",I, 1); // default
195
+ ideal J2 = modGB("slimgb",I, 0);
196
+ size(reduce(J1, J2));
197
+ size(reduce(J2, J1));
198
+ }
199
+
200
+ proc modSyz(def I)
201
+ "USAGE: modSyz(I); I ideal/module
202
+ RETURN: a generating set of syzygies of I
203
+ NOTE: The procedure computes a the syzygy module of I (over the rational
204
+ numbers) by using modular methods with high probability.
205
+ The property of being a syzygy is tested.
206
+ SEE ALSO: modular
207
+ EXAMPLE: example modSyz; shows an example"
208
+ {
209
+ /* save options */
210
+ intvec opt = option(get);
211
+ option(redSB);
212
+
213
+ /* choose the right command */
214
+ string command = "syz";
215
+
216
+ /* call modular() */
217
+ module M = modular(command, list(I), primeTest_std,
218
+ deleteUnluckyPrimes_std, pTest_syz);
219
+
220
+ /* return the result */
221
+ option(set, opt);
222
+ return(M);
223
+ }
224
+ example
225
+ {
226
+ "EXAMPLE:"; echo = 2;
227
+ ring R1 = 0, (x,y,z,t), dp;
228
+ ideal I = 3x3+x2+1, 11y5+y3+2, 5z4+z2+4;
229
+ modSyz(I);
230
+ simplify(syz(I),1);
231
+ }
232
+
233
+ proc modIntersect(def I, def J)
234
+ "USAGE: modIntersect(I,J); I,J ideal/module
235
+ RETURN: a generating set of the intersection of I and J
236
+ NOTE: The procedure computes a the intersection of I and J
237
+ (over the rational numbers) by using modular methods
238
+ with high probability.
239
+ No additional tests are performed.
240
+ SEE ALSO: modular
241
+ EXAMPLE: example modIntersect; shows an example"
242
+ {
243
+ /* save options */
244
+ intvec opt = option(get);
245
+ option(redSB);
246
+
247
+ /* choose the right command */
248
+ string command = "intersect";
249
+
250
+ /* call modular() */
251
+ def M = modular(command, list(I,J), primeTest_std,
252
+ deleteUnluckyPrimes_std);
253
+
254
+ /* return the result */
255
+ option(set, opt);
256
+ return(M);
257
+ }
258
+ example
259
+ {
260
+ "EXAMPLE:"; echo = 2;
261
+ ring R1 = 0, (x,y,z,t), dp;
262
+ ideal I = 3x3+x2+1, 11y5+y3+2, 5z4+z2+4;
263
+ ideal J = maxideal(2);
264
+ modIntersect(I,J);
265
+ simplify(intersect(I,J),1);
266
+ }
267
+
268
+ /* compute a normalized GB via groebner() */
269
+ static proc groebner_norm(def I)
270
+ {
271
+ I = simplify(groebner(I), 1);
272
+ attrib(I, "isSB", 1);
273
+ return(I);
274
+ }
275
+
276
+ /* test if the prime p is suitable for the input, i.e. it does not divide
277
+ * the numerator or denominator of any of the coefficients */
278
+ static proc primeTest_std(int p, alias list args)
279
+ {
280
+ /* erase zero generators */
281
+ def I = simplify(args[1], 2);
282
+
283
+ /* clear denominators and count the terms */
284
+ def J=I; // dummy assign, to get the type of I
285
+ ideal K;
286
+ int n = ncols(I);
287
+ intvec sizes;
288
+ number cnt;
289
+ int i;
290
+ for(i = n; i > 0; i--)
291
+ {
292
+ J[i] = cleardenom(I[i]);
293
+ cnt = leadcoef(J[i])/leadcoef(I[i]);
294
+ K[i] = numerator(cnt)*var(1)+denominator(cnt);
295
+ }
296
+ sizes = size(J[1..n]);
297
+
298
+ /* change to characteristic p */
299
+ def br = basering;
300
+ list lbr = ringlist(br);
301
+ if (typeof(lbr[1]) == "int") { lbr[1] = p; }
302
+ else { lbr[1][1] = p; }
303
+ def rp = ring(lbr);
304
+ setring(rp);
305
+ def Jp = fetch(br, J);
306
+ ideal Kp = fetch(br, K);
307
+
308
+ /* test if any coefficient is missing */
309
+ if (intvec(size(Kp[1..n])) != 2:n) { setring(br); return(0); }
310
+ if (intvec(size(Jp[1..n])) != sizes) { setring(br); return(0); }
311
+ setring(br);
312
+ return(1);
313
+ }
314
+
315
+ /* find entries in modresults which come from unlucky primes.
316
+ * For this, sort the entries into categories depending on their leading
317
+ * ideal and return the indices in all but the biggest category. */
318
+ static proc deleteUnluckyPrimes_std(alias list modresults)
319
+ {
320
+ int size_modresults = size(modresults);
321
+
322
+ /* sort results into categories.
323
+ * each category is represented by three entries:
324
+ * - the corresponding leading ideal
325
+ * - the number of elements
326
+ * - the indices of the elements
327
+ */
328
+ list cat;
329
+ int size_cat;
330
+ def L=modresults[1]; // dummy assign to get the type of L
331
+ int i;
332
+ int j;
333
+ for (i = 1; i <= size_modresults; i++)
334
+ {
335
+ L = lead(modresults[i]);
336
+ attrib(L, "isSB", 1);
337
+ for (j = 1; j <= size_cat; j++)
338
+ {
339
+ if (size(L) == size(cat[j][1])
340
+ && size(reduce(L, cat[j][1], 5)) == 0
341
+ && size(reduce(cat[j][1], L, 5)) == 0)
342
+ {
343
+ cat[j][2] = cat[j][2]+1;
344
+ cat[j][3][cat[j][2]] = i;
345
+ break;
346
+ }
347
+ }
348
+ if (j > size_cat)
349
+ {
350
+ size_cat++;
351
+ cat[size_cat] = list();
352
+ cat[size_cat][1] = L;
353
+ cat[size_cat][2] = 1;
354
+ cat[size_cat][3] = list(i);
355
+ }
356
+ }
357
+
358
+ /* find the biggest categories */
359
+ int cat_max = 1;
360
+ int max = cat[1][2];
361
+ for (i = 2; i <= size_cat; i++)
362
+ {
363
+ if (cat[i][2] > max)
364
+ {
365
+ cat_max = i;
366
+ max = cat[i][2];
367
+ }
368
+ }
369
+
370
+ /* return all other indices */
371
+ list unluckyIndices;
372
+ for (i = 1; i <= size_cat; i++)
373
+ {
374
+ if (i != cat_max) { unluckyIndices = unluckyIndices + cat[i][3]; }
375
+ }
376
+ return(unluckyIndices);
377
+ }
378
+ ////////////////////////////////////////////////////////////////////////////////
379
+
380
+ static proc cleardenomModule(def I)
381
+ {
382
+ int t=ncols(I);
383
+ if(size(I)==0)
384
+ {
385
+ return(I);
386
+ }
387
+ else
388
+ {
389
+ for(int i=1;i<=t;i++)
390
+ {
391
+ I[i]=cleardenom(I[i]);
392
+ }
393
+ }
394
+ return(I);
395
+ }
396
+
397
+ static proc pTest_syz(string command, alias list args, alias def result, int p)
398
+ {
399
+ module result_without_denom=cleardenomModule(result);
400
+ return(size(module(matrix(args[1])*matrix(result_without_denom)))==0);
401
+ }
402
+
403
+ /* test if 'command' applied to 'args' in characteristic p is the same as
404
+ 'result' mapped to characteristic p */
405
+ static proc pTest_std(string command, alias list args, alias def result,
406
+ int p)
407
+ {
408
+ /* change to characteristic p */
409
+ def br = basering;
410
+ list lbr = ringlist(br);
411
+ if (typeof(lbr[1]) == "int") { lbr[1] = p; }
412
+ else { lbr[1][1] = p; }
413
+ def rp = ring(lbr);
414
+ setring(rp);
415
+ def Ip = fetch(br, args)[1];
416
+ def Gp = fetch(br, result);
417
+ attrib(Gp, "isSB", 1);
418
+
419
+ /* test if Ip is in Gp */
420
+ int i;
421
+ for (i = ncols(Ip); i > 0; i--)
422
+ {
423
+ if (reduce(Ip[i], Gp, 1) != 0)
424
+ {
425
+ setring(br);
426
+ return(0);
427
+ }
428
+ }
429
+
430
+ /* compute command(args) */
431
+ execute("Ip = "+command+"(Ip);");
432
+
433
+ /* test if Gp is in Ip */
434
+ for (i = ncols(Gp); i > 0; i--)
435
+ {
436
+ if (reduce(Gp[i], Ip, 1) != 0) { setring(br); return(0); }
437
+ }
438
+ setring(br);
439
+ return(1);
440
+ }
441
+
442
+ /* test if 'result' is a GB of the input ideal, commutative ring */
443
+ static proc finalTest_std_comm(string command, alias list args, def result)
444
+ {
445
+ /* test if args[1] is in result */
446
+ attrib(result, "isSB", 1);
447
+ int i;
448
+ for (i = ncols(args[1]); i > 0; i--)
449
+ {
450
+ if (reduce(args[1][i], result, 1) != 0) { return(0); }
451
+ }
452
+
453
+ /* test if result is a GB */
454
+ //def G = std(result);
455
+ //if (reduce_parallel(G, result)) { return(0); }
456
+ //return(1);
457
+ return(system("verifyGB",result));
458
+ }
459
+
460
+ /* test if 'result' is a GB of the input ideal, generic */
461
+ static proc finalTest_std(string command, alias list args, def result)
462
+ {
463
+ /* test if args[1] is in result */
464
+ attrib(result, "isSB", 1);
465
+ int i;
466
+ for (i = ncols(args[1]); i > 0; i--)
467
+ {
468
+ if (reduce(args[1][i], result, 1) != 0) { return(0); }
469
+ }
470
+
471
+ option(noredSB,noinfRedTail);
472
+ /* test if result is a GB */
473
+ def G = std(result);
474
+ if (reduce_parallel(G, result)) { return(0); }
475
+ return(1);
476
+ }
477
+
478
+ /* return 1, if I_reduce is _not_ in G_reduce,
479
+ * 0, otherwise
480
+ * (same as size(reduce(I_reduce, G_reduce))).
481
+ * Uses parallelization. */
482
+ static proc reduce_parallel(def I_reduce, def G_reduce)
483
+ {
484
+ exportto(Modstd, I_reduce);
485
+ exportto(Modstd, G_reduce);
486
+ int size_I = ncols(I_reduce);
487
+ int chunks = Modular::par_range(size_I);
488
+ intvec range;
489
+ int i;
490
+ for (i = chunks; i > 0; i--)
491
+ {
492
+ range = Modular::par_range(size_I, i);
493
+ task t(i) = "Modstd::reduce_task", list(range);
494
+ }
495
+ startTasks(t(1..chunks));
496
+ waitAllTasks(t(1..chunks));
497
+ int result = 0;
498
+ for (i = chunks; i > 0; i--)
499
+ {
500
+ if (getResult(t(i))) { result = 1; break; }
501
+ }
502
+ kill I_reduce;
503
+ kill G_reduce;
504
+ return(result);
505
+ }
506
+
507
+ /* compute a chunk of reductions for reduce_parallel */
508
+ static proc reduce_task(intvec range)
509
+ {
510
+ int result = 0;
511
+ int i;
512
+ for (i = range[1]; i <= range[2]; i++)
513
+ {
514
+ if (reduce(I_reduce[i], G_reduce, 1) != 0) { result = 1; break; }
515
+ }
516
+ return(result);
517
+ }
518
+
519
+ ////////////////////////////////////////////////////////////////////////////////
520
+ /*
521
+ * The following procedures are kept for backward compatibility with the old
522
+ * version of modstd.lib. As of now (May 2014), they are still needed in
523
+ * modnormal.lib, modwalk.lib, and symodstd.lib. They can be removed here as
524
+ * soon as they are not longer needed in these libraries.
525
+ */
526
+
527
+ LIB "parallel.lib";
528
+
529
+ static proc mod_init()
530
+ {
531
+ newstruct("idealPrimeTest", "ideal Ideal");
532
+ }
533
+
534
+ static proc redFork(ideal I, ideal J, int n)
535
+ {
536
+ attrib(J,"isSB",1);
537
+ return(reduce(I,J,1));
538
+ }
539
+
540
+ proc isIncluded(ideal I, ideal J, list #)
541
+ "USAGE: isIncluded(I,J); I,J ideals
542
+ RETURN: 1 if J includes I,
543
+ @* 0 if there is an element f in I which does not reduce to 0 w.r.t. J.
544
+ EXAMPLE: example isIncluded; shows an example
545
+ "
546
+ {
547
+ def R = basering;
548
+ setring R;
549
+
550
+ attrib(J,"isSB",1);
551
+ int i,j,k;
552
+
553
+ if(size(#) > 0)
554
+ {
555
+ int n = #[1];
556
+ if(n >= ncols(I)) { n = ncols(I); }
557
+ if(n > 1)
558
+ {
559
+ for(i = 1; i <= n - 1; i++)
560
+ {
561
+ //link l(i) = "MPtcp:fork";
562
+ link l(i) = "ssi:fork";
563
+ open(l(i));
564
+
565
+ write(l(i), quote(redFork(eval(I[ncols(I)-i]), eval(J), 1)));
566
+ }
567
+
568
+ int t = timer;
569
+ if(reduce(I[ncols(I)], J, 1) != 0)
570
+ {
571
+ for(i = 1; i <= n - 1; i++)
572
+ {
573
+ close(l(i));
574
+ }
575
+ return(0);
576
+ }
577
+ t = timer - t;
578
+ if(t > 60) { t = 60; }
579
+ int i_sleep = system("sh", "sleep "+string(t));
580
+
581
+ j = ncols(I) - n;
582
+
583
+ while(j >= 0)
584
+ {
585
+ for(i = 1; i <= n - 1; i++)
586
+ {
587
+ if(status(l(i), "read", "ready"))
588
+ {
589
+ if(read(l(i)) != 0)
590
+ {
591
+ for(i = 1; i <= n - 1; i++)
592
+ {
593
+ close(l(i));
594
+ }
595
+ return(0);
596
+ }
597
+ else
598
+ {
599
+ if(j >= 1)
600
+ {
601
+ write(l(i), quote(redFork(eval(I[j]), eval(J), 1)));
602
+ j--;
603
+ }
604
+ else
605
+ {
606
+ k++;
607
+ close(l(i));
608
+ }
609
+ }
610
+ }
611
+ }
612
+ if(k == n - 1)
613
+ {
614
+ j--;
615
+ }
616
+ i_sleep = system("sh", "sleep "+string(t));
617
+ }
618
+ return(1);
619
+ }
620
+ }
621
+
622
+ for(i = ncols(I); i >= 1; i--)
623
+ {
624
+ if(reduce(I[i],J,1) != 0){ return(0); }
625
+ }
626
+ return(1);
627
+ }
628
+ example
629
+ { "EXAMPLE:"; echo = 2;
630
+ ring r=0,(x,y,z),dp;
631
+ ideal I = x+1,x+y+1;
632
+ ideal J = x+1,y;
633
+ isIncluded(I,J);
634
+ isIncluded(J,I);
635
+ isIncluded(I,J,4);
636
+
637
+ ring R = 0, x(1..5), dp;
638
+ ideal I1 = cyclic(4);
639
+ ideal I2 = I1,x(5)^2;
640
+ isIncluded(I1,I2,4);
641
+ }
642
+
643
+ proc deleteUnluckyPrimes(list T, list L, int ho, list #)
644
+ "USAGE: deleteUnluckyPrimes(T,L,ho,#); T/L list of polys/primes, ho integer
645
+ RETURN: lists T,L(,M),lT with T/L(/M) list of polys/primes(/type of #),
646
+ lT ideal
647
+ NOTE: - if ho = 1, the polynomials in T are homogeneous, else ho = 0,
648
+ @* - lT is prevalent, i.e. the most appearing leading ideal in T
649
+ EXAMPLE: example deleteUnluckyPrimes; shows an example
650
+ "
651
+ {
652
+ ho = ((ho)||(ord_test(basering) == -1));
653
+ int j,k,c;
654
+ intvec hl,hc;
655
+ ideal cT,lT,cK;
656
+ lT = lead(T[size(T)]);
657
+ attrib(lT,"isSB",1);
658
+ if(!ho)
659
+ {
660
+ for(j = 1; j < size(T); j++)
661
+ {
662
+ cT = lead(T[j]);
663
+ attrib(cT,"isSB",1);
664
+ if((size(reduce(cT,lT,5))!=0)||(size(reduce(lT,cT,5))!=0))
665
+ {
666
+ cK = cT;
667
+ c++;
668
+ }
669
+ }
670
+ if(c > size(T) div 2){ lT = cK; }
671
+ }
672
+ else
673
+ {
674
+ hl = hilb(lT,1);
675
+ for(j = 1; j < size(T); j++)
676
+ {
677
+ cT = lead(T[j]);
678
+ attrib(cT,"isSB",1);
679
+ hc = hilb(cT,1);
680
+ if(hl == hc)
681
+ {
682
+ for(k = 1; k <= size(lT); k++)
683
+ {
684
+ if(lT[k] < cT[k]) { lT = cT; c++; break; }
685
+ if(lT[k] > cT[k]) { c++; break; }
686
+ }
687
+ }
688
+ else
689
+ {
690
+ if(hc < hl){ lT = cT; hl = hilb(lT,1); c++; }
691
+ }
692
+ }
693
+ }
694
+
695
+ int addList;
696
+ if(size(#) > 0) { list M = #; addList = 1; }
697
+ j = 1;
698
+ attrib(lT,"isSB",1);
699
+ while((j <= size(T))&&(c > 0))
700
+ {
701
+ cT = lead(T[j]);
702
+ attrib(cT,"isSB",1);
703
+ if((size(reduce(cT,lT,5)) != 0)||(size(reduce(lT,cT,5)) != 0))
704
+ {
705
+ T = delete(T,j);
706
+ if(j == 1)
707
+ {
708
+ L = L[2..size(L)];
709
+ if(addList == 1) { M = M[2..size(M)]; }
710
+ }
711
+ else
712
+ {
713
+ if(j == size(L))
714
+ {
715
+ L = L[1..size(L)-1];
716
+ if(addList == 1) { M = M[1..size(M)-1]; }
717
+ }
718
+ else
719
+ {
720
+ L = L[1..j-1],L[j+1..size(L)];
721
+ if(addList == 1) { M = M[1..j-1],M[j+1..size(M)]; }
722
+ }
723
+ }
724
+ j--;
725
+ }
726
+ j++;
727
+ }
728
+
729
+ for(j = 1; j <= size(L); j++)
730
+ {
731
+ L[j] = bigint(L[j]);
732
+ }
733
+
734
+ if(addList == 0) { return(list(T,L,lT)); }
735
+ if(addList == 1) { return(list(T,L,M,lT)); }
736
+ }
737
+ example
738
+ { "EXAMPLE:"; echo = 2;
739
+ list L = 2,3,5,7,11;
740
+ ring r = 0,(y,x),Dp;
741
+ ideal I1 = 2y2x,y6;
742
+ ideal I2 = yx2,y3x,x5,y6;
743
+ ideal I3 = y2x,x3y,x5,y6;
744
+ ideal I4 = y2x,11x3y,x5;
745
+ ideal I5 = y2x,yx3,x5,7y6;
746
+ list T = I1,I2,I3,I4,I5;
747
+ deleteUnluckyPrimes(T,L,1);
748
+ list P = poly(x),poly(x2),poly(x3),poly(x4),poly(x5);
749
+ deleteUnluckyPrimes(T,L,1,P);
750
+ }
751
+
752
+ proc primeTest(def II, bigint p)
753
+ {
754
+ if(typeof(II) == "string")
755
+ {
756
+ ideal I = `II`.Ideal;
757
+ }
758
+ else
759
+ {
760
+ ideal I = II;
761
+ }
762
+
763
+ I = simplify(I, 2); // erase zero generators
764
+
765
+ int i,j;
766
+ poly f;
767
+ number cnt;
768
+ for(i = 1; i <= size(I); i++)
769
+ {
770
+ f = cleardenom(I[i]);
771
+ if(f == 0) { return(0); }
772
+ cnt = leadcoef(I[i])/leadcoef(f);
773
+ if((bigint(numerator(cnt)) mod p) == 0) { return(0); }
774
+ if((bigint(denominator(cnt)) mod p) == 0) { return(0); }
775
+ for(j = size(f); j > 0; j--)
776
+ {
777
+ if((bigint(leadcoef(f[j])) mod p) == 0) { return(0); }
778
+ }
779
+ }
780
+ return(1);
781
+ }
782
+
783
+ proc primeList(ideal I, int n, list #)
784
+ "USAGE: primeList(I,n[,ncores]); ( resp. primeList(I,n[,L,ncores]); ) I ideal,
785
+ n integer
786
+ RETURN: the intvec of n greatest primes <= 2147483647 (resp. n greatest primes
787
+ < L[size(L)] union with L) such that none of these primes divides any
788
+ coefficient occurring in I
789
+ NOTE: The number of cores to use can be defined by ncores, default is 1.
790
+ EXAMPLE: example primeList; shows an example
791
+ "
792
+ {
793
+ intvec L;
794
+ int i,p;
795
+ int ncores = 1;
796
+
797
+ //----------------- Initialize optional parameter ncores ---------------------
798
+ if(size(#) > 0)
799
+ {
800
+ if(size(#) == 1)
801
+ {
802
+ if(typeof(#[1]) == "int")
803
+ {
804
+ ncores = #[1];
805
+ # = list();
806
+ }
807
+ }
808
+ else
809
+ {
810
+ ncores = #[2];
811
+ }
812
+ }
813
+
814
+ if(size(#) == 0)
815
+ {
816
+ p = 2147483647;
817
+ while(!primeTest(I,p))
818
+ {
819
+ p = prime(p-1);
820
+ if(p == 2) { ERROR("no more primes"); }
821
+ }
822
+ L[1] = p;
823
+ }
824
+ else
825
+ {
826
+ L = #[1];
827
+ p = prime(L[size(L)]-1);
828
+ while(!primeTest(I,p))
829
+ {
830
+ p = prime(p-1);
831
+ if(p == 2) { ERROR("no more primes"); }
832
+ }
833
+ L[size(L)+1] = p;
834
+ }
835
+ if(p == 2) { ERROR("no more primes"); }
836
+ if(ncores == 1)
837
+ {
838
+ for(i = 2; i <= n; i++)
839
+ {
840
+ p = prime(p-1);
841
+ while(!primeTest(I,p))
842
+ {
843
+ p = prime(p-1);
844
+ if(p == 2) { ERROR("no more primes"); }
845
+ }
846
+ L[size(L)+1] = p;
847
+ }
848
+ }
849
+ else
850
+ {
851
+ int neededSize = size(L)+n-1;;
852
+ list parallelResults;
853
+ list arguments;
854
+ int neededPrimes = neededSize-size(L);
855
+ idealPrimeTest Id;
856
+ Id.Ideal = I;
857
+ export(Id);
858
+ while(neededPrimes > 0)
859
+ {
860
+ arguments = list();
861
+ for(i = ((neededPrimes div ncores)+1-(neededPrimes%ncores == 0))
862
+ *ncores; i > 0; i--)
863
+ {
864
+ p = prime(p-1);
865
+ if(p == 2) { ERROR("no more primes"); }
866
+ arguments[i] = list("Id", p);
867
+ }
868
+ parallelResults = parallelWaitAll("primeTest", arguments, 0, ncores);
869
+ for(i = size(arguments); i > 0; i--)
870
+ {
871
+ if(parallelResults[i])
872
+ {
873
+ L[size(L)+1] = arguments[i][2];
874
+ }
875
+ }
876
+ neededPrimes = neededSize-size(L);
877
+ }
878
+ kill Id;
879
+ if(size(L) > neededSize)
880
+ {
881
+ L = L[1..neededSize];
882
+ }
883
+ }
884
+ return(L);
885
+ }
886
+ example
887
+ { "EXAMPLE:"; echo = 2;
888
+ ring r = 0,(x,y,z),dp;
889
+ ideal I = 2147483647x+y, z-181;
890
+ intvec L = primeList(I,10);
891
+ size(L);
892
+ L[1];
893
+ L[size(L)];
894
+ L = primeList(I,5,L);
895
+ size(L);
896
+ L[size(L)];
897
+ }
898
+
899
+ proc modStdL(def I, list #)
900
+ "USAGE: modStdL(I[, exactness]); I ideal/module, exactness int
901
+ RETURN: a standard basis of I
902
+ NOTE: The procedure computes a standard basis of I (over the rational
903
+ numbers) by using modular methods via an external Singular.
904
+ @* An optional parameter 'exactness' can be provided.
905
+ If exactness = 1(default), the procedure computes a standard basis
906
+ of I for sure; if exactness = 0, it computes a standard basis of I
907
+ with high probability.
908
+ SEE ALSO: modular, modStd
909
+ EXAMPLE: example modStdL; shows an example"
910
+ {
911
+ link l="ssi:tcp localhost:"+system("Singular");
912
+ write(l,quote(option(noloadLib))); // suppress "loaded..."
913
+ read(l); //dummy: return value of option
914
+ write(l,quote(load("modstd.lib","with"))); // load library
915
+ read(l); //dummy: return value of load
916
+ if (size(#)==0)
917
+ {
918
+ write(l,quote(modStd(eval(I))));
919
+ }
920
+ else
921
+ {
922
+ write(l,quote(modStd(eval(I),eval(#[1]))));
923
+ }
924
+ return(read(l));
925
+ }
926
+ example
927
+ {
928
+ "EXAMPLE:";
929
+ echo = 2;
930
+ ring R1 = 0, (x,y,z,t), dp;
931
+ ideal I = 3x3+x2+1, 11y5+y3+2, 5z4+z2+4;
932
+ ideal J = modStdL(I);
933
+ J;
934
+ I = homog(I, t);
935
+ J = modStdL(I);
936
+ J;
937
+
938
+ ring R2 = 0, (x,y,z), ds;
939
+ ideal I = jacob(x5+y6+z7+xyz);
940
+ ideal J = modStdL(I, 0);
941
+ J;
942
+
943
+ ring R3 = 0, x(1..4), lp;
944
+ ideal I = cyclic(4);
945
+ ideal J1 = modStdL(I, 1); // default
946
+ ideal J2 = modStdL(I, 0);
947
+ size(reduce(J1, J2));
948
+ size(reduce(J2, J1));
949
+ }
950
+
951
+ ////////////////////////////// further examples ////////////////////////////////
952
+
953
+ /*
954
+ ring r = 0, (x,y,z), lp;
955
+ poly s1 = 5x3y2z+3y3x2z+7xy2z2;
956
+ poly s2 = 3xy2z2+x5+11y2z2;
957
+ poly s3 = 4xyz+7x3+12y3+1;
958
+ poly s4 = 3x3-4y3+yz2;
959
+ ideal i = s1, s2, s3, s4;
960
+
961
+ ring r = 0, (x,y,z), lp;
962
+ poly s1 = 2xy4z2+x3y2z-x2y3z+2xyz2+7y3+7;
963
+ poly s2 = 2x2y4z+x2yz2-xy2z2+2x2yz-12x+12y;
964
+ poly s3 = 2y5z+x2y2z-xy3z-xy3+y4+2y2z;
965
+ poly s4 = 3xy4z3+x2y2z-xy3z+4y3z2+3xyz3+4z2-x+y;
966
+ ideal i = s1, s2, s3, s4;
967
+
968
+ ring r = 0, (x,y,z), lp;
969
+ poly s1 = 8x2y2 + 5xy3 + 3x3z + x2yz;
970
+ poly s2 = x5 + 2y3z2 + 13y2z3 + 5yz4;
971
+ poly s3 = 8x3 + 12y3 + xz2 + 3;
972
+ poly s4 = 7x2y4 + 18xy3z2 + y3z3;
973
+ ideal i = s1, s2, s3, s4;
974
+
975
+ int n = 6;
976
+ ring r = 0,(x(1..n)),lp;
977
+ ideal i = cyclic(n);
978
+ ring s = 0, (x(1..n),t), lp;
979
+ ideal i = imap(r,i);
980
+ i = homog(i,t);
981
+
982
+ ring r = 0, (x(1..4),s), (dp(4),dp);
983
+ poly s1 = 1 + s^2*x(1)*x(3) + s^8*x(2)*x(3) + s^19*x(1)*x(2)*x(4);
984
+ poly s2 = x(1) + s^8 *x(1)* x(2)* x(3) + s^19* x(2)* x(4);
985
+ poly s3 = x(2) + s^10*x(3)*x(4) + s^11*x(1)*x(4);
986
+ poly s4 = x(3) + s^4*x(1)*x(2) + s^19*x(1)*x(3)*x(4) +s^24*x(2)*x(3)*x(4);
987
+ poly s5 = x(4) + s^31* x(1)* x(2)* x(3)* x(4);
988
+ ideal i = s1, s2, s3, s4, s5;
989
+
990
+ ring r = 0, (x,y,z), ds;
991
+ int a = 16;
992
+ int b = 15;
993
+ int c = 4;
994
+ int t = 1;
995
+ poly f = x^a+y^b+z^(3*c)+x^(c+2)*y^(c-1)+x^(c-1)*y^(c-1)*z3
996
+ +x^(c-2)*y^c*(y2+t*x)^2;
997
+ ideal i = jacob(f);
998
+
999
+ ring r = 0, (x,y,z), ds;
1000
+ int a = 25;
1001
+ int b = 25;
1002
+ int c = 5;
1003
+ int t = 1;
1004
+ poly f = x^a+y^b+z^(3*c)+x^(c+2)*y^(c-1)+x^(c-1)*y^(c-1)*z3
1005
+ +x^(c-2)*y^c*(y2+t*x)^2;
1006
+ ideal i = jacob(f),f;
1007
+
1008
+ ring r = 0, (x,y,z), ds;
1009
+ int a = 10;
1010
+ poly f = xyz*(x+y+z)^2 +(x+y+z)^3 +x^a+y^a+z^a;
1011
+ ideal i = jacob(f);
1012
+
1013
+ ring r = 0, (x,y,z), ds;
1014
+ int a = 6;
1015
+ int b = 8;
1016
+ int c = 10;
1017
+ int alpha = 5;
1018
+ int beta = 5;
1019
+ int t = 1;
1020
+ poly f = x^a+y^b+z^c+x^alpha*y^(beta-5)+x^(alpha-2)*y^(beta-3)
1021
+ +x^(alpha-3)*y^(beta-4)*z^2+x^(alpha-4)*y^(beta-4)*(y^2+t*x)^2;
1022
+ ideal i = jacob(f);
1023
+ */
1024
+