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,872 @@
1
+ //////////////////////////////////////////////////////////////////////////////
2
+ version="version deflation.lib 4.1.2.0 Feb_2019 "; // $Id: 2293fe0f136ef0ce12626c353675baeb686c8273 $
3
+ category="Numerical Analysis";
4
+ info="
5
+ LIBRARY: deflation.lib Various deflation methods
6
+ AUTHOR: Adrian Koch (kocha at rhrk.uni-kl.de)
7
+
8
+ REFERENCES:
9
+ - Jonathan Hauenstein, Bernard Mourrain, Agnes Szanto; Certifying isolated singular
10
+ points and their multiplicity structure
11
+ - Jonathan Hauenstein, Charles Wampler; Isosingular Sets and Deflation; published in
12
+ Foundations of Computational Mathematics, Volume 13, Issue 3, 2013, on pages 371-403
13
+ - Anton Leykin, Jan Verschelde, Ailing Zhao; Newtons method with deflation for isolated
14
+ singularities of polynomial systems; published in Theoretical Computer Science,
15
+ Volume 359, 2006, on pages 111-122
16
+
17
+ PROCEDURES:
18
+ deflateHMS(F,ro,co,[..]); deflation algorithm by Hauenstein, Mourrain, and Szanto
19
+ deflateHW1(F,ro,co); isosingular deflation: uses determinants - by Hauenstein and Wampler
20
+ deflateHW2(F,rk,[..]); isosingular deflation: strong, intrinsic - by Hauenstein and Wampler
21
+ deflateLVZ(F,rk,[..]); deflation algorithm by Leykin, Verschelde, and Zhao
22
+
23
+ KEYWORDS: deflation
24
+ ";
25
+
26
+
27
+ LIB "linalg.lib";
28
+ LIB "primdec.lib";
29
+
30
+ //////////////////////////////////////////////////////////////////////////////////////////
31
+ //////////////////////////////////////////////////////////////////////////////////////////
32
+ ////////////////////////////////////// Method C //////////////////////////////////////
33
+ //////////////////////////////////////////////////////////////////////////////////////////
34
+ //////////////////////////////////////////////////////////////////////////////////////////
35
+
36
+ static proc getLambda(matrix A, matrix B)
37
+ {
38
+ //computes the composite matrix whose columns we use to augment the original
39
+ //polynomial system
40
+
41
+ matrix C=-adjoint(A)*B;
42
+ int c=ncols(C);
43
+ matrix L=transpose(C);
44
+ L=concat(L,diag(1,c));
45
+ return(transpose(L));
46
+ }
47
+
48
+ static proc process_choice_for_i(int a, int c)
49
+ {
50
+ //a contains the choice, c is the maximum element of the set i = 1,...,c
51
+ //if a is -1, returns random value between 1 and c
52
+ //if a is 0, returns c
53
+ //if a > c, returns c
54
+ //if 1< a <c, returns a
55
+
56
+
57
+ if(a == -1)
58
+ {
59
+ return(random(1,c));
60
+ }
61
+
62
+ if(a == 0)
63
+ {
64
+ return(c);
65
+ }
66
+
67
+ if(a <= c)
68
+ {
69
+ if(a >= 1)
70
+ {
71
+ return(a);
72
+ }
73
+ }
74
+
75
+ if(a > c)
76
+ {
77
+ return(c);
78
+ }
79
+
80
+ ERROR("Input (to control the choice of which element of i to use) invalid." +
81
+ " Must be an integer >= -1");
82
+ }
83
+
84
+ static proc append_var_list(int nv, list RL, list VN)
85
+ {
86
+ //nv the number of new variables, RL the ringlist, VN the new variable names and,
87
+ //possibly, the no brackets option
88
+
89
+ int nb;
90
+ if(VN[1] == "no parentheses")
91
+ {
92
+ nb=1;
93
+ VN=delete(VN,1);
94
+ }
95
+
96
+ int i;
97
+ list vl;
98
+
99
+ if(size(VN) < nv)
100
+ {
101
+ string st=VN[1];
102
+
103
+ if(nb == 0)
104
+ {
105
+ for(i=1; i<=nv; i++)
106
+ {
107
+ vl=vl+list(st+"("+string(i)+")");
108
+ }
109
+ }
110
+ if(nb == 1)
111
+ {
112
+ for(i=1; i<=nv; i++)
113
+ {
114
+ vl=vl+list(st+string(i));
115
+ }
116
+ }
117
+ }
118
+
119
+
120
+ if(size(VN) >= nv)
121
+ {
122
+ for(i=1; i<=nv; i++)
123
+ {
124
+ vl=vl+list(VN[i]);
125
+ }
126
+ }
127
+
128
+ RL[2]=RL[2]+vl;
129
+ return(RL);
130
+ }
131
+
132
+ static proc remove_constants(ideal H);
133
+ {
134
+ //remove constants and scalar multiples from H
135
+ H=1,H;
136
+ H=simplify(H,2+4+8);
137
+ H=H[2..size(H)];
138
+ return(H);
139
+ }
140
+
141
+ static proc exhaust_options(ideal F, int a, matrix la, matrix J)
142
+ {
143
+ int i;
144
+ int c=ncols(la);
145
+ matrix N[nrows(la)][1];
146
+ ideal H;
147
+ int sF=size(F);
148
+ for(i=1; i<=c; i++)
149
+ {
150
+ if(i == a)
151
+ {
152
+ //we already checked that one
153
+ i++;
154
+ continue;
155
+ }
156
+ N=submat(la,1..nrows(la),i);
157
+ H=ideal(J*N);
158
+ H=remove_constants(H);
159
+ F=F,H;
160
+ F=simplify(F,14);
161
+ if(size(F) > sF){ return(F); }
162
+ }
163
+ print("Deflation unsuccessful: return value is the (possibly simplified) original system.");
164
+ return(F);
165
+ }
166
+
167
+ proc deflateHMS(ideal F, intvec ro, intvec co, list #)
168
+ "USAGE: deflateHMS(F, ro, co [, m [, S ]]);
169
+ ideal F: system of polynomial equations
170
+ intvecs ro and co: contain the row (respectively column) indices of a full
171
+ rank submatrix of the Jacobian of F at the point at which you want to deflate F
172
+ (if the rank is 0, make ro and co equal to the intvec containing only 0)
173
+ integer m: parameter influencing a choice made in the algorithm
174
+ string (or list of strings) S: parameter(s) influencing the output
175
+ RETURN: ring: a ring containing the ideal AUGF, representing the augmented system
176
+ REMARK: This deflation method augments the given polynomial system to a system which is
177
+ defined in the original ring. However, if the rank is 0, we add additional
178
+ variables representing the entries of a random column vector L of length nv,
179
+ where nv is the number of variables of the original polynomial ring. The system F
180
+ is then augmented by the entries of J*L, where J is the Jacobian of F.
181
+ We use these additional variables, instead of just choosing some random numbers,
182
+ so that the user would have full control over the type of random numbers: one
183
+ can just substitute the variables later on.
184
+ For more information about this deflation method see
185
+ section 3 of Jonathan Hauenstein, Bernard Mourrain, Agnes Szanto; Certifying
186
+ isolated singular points and their multiplicity structure.
187
+ We use the integer c as defined in that paper. During the algorithm, we have to
188
+ choose a subset of {1,...,c}, which is then used to generate the augmentation
189
+ of F. In this implementation, we only use subsets containing exactly one element.
190
+ The choice can be controlled by the optional argument m.
191
+
192
+ NOTE: The optional argument m controls which element of {1,...,c} will be chosen during
193
+ the procedure:
194
+ if m is -1, the procedure chooses a random value between 1 and c
195
+ if m is 0, the procedure chooses c
196
+ if m > c, the procedure chooses c
197
+ if 1< m <c, the procedure chooses m
198
+ If no optional argument is given, the procedure chooses a random value.
199
+ if the given m leads the procedure to adding only polynomials which are 0 or
200
+ scalar multiples of the polynomials in the original system, the procedure
201
+ automatically goes through 1,...,c until something useful is added (or returns
202
+ the original system and prints a message if the deflation was unsuccessful).
203
+
204
+ With the optional argument S you can influence the names that will be given to
205
+ the additional variables.
206
+ If S is of type string, say \"L\", then the variable names will be L(1),...,L(nv).
207
+ If S is a list of strings, it should be of the following form:
208
+ [\"no parentheses\",] s_1 [,...,s_n]. If the list consists of two
209
+ elements \"no parentheses\" and \"L\", the variables are named as
210
+ above, but without the parentheses. If the list contains enough strings, that is
211
+ if you specify strings s_1,...,s_nv, then exactly these strings will be used as
212
+ the names of the variables. (If you specify less than nv names, only s_1 is used.
213
+ If you specify more than nv, only s_1,...,s_nv are used.)
214
+
215
+ The procedure does not check for naming conflicts prior to defining the
216
+ extended ring, so please make sure that there are none.
217
+
218
+ You should only specify an S if you have also specified an m.
219
+ If no S is given, the added variables are named L(1),...,L(nv).
220
+ EXAMPLE: example deflateHMS; shows an example
221
+ "
222
+ {
223
+ int chi=-1;
224
+ if(size(#) > 0)
225
+ {
226
+ chi=#[1];
227
+ }
228
+ if(size(#) <= 1)
229
+ {
230
+ list VN="L";
231
+ }
232
+ if(size(#) == 2)
233
+ {
234
+ list VN=#[2];
235
+ }
236
+ if(size(#) > 2)
237
+ {
238
+ list VN=delete(#,1);
239
+ }
240
+
241
+ F=simplify(F,2+4+8);
242
+ matrix J=jacob(F);
243
+
244
+ int nv=nvars(basering);
245
+ def br=basering;
246
+ list RL=ringlist(br);
247
+
248
+ if( ro[1]*co[1] == 0 )
249
+ {
250
+ //ie if the rank is 0
251
+ //then we need a random vector
252
+ //so we construct a ring with additional variables, such that the random values
253
+ //can be chosen later on and substituted for these variables
254
+
255
+ RL=append_var_list(nv,RL,VN);
256
+ def bigR=ring(RL);
257
+ setring bigR;
258
+
259
+
260
+ matrix N[nv][1];
261
+ int i;
262
+ for(i=1; i<=nv; i++)
263
+ {
264
+ N[i,1]=var(nv+i);
265
+ }
266
+
267
+ matrix J=imap(br,J);
268
+ J=J*N;
269
+ ideal AUGF=imap(br,F);
270
+ AUGF=AUGF,ideal(J);
271
+ //int CHNG=nv;
272
+ export(AUGF);
273
+ //export(CHNG);
274
+ return(bigR);
275
+ }
276
+ else
277
+ {
278
+ intvec cc=complementary_ro_co_vecs(co,ncols(J));
279
+ matrix A=submat(J,ro,co);
280
+ matrix B=submat(J,ro,cc);
281
+ matrix la=getLambda(A,B);
282
+ int i=process_choice_for_i(chi,ncols(la));
283
+ matrix N[nrows(la)][1]=submat(la,1..nrows(la),i);
284
+
285
+ ideal H=ideal(J*N);
286
+ H=remove_constants(H);
287
+ int sF=size(F);
288
+ F=F,H;
289
+ F=simplify(F,14);
290
+ //gets rid of zero generators and copies of earlier listed generators
291
+ //and polys which are scalar multiples of earlier listed polys
292
+
293
+ if(size(F) == sF)
294
+ {
295
+ //we did not add a polynomial which is not 0 and not a scalar multiple
296
+ //of an earlier listed polynomial
297
+ F=exhaust_options(F,i,la,J);
298
+ }
299
+ def outR=ring(RL);
300
+ setring outR;
301
+ ideal AUGF=imap(br,F);
302
+ //int CHNG=0;
303
+ export(AUGF);
304
+ //export(CHNG);
305
+ return(outR);
306
+ }
307
+ }
308
+ example
309
+ { "EXAMPLE:"; echo=2;
310
+ ring ojika3=0,(x,y,z),dp;
311
+ ideal F=x+y+z-1, 2x3+5y2-10z+5z3+5, 2x+2y+z2-1;
312
+ intvec ro=1,2;
313
+ intvec co=1,3;
314
+ def R1=deflateHMS(F,ro,co);
315
+ R1;
316
+ setring R1;
317
+ AUGF;
318
+
319
+ ring cbms1=0,(x,y,z),dp;
320
+ ideal F=x3-yz, y3-xz, z3-xy;
321
+ ro=0;
322
+ co=0;
323
+ int m=-1;
324
+ def R2=deflateHMS(F,ro,co,m,"L");
325
+ R2;
326
+ setring R2;
327
+ AUGF;
328
+ }
329
+
330
+ //////////////////////////////////////////////////////////////////////////////////////////
331
+ //////////////////////////////////////////////////////////////////////////////////////////
332
+ ////////////////////////////////////// Method B //////////////////////////////////////
333
+ //////////////////////////////////////////////////////////////////////////////////////////
334
+ //////////////////////////////////////////////////////////////////////////////////////////
335
+
336
+ static proc complementary_ro_co_vecs(intvec v, int m)
337
+ {
338
+ intvec c;
339
+ intvec b;
340
+ int j;
341
+ b[m]=0;
342
+ int i;
343
+ for(i=1; i<=size(v); i++)
344
+ {
345
+ b[v[i]]=1;
346
+ }
347
+ for(i=1; i<=m; i++)
348
+ {
349
+ if(b[i] == 0)
350
+ {
351
+ j++;
352
+ c[j]=i;
353
+ }
354
+ }
355
+ return(c);
356
+ }
357
+
358
+ static proc certain_submats(matrix M, intvec ro, intvec co)
359
+ {
360
+ //ro and co the row ,respectively column, indices of the matrix we want to have as
361
+ //part of the returned submatrices
362
+
363
+ list S;
364
+ intvec rn, cn;//the row and column indices used to obtain the next submatrix
365
+ intvec rc=complementary_ro_co_vecs(ro,nrows(M));
366
+ intvec cc=complementary_ro_co_vecs(co,ncols(M));
367
+ int sr=size(ro)+1;
368
+ int sc=size(co)+1;
369
+ int i,j;
370
+ for(i=1; i<=size(rc); i++)
371
+ {
372
+ rn=ro;
373
+ rn[sr]=rc[i];
374
+ for(j=1; j<=size(cc); j++)
375
+ {
376
+ cn=co;
377
+ cn[sc]=cc[j];
378
+ S = S + list(submat(M,rn,cn));
379
+ }
380
+ }
381
+ return(S);
382
+ }
383
+
384
+ static proc det_augment(ideal F, intvec ro, intvec co)
385
+ {
386
+ //returns the polynomials with which we want to augment F
387
+ //namely the determinants of all r+1 x r+1 submatrices of the Jacobian of F
388
+ //containing the r x r submatrix specified by ro and co
389
+ matrix J=jacob(F);
390
+
391
+ if(ro[1]*co[1] == 0)
392
+ {
393
+ //meaning the rank is 0
394
+ //then return the 1x1 minors, that is the entries of J
395
+ return(ideal(J));
396
+ }
397
+
398
+ list S=certain_submats(J,ro,co);
399
+
400
+ ideal A=det(S[1]);
401
+ int i;
402
+ for(i=2; i<=size(S); i++)
403
+ {
404
+ A=A,det(S[i]);
405
+ }
406
+ return(A);
407
+ }
408
+
409
+ proc deflateHW1(ideal F, intvec ro, intvec co)
410
+ "USAGE: deflateHW1(F, ro, co);
411
+ ideal F: system of polynomial equations
412
+ intvecs ro and co: contain the row (respectively column) indices of a full
413
+ rank submatrix of the Jacobian of F at the point at which you want to deflate F
414
+ (if the rank is 0, make ro and co equal to the intvec containing only 0)
415
+ RETURN: ideal: an augmented polynomial system
416
+ ASSUME: ro and co have the same number of elements, say rk.
417
+ REMARK: This deflation method adds to F the determinants of the (rk+1) x (rk+1)
418
+ submatrices of the Jacobian of F containing the rows and columns specified in
419
+ ro and co
420
+ EXAMPLE: example deflateHW1; shows an example
421
+ "
422
+ {
423
+ //does one iteration of deflation, then returns the augmented system
424
+ //ro and co the row, respectively column, indices of the matrix we want to have as
425
+ //part of the submatrices we use to augment F
426
+
427
+ ideal A=det_augment(F,ro,co);
428
+ F=F,A;
429
+ F=simplify(F,2+4+8);//erases the zeroes, copies, scalar multiples
430
+ return(F);
431
+ }
432
+ example
433
+ { "EXAMPLE:"; echo=2;
434
+ ring ojika3=0,(x,y,z),dp;
435
+ ideal F=x+y+z-1, 2x3+5y2-10z+5z3+5, 2x+2y+z2-1;
436
+ intvec ro=1,2;//number of elements is rk=2
437
+ intvec co=1,3;
438
+ ideal AUGF=deflateHW1(F,ro,co);//considers 3x3 submatrices of the Jacobian J of F,
439
+ //that is J itself
440
+
441
+ AUGF;
442
+
443
+ //the only polynomial we added is the determinant of J
444
+ det(jacob(F));
445
+ }
446
+
447
+ //////////////////////////////////////////////////////////////////////////////////////////
448
+ ///////////////////////////// strong intrinsic deflation /////////////////////////////
449
+ //////////////////////////////////////////////////////////////////////////////////////////
450
+
451
+ static proc makeB(int N, int d)
452
+ {
453
+ //fills an NxN matrix with newly added variables
454
+ //column by column, from left to right, each column from top to bottom
455
+
456
+ matrix B[N][N];
457
+ int i,j;
458
+ for(j=1; j<=N; j++)
459
+ {
460
+ for(i=1; i<=N; i++)
461
+ {
462
+ B[i,j]=var(N+(N-d)*d+(j-1)*N+i);
463
+ }
464
+ }
465
+ return(B);
466
+ }
467
+
468
+ static proc makeIX(int N, int d)
469
+ {
470
+ //constructs the composite matrix which has the identity matrix on top and
471
+ //Xi on the bottom. Xi is filled with the newly added variables; column by column,
472
+ //from left to right, each column from top to bottom
473
+
474
+ matrix I=diag(1,d);
475
+ matrix X[N-d][d];
476
+ int i,j;
477
+ for(j=1; j<=d; j++)
478
+ {
479
+ for(i=1; i<=N-d; i++)
480
+ {
481
+ X[i,j]=var(N+(j-1)*(N-d)+i);
482
+ }
483
+ }
484
+ I=concat(I,transpose(X));
485
+ I=transpose(I);
486
+ return(I);
487
+ }
488
+
489
+ proc deflateHW2(ideal F, int rk, list #)
490
+ "USAGE: deflateHW2(F, rk [, SXi, SB]);
491
+ ideal F: system of polynomial equations
492
+ int rk: the rank of the Jacobian of F at the point at which you want to deflate
493
+ strings (or lists of strings) SXi, SB: parameters influencing the output
494
+
495
+ RETURN: ring: a ring containing the ideal AUGF, representing the augmented system
496
+
497
+ REMARK: This deflation method augments the given polynomial system to a system which is
498
+ defined in the original ring if rk = 0.
499
+ If rk > 0, the augmented system is defined in an extended ring and a random
500
+ matrix B is used in the computations. More precisely:
501
+ - rk*(nv-rk) new variables are added to the original ring
502
+ - the random matrix B has dimensions nv*nv
503
+
504
+ NOTE: If rk = 0: the returned ring R is the same as the basering.
505
+ If rk > 0: the returned ring R is the basering plus additional variables.
506
+ More precisely, we add rk*(nv-rk) + nv*nv variables, where nv is the number of
507
+ variables in the basering. They have the following purpose:
508
+ - the first rk*(nv-rk) correspond to the new variables of the extended ring
509
+ ( lets say that these variables are called Xi_1,...,Xi_(rk*(nv-rk)) )
510
+ - the last nv*nv variables correspond to the entries of the random matrix B
511
+ This way, you have more options: you can substitute the variables corresponding
512
+ to the entries of B by random numbers you generated yourself.
513
+
514
+ With the optional arguments you can influence the names that will be given to the
515
+ additional variables. If you give any optional arguments, you should give exactly
516
+ two of them. The first controls the names of the Xi_j, the second the names
517
+ of the entries of B.
518
+ If an optional argument is of type string, say \"X\", then the variable names
519
+ controlled by this argument will be X(1),...,X(# of variables).
520
+ If an optional argument is given as a list of strings, it should be of the
521
+ following form: [\"no parentheses\",] s_1 [,...,s_n]. If the list consists of two
522
+ elements \"no parentheses\" and \"X\", the variables are named as
523
+ above, but without the parentheses. If the list contains enough strings, that is
524
+ if you specify strings s_1,...,s_n with n=rk*(nv-rk) or n=nv*nv (depending on
525
+ which of the variable names are being controlled), then exactly these strings
526
+ will be used as the names of the variables. (If you specify less than n names,
527
+ only s_1 is used. If you specify more than n, only s_1,...,s_n are used.)
528
+
529
+ The procedure does not check for naming conflicts prior to defining the
530
+ extended ring, so please make sure that there are none.
531
+
532
+ If no optional arguments are given, the new variables are named X(1),...,X(rk+1),
533
+ the entries of B are named B(1),...,B(nv*(rk+1)).
534
+
535
+ As for the order in which B is filled with variables:
536
+ - B is filled with variables column by column, from left to right, filling the
537
+ columns from top to bottom
538
+
539
+ EXAMPLE: example deflateHW2; shows an example
540
+ "
541
+ {
542
+ list vnb="B";
543
+ list vnxi="X";
544
+ if(size(#) > 0)
545
+ {
546
+ if(size(#) > 2)
547
+ {
548
+ ERROR("Too many optional arguments (there should be exactly two, if any).");
549
+ }
550
+ if(size(#) == 1)
551
+ {
552
+ ERROR("Too few optional arguments (there should be exactly two, if any).");
553
+ }
554
+
555
+ if(typeof(#[1]) != typeof(#[2]))
556
+ {
557
+ //ERROR("The optional arguments must be of the same type.");
558
+ }
559
+
560
+ vnb=#[2];
561
+ vnxi=#[1];
562
+ }
563
+
564
+ matrix J=jacob(F);
565
+ int N=ncols(J);//number of variables
566
+ int d=N-rk;
567
+
568
+ int nv=nvars(basering);
569
+ def br=basering;
570
+ list RL=ringlist(br);
571
+
572
+ if( rk > 0 )
573
+ {
574
+ RL=append_var_list((N-d)*d,RL,vnxi);
575
+ RL=append_var_list(N*N,RL,vnb);
576
+
577
+ def bigR=ring(RL);
578
+ setring bigR;
579
+
580
+ matrix J=imap(br,J);
581
+ matrix B=makeB(N,d);
582
+ matrix IX=makeIX(N,d);
583
+ J=J*B*IX;
584
+
585
+ ideal AUGF=imap(br,F);
586
+ AUGF=AUGF,ideal(J);
587
+ AUGF=simplify(AUGF,2+4+8);//remove zeroes, copies, scalar multiples
588
+ export(AUGF);
589
+ return(bigR);
590
+ }
591
+
592
+ if( rk == 0 )
593
+ {
594
+ def outR=ring(RL);
595
+ setring outR;
596
+
597
+ matrix J=imap(br,J);
598
+ ideal AUGF=imap(br,F);
599
+ AUGF=AUGF,ideal(J);
600
+ AUGF=simplify(AUGF,2+4+8);
601
+ export(AUGF);
602
+ return(outR);
603
+ }
604
+ }
605
+ example
606
+ { "EXAMPLE:"; echo=2;
607
+ ring ojika3=0,(x,y,z),dp;
608
+ ideal F=x+y+z-1, 2x3+5y2-10z+5z3+5, 2x+2y+z2-1;
609
+ int rk=2;
610
+ list L="X",list("no parentheses", "B");
611
+ def R=deflateHW2(F,rk,L);
612
+ R;
613
+ setring R;
614
+ AUGF;
615
+ }
616
+
617
+ //////////////////////////////////////////////////////////////////////////////////////////
618
+ //////////////////////////////////////////////////////////////////////////////////////////
619
+ ////////////////////////////////////// Method A //////////////////////////////////////
620
+ //////////////////////////////////////////////////////////////////////////////////////////
621
+ //////////////////////////////////////////////////////////////////////////////////////////
622
+
623
+ proc deflateLVZ(ideal F, int rk, list #)
624
+ "USAGE: deflateLVZ(F, rk [, Sl, SB, Sh]);
625
+ ideal F: system of polynomial equations
626
+ int rk: the rank of the Jacobian of F at the point at which you want to deflate
627
+ strings (or lists of strings) Sl, SB, Sh: parameters influencing the output
628
+
629
+ RETURN: ring: a ring containing the ideal AUGF, representing the augmented system
630
+
631
+ REMARK: This deflation method augments the given polynomial system to a system defined
632
+ in an extended polynomial ring (new variables: lambda_i), and uses two random
633
+ elements in its computations: a matrix B and a (column) vector h.
634
+ More precisely:
635
+ - the original polynomial ring is extended by rk+1 variables
636
+ - the random matrix B has dimensions nv x rk+1, where nv is the number of
637
+ variables in the original ring
638
+ - the random vector h has length rk+1
639
+
640
+ NOTE: The returned ring R is the same as the basering plus additional variables.
641
+ More precisely, we add (nv+2)*(rk+1) variables, where nv is the number of
642
+ variables in the basering. They have the following purpose:
643
+ - the first rk+1 correspond to the variables lambda_i of the extended ring
644
+ - the next nv*(rk+1) variables correspond to the entries of the random matrix B
645
+ - the last rk+1 variables correspond to the entries of the random vector h
646
+ This way, the user has more options: he can substitute the variables
647
+ corresponding to the random elements by random numbers he generated himself.
648
+
649
+ With the optional arguments you can influence the names that will be given to the
650
+ additional variables. If you give any optional arguments, you should give exactly
651
+ three of them. The first controls the names of the lambda_i, the second the names
652
+ of the entries of B, and the third controls the names given to the entries of h.
653
+ If an optional argument is of type string, say \"X\", then the variable names
654
+ controlled by this argument will be X(1),...,X(# of variables).
655
+ If an optional argument is given as a list of strings, it should be of the
656
+ following form: [\"no parentheses\",] s_1 [,...,s_n]. If the list consists of two
657
+ elements \"no parentheses\" and \"X\", the variables are named as
658
+ above, but without the parentheses. If the list contains enough strings, that is
659
+ if you specify strings s_1,...,s_n with n=rk+1 or n=nv*(rk+1) (depending on which
660
+ of the variable names are being controlled), then exactly these strings will be
661
+ used as the names of the variables. (If you specify less than n names, only s_1
662
+ is used. If you specify more than n, only s_1,...,s_n are used.)
663
+
664
+ The procedure does not check for naming conflicts prior to defining the
665
+ extended ring, so please make sure that there are none.
666
+
667
+ If no optional arguments are given, the new variables are named l(1),...,l(rk+1),
668
+ the entries of B are named B(1),...,B(nv*(rk+1)), and the entries of h are named
669
+ h(1),...,h(rk+1).
670
+
671
+ As for the order in which B and h are filled with variables:
672
+ - B is filled with variables column by column, from left to right, filling the
673
+ columns from top to bottom
674
+ - the column vector h is filled from top to bottom
675
+
676
+ EXAMPLE: example deflateLVZ; shows an example
677
+ "
678
+ {
679
+ if(size(#) != 3)
680
+ {
681
+ if(size(#) != 0)
682
+ {
683
+ ERROR("If any optional arguments are given, there have to be exactly three of them.");
684
+ }
685
+ list Vl="l";
686
+ list VB="B";
687
+ list Vh="h";
688
+ }
689
+
690
+ if(size(#) == 3)
691
+ {
692
+ list Vl=#[1];
693
+ list VB=#[2];
694
+ list Vh=#[3];
695
+ }
696
+
697
+
698
+
699
+ matrix J=jacob(F);
700
+
701
+ def br=basering;
702
+ list RL=ringlist(basering);
703
+ int nv=nvars(basering);
704
+ RL=append_var_list(rk+1,RL,Vl);
705
+ RL=append_var_list( nv*(rk+1) ,RL,VB);
706
+ RL=append_var_list(rk+1,RL,Vh);
707
+
708
+ def outr=ring(RL);
709
+ setring outr;
710
+ matrix J=imap(br,J);
711
+ ideal F=imap(br,F);
712
+
713
+ matrix B[nv][rk+1];
714
+ int ii,jj;
715
+ for(jj=1; jj<=rk+1; jj++)
716
+ {
717
+ for(ii=1; ii<=nv; ii++)
718
+ {
719
+ B[ii,jj]=var( nv+rk+1 + (jj - 1)*(rk+1) + ii );
720
+ }
721
+ }
722
+
723
+ matrix la[rk+1][1];
724
+ for(ii=1; ii<=rk+1; ii++)
725
+ {
726
+ la[ii,1]=var( nv + ii );
727
+ }
728
+
729
+ matrix h[rk+1][1];
730
+ for(ii=1; ii<=rk+1; ii++)
731
+ {
732
+ h[ii,1]=var( nv+rk+1 + nv*(rk+1) + ii );
733
+ }
734
+
735
+ matrix C=J*B;
736
+ ideal G=ideal(C*la);
737
+ matrix H=transpose(la)*h;
738
+ kill h;
739
+ poly h=H[1,1]-1;
740
+
741
+ ideal AUGF=F,G,h;
742
+ export(AUGF);
743
+ return(outr);
744
+ }
745
+ example
746
+ { "EXAMPLE:"; echo=2;
747
+ ring ojika3=0,(x,y,z),dp;
748
+ ideal F=x+y+z-1, 2x3+5y2-10z+5z3+5, 2x+2y+z2-1;
749
+ int rk=2;
750
+ list L="l",list("no parentheses", "B"), list("ha","he","ho");
751
+ def R=deflateLVZ(F,rk,L);
752
+ R;
753
+ setring R;
754
+ AUGF;
755
+ }
756
+
757
+
758
+ //////////////////////////////////////////////////////////////////////////////////////////
759
+ //////////////////////////////////////////////////////////////////////////////////////////
760
+ ////////////////////////////////////// Examples //////////////////////////////////////
761
+ //////////////////////////////////////////////////////////////////////////////////////////
762
+ //////////////////////////////////////////////////////////////////////////////////////////
763
+ //These are some benchmark-examples. You can find most of them in the literature listed
764
+ //under references.
765
+ //Every examples listed consists of a polynomial system of equations and one ore two
766
+ //points at which we want to deflate the system. The examples which are given
767
+ //exactly can be handled with Singular (that is, symbolically). However, the purpose of
768
+ //the procedures in this library is to use information which was computed numerically
769
+ //- such as the (numerical) rank of the Jacobian of the polynomial system at a certain
770
+ //point -
771
+ //and then do symbolical manipulations of the polynomial system in order to deflate it.
772
+ //For the Cyclic-9 problem, for example, you will probably want to compute the necessary
773
+ //information numerically.
774
+ /*
775
+
776
+ ring cbms1=0,(x,y,z),dp;
777
+ list p=0,0,0;
778
+ ideal F=x3-yz, y3-xz, z3-xy;
779
+
780
+
781
+ ring cbms2=0,(x,y,z),dp;
782
+ list p=0,0,0;
783
+ ideal F=x3-3x2y+3xy2-y3-z2, z3-3z2x+3zx2-x3-y2, y3-3y2z+3yz2-z3-x2;
784
+
785
+
786
+ ring mth191=0,(x,y,z),dp;
787
+ list p=0,1,0;
788
+ ideal F=x3+y2+z2-1, x2+y3+z2-1, x2+y2+z3-1;
789
+
790
+
791
+ ring decker2=0,(x,y),dp;
792
+ list p=0,0;
793
+ ideal F=x+y3, x2y-y4;
794
+
795
+
796
+ ring ojika2=0,(x,y,z),dp;
797
+ list p=0,0,1;
798
+ list q=1,0,0;
799
+ ideal F=x2+y+z-1, x+y2+z-1, x+y+z2-1;
800
+
801
+
802
+ ring ojika3=0,(x,y,z),dp;
803
+ list p=0,0,1;
804
+ list q=poly(-5)/2,poly(5)/2,1;
805
+ ideal F=x+y+z-1, 2x3+5y2-10z+5z3+5, 2x+2y+z2-1;
806
+
807
+
808
+ ring caprasse=(0,a),(x,y,z,w),dp;
809
+ minpoly=a2+3;
810
+ list p=2,-a,2,a;
811
+ ideal F=-x3z + 4xy2z + 4x2yw + 2y3w + 4x2 - 10y2 + 4xz - 10yw + 2,
812
+ -xz3 + 4yz2w + 4xzw2 + 2yw3 + 4xz + 4z2 - 10yw - 10w2 + 2,
813
+ y2z + 2xyw - 2x - z, 2yzw + xw2 - x - 2z;
814
+
815
+
816
+ ring KSS=0,x(1..5),dp;
817
+ int i; ideal F; poly f;
818
+ poly g=sum(maxideal(1));
819
+ for(i=1; i<=5; i++)
820
+ {
821
+ f=var(i)^2 + g - 2*var(i) - 4;
822
+ F=F,f;
823
+ }
824
+ F=simplify(F,2);
825
+ list p=1,1,1,1,1;
826
+
827
+
828
+
829
+ ring C9=(0,I),(x0,x1,x2,x3,x4,x5,x6,x7,x8),dp;
830
+ ideal F=x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8,
831
+
832
+ x0*x1 + x1*x2 + x2*x3 + x3*x4 + x4*x5 + x5*x6 + x6*x7 + x7*x8 + x8*x0,
833
+
834
+ x0*x1*x2 + x1*x2*x3 + x2*x3*x4 + x3*x4*x5 + x4*x5*x6 + x5*x6*x7
835
+ + x6*x7*x8 + x7*x8*x0 + x8*x0*x1,
836
+
837
+ x0*x1*x2*x3 + x1*x2*x3*x4 + x2*x3*x4*x5 + x3*x4*x5*x6 + x4*x5*x6*x7
838
+ + x5*x6*x7*x8 + x6*x7*x8*x0 + x7*x8*x0*x1 + x8*x0*x1*x2,
839
+
840
+ x0*x1*x2*x3*x4 + x1*x2*x3*x4*x5 + x2*x3*x4*x5*x6 + x3*x4*x5*x6*x7
841
+ + x4*x5*x6*x7*x8 + x5*x6*x7*x8*x0 + x6*x7*x8*x0*x1 + x7*x8*x0*x1*x2
842
+ + x8*x0*x1*x2*x3,
843
+
844
+ x0*x1*x2*x3*x4*x5 + x1*x2*x3*x4*x5*x6 + x2*x3*x4*x5*x6*x7 + x3*x4*x5*x6*x7*x8
845
+ + x4*x5*x6*x7*x8*x0 + x5*x6*x7*x8*x0*x1 + x6*x7*x8*x0*x1*x2 + x7*x8*x0*x1*x2*x3
846
+ + x8*x0*x1*x2*x3*x4,
847
+
848
+ x0*x1*x2*x3*x4*x5*x6 + x1*x2*x3*x4*x5*x6*x7 + x2*x3*x4*x5*x6*x7*x8
849
+ + x3*x4*x5*x6*x7*x8*x0 + x4*x5*x6*x7*x8*x0*x1 + x5*x6*x7*x8*x0*x1*x2
850
+ + x6*x7*x8*x0*x1*x2*x3 + x7*x8*x0*x1*x2*x3*x4 + x8*x0*x1*x2*x3*x4*x5,
851
+
852
+ x0*x1*x2*x3*x4*x5*x6*x7 + x1*x2*x3*x4*x5*x6*x7*x8 + x2*x3*x4*x5*x6*x7*x8*x0
853
+ + x3*x4*x5*x6*x7*x8*x0*x1 + x4*x5*x6*x7*x8*x0*x1*x2 + x5*x6*x7*x8*x0*x1*x2*x3
854
+ + x6*x7*x8*x0*x1*x2*x3*x4 + x7*x8*x0*x1*x2*x3*x4*x5 + x8*x0*x1*x2*x3*x4*x5*x6,
855
+
856
+ x0*x1*x2*x3*x4*x5*x6*x7*x8 - 1;
857
+ poly z0= poly(-9396926) - 3520201*I; z0=z0/10000000;
858
+ poly z1=poly(-24601472) - 8954204*I; z1=z1/10000000;
859
+ poly z2= poly(-3589306) - 1306401*I; z2=z2/10000000;
860
+ list p=z0,z1,z2,z0,-z2,-z1,z0,-z2,-z1;
861
+
862
+
863
+ ring DZ1=0,(x,y,z,w),dp;
864
+ list p=0,0,0,0;
865
+ ideal F=x4-yzw, y4-xzw, z4-xyw, w4-xyz;
866
+
867
+
868
+ ring DZ2=0,(x,y,z),dp;
869
+ list p=0,0,-1;
870
+ ideal F=x4, x2y+y4, z+z2-7x3-8x2;
871
+
872
+ */