passagemath-singular 10.6.31rc3__cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

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

Potentially problematic release.


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

Files changed (490) hide show
  1. PySingular.cpython-314-aarch64-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 +490 -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-6a2a8666.4.1.so +0 -0
  7. passagemath_singular.libs/libcddgmp-ac579979.so.0.1.3 +0 -0
  8. passagemath_singular.libs/libfactory-4-66e33516.4.1.so +0 -0
  9. passagemath_singular.libs/libflint-81de1160.so.21.0.0 +0 -0
  10. passagemath_singular.libs/libgf2x-fbd36f80.so.3.0.0 +0 -0
  11. passagemath_singular.libs/libgfortran-e1b7dfc8.so.5.0.0 +0 -0
  12. passagemath_singular.libs/libgmp-93ebf16a.so.10.5.0 +0 -0
  13. passagemath_singular.libs/libgsl-e3525837.so.28.0.0 +0 -0
  14. passagemath_singular.libs/libmpfr-e0f11cf3.so.6.2.1 +0 -0
  15. passagemath_singular.libs/libntl-0043a3a2.so.44.0.1 +0 -0
  16. passagemath_singular.libs/libomalloc-0-06512335.9.6.so +0 -0
  17. passagemath_singular.libs/libopenblasp-r0-4c5b64b1.3.29.so +0 -0
  18. passagemath_singular.libs/libpolys-4-cb7246b5.4.1.so +0 -0
  19. passagemath_singular.libs/libreadline-28330744.so.8.2 +0 -0
  20. passagemath_singular.libs/libsingular_resources-4-8c425241.4.1.so +0 -0
  21. passagemath_singular.libs/libtinfo-f81c2d16.so.6.3 +0 -0
  22. sage/algebras/all__sagemath_singular.py +3 -0
  23. sage/algebras/fusion_rings/all.py +19 -0
  24. sage/algebras/fusion_rings/f_matrix.py +2448 -0
  25. sage/algebras/fusion_rings/fast_parallel_fmats_methods.cpython-314-aarch64-linux-gnu.so +0 -0
  26. sage/algebras/fusion_rings/fast_parallel_fmats_methods.pxd +5 -0
  27. sage/algebras/fusion_rings/fast_parallel_fmats_methods.pyx +538 -0
  28. sage/algebras/fusion_rings/fast_parallel_fusion_ring_braid_repn.cpython-314-aarch64-linux-gnu.so +0 -0
  29. sage/algebras/fusion_rings/fast_parallel_fusion_ring_braid_repn.pxd +3 -0
  30. sage/algebras/fusion_rings/fast_parallel_fusion_ring_braid_repn.pyx +331 -0
  31. sage/algebras/fusion_rings/fusion_double.py +899 -0
  32. sage/algebras/fusion_rings/fusion_ring.py +1580 -0
  33. sage/algebras/fusion_rings/poly_tup_engine.cpython-314-aarch64-linux-gnu.so +0 -0
  34. sage/algebras/fusion_rings/poly_tup_engine.pxd +24 -0
  35. sage/algebras/fusion_rings/poly_tup_engine.pyx +579 -0
  36. sage/algebras/fusion_rings/shm_managers.cpython-314-aarch64-linux-gnu.so +0 -0
  37. sage/algebras/fusion_rings/shm_managers.pxd +24 -0
  38. sage/algebras/fusion_rings/shm_managers.pyx +780 -0
  39. sage/algebras/letterplace/all.py +1 -0
  40. sage/algebras/letterplace/free_algebra_element_letterplace.cpython-314-aarch64-linux-gnu.so +0 -0
  41. sage/algebras/letterplace/free_algebra_element_letterplace.pxd +18 -0
  42. sage/algebras/letterplace/free_algebra_element_letterplace.pyx +755 -0
  43. sage/algebras/letterplace/free_algebra_letterplace.cpython-314-aarch64-linux-gnu.so +0 -0
  44. sage/algebras/letterplace/free_algebra_letterplace.pxd +35 -0
  45. sage/algebras/letterplace/free_algebra_letterplace.pyx +914 -0
  46. sage/algebras/letterplace/letterplace_ideal.cpython-314-aarch64-linux-gnu.so +0 -0
  47. sage/algebras/letterplace/letterplace_ideal.pyx +408 -0
  48. sage/algebras/quatalg/all.py +2 -0
  49. sage/algebras/quatalg/quaternion_algebra.py +4778 -0
  50. sage/algebras/quatalg/quaternion_algebra_cython.cpython-314-aarch64-linux-gnu.so +0 -0
  51. sage/algebras/quatalg/quaternion_algebra_cython.pyx +261 -0
  52. sage/algebras/quatalg/quaternion_algebra_element.cpython-314-aarch64-linux-gnu.so +0 -0
  53. sage/algebras/quatalg/quaternion_algebra_element.pxd +29 -0
  54. sage/algebras/quatalg/quaternion_algebra_element.pyx +2176 -0
  55. sage/all__sagemath_singular.py +11 -0
  56. sage/ext_data/all__sagemath_singular.py +1 -0
  57. sage/ext_data/singular/function_field/core.lib +98 -0
  58. sage/interfaces/all__sagemath_singular.py +1 -0
  59. sage/interfaces/singular.py +2835 -0
  60. sage/libs/all__sagemath_singular.py +1 -0
  61. sage/libs/singular/__init__.py +1 -0
  62. sage/libs/singular/decl.pxd +1168 -0
  63. sage/libs/singular/function.cpython-314-aarch64-linux-gnu.so +0 -0
  64. sage/libs/singular/function.pxd +87 -0
  65. sage/libs/singular/function.pyx +1901 -0
  66. sage/libs/singular/function_factory.py +61 -0
  67. sage/libs/singular/groebner_strategy.cpython-314-aarch64-linux-gnu.so +0 -0
  68. sage/libs/singular/groebner_strategy.pxd +22 -0
  69. sage/libs/singular/groebner_strategy.pyx +582 -0
  70. sage/libs/singular/option.cpython-314-aarch64-linux-gnu.so +0 -0
  71. sage/libs/singular/option.pyx +671 -0
  72. sage/libs/singular/polynomial.cpython-314-aarch64-linux-gnu.so +0 -0
  73. sage/libs/singular/polynomial.pxd +39 -0
  74. sage/libs/singular/polynomial.pyx +661 -0
  75. sage/libs/singular/ring.cpython-314-aarch64-linux-gnu.so +0 -0
  76. sage/libs/singular/ring.pxd +58 -0
  77. sage/libs/singular/ring.pyx +893 -0
  78. sage/libs/singular/singular.cpython-314-aarch64-linux-gnu.so +0 -0
  79. sage/libs/singular/singular.pxd +72 -0
  80. sage/libs/singular/singular.pyx +1944 -0
  81. sage/libs/singular/standard_options.py +145 -0
  82. sage/matrix/all__sagemath_singular.py +1 -0
  83. sage/matrix/matrix_mpolynomial_dense.cpython-314-aarch64-linux-gnu.so +0 -0
  84. sage/matrix/matrix_mpolynomial_dense.pxd +7 -0
  85. sage/matrix/matrix_mpolynomial_dense.pyx +615 -0
  86. sage/rings/all__sagemath_singular.py +1 -0
  87. sage/rings/function_field/all__sagemath_singular.py +1 -0
  88. sage/rings/function_field/derivations_polymod.py +911 -0
  89. sage/rings/function_field/element_polymod.cpython-314-aarch64-linux-gnu.so +0 -0
  90. sage/rings/function_field/element_polymod.pyx +406 -0
  91. sage/rings/function_field/function_field_polymod.py +2611 -0
  92. sage/rings/function_field/ideal_polymod.py +1775 -0
  93. sage/rings/function_field/order_polymod.py +1475 -0
  94. sage/rings/function_field/place_polymod.py +681 -0
  95. sage/rings/polynomial/all__sagemath_singular.py +1 -0
  96. sage/rings/polynomial/multi_polynomial_ideal_libsingular.cpython-314-aarch64-linux-gnu.so +0 -0
  97. sage/rings/polynomial/multi_polynomial_ideal_libsingular.pxd +5 -0
  98. sage/rings/polynomial/multi_polynomial_ideal_libsingular.pyx +339 -0
  99. sage/rings/polynomial/multi_polynomial_libsingular.cpython-314-aarch64-linux-gnu.so +0 -0
  100. sage/rings/polynomial/multi_polynomial_libsingular.pxd +30 -0
  101. sage/rings/polynomial/multi_polynomial_libsingular.pyx +6277 -0
  102. sage/rings/polynomial/plural.cpython-314-aarch64-linux-gnu.so +0 -0
  103. sage/rings/polynomial/plural.pxd +48 -0
  104. sage/rings/polynomial/plural.pyx +3171 -0
  105. sage/symbolic/all__sagemath_singular.py +1 -0
  106. sage/symbolic/comparison_impl.pxi +428 -0
  107. sage/symbolic/constants_c_impl.pxi +178 -0
  108. sage/symbolic/expression.cpython-314-aarch64-linux-gnu.so +0 -0
  109. sage/symbolic/expression.pxd +7 -0
  110. sage/symbolic/expression.pyx +14200 -0
  111. sage/symbolic/getitem_impl.pxi +202 -0
  112. sage/symbolic/pynac.pxi +572 -0
  113. sage/symbolic/pynac_constant_impl.pxi +133 -0
  114. sage/symbolic/pynac_function_impl.pxi +206 -0
  115. sage/symbolic/pynac_impl.pxi +2576 -0
  116. sage/symbolic/pynac_wrap.h +124 -0
  117. sage/symbolic/series_impl.pxi +272 -0
  118. sage/symbolic/substitution_map_impl.pxi +94 -0
  119. sage_wheels/bin/ESingular +0 -0
  120. sage_wheels/bin/Singular +0 -0
  121. sage_wheels/bin/TSingular +0 -0
  122. sage_wheels/lib/singular/MOD/cohomo.la +41 -0
  123. sage_wheels/lib/singular/MOD/cohomo.so +0 -0
  124. sage_wheels/lib/singular/MOD/customstd.la +41 -0
  125. sage_wheels/lib/singular/MOD/customstd.so +0 -0
  126. sage_wheels/lib/singular/MOD/freealgebra.la +41 -0
  127. sage_wheels/lib/singular/MOD/freealgebra.so +0 -0
  128. sage_wheels/lib/singular/MOD/gfanlib.la +41 -0
  129. sage_wheels/lib/singular/MOD/gfanlib.so +0 -0
  130. sage_wheels/lib/singular/MOD/gitfan.la +41 -0
  131. sage_wheels/lib/singular/MOD/gitfan.so +0 -0
  132. sage_wheels/lib/singular/MOD/interval.la +41 -0
  133. sage_wheels/lib/singular/MOD/interval.so +0 -0
  134. sage_wheels/lib/singular/MOD/loctriv.la +41 -0
  135. sage_wheels/lib/singular/MOD/loctriv.so +0 -0
  136. sage_wheels/lib/singular/MOD/machinelearning.la +41 -0
  137. sage_wheels/lib/singular/MOD/machinelearning.so +0 -0
  138. sage_wheels/lib/singular/MOD/p_Procs_FieldGeneral.la +41 -0
  139. sage_wheels/lib/singular/MOD/p_Procs_FieldGeneral.so +0 -0
  140. sage_wheels/lib/singular/MOD/p_Procs_FieldIndep.la +41 -0
  141. sage_wheels/lib/singular/MOD/p_Procs_FieldIndep.so +0 -0
  142. sage_wheels/lib/singular/MOD/p_Procs_FieldQ.la +41 -0
  143. sage_wheels/lib/singular/MOD/p_Procs_FieldQ.so +0 -0
  144. sage_wheels/lib/singular/MOD/p_Procs_FieldZp.la +41 -0
  145. sage_wheels/lib/singular/MOD/p_Procs_FieldZp.so +0 -0
  146. sage_wheels/lib/singular/MOD/partialgb.la +41 -0
  147. sage_wheels/lib/singular/MOD/partialgb.so +0 -0
  148. sage_wheels/lib/singular/MOD/pyobject.la +41 -0
  149. sage_wheels/lib/singular/MOD/pyobject.so +0 -0
  150. sage_wheels/lib/singular/MOD/singmathic.la +41 -0
  151. sage_wheels/lib/singular/MOD/singmathic.so +0 -0
  152. sage_wheels/lib/singular/MOD/sispasm.la +41 -0
  153. sage_wheels/lib/singular/MOD/sispasm.so +0 -0
  154. sage_wheels/lib/singular/MOD/subsets.la +41 -0
  155. sage_wheels/lib/singular/MOD/subsets.so +0 -0
  156. sage_wheels/lib/singular/MOD/systhreads.la +41 -0
  157. sage_wheels/lib/singular/MOD/systhreads.so +0 -0
  158. sage_wheels/lib/singular/MOD/syzextra.la +41 -0
  159. sage_wheels/lib/singular/MOD/syzextra.so +0 -0
  160. sage_wheels/libexec/singular/MOD/change_cost +0 -0
  161. sage_wheels/libexec/singular/MOD/singularsurf +11 -0
  162. sage_wheels/libexec/singular/MOD/singularsurf_jupyter +9 -0
  163. sage_wheels/libexec/singular/MOD/singularsurf_win +10 -0
  164. sage_wheels/libexec/singular/MOD/solve_IP +0 -0
  165. sage_wheels/libexec/singular/MOD/surfex +16 -0
  166. sage_wheels/libexec/singular/MOD/toric_ideal +0 -0
  167. sage_wheels/share/factory/gftables/10201 +342 -0
  168. sage_wheels/share/factory/gftables/1024 +37 -0
  169. sage_wheels/share/factory/gftables/10609 +356 -0
  170. sage_wheels/share/factory/gftables/11449 +384 -0
  171. sage_wheels/share/factory/gftables/11881 +398 -0
  172. sage_wheels/share/factory/gftables/121 +6 -0
  173. sage_wheels/share/factory/gftables/12167 +408 -0
  174. sage_wheels/share/factory/gftables/125 +7 -0
  175. sage_wheels/share/factory/gftables/12769 +428 -0
  176. sage_wheels/share/factory/gftables/128 +7 -0
  177. sage_wheels/share/factory/gftables/1331 +47 -0
  178. sage_wheels/share/factory/gftables/1369 +48 -0
  179. sage_wheels/share/factory/gftables/14641 +490 -0
  180. sage_wheels/share/factory/gftables/15625 +523 -0
  181. sage_wheels/share/factory/gftables/16 +3 -0
  182. sage_wheels/share/factory/gftables/16129 +540 -0
  183. sage_wheels/share/factory/gftables/16384 +549 -0
  184. sage_wheels/share/factory/gftables/16807 +563 -0
  185. sage_wheels/share/factory/gftables/1681 +58 -0
  186. sage_wheels/share/factory/gftables/169 +8 -0
  187. sage_wheels/share/factory/gftables/17161 +574 -0
  188. sage_wheels/share/factory/gftables/1849 +64 -0
  189. sage_wheels/share/factory/gftables/18769 +628 -0
  190. sage_wheels/share/factory/gftables/19321 +646 -0
  191. sage_wheels/share/factory/gftables/19683 +659 -0
  192. sage_wheels/share/factory/gftables/2048 +71 -0
  193. sage_wheels/share/factory/gftables/2187 +75 -0
  194. sage_wheels/share/factory/gftables/2197 +76 -0
  195. sage_wheels/share/factory/gftables/2209 +76 -0
  196. sage_wheels/share/factory/gftables/22201 +742 -0
  197. sage_wheels/share/factory/gftables/22801 +762 -0
  198. sage_wheels/share/factory/gftables/2401 +82 -0
  199. sage_wheels/share/factory/gftables/243 +11 -0
  200. sage_wheels/share/factory/gftables/24389 +815 -0
  201. sage_wheels/share/factory/gftables/24649 +824 -0
  202. sage_wheels/share/factory/gftables/25 +3 -0
  203. sage_wheels/share/factory/gftables/256 +11 -0
  204. sage_wheels/share/factory/gftables/26569 +888 -0
  205. sage_wheels/share/factory/gftables/27 +3 -0
  206. sage_wheels/share/factory/gftables/27889 +932 -0
  207. sage_wheels/share/factory/gftables/2809 +96 -0
  208. sage_wheels/share/factory/gftables/28561 +954 -0
  209. sage_wheels/share/factory/gftables/289 +12 -0
  210. sage_wheels/share/factory/gftables/29791 +995 -0
  211. sage_wheels/share/factory/gftables/29929 +1000 -0
  212. sage_wheels/share/factory/gftables/3125 +107 -0
  213. sage_wheels/share/factory/gftables/32 +4 -0
  214. sage_wheels/share/factory/gftables/32041 +1070 -0
  215. sage_wheels/share/factory/gftables/32761 +1094 -0
  216. sage_wheels/share/factory/gftables/32768 +1095 -0
  217. sage_wheels/share/factory/gftables/343 +14 -0
  218. sage_wheels/share/factory/gftables/3481 +118 -0
  219. sage_wheels/share/factory/gftables/361 +14 -0
  220. sage_wheels/share/factory/gftables/36481 +1218 -0
  221. sage_wheels/share/factory/gftables/3721 +126 -0
  222. sage_wheels/share/factory/gftables/37249 +1244 -0
  223. sage_wheels/share/factory/gftables/38809 +1296 -0
  224. sage_wheels/share/factory/gftables/39601 +1322 -0
  225. sage_wheels/share/factory/gftables/4 +3 -0
  226. sage_wheels/share/factory/gftables/4096 +139 -0
  227. sage_wheels/share/factory/gftables/44521 +1486 -0
  228. sage_wheels/share/factory/gftables/4489 +152 -0
  229. sage_wheels/share/factory/gftables/49 +4 -0
  230. sage_wheels/share/factory/gftables/4913 +166 -0
  231. sage_wheels/share/factory/gftables/49729 +1660 -0
  232. sage_wheels/share/factory/gftables/5041 +170 -0
  233. sage_wheels/share/factory/gftables/50653 +1691 -0
  234. sage_wheels/share/factory/gftables/512 +20 -0
  235. sage_wheels/share/factory/gftables/51529 +1720 -0
  236. sage_wheels/share/factory/gftables/52441 +1750 -0
  237. sage_wheels/share/factory/gftables/529 +20 -0
  238. sage_wheels/share/factory/gftables/5329 +180 -0
  239. sage_wheels/share/factory/gftables/54289 +1812 -0
  240. sage_wheels/share/factory/gftables/57121 +1906 -0
  241. sage_wheels/share/factory/gftables/58081 +1938 -0
  242. sage_wheels/share/factory/gftables/59049 +1971 -0
  243. sage_wheels/share/factory/gftables/6241 +210 -0
  244. sage_wheels/share/factory/gftables/625 +23 -0
  245. sage_wheels/share/factory/gftables/63001 +2102 -0
  246. sage_wheels/share/factory/gftables/64 +5 -0
  247. sage_wheels/share/factory/gftables/6561 +221 -0
  248. sage_wheels/share/factory/gftables/6859 +231 -0
  249. sage_wheels/share/factory/gftables/6889 +232 -0
  250. sage_wheels/share/factory/gftables/729 +27 -0
  251. sage_wheels/share/factory/gftables/7921 +266 -0
  252. sage_wheels/share/factory/gftables/8 +3 -0
  253. sage_wheels/share/factory/gftables/81 +5 -0
  254. sage_wheels/share/factory/gftables/8192 +276 -0
  255. sage_wheels/share/factory/gftables/841 +30 -0
  256. sage_wheels/share/factory/gftables/9 +3 -0
  257. sage_wheels/share/factory/gftables/9409 +316 -0
  258. sage_wheels/share/factory/gftables/961 +34 -0
  259. sage_wheels/share/info/singular.info +191898 -0
  260. sage_wheels/share/singular/LIB/GND.lib +1359 -0
  261. sage_wheels/share/singular/LIB/JMBTest.lib +976 -0
  262. sage_wheels/share/singular/LIB/JMSConst.lib +1363 -0
  263. sage_wheels/share/singular/LIB/KVequiv.lib +699 -0
  264. sage_wheels/share/singular/LIB/SingularityDBM.lib +491 -0
  265. sage_wheels/share/singular/LIB/VecField.lib +1542 -0
  266. sage_wheels/share/singular/LIB/absfact.lib +959 -0
  267. sage_wheels/share/singular/LIB/ainvar.lib +730 -0
  268. sage_wheels/share/singular/LIB/aksaka.lib +419 -0
  269. sage_wheels/share/singular/LIB/alexpoly.lib +2542 -0
  270. sage_wheels/share/singular/LIB/algebra.lib +1193 -0
  271. sage_wheels/share/singular/LIB/all.lib +136 -0
  272. sage_wheels/share/singular/LIB/arcpoint.lib +514 -0
  273. sage_wheels/share/singular/LIB/arnold.lib +4553 -0
  274. sage_wheels/share/singular/LIB/arnoldclassify.lib +2058 -0
  275. sage_wheels/share/singular/LIB/arr.lib +3486 -0
  276. sage_wheels/share/singular/LIB/assprimeszerodim.lib +755 -0
  277. sage_wheels/share/singular/LIB/autgradalg.lib +3361 -0
  278. sage_wheels/share/singular/LIB/bfun.lib +1964 -0
  279. sage_wheels/share/singular/LIB/bimodules.lib +774 -0
  280. sage_wheels/share/singular/LIB/brillnoether.lib +226 -0
  281. sage_wheels/share/singular/LIB/brnoeth.lib +5017 -0
  282. sage_wheels/share/singular/LIB/central.lib +2169 -0
  283. sage_wheels/share/singular/LIB/chern.lib +4162 -0
  284. sage_wheels/share/singular/LIB/cimonom.lib +571 -0
  285. sage_wheels/share/singular/LIB/cisimplicial.lib +1835 -0
  286. sage_wheels/share/singular/LIB/classify.lib +3239 -0
  287. sage_wheels/share/singular/LIB/classify2.lib +1462 -0
  288. sage_wheels/share/singular/LIB/classifyMapGerms.lib +1515 -0
  289. sage_wheels/share/singular/LIB/classify_aeq.lib +3253 -0
  290. sage_wheels/share/singular/LIB/classifyceq.lib +2092 -0
  291. sage_wheels/share/singular/LIB/classifyci.lib +1133 -0
  292. sage_wheels/share/singular/LIB/combinat.lib +91 -0
  293. sage_wheels/share/singular/LIB/compregb.lib +276 -0
  294. sage_wheels/share/singular/LIB/control.lib +1636 -0
  295. sage_wheels/share/singular/LIB/crypto.lib +3795 -0
  296. sage_wheels/share/singular/LIB/curveInv.lib +667 -0
  297. sage_wheels/share/singular/LIB/curvepar.lib +1817 -0
  298. sage_wheels/share/singular/LIB/customstd.lib +100 -0
  299. sage_wheels/share/singular/LIB/deRham.lib +5979 -0
  300. sage_wheels/share/singular/LIB/decodegb.lib +2134 -0
  301. sage_wheels/share/singular/LIB/decomp.lib +1655 -0
  302. sage_wheels/share/singular/LIB/deflation.lib +872 -0
  303. sage_wheels/share/singular/LIB/deform.lib +925 -0
  304. sage_wheels/share/singular/LIB/difform.lib +3055 -0
  305. sage_wheels/share/singular/LIB/divisors.lib +750 -0
  306. sage_wheels/share/singular/LIB/dmod.lib +5817 -0
  307. sage_wheels/share/singular/LIB/dmodapp.lib +3269 -0
  308. sage_wheels/share/singular/LIB/dmodideal.lib +1211 -0
  309. sage_wheels/share/singular/LIB/dmodloc.lib +2645 -0
  310. sage_wheels/share/singular/LIB/dmodvar.lib +818 -0
  311. sage_wheels/share/singular/LIB/dummy.lib +17 -0
  312. sage_wheels/share/singular/LIB/elim.lib +1009 -0
  313. sage_wheels/share/singular/LIB/ellipticcovers.lib +548 -0
  314. sage_wheels/share/singular/LIB/enumpoints.lib +146 -0
  315. sage_wheels/share/singular/LIB/equising.lib +2127 -0
  316. sage_wheels/share/singular/LIB/ffmodstd.lib +2384 -0
  317. sage_wheels/share/singular/LIB/ffsolve.lib +1289 -0
  318. sage_wheels/share/singular/LIB/findifs.lib +778 -0
  319. sage_wheels/share/singular/LIB/finitediff.lib +1768 -0
  320. sage_wheels/share/singular/LIB/finvar.lib +7989 -0
  321. sage_wheels/share/singular/LIB/fpadim.lib +2429 -0
  322. sage_wheels/share/singular/LIB/fpalgebras.lib +1666 -0
  323. sage_wheels/share/singular/LIB/fpaprops.lib +1462 -0
  324. sage_wheels/share/singular/LIB/freegb.lib +3853 -0
  325. sage_wheels/share/singular/LIB/general.lib +1350 -0
  326. sage_wheels/share/singular/LIB/gfan.lib +1768 -0
  327. sage_wheels/share/singular/LIB/gitfan.lib +3130 -0
  328. sage_wheels/share/singular/LIB/gkdim.lib +99 -0
  329. sage_wheels/share/singular/LIB/gmspoly.lib +589 -0
  330. sage_wheels/share/singular/LIB/gmssing.lib +1739 -0
  331. sage_wheels/share/singular/LIB/goettsche.lib +909 -0
  332. sage_wheels/share/singular/LIB/graal.lib +1366 -0
  333. sage_wheels/share/singular/LIB/gradedModules.lib +2541 -0
  334. sage_wheels/share/singular/LIB/graphics.lib +360 -0
  335. sage_wheels/share/singular/LIB/grobcov.lib +7706 -0
  336. sage_wheels/share/singular/LIB/groups.lib +1123 -0
  337. sage_wheels/share/singular/LIB/grwalk.lib +507 -0
  338. sage_wheels/share/singular/LIB/hdepth.lib +194 -0
  339. sage_wheels/share/singular/LIB/help.cnf +57 -0
  340. sage_wheels/share/singular/LIB/hess.lib +1946 -0
  341. sage_wheels/share/singular/LIB/hnoether.lib +4292 -0
  342. sage_wheels/share/singular/LIB/hodge.lib +400 -0
  343. sage_wheels/share/singular/LIB/homolog.lib +1965 -0
  344. sage_wheels/share/singular/LIB/hyperel.lib +975 -0
  345. sage_wheels/share/singular/LIB/inout.lib +679 -0
  346. sage_wheels/share/singular/LIB/integralbasis.lib +6224 -0
  347. sage_wheels/share/singular/LIB/interval.lib +1418 -0
  348. sage_wheels/share/singular/LIB/intprog.lib +778 -0
  349. sage_wheels/share/singular/LIB/invar.lib +443 -0
  350. sage_wheels/share/singular/LIB/involut.lib +980 -0
  351. sage_wheels/share/singular/LIB/jacobson.lib +1215 -0
  352. sage_wheels/share/singular/LIB/kskernel.lib +534 -0
  353. sage_wheels/share/singular/LIB/latex.lib +3146 -0
  354. sage_wheels/share/singular/LIB/lejeune.lib +651 -0
  355. sage_wheels/share/singular/LIB/linalg.lib +2040 -0
  356. sage_wheels/share/singular/LIB/locnormal.lib +212 -0
  357. sage_wheels/share/singular/LIB/lrcalc.lib +526 -0
  358. sage_wheels/share/singular/LIB/makedbm.lib +294 -0
  359. sage_wheels/share/singular/LIB/mathml.lib +813 -0
  360. sage_wheels/share/singular/LIB/matrix.lib +1372 -0
  361. sage_wheels/share/singular/LIB/maxlike.lib +1132 -0
  362. sage_wheels/share/singular/LIB/methods.lib +212 -0
  363. sage_wheels/share/singular/LIB/moddiq.lib +322 -0
  364. sage_wheels/share/singular/LIB/modfinduni.lib +181 -0
  365. sage_wheels/share/singular/LIB/modnormal.lib +218 -0
  366. sage_wheels/share/singular/LIB/modprimdec.lib +1278 -0
  367. sage_wheels/share/singular/LIB/modquotient.lib +269 -0
  368. sage_wheels/share/singular/LIB/modstd.lib +1024 -0
  369. sage_wheels/share/singular/LIB/modular.lib +545 -0
  370. sage_wheels/share/singular/LIB/modules.lib +2561 -0
  371. sage_wheels/share/singular/LIB/modwalk.lib +609 -0
  372. sage_wheels/share/singular/LIB/mondromy.lib +1016 -0
  373. sage_wheels/share/singular/LIB/monomialideal.lib +3851 -0
  374. sage_wheels/share/singular/LIB/mprimdec.lib +2353 -0
  375. sage_wheels/share/singular/LIB/mregular.lib +1863 -0
  376. sage_wheels/share/singular/LIB/multigrading.lib +5629 -0
  377. sage_wheels/share/singular/LIB/ncHilb.lib +777 -0
  378. sage_wheels/share/singular/LIB/ncModslimgb.lib +791 -0
  379. sage_wheels/share/singular/LIB/ncalg.lib +16311 -0
  380. sage_wheels/share/singular/LIB/ncall.lib +31 -0
  381. sage_wheels/share/singular/LIB/ncdecomp.lib +468 -0
  382. sage_wheels/share/singular/LIB/ncfactor.lib +13371 -0
  383. sage_wheels/share/singular/LIB/ncfrac.lib +1023 -0
  384. sage_wheels/share/singular/LIB/nchilbert.lib +448 -0
  385. sage_wheels/share/singular/LIB/nchomolog.lib +759 -0
  386. sage_wheels/share/singular/LIB/ncloc.lib +361 -0
  387. sage_wheels/share/singular/LIB/ncpreim.lib +795 -0
  388. sage_wheels/share/singular/LIB/ncrat.lib +2849 -0
  389. sage_wheels/share/singular/LIB/nctools.lib +1887 -0
  390. sage_wheels/share/singular/LIB/nets.lib +1456 -0
  391. sage_wheels/share/singular/LIB/nfmodstd.lib +1000 -0
  392. sage_wheels/share/singular/LIB/nfmodsyz.lib +732 -0
  393. sage_wheels/share/singular/LIB/noether.lib +1106 -0
  394. sage_wheels/share/singular/LIB/normal.lib +8700 -0
  395. sage_wheels/share/singular/LIB/normaliz.lib +2226 -0
  396. sage_wheels/share/singular/LIB/ntsolve.lib +362 -0
  397. sage_wheels/share/singular/LIB/numerAlg.lib +560 -0
  398. sage_wheels/share/singular/LIB/numerDecom.lib +2261 -0
  399. sage_wheels/share/singular/LIB/olga.lib +1933 -0
  400. sage_wheels/share/singular/LIB/orbitparam.lib +351 -0
  401. sage_wheels/share/singular/LIB/parallel.lib +319 -0
  402. sage_wheels/share/singular/LIB/paraplanecurves.lib +3110 -0
  403. sage_wheels/share/singular/LIB/perron.lib +202 -0
  404. sage_wheels/share/singular/LIB/pfd.lib +2223 -0
  405. sage_wheels/share/singular/LIB/phindex.lib +642 -0
  406. sage_wheels/share/singular/LIB/pointid.lib +673 -0
  407. sage_wheels/share/singular/LIB/polybori.lib +1430 -0
  408. sage_wheels/share/singular/LIB/polyclass.lib +525 -0
  409. sage_wheels/share/singular/LIB/polylib.lib +1174 -0
  410. sage_wheels/share/singular/LIB/polymake.lib +1902 -0
  411. sage_wheels/share/singular/LIB/presolve.lib +1533 -0
  412. sage_wheels/share/singular/LIB/primdec.lib +9576 -0
  413. sage_wheels/share/singular/LIB/primdecint.lib +1782 -0
  414. sage_wheels/share/singular/LIB/primitiv.lib +401 -0
  415. sage_wheels/share/singular/LIB/puiseuxexpansions.lib +1631 -0
  416. sage_wheels/share/singular/LIB/purityfiltration.lib +960 -0
  417. sage_wheels/share/singular/LIB/qhmoduli.lib +1561 -0
  418. sage_wheels/share/singular/LIB/qmatrix.lib +293 -0
  419. sage_wheels/share/singular/LIB/random.lib +455 -0
  420. sage_wheels/share/singular/LIB/ratgb.lib +489 -0
  421. sage_wheels/share/singular/LIB/realclassify.lib +5759 -0
  422. sage_wheels/share/singular/LIB/realizationMatroids.lib +772 -0
  423. sage_wheels/share/singular/LIB/realrad.lib +1197 -0
  424. sage_wheels/share/singular/LIB/recover.lib +2628 -0
  425. sage_wheels/share/singular/LIB/redcgs.lib +3984 -0
  426. sage_wheels/share/singular/LIB/reesclos.lib +465 -0
  427. sage_wheels/share/singular/LIB/resbinomial.lib +2802 -0
  428. sage_wheels/share/singular/LIB/resgraph.lib +789 -0
  429. sage_wheels/share/singular/LIB/resjung.lib +820 -0
  430. sage_wheels/share/singular/LIB/resolve.lib +5110 -0
  431. sage_wheels/share/singular/LIB/resources.lib +170 -0
  432. sage_wheels/share/singular/LIB/reszeta.lib +5473 -0
  433. sage_wheels/share/singular/LIB/ring.lib +1328 -0
  434. sage_wheels/share/singular/LIB/ringgb.lib +343 -0
  435. sage_wheels/share/singular/LIB/rinvar.lib +1153 -0
  436. sage_wheels/share/singular/LIB/rootisolation.lib +1481 -0
  437. sage_wheels/share/singular/LIB/rootsmr.lib +709 -0
  438. sage_wheels/share/singular/LIB/rootsur.lib +886 -0
  439. sage_wheels/share/singular/LIB/rstandard.lib +607 -0
  440. sage_wheels/share/singular/LIB/rwalk.lib +336 -0
  441. sage_wheels/share/singular/LIB/sagbi.lib +1353 -0
  442. sage_wheels/share/singular/LIB/sagbiNormaliz.lib +1622 -0
  443. sage_wheels/share/singular/LIB/sagbiNormaliz0.lib +1498 -0
  444. sage_wheels/share/singular/LIB/sagbigrob.lib +449 -0
  445. sage_wheels/share/singular/LIB/schreyer.lib +321 -0
  446. sage_wheels/share/singular/LIB/schubert.lib +2551 -0
  447. sage_wheels/share/singular/LIB/sets.lib +524 -0
  448. sage_wheels/share/singular/LIB/sheafcoh.lib +1663 -0
  449. sage_wheels/share/singular/LIB/signcond.lib +437 -0
  450. sage_wheels/share/singular/LIB/sing.lib +1094 -0
  451. sage_wheels/share/singular/LIB/sing4ti2.lib +419 -0
  452. sage_wheels/share/singular/LIB/solve.lib +2243 -0
  453. sage_wheels/share/singular/LIB/spcurve.lib +1077 -0
  454. sage_wheels/share/singular/LIB/spectrum.lib +62 -0
  455. sage_wheels/share/singular/LIB/sresext.lib +757 -0
  456. sage_wheels/share/singular/LIB/ssi.lib +143 -0
  457. sage_wheels/share/singular/LIB/standard.lib +2769 -0
  458. sage_wheels/share/singular/LIB/stanleyreisner.lib +473 -0
  459. sage_wheels/share/singular/LIB/stdmodule.lib +547 -0
  460. sage_wheels/share/singular/LIB/stratify.lib +1070 -0
  461. sage_wheels/share/singular/LIB/surf.lib +506 -0
  462. sage_wheels/share/singular/LIB/surf_jupyter.lib +223 -0
  463. sage_wheels/share/singular/LIB/surfacesignature.lib +522 -0
  464. sage_wheels/share/singular/LIB/surfex.lib +1462 -0
  465. sage_wheels/share/singular/LIB/swalk.lib +877 -0
  466. sage_wheels/share/singular/LIB/symodstd.lib +1570 -0
  467. sage_wheels/share/singular/LIB/systhreads.lib +74 -0
  468. sage_wheels/share/singular/LIB/tasks.lib +1324 -0
  469. sage_wheels/share/singular/LIB/tateProdCplxNegGrad.lib +2412 -0
  470. sage_wheels/share/singular/LIB/teachstd.lib +858 -0
  471. sage_wheels/share/singular/LIB/template.lib +116 -0
  472. sage_wheels/share/singular/LIB/toric.lib +1119 -0
  473. sage_wheels/share/singular/LIB/transformation.lib +116 -0
  474. sage_wheels/share/singular/LIB/triang.lib +1197 -0
  475. sage_wheels/share/singular/LIB/tropical.lib +8741 -0
  476. sage_wheels/share/singular/LIB/tropicalEllipticCovers.lib +2922 -0
  477. sage_wheels/share/singular/LIB/tropicalNewton.lib +1128 -0
  478. sage_wheels/share/singular/LIB/tst.lib +1108 -0
  479. sage_wheels/share/singular/LIB/weierstr.lib +241 -0
  480. sage_wheels/share/singular/LIB/zeroset.lib +1478 -0
  481. sage_wheels/share/singular/emacs/.emacs-general +184 -0
  482. sage_wheels/share/singular/emacs/.emacs-singular +234 -0
  483. sage_wheels/share/singular/emacs/COPYING +44 -0
  484. sage_wheels/share/singular/emacs/cmd-cmpl.el +241 -0
  485. sage_wheels/share/singular/emacs/ex-cmpl.el +1681 -0
  486. sage_wheels/share/singular/emacs/hlp-cmpl.el +4318 -0
  487. sage_wheels/share/singular/emacs/lib-cmpl.el +179 -0
  488. sage_wheels/share/singular/emacs/singular.el +4273 -0
  489. sage_wheels/share/singular/emacs/singular.xpm +39 -0
  490. sage_wheels/share/singular/singular.idx +5002 -0
@@ -0,0 +1,976 @@
1
+ //////////////////////////////////////////////////////////////////////
2
+ version="version JMBTest.lib 4.4.0.0 Nov_2023 "; // $Id: 1ad0fd507eabe2ae31699e33f888e720bf0ce9fc $
3
+ category="Algebraic Geometry";
4
+ // summary description of the library
5
+ info="
6
+ LIBRARY: JMBTest.lib A library for Singular which performs JM basis test.
7
+ AUTHOR: Michela Ceria, email: michela.ceria@unito.it
8
+
9
+ SEE ALSO: JMSConst_lib
10
+ KEYWORDS: J-marked schemes
11
+
12
+ OVERVIEW:
13
+ The library performs the J-marked basis test, as described in [CR], [BCLR].
14
+ Such a test is performed via the criterion explained in [BCLR],
15
+ concerning Eliahou-Kervaire polynomials (EK from now on).
16
+ We point out that all the polynomials are homogeneous
17
+ and they must be arranged by degree.
18
+ The fundamental steps are the following:@*
19
+ -construct the Vm polynomials, via the algorithm VConstructor
20
+ explained in [CR];@*
21
+ -construct the Eliahou-Kervaire polynomials defined in [BCLR];@*
22
+ -reduce the Eliahou-Kervaire polynomials using the Vm's;@*
23
+ -if it exist an Eliahou-Kervaire polynomial such that its reduction
24
+ mod Vm is different from zero, the given one is not a J-Marked basis.
25
+
26
+ The algorithm terminates only if the ordering is ip.
27
+ Anyway, the number of reduction steps is bounded.
28
+
29
+ REFERENCES:
30
+ [CR] Francesca Cioffi, Margherita Roggero,Flat Families by Strongly
31
+ Stable Ideals and a Generalization of Groebner Bases,
32
+ J. Symbolic Comput. 46, 1070-1084, (2011).@*
33
+ [BCLR] Cristina Bertone, Francesca Cioffi, Paolo Lella,
34
+ Margherita Roggero, Upgraded methods for the effective
35
+ computation of marked schemes on a strongly stable ideal,
36
+ Journal of Symbolic Computation
37
+ (2012), http://dx.doi.org/10.1016/j.jsc.2012.07.006 @*
38
+
39
+ PROCEDURES:
40
+ Minimus(ideal) minimal variable in an ideal
41
+ Maximus(ideal) maximal variable in an ideal
42
+ StartOrderingV(list,list) ordering of polynomials as in [BCLR]
43
+ TestJMark(list) tests whether we have a J-marked basis
44
+ ";
45
+ LIB "qhmoduli.lib";
46
+ LIB "monomialideal.lib";
47
+ LIB "ring.lib";
48
+ ////////////////////////////////////////////////////////////////////
49
+ static proc mod_init()
50
+ {
51
+ newstruct("jmp", "poly h, poly t");
52
+ }
53
+
54
+ ////////////////////////////////////////////////////////////////////
55
+ proc Terns(list G, int c)
56
+ "USAGE: Terns(G,c); G list, c int
57
+ RETURN: list: T
58
+ NOTE: Input is a list of J-marked polynomials
59
+ (arranged by degree) and an integer.
60
+ EXAMPLE: example Terns; shows an example"
61
+ {
62
+ list T=list();
63
+ int z;
64
+ for(int k=1; k<=size(G[c]);k=k+1)
65
+ {
66
+ //Loop on G[c] making positions of polynomials in G[c]
67
+ z=size(T);
68
+ T=insert(T,list(1,c,k) ,size(T));
69
+ }
70
+ return(T);
71
+ }
72
+ example
73
+ { "EXAMPLE:"; echo = 2;
74
+ ring r=0, (x,y,z), ip;
75
+ jmp r1;
76
+ r1.h=z^3;
77
+ r1.t=poly(0);
78
+ jmp r2;
79
+ r2.h=z^2*y;
80
+ r2.t=poly(0);
81
+ jmp r3;
82
+ r3.h=z*y^2 ;
83
+ r3.t=-x^2*y;
84
+ jmp r4;
85
+ r4.h=y^5;
86
+ r4.t=poly(0);
87
+ list G2F=list(list(r1,r2,r3),list(r4));
88
+ Terns(G2F, 1);
89
+ Terns(G2F, 2);
90
+ }
91
+ ////////////////////////////////////////////////////////////////////
92
+ proc VConst(list G, int c)
93
+ "USAGE: VConst(G, c); G list, c int
94
+ RETURN: list: V
95
+ NOTES: this procedure computes the Vm polynomials following the
96
+ algorithm in [CR],but it only keeps in memory the monomials by
97
+ which the G's must be multiplied and their positions.
98
+ EXAMPLE: example VConst; shows an example"
99
+ {
100
+ jmp f=G[1][1];
101
+ int aJ=deg(f.h);
102
+ // minimal degree of polynomials in G
103
+ list V=list();
104
+ V[1]=Terns(G,1);
105
+ // V[1]=G[1] (keeping in memory only [head, position])
106
+ //print(c-aJ+1);
107
+ int i;
108
+ int j;
109
+ int m;
110
+ list OO;
111
+ jmp p;
112
+ for(m=2; m<=c-aJ+1; m=m+1)
113
+ {
114
+ //print("entro nel form");
115
+ if(m>size(G))
116
+ {V[m]=list();
117
+ //If we have not G[m] we insert a list()
118
+ //print("vuota prima");
119
+ }
120
+ else
121
+ {V[m]=Terns(G,m);
122
+ //print("piena prima");
123
+ }
124
+ for(i=1; i<nvars(basering)+1; i=i+1)
125
+ {
126
+ //print("entrata fori");
127
+ //print(i);
128
+ for(j=1; j<=size(V[m-1]); j=j+1)
129
+ {
130
+ p=G[V[m-1][j][2]][V[m-1][j][3]];
131
+ //print(p.h);
132
+ //print(p.t);
133
+ //print(var(i));
134
+ //print(Minimus(V[m-1][j][1]*p.h));
135
+ if(var(i)<=Minimus(variables(V[m-1][j][1]*p.h)))
136
+ {
137
+ //Can I multiply by the current variable?
138
+ //print("minoremin");
139
+ //print("fin qui ci sono");
140
+ //print(V[m-1][j][1]);
141
+ OO=list(var(i)*V[m-1][j][1],V[m-1][j][2],V[m-1][j][3]);
142
+ V[m]=insert(V[m], OO ,size(V[m]));
143
+ }
144
+ }
145
+ }
146
+ }
147
+ return (V);}
148
+ example
149
+ { "EXAMPLE:"; echo = 2;
150
+ ring r=0, (x,y,z), ip;
151
+ jmp r1;
152
+ r1.h=z^3;
153
+ r1.t=poly(0);
154
+ jmp r2;
155
+ r2.h=z^2*y;
156
+ r2.t=poly(0);
157
+ jmp r3;
158
+ r3.h=z*y^2 ;
159
+ r3.t=-x^2*y;
160
+ jmp r4;
161
+ r4.h=y^5;
162
+ r4.t=poly(0);
163
+ list G2F=list(list(r1,r2,r3),list(r4));
164
+ VConst(G2F,4,basering);}
165
+ ////////////////////////////////////////////////////////////////////
166
+ proc Minimus(ideal L)
167
+ "USAGE: Minimus(L); G list, c int
168
+ RETURN: list: V
169
+ NOTES: it returns the minimal variable generating the ideal L.@*
170
+ The input must be an ideal generated by variables.
171
+ EXAMPLE: example Minimus; shows an example"
172
+ {
173
+ poly min=L[1];
174
+ int i;
175
+ for(i=2;i<=size(L); i++)
176
+ {
177
+ if(L[i]<min){min=L[i];}
178
+ }
179
+ return(min);
180
+ }
181
+ example
182
+ { "EXAMPLE:"; echo = 2;
183
+ ring r=0, (x,y,z), ip;
184
+ ideal I=y,x,z;
185
+ Minimus(I);
186
+ }
187
+ ////////////////////////////////////////////////////////////////////
188
+ proc Maximus(ideal L)
189
+ "USAGE: Maximus(L); G list, c int
190
+ RETURN: list: V
191
+ NOTES: it returns the maximal variable generating the ideal L.@*
192
+ The input must be an ideal generated by variables.
193
+ EXAMPLE: example Maximus; shows an example"
194
+ {
195
+ poly max=L[1];
196
+ int i;
197
+ for(i=2;i<=size(L); i++)
198
+ {
199
+ if(L[i]>max){max=L[i];}
200
+ }
201
+ return(max);
202
+ }
203
+ example
204
+ { "EXAMPLE:"; echo = 2;
205
+ ring r=0, (x,y,z), ip;
206
+ ideal I=y,x,z;
207
+ Maximus(I);
208
+ }
209
+ ////////////////////////////////////////////////////////////////////
210
+ proc GJmpMins(jmp P, jmp Q)
211
+ "USAGE: GJmpMins(P,Q); P jmp, Q jmp
212
+ RETURN: int: d
213
+ EXAMPLE: example GJmpMins; shows an example"
214
+ {
215
+ int d=1;
216
+ //-1=lower, 0=equal, 1=higher
217
+ //At the beginning suppose Q is higher
218
+ if(deg(P.h)<deg(Q.h))
219
+ {
220
+ //Compare degrees;
221
+ d=-1;
222
+ }
223
+ if(deg(P.h)==deg(Q.h))
224
+ {
225
+ if(P.h==Q.h)
226
+ {
227
+ if(P.t==Q.t)
228
+ {
229
+ //head=tail
230
+ d=0;
231
+ }
232
+ }
233
+ else
234
+ {
235
+ //print(Minimus(variables(P.h/gcdMon(P.h,Q.h))));
236
+ //print(Minimus(variables(Q.h/gcdMon(P.h,Q.h))));
237
+ if(Minimus(variables(P.h/gcdMon(P.h,Q.h)))<Minimus(variables(Q.h/gcdMon(P.h,Q.h))))
238
+ {
239
+ d=-1;
240
+ //print("Per Indice");
241
+ }
242
+ }
243
+ }
244
+ return(d);
245
+ }
246
+ example
247
+ { "EXAMPLE:"; echo = 2;
248
+ ring r=0, (x,y,z), ip;
249
+ jmp p1;
250
+ p1.h=poly(1);
251
+ p1.t=poly(1);
252
+ jmp p2;
253
+ p2.h=x^2;
254
+ p2.t=poly(0);
255
+ jmp p3;
256
+ p3.h=x;
257
+ p3.t=poly(0);
258
+ GJmpMins(p1, p2);
259
+ GJmpMins(p2, p3);
260
+ GJmpMins(p1,p1);
261
+ }
262
+ ////////////////////////////////////////////////////////////////////
263
+ proc TernCompare(list A, list B, list G)
264
+ "USAGE: TernCompare(A,B,C); A list, B list, G list
265
+ RETURN: int: d
266
+ NOTE: A and B are terns, while G is the given list of
267
+ J-marked polynomials.
268
+ EXAMPLE: example TernCompare; shows an example"
269
+ {
270
+ int d=-1;
271
+ //Start: A<B
272
+ if(A[1]==B[1])
273
+ {
274
+ if(A[2]==B[2]&& A[3]==B[3])
275
+ {
276
+ //print("Uguali");
277
+ d=0;
278
+ }
279
+ else
280
+ {
281
+ jmp g1=G[A[2]][A[3]];
282
+ jmp g2=G[B[2]][B[3]];
283
+ if(GJmpMins(g1, g2)==1)
284
+ {
285
+ //print("Maggiore per il G");
286
+ d=1;
287
+ }
288
+ }
289
+ }
290
+ else
291
+ {
292
+ if(A[1]>B[1])
293
+ {
294
+ //the ordering MUST be ip
295
+ //print("Maggiore per Lex");
296
+ d=1;
297
+ }
298
+ }
299
+ return(d);
300
+ }
301
+ example
302
+ { "EXAMPLE:"; echo = 2;
303
+ ring r=0, (x,y,z), ip;
304
+ jmp r1;
305
+ r1.h=z^3;
306
+ r1.t=poly(0);
307
+ jmp r2;
308
+ r2.h=z^2*y;
309
+ r2.t=poly(0);
310
+ jmp r3;
311
+ r3.h=z*y^2 ;
312
+ r3.t=-x^2*y;
313
+ jmp r4;
314
+ r4.h=y^5;
315
+ r4.t=poly(0);
316
+ list G2F=list(list(r1,r2,r3),list(r4));
317
+ TernCompare([1,1,1],[x,1,1],G2F);
318
+ }
319
+ ////////////////////////////////////////////////////////////////////
320
+ proc MinOfV(list V, list G)
321
+ "USAGE: Minimal(V,G); V list, G list
322
+ RETURN: int: R
323
+ NOTE: Input=lista(terne), G.
324
+ EXAMPLE: example Minimal; shows an example"
325
+ {
326
+ //Minimal element for a given degree
327
+ list R=list();
328
+ list MIN=V[1];
329
+ int h=1;
330
+ int i;
331
+ for(i=2; i<=size(V); i++)
332
+ {
333
+ //I consider the first as minimum
334
+ //If I find something smaller I change minimum
335
+ if(TernCompare(V[i],MIN,G)<=0)
336
+ {
337
+ MIN=V[i];
338
+ h=i;
339
+ }
340
+ }
341
+ //Return: [minimum,position of the minimum]
342
+ R=MIN,h;
343
+ return(R);
344
+ }
345
+ example
346
+ { "EXAMPLE:"; echo = 2;
347
+ ring r=0, (x,y,z), ip;
348
+ jmp r1;
349
+ r1.h=z^3;
350
+ r1.t=poly(0);
351
+ jmp r2;
352
+ r2.h=z^2*y;
353
+ r2.t=poly(0);
354
+ jmp r3;
355
+ r3.h=z*y^2 ;
356
+ r3.t=-x^2*y;
357
+ jmp r4;
358
+ r4.h=y^5;
359
+ r4.t=poly(0);
360
+ list G2F=list(list(r1,r2,r3),list(r4));
361
+ MinOfV(VConst(G2F,4,basering)[1],G2F);
362
+ }
363
+ ////////////////////////////////////////////////////////////////////
364
+ proc OrderingV(list V,list G,list R)
365
+ "USAGE: OrderingV(V,G,R); V list, G list, R list
366
+ RETURN: list: R
367
+ NOTE: Input: Vm,G,emptylist
368
+ EXAMPLE: example OrderingV; shows an example"
369
+ {
370
+ //Order V[m]
371
+ //R will contain results but at the beginning it is empty
372
+ list M=list();
373
+ if(size(V)==1)
374
+ {
375
+ R=insert(R,V[1],size(R));
376
+ }
377
+ else
378
+ {
379
+ M=MinOfV(V,G);
380
+ R=insert(R,M[1],size(R));
381
+ V=delete(V,M[2]);
382
+ //recursive call
383
+ R=OrderingV(V,G,R);
384
+ }
385
+ return(R);
386
+ }
387
+ example
388
+ { "EXAMPLE:"; echo = 2;
389
+ ring r=0, (x,y,z), ip;
390
+ jmp r1;
391
+ r1.h=z^3;
392
+ r1.t=poly(0);
393
+ jmp r2;
394
+ r2.h=z^2*y;
395
+ r2.t=poly(0);
396
+ jmp r3;
397
+ r3.h=z*y^2;
398
+ r3.t=-x^2*y;
399
+ jmp r4;
400
+ r4.h=y^5;
401
+ r4.t=poly(0);
402
+ list G2F=list(list(r1,r2,r3),list(r4));
403
+ OrderingV(VConst(G2F,4,basering)[1],G2F,list());
404
+ }
405
+ ////////////////////////////////////////////////////////////////////
406
+ proc StartOrderingV(list V,list G)
407
+ "USAGE: StartOrdina(V,G); V list, G list
408
+ RETURN: list: R
409
+ NOTE: Input Vm,G. This procedure uses OrderingV to get
410
+ the ordered polynomials as in [BCLR].
411
+ EXAMPLE: example StartOrderingV; shows an example"
412
+ {
413
+ return(OrderingV(V,G, list()));
414
+ }
415
+ example
416
+ { "EXAMPLE:"; echo = 2;
417
+ ring r=0, (x,y,z), ip;
418
+ jmp r1;
419
+ r1.h=z^3;
420
+ r1.t=poly(0);
421
+ jmp r2;
422
+ r2.h=z^2*y;
423
+ r2.t=poly(0);
424
+ jmp r3;
425
+ r3.h=z*y^2;
426
+ r3.t=-x^2*y;
427
+ jmp r4;
428
+ r4.h=y^5;
429
+ r4.t=poly(0);
430
+ list G2F=list(list(r1,r2,r3),list(r4));
431
+ StartOrderingV(VConst(G2F,4,basering)[1],G2F);
432
+ }
433
+ ////////////////////////////////////////////////////////////////////
434
+ proc Multiply(list L, list G)
435
+ "USAGE: moltiplica(L,G); L list, G list
436
+ RETURN: jmp: K
437
+ NOTE: Input: a 3-ple,G. It performs the product associated
438
+ to the 3-uple.
439
+ EXAMPLE: example Multiply; shows an example"
440
+ {
441
+ jmp g=G[L[2]][L[3]];
442
+ jmp K;
443
+ K.h=L[1]*g.h;
444
+ K.t=L[1]*g.t;
445
+ return(K);
446
+ }
447
+ example
448
+ { "EXAMPLE:"; echo = 2;
449
+ ring r=0, (x,y,z), ip;
450
+ list P=x^2,1,1;
451
+ jmp r1;
452
+ r1.h=z^3;
453
+ r1.t=poly(0);
454
+ jmp r2;
455
+ r2.h=z^2*y;
456
+ r2.t=poly(0);
457
+ jmp r3;
458
+ r3.h=z*y^2 ;
459
+ r3.t=-x^2*y;
460
+ jmp r4;
461
+ r4.h=y^5;
462
+ r4.t=poly(0);
463
+ list G2F=list(list(r1,r2,r3),list(r4));
464
+ Multiply(P,G2F);
465
+ }
466
+ ////////////////////////////////////////////////////////////////////
467
+ proc IdealOfV(list V)
468
+ "USAGE: IdealOfV(V); V list
469
+ RETURN: ideal: I
470
+ NOTES: this procedure takes a list of Vm's of a certain degree
471
+ and construct their ideal, multiplying the head by the weighted
472
+ variable t.
473
+ EXAMPLE: example IdealOfV; shows an example"
474
+ {
475
+ ideal I=0;
476
+ int i;
477
+ if (size(V)!=0)
478
+ {
479
+ list M=list();
480
+ jmp g;
481
+ for(i=1; i<= size(V); i++)
482
+ {
483
+ g=V[i];
484
+ g.h=t*g.h;
485
+ M[i]=g.h+g.t;
486
+ }
487
+ I=M[1..size(M)];
488
+ //I=std(I);
489
+ }
490
+ return(I);
491
+ }
492
+ example
493
+ { "EXAMPLE:"; echo = 2;
494
+ ring r=0, (x,y,z,t), ip;
495
+ jmp r1;
496
+ r1.h=z^3;
497
+ r1.t=poly(0);
498
+ jmp r2;
499
+ r2.h=z^2*y;
500
+ r2.t=poly(0);
501
+ jmp r3;
502
+ r3.h=z*y^2 ;
503
+ r3.t=-x^2*y;
504
+ jmp r4;
505
+ r4.h=y^5;
506
+ r4.t=poly(0);
507
+ list G2F=list(list(r1,r2,r3),list(r4));
508
+ IdealOfV(G2F[1]);
509
+ }
510
+ ////////////////////////////////////////////////////////////////////
511
+ proc NewWeight(int n)
512
+ "USAGE: NewWeight(n); n int
513
+ RETURN: intvec: u
514
+ EXAMPLE: example NewWeight; shows an example"
515
+ {
516
+ intvec u=0;
517
+ u[n]=1;
518
+ return(u);
519
+ }
520
+ example
521
+ { "EXAMPLE:"; echo = 2;
522
+ NewWeight(3);
523
+ }
524
+ ////////////////////////////////////////////////////////////////////
525
+ proc FinalVm(list V1 , list G1 ,def r)
526
+ "USAGE: FinalVm(V1, G1, r); V1 list, G1 list , r
527
+ RETURN: intvec: u
528
+ EXAMPLE: example NewWeight; shows an example"
529
+ {
530
+ //multiply and reduce, degree by degree
531
+ intvec u=NewWeight(nvars(r)+1);
532
+ list L=ring_list(r);
533
+ L[2]=insert(L[2],"t",size(L[2]));
534
+ list ordlist="a",u;
535
+ L[3]=insert(L[3],ordlist,0);
536
+ def H=ring(L);
537
+ list M=list();
538
+ jmp p;
539
+ list N;
540
+ poly q;
541
+ poly s;
542
+ int i;
543
+ int j;
544
+ for(i=1; i<=size(G1); i++)
545
+ {
546
+ N=list();
547
+ for(j=1; j<=size(G1[i]); j++)
548
+ {
549
+ p=G1[i][j];
550
+ q=p.h;
551
+ s=p.t;
552
+ N[j]=list(q,s);
553
+ }
554
+ M[i]=N;
555
+ }
556
+ p.h=poly(0);
557
+ p.t=poly(0);
558
+ setring H;
559
+ list R=list();
560
+ list S=list();
561
+ //print("anello definito");
562
+ def V=imap(r,V1);
563
+ //def G=imap(r,G1);
564
+ //print(V);
565
+ def MM=imap(r,M);
566
+ list G=list();
567
+ list N=list();
568
+ for(i=1; i<=size(MM); i++)
569
+ {
570
+ for(j=1; j<=size(MM[i]); j++)
571
+ {
572
+ p.h=MM[i][j][1];
573
+ p.t=MM[i][j][2];
574
+ N[j]=p;
575
+ }
576
+ G[i]=N;
577
+ }
578
+ ideal I=0;
579
+ jmp LL;
580
+ jmp UU;
581
+ for(i=1; i<=size(V);i++)
582
+ {
583
+ R[i]=list();
584
+ S[i]=list();
585
+ I=0;
586
+ for(j=1;j<=size(V[i]); j++)
587
+ {
588
+ LL=Multiply(V[i][j],G);
589
+ LL.t=reduce(t*LL.t,I);
590
+ //I only reduce the tail
591
+ LL.t=subst(LL.t,t,1);
592
+ S[i]=insert(S[i],LL,size(S[i]));
593
+ LL.h=t*LL.h;
594
+ R[i]=insert(R[i],LL,size(R[i]));
595
+ UU=R[i][j];
596
+ I=I+ideal(UU.h+UU.t);
597
+ attrib(I,"isSB",1);
598
+ }
599
+ }
600
+ list M=list();
601
+ poly q;
602
+ poly s;
603
+ for(i=1; i<=size(S); i++)
604
+ {
605
+ N=list();
606
+ for(j=1; j<=size(S[i]); j++)
607
+ {
608
+ p=S[i][j];
609
+ q=p.h;
610
+ s=p.t;
611
+ N[j]=list(q,s);
612
+ }
613
+ M[i]=N;
614
+ }
615
+ p.h=poly(0);
616
+ p.t=poly(0);
617
+ setring r;
618
+ def MM=imap(H,M);
619
+ list MMM=list();
620
+ for(i=1; i<=size(MM); i++)
621
+ {
622
+ N=list();
623
+ for(j=1; j<=size(MM[i]); j++)
624
+ {
625
+ p.h=MM[i][j][1];
626
+ p.t=MM[i][j][2];
627
+ N[j]=p;
628
+ }
629
+ MMM[i]=N;
630
+ }
631
+ return(MMM);
632
+ }
633
+ example
634
+ { "EXAMPLE:"; echo = 2;
635
+ ring r=0, (x,y,z), ip;
636
+ jmp r1;
637
+ r1.h=z^3;
638
+ r1.t=poly(0);
639
+ jmp r2;
640
+ r2.h=z^2*y;
641
+ r2.t=poly(0);
642
+ jmp r3;
643
+ r3.h=z*y^2 ;
644
+ r3.t=-x^2*y;
645
+ jmp r4;
646
+ r4.h=y^5;
647
+ r4.t=poly(0);
648
+ list G2F=list(list(r1,r2,r3),list(r4));
649
+ FinalVm(VConst(G2F,6,r) , G2F, r);
650
+ }
651
+ ////////////////////////////////////////////////////////////////////
652
+ proc ConstructorMain(list G, int c,def r)
653
+ "USAGE: Costruttore(G,c); G list, c int
654
+ RETURN: list: R
655
+ NOTE: At the end separated by degree.
656
+ EXAMPLE: example Costruttore; shows an example"
657
+ {
658
+ list V=list();
659
+ V= VConst(G,c);
660
+ //V non ordered
661
+ list L=list();
662
+ list R=list();
663
+ int i;
664
+ // head, position
665
+ //order the different degrees
666
+ for(i=1; i<=size(V); i++)
667
+ {
668
+ L[i]=StartOrderingV(V[i], G);
669
+ }
670
+ //multiply and reduce
671
+ //print("Ordinare");
672
+ R=FinalVm(L, G, r);
673
+ //print("FinalVm");
674
+ return(R);
675
+ }
676
+ example
677
+ { "EXAMPLE:"; echo = 2;
678
+ ring r=0, (x,y,z), ip;
679
+ jmp r1;
680
+ r1.h=z^3;
681
+ r1.t=poly(0);
682
+ jmp r2;
683
+ r2.h=z^2*y;
684
+ r2.t=poly(0);
685
+ jmp r3;
686
+ r3.h=z*y^2 ;
687
+ r3.t=-x^2*y;
688
+ jmp r4;
689
+ r4.h=y^5;
690
+ r4.t=poly(0);
691
+ list G2F=list(list(r1,r2,r3),list(r4));
692
+ ConstructorMain(G2F,6,r);
693
+ }
694
+ ////////////////////////////////////////////////////////////////////
695
+ proc EKCouples(jmp A, jmp B)
696
+ "USAGE: CoppiaEK(A,B); A list, B list
697
+ RETURN: list: L
698
+ NOTE: At the end the monomials involved by EK.
699
+ EXAMPLE: example EKCouples; shows an example"
700
+ {
701
+ poly E;
702
+ list L=0,0;
703
+ string s=varstr(basering);
704
+ list VVV=varstr(basering);
705
+ //L will contain results
706
+ poly h=Minimus(variables(A.h));
707
+ int l=findvars(h,1)[2][1];
708
+ if(l!=nvars(basering))
709
+ {
710
+ for(int j=l+1;j<=nvars(basering); j++)
711
+ {
712
+ E=var(j)*A.h/B.h;
713
+ //Candidate for * product
714
+ if(E!=0)
715
+ {
716
+ //print("primo if passato");
717
+ if(Minimus(variables(B.h))>=Maximus(variables(E)))
718
+ {
719
+ //Does it work with * ?
720
+ //print("secondo if passato");
721
+ L[1]=j;
722
+ L[2]=E;
723
+ break;
724
+ }
725
+ }
726
+ }
727
+ }
728
+ return (L);
729
+ }
730
+ example
731
+ { "EXAMPLE:"; echo = 2;
732
+ ring r=0, (x,y,z), ip;
733
+ jmp A;
734
+ A.h=y*z^2;
735
+ A.t=poly(0);
736
+ jmp B;
737
+ B.h=y^2*z;
738
+ B.t=poly(0);
739
+ EKCouples(A,B);
740
+ EKCouples(B,A);
741
+ }
742
+ ////////////////////////////////////////////////////////////////////
743
+ proc EKPolys(list G)
744
+ "USAGE: PolysEK(G); G list
745
+ RETURN: list: EK, list: D
746
+ NOTE: At the end EK polynomials and their degrees
747
+
748
+ EXAMPLE: example PolysEK; shows an example"
749
+ {
750
+ list D=list();
751
+ list C=list();
752
+ list N=0,0;
753
+ list EK=list();
754
+ int i;
755
+ int j;
756
+ int k;
757
+ int l;
758
+ jmp p;
759
+ for(i=1; i<=size(G); i++)
760
+ {
761
+ for(j=1; j<=size(G[i]); j++)
762
+ {
763
+ for(k=1; k<=size(G); k++)
764
+ {
765
+ for(l=1; l<=size(G[k]); l++)
766
+ {
767
+ if(i!=k||j!=l)
768
+ {
769
+ //Loop on polynomials
770
+ C=EKCouples(G[i][j], G[k][l]);
771
+ if(C[2]!=0)
772
+ {
773
+ C=insert(C,list(i,j,k,l),size(C));
774
+ EK=insert(EK,C,size(EK));
775
+ p=G[k][l];
776
+ D=insert(D,deg(C[2]*p.h),size(D));
777
+ }
778
+ }
779
+ }
780
+ }
781
+ }
782
+ }
783
+ //Double Return
784
+ return(EK, D);
785
+ }
786
+ example
787
+ { "EXAMPLE:"; echo = 2;
788
+ ring r=0, (x,y,z), ip;
789
+ jmp r1;
790
+ r1.h=z^3;
791
+ r1.t=poly(0);
792
+ jmp r2;
793
+ r2.h=z^2*y;
794
+ r2.t=poly(0);
795
+ jmp r3;
796
+ r3.h=z*y^2;
797
+ r3.t=-x^2*y;
798
+ jmp r4;
799
+ r4.h=y^5;
800
+ r4.t=poly(0);
801
+ list G2F=list(list(r1,r2,r3),list(r4));
802
+ EKPolys(G2F);
803
+ }
804
+ ////////////////////////////////////////////////////////////////////
805
+ proc EKPolynomials(list EK, list G)
806
+ "USAGE: EKPolynomials(EK,G); EK list, G list
807
+ RETURN: list: p
808
+ NOTE: At the end I obtain the EK polynomials and
809
+ their degrees.
810
+ EXAMPLE: example SpolyEK; shows an example"
811
+ {
812
+ jmp u=G[EK[3][1]][EK[3][2]];
813
+ jmp q=G[EK[3][3]][EK[3][4]];
814
+ return(var(EK[1])*(u.h+u.t)-EK[2]*(q.h+q.t));
815
+ }
816
+ example
817
+ { "EXAMPLE:"; echo = 2;
818
+ ring r=0, (x,y,z), ip;
819
+ jmp r1;
820
+ r1.h=z^3;
821
+ r1.t=poly(0);
822
+ jmp r2;
823
+ r2.h=z^2*y;
824
+ r2.t=poly(0);
825
+ jmp r3;
826
+ r3.h=z*y^2;
827
+ r3.t=-x^2*y;
828
+ jmp r4;
829
+ r4.h=y^5;
830
+ r4.t=poly(0);
831
+ list G2F=list(list(r1,r2,r3),list(r4));
832
+ list EK,D=EKPolys(G2F);
833
+ EKPolynomials(EK[1],G2F);
834
+ }
835
+ ////////////////////////////////////////////////////////////////////
836
+ proc TestJMark(list G1,def r)
837
+ "USAGE: TestJMark(G); G list
838
+ RETURN: int: i
839
+ NOTE:
840
+ This procedure performs J-marked basis test.@*
841
+ The input is a list of J-marked polynomials (jmp) arranged
842
+ by degree, so G1 is a list of list.@*
843
+ The output is a boolean evaluation:
844
+ True=1/False=0
845
+ EXAMPLE: example TestJMark; shows an example"
846
+ {
847
+ int flag=1;
848
+ if(size(G1)==1 && size(G1[1])==1)
849
+ {
850
+ //Hypersurface
851
+ print("Only One Polynomial");
852
+ flag=1;
853
+ }
854
+ else
855
+ {
856
+ int d=0;
857
+ list EK,D=EKPolys(G1);
858
+ //I found EK couples
859
+ int massimo=Max(D);
860
+ list V1=ConstructorMain(G1,massimo,r);
861
+ jmp mi=V1[1][1];
862
+ int minimo=Min(deg(mi.h));
863
+ intvec u=NewWeight(nvars(r)+1);
864
+ list L=ring_list(r);
865
+ L[2]=insert(L[2],"t",size(L[2]));
866
+ list ordlist="a",u;
867
+ L[3]=insert(L[3],ordlist,0);
868
+ def H=ring(L);
869
+ list JJ=list();
870
+ jmp pp;
871
+ jmp qq;
872
+ int i;
873
+ int j;
874
+ list NN;
875
+ for(i=size(V1);i>0;i--)
876
+ {
877
+ NN=list();
878
+ for(j=size(V1[i]);j>0;j--)
879
+ {
880
+ pp=V1[i][j];
881
+ NN[j]=list(pp.h,pp.t);
882
+ }
883
+ JJ[i]=NN;
884
+ }
885
+ list KK=list();
886
+ list UU=list();
887
+ //jmp qq;
888
+ for(i=size(G1);i>0;i--)
889
+ {
890
+ for(j=size(G1[i]);j>0;j--)
891
+ {
892
+ qq=G1[i][j];
893
+ UU[j]=list(qq.h,qq.t);
894
+ }
895
+ KK[i]=UU;
896
+ }
897
+ setring H;
898
+ //I defined the new ring with the weighted
899
+ //variable t
900
+ poly p;
901
+ //print("anello definito");
902
+ def JJJ=imap(r,JJ);
903
+ def EK=imap(r,EK);
904
+ list V=list();
905
+ jmp fp;
906
+ //int i;
907
+ //int j;
908
+ list N;
909
+ for(i=size(JJJ); i>0; i--)
910
+ {
911
+ N=list();
912
+ for(j=size(JJJ[i]); j>0; j--)
913
+ {
914
+ fp.h=JJJ[i][j][1];
915
+ fp.t=JJJ[i][j][2];
916
+ N[j]=fp;
917
+ }
918
+ V[i]=N;
919
+ }
920
+ def KKJ=imap(r,KK);
921
+ list G=list();
922
+ list U=list();
923
+ for(i=1; i<=size(KKJ); i++)
924
+ {
925
+ for(j=1; j<=size(KKJ[i]); j++)
926
+ {
927
+ fp.h=KKJ[i][j][1];
928
+ fp.t=KKJ[i][j][2];
929
+ U[j]=fp;
930
+ }
931
+ G[i]=U;
932
+ }
933
+ //I imported in H everything I need
934
+ poly q;
935
+ ideal I;
936
+ for(j=1; j<=size(EK);j++)
937
+ {
938
+ d=D[j];
939
+ p=EKPolynomials(EK[j],G);
940
+ I=IdealOfV(V[d-minimo+1]);
941
+ attrib(I,"isSB",1);
942
+ q=reduce(t*p,I);
943
+ q=subst(q,t,1);
944
+ //I reduce all the EK polynomials
945
+ // q=RiduzPoly(V[d-minimo+1], p);
946
+ if(q!=0)
947
+ {
948
+ //check whether reduction is 0
949
+ print("NOT A BASIS");
950
+ flag=0;
951
+ break;
952
+ }
953
+ }
954
+ }
955
+ setring r;
956
+ //typeof(flag);
957
+ return(flag);
958
+ }
959
+ example
960
+ { "EXAMPLE:"; echo = 2;
961
+ ring r=0, (x,y,z), ip;
962
+ jmp r1;
963
+ r1.h=z^3;
964
+ r1.t=poly(0);
965
+ jmp r2;
966
+ r2.h=z^2*y;
967
+ r2.t=poly(0);
968
+ jmp r3;
969
+ r3.h=z*y^2 ;
970
+ r3.t=-x^2*y;
971
+ jmp r4;
972
+ r4.h=y^5;
973
+ r4.t=poly(0);
974
+ list G2F=list(list(r1,r2,r3),list(r4));
975
+ TestJMark(G2F,r);
976
+ }