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,877 @@
1
+ ////////////////////////////////////////////////////////
2
+ version="version swalk.lib 4.2.1.0 Jul_2021 "; // $Id: 7c8eafe5aeeb8873629d04d36f05854b39ec179a $
3
+ category="Commutative Algebra";
4
+ info="
5
+ LIBRARY: swalk.lib Sagbi Walk Conversion Algorithm
6
+ AUTHOR: Junaid Alam Khan junaidalamkhan@gmail.com
7
+
8
+ OVERVIEW:
9
+ A library for computing the Sagbi basis of subalgebra through Sagbi walk
10
+ algorithm.
11
+
12
+ THEORY: The concept of SAGBI ( Subalgebra Analog to Groebner Basis for Ideals)
13
+ is defined in [L. Robbiano, M. Sweedler: Subalgebra Bases, volume 42, volume
14
+ 1430 of Lectures Note in Mathematics series, Springer-Verlag (1988),61-87].
15
+ The Sagbi Walk algorithm is the subalgebra analogue to the Groebner Walk
16
+ algorithm which has been proposed in [S. Collart, M. Kalkbrener and D.Mall:
17
+ Converting bases with the Grobner Walk. J. Symbolic Computation 24 (1997),
18
+ 465-469].
19
+
20
+ PROCEDURES:
21
+ swalk(ideal[,intvec]); Sagbi basis of subalgebra via Sagbi walk algorithm
22
+ rswalk(ideal,int,int[,intvec]); Sagbi basis of subalgebra via Random Sagbi Walk Algorithm
23
+
24
+ KEYWORDS: walk, groebner;Groebnerwalk
25
+ SEE ALSO: grwalk_lib; rwalk_lib
26
+ ";
27
+
28
+ LIB "sagbi.lib";
29
+ LIB "crypto.lib";
30
+ //////////////////////////////////////////////////////////////////////////////
31
+ proc swalk(ideal Gox, list #)
32
+ "USAGE: swalk(i[,v,w]); i ideal, v,w int vectors
33
+ RETURN: The sagbi basis of the subalgebra defined by the generators of i,
34
+ calculated via the Sagbi walk algorithm from the ordering dp to lp
35
+ if v,w are not given (resp. from the ordering (a(v),lp) to the
36
+ ordering (a(w),lp) if v and w are given).
37
+ EXAMPLE: example swalk; shows an example
38
+ "
39
+ {
40
+ /* we use ring with ordering (a(...),lp,C) */
41
+ list OSCTW = OrderStringalp_NP("al", #);//"dp"
42
+ string ord_str = OSCTW[2];
43
+ intvec icurr_weight = OSCTW[3]; /* original weight vector */
44
+ intvec itarget_weight = OSCTW[4]; /* terget weight vector */
45
+ kill OSCTW;
46
+ option(redSB);
47
+ def xR = basering;
48
+ list rl=ringlist(xR);
49
+ rl[3][1][1]="dp";
50
+ def ostR=ring(rl);
51
+ setring ostR;
52
+ def new_ring = basering;
53
+ ideal Gnew = fetch(xR, Gox);
54
+ Gnew=sagbi(Gnew,1);
55
+ Gnew=interreduceSd(Gnew);
56
+ vector curr_weight=changeTypeInt(icurr_weight);
57
+ vector target_weight=changeTypeInt(itarget_weight);
58
+ ideal Gold;
59
+ list l;
60
+ intvec v;
61
+ int n=0;
62
+ while(n==0)
63
+ {
64
+ Gold=Gnew;
65
+ def old_ring=new_ring;
66
+ setring old_ring;
67
+ number ulast;
68
+ kill new_ring;
69
+ if(curr_weight==target_weight){n=1;}
70
+ else {
71
+ l=collectDiffExpo(Gold);
72
+ ulast=last(curr_weight, target_weight, l);
73
+ vector new_weight=(1-ulast)*curr_weight+ulast*target_weight;
74
+ vector w=cleardenom(new_weight);
75
+ v=changeType(w);
76
+ list p= ringlist(old_ring);
77
+ p[3][1][2]= v;
78
+ def new_ring=ring(p);
79
+ setring new_ring;
80
+ ideal Gold=fetch(old_ring,Gold);
81
+ vector curr_weight=fetch(old_ring,new_weight);
82
+ vector target_weight=fetch(old_ring,target_weight);
83
+ kill old_ring;
84
+ ideal Gnew=Convert(Gold);
85
+ Gnew=interreduceSd(Gnew);
86
+ }
87
+ }
88
+ setring xR;
89
+ ideal result = fetch(old_ring, Gnew);
90
+ attrib(result,"isSB",1);
91
+ return (result);
92
+ }
93
+ example
94
+ {
95
+ "EXAMPLE:";echo = 2;
96
+ ring r = 0,(x,y), lp;
97
+ ideal I =x2,y2,xy+y,2xy2+y3;
98
+ swalk(I);
99
+ }
100
+ //////////////////////////////////////////////////////////////////////////////
101
+ proc rswalk(ideal Gox, int weight_rad, int pdeg, list #)
102
+ "USAGE: rswalk(i,weight_rad,p_deg[,v,w]); i ideal, v,w int vectors
103
+ RETURN: The sagbi basis of the subalgebra defined by the generators of i,
104
+ calculated via the Sagbi walk algorithm from the ordering dp to lp
105
+ if v,w are not given (resp. from the ordering (a(v),lp) to the
106
+ ordering (a(w),lp) if v and w are given).
107
+ EXAMPLE: example swalk; shows an example
108
+ "
109
+ {
110
+ /* we use ring with ordering (a(...),lp,C) */
111
+ list OSCTW = OrderStringalp_NP("al", #);//"dp"
112
+ string ord_str = OSCTW[2];
113
+ intvec icurr_weight = OSCTW[3]; /* original weight vector */
114
+ intvec itarget_weight = OSCTW[4]; /* terget weight vector */
115
+ kill OSCTW;
116
+ option(redSB);
117
+ def xR = basering;
118
+ list rl=ringlist(xR);
119
+ rl[3][1][1]="dp";
120
+ def ostR=ring(rl);
121
+ setring ostR;
122
+ def new_ring = basering;
123
+ ideal Gnew = fetch(xR, Gox);
124
+ Gnew=sagbi(Gnew,1);
125
+ Gnew=interreduceSd(Gnew);
126
+ vector curr_weight=changeTypeInt(icurr_weight);
127
+ vector target_weight=changeTypeInt(itarget_weight);
128
+ ideal Gold;
129
+ list l;
130
+ intvec v;
131
+ int n=0;
132
+ while(n==0)
133
+ {
134
+ Gold=Gnew;
135
+ def old_ring=new_ring;
136
+ setring old_ring;
137
+
138
+ kill new_ring;
139
+ if(curr_weight==target_weight){n=1;}
140
+ else {
141
+ l=collectDiffExpo(Gold);
142
+ vector new_weight=RandomNextWeight(Gold, l, curr_weight, target_weight, weight_rad, pdeg);
143
+ vector w=cleardenom(new_weight);
144
+ v=changeType(w);
145
+ list p= ringlist(old_ring);
146
+ p[3][1][2]= v;
147
+ def new_ring=ring(p);
148
+ setring new_ring;
149
+ ideal Gold=fetch(old_ring,Gold);
150
+ vector curr_weight=fetch(old_ring,new_weight);
151
+ vector target_weight=fetch(old_ring,target_weight);
152
+ kill old_ring;
153
+ ideal Gnew=Convert(Gold);
154
+ Gnew=interreduceSd(Gnew);
155
+ }
156
+ }
157
+ setring xR;
158
+ ideal result = fetch(old_ring, Gnew);
159
+ attrib(result,"isSB",1);
160
+ return (result);
161
+ }
162
+ example
163
+ {
164
+ "EXAMPLE:";echo = 2;
165
+ ring r = 0,(x,y), lp;
166
+ ideal I =x2,y2,xy+y,2xy2+y3;
167
+ rswalk(I,2,2);
168
+ }
169
+ //////////////////////////////////////////////////////////////////////////////
170
+ static proc inprod(vector v,vector w)
171
+ "USAGE: inprod(v,w); v,w vectors
172
+ RETURN: inner product of vector v and w
173
+ EXAMPLE: example inprod; shows an example
174
+ "
175
+ {
176
+ poly a;
177
+ int i;
178
+ for(i=1;i<=nvars(basering);i++)
179
+ {
180
+ a=a+v[i]*w[i] ;
181
+ }
182
+ return(a);
183
+ }
184
+ example
185
+ { "EXAMPLE:"; echo = 2;
186
+ ring r=0,(x,y,z),lp;
187
+ vector v =[1,-1,2];
188
+ vector w = [1,0,3];
189
+ inprod(v,w);
190
+ }
191
+
192
+ //////////////////////////////////////////////////////////////////////////////
193
+ static proc diffExpo(poly f)
194
+ "USAGE: diffExpo(f); f polynomial
195
+ RETURN: a list of integers vectors which are the difference of exponent
196
+ vector of leading monomial of f with the exponent vector of of other
197
+ monmials in f.
198
+ EXAMPLE: example diffExpo; shows an example
199
+ "
200
+ {
201
+ list l;
202
+ int i;
203
+ intvec v;
204
+ for(i=size(f);i>=2;i--)
205
+ {
206
+ v=leadexp(f[1])-leadexp(f[i]);
207
+ l[i-1]=v;
208
+ }
209
+ return(l);
210
+ }
211
+ example
212
+ { "EXAMPLE:"; echo = 2;
213
+ ring r=0,(x,y,z),lp;
214
+ poly f = xy+z2 ;
215
+ diffExpo(f);
216
+ }
217
+
218
+ //////////////////////////////////////////////////////////////////////////////
219
+ static proc collectDiffExpo( ideal i)
220
+ "USAGE: collectDiffExpo(i); i ideal
221
+ RETURN: a list which contains diffExpo(f), for all generators f of ideal i
222
+ EXAMPLE: example collectDiffExpo; shows an example
223
+ "
224
+ {
225
+ list l;
226
+ int j;
227
+ for(j=ncols(i); j>=1;j--)
228
+ {
229
+ l[j]=diffExpo(i[j]);
230
+ }
231
+ return(l);
232
+ }
233
+ example
234
+ { "EXAMPLE:"; echo = 2;
235
+ ring r=0,(x,y,z),lp;
236
+ ideal I = xy+z2,y3+x2y2;
237
+ collectDiffExpo(I);
238
+ }
239
+
240
+ //////////////////////////////////////////////////////////////////////////////
241
+ static proc changeType(vector v)
242
+ "USAGE: changeType(v); v vector
243
+ RETURN: change the type of vector
244
+ v into integer vector.
245
+
246
+ EXAMPLE: example changeType; shows an example
247
+ "
248
+ {
249
+ intvec w ;
250
+ int j ;
251
+ for(j=1;j<=nvars(basering);j++)
252
+ {
253
+ w[j]=int(leadcoef(v[j]));
254
+ }
255
+ return(w);
256
+ }
257
+ example
258
+ { "EXAMPLE:"; echo = 2;
259
+ ring r=0,(x,y,z),lp;
260
+ vector v = [2,1,3];
261
+ changeType(v);
262
+ }
263
+ //////////////////////////////////////////////////////////////////////////////
264
+ static proc changeTypeInt( intvec v)
265
+ "USAGE: changeTypeInt(v); v integer vector
266
+ RETURN: change the type of integer vector v into vector.
267
+ EXAMPLE: example changeTypeInt; shows an example
268
+ "
269
+ {
270
+ vector w;
271
+ int j ;
272
+ for(j=1;j<=size(v);j++)
273
+ {
274
+ w=w+v[j]*gen(j);
275
+ }
276
+ return(w);
277
+ }
278
+ example
279
+ { "EXAMPLE:"; echo = 2;
280
+ ring r=0,(x,y,z),lp;
281
+ intvec v = 4,2,3;
282
+ changeTypeInt(v);
283
+ }
284
+
285
+ //////////////////////////////////////////////////////////////////////////////
286
+ static proc last( vector c, vector t,list l)
287
+ "USAGE: last(c,t,l); c,t vectors, l list
288
+ RETURN: a parametric value which corresponds to vector lies along the path
289
+ between c and t using list l of integer vectors. This vector is the
290
+ last vector on old Sagbi cone
291
+ EXAMPLE: example last; shows an example
292
+ "
293
+ {
294
+ number ul=1;
295
+ int i,j,k;
296
+ number u;
297
+ vector v;
298
+ for(i=1;i<=size(l);i++)
299
+ {
300
+ for(j=1;j<=size(l[i]);j++)
301
+ {
302
+ v=0;
303
+ for(k=1;k<=size(l[i][j]);k++)
304
+ {
305
+ v=v+l[i][j][k]*gen(k);
306
+ }
307
+ poly n= inprod(c,v);
308
+ poly q= inprod(t,v);
309
+ number a=leadcoef(n);
310
+ number b=leadcoef(q);
311
+ number z=a-b;
312
+ if(b<0)
313
+ {
314
+ u=a/z;
315
+ if(u<ul) {ul=u;}
316
+ }
317
+ kill a,b,z,n,q ;
318
+ }
319
+ }
320
+ return(ul);
321
+ }
322
+ example
323
+ { "EXAMPLE:"; echo = 2;
324
+ ring r=0,(x,y,z),(a(0,0,1),lp);
325
+ vector v= [0,0,1];
326
+ vector w=[1,0,0];
327
+ ideal i=z2+xy,x2y2+y3;
328
+ list l=collectDiffExpo(i);
329
+ last(v,w,l)
330
+ }
331
+
332
+ //////////////////////////////////////////////////////////////////////////////
333
+ static proc initialForm(poly P)
334
+ "USAGE: initialForm(P); P polynomial
335
+ RETURN: sum of monomials of P with maximum w-degree
336
+ where w is first row of matrix of a given monomial ordering
337
+ EXAMPLE: example initialForm; shows an example
338
+ "
339
+ {
340
+ poly q;
341
+ int i=1;
342
+ while(deg(P[i])==deg(P[1]))
343
+ {
344
+ q=q+P[i];
345
+ i++;
346
+ if(i>size(P)) {break;}
347
+ }
348
+ return(q);
349
+ }
350
+ example
351
+ { "EXAMPLE:"; echo = 2;
352
+ ring r=0,(x,y,z),dp;
353
+ poly f = x2+yz+z;
354
+ initialForm(f);
355
+ }
356
+
357
+ //////////////////////////////////////////////////////////////////////////////
358
+ static proc Initial(ideal I)
359
+ "USAGE: Initial(I); I ideal
360
+ RETURN: an ideal which is generate by the InitialForm
361
+ of the generators of I.
362
+ EXAMPLE: example Initial; shows an example
363
+ "
364
+ {
365
+ ideal J;
366
+ int i;
367
+ for(i=1;i<=ncols(I);i++)
368
+ {
369
+ J[i]=initialForm(I[i]);
370
+ }
371
+ return(J);
372
+ }
373
+ example
374
+ { "EXAMPLE:"; echo = 2;
375
+ ring r=0,(x,y,z),dp;
376
+ ideal I = x+1,x+y+1;
377
+ Initial(I);
378
+ }
379
+
380
+ //////////////////////////////////////////////////////////////////////////////
381
+ static proc Lift(ideal In,ideal InG,ideal Gold)
382
+ "USAGE: Lift(In, InG, Gold); In, InG, Gold ideals;
383
+ Gold given by Sagbi basis {g_1,...,g_t},
384
+ In given by the initial forms In(g_1),...,In(g_t),
385
+ InG = {h_1,...,h_s} a Sagbi basis of In
386
+ RETURN: P_j, a polynomial in K[y_1,..,y_t] such that h_j =
387
+ P_j(In(g_1),...,In_(g_t))
388
+ and return f_j = P_j(g_1,...,g_t)
389
+ EXAMPLE: example Lift; shows an example
390
+ "
391
+ {
392
+ int i;
393
+ ideal J;
394
+ for(i=1;i<=ncols(InG);i++)
395
+ {
396
+ poly f=InG[i];
397
+ list l=algebra_containment(f,In,1);
398
+ def s=l[2];
399
+ map F=s,maxideal(1),Gold ;
400
+ poly g=F(check);
401
+ ideal k=g;
402
+ J=J+k;
403
+ kill g,l,s,F,f,k;
404
+ }
405
+ return(J);
406
+ }
407
+ example
408
+ { "EXAMPLE:"; echo = 2;
409
+ ring r=0,(x,y,z),(a(2,0,3),lp);
410
+ ideal In = xy+z2,x2y2;
411
+ ideal InG=xy+z2,x2y2,xyz2+1/2z4;
412
+ ideal Gold=xy+z2,y3+x2y2;
413
+ Lift(In,InG,Gold);
414
+ }
415
+
416
+ //////////////////////////////////////////////////////////////////////////////
417
+ static proc Convert( ideal Gold )
418
+ "USAGE: Convert(I); I ideal
419
+ RETURN: Convert old Sagbi basis into new Sagbi basis
420
+ EXAMPLE: example Convert; shows an example
421
+ "
422
+ {
423
+ ideal In=Initial(Gold);
424
+ ideal InG=sagbi(In,1)+In;
425
+ ideal Gnew=Lift(In,InG,Gold);
426
+ return(Gnew);
427
+ }
428
+ example
429
+ { "EXAMPLE:"; echo = 2;
430
+ ring r=0,(x,y,z),lp;
431
+ ideal I=xy+z2, y3+x2y2;
432
+ Convert(I);
433
+ }
434
+
435
+ //////////////////////////////////////////////////////////////////////////////
436
+ static proc interreduceSd(ideal I)
437
+ "USAGE: interreduceSd(I); I ideal
438
+ RETURN: interreduceSd the set of generators if I with
439
+ respect to a given term ordering
440
+ EXAMPLE: example interreduceSd; shows an example
441
+ "
442
+ {
443
+ list l,M;
444
+ ideal J,B;
445
+ int i,j,k;
446
+ poly f;
447
+ for(k=1;k<=ncols(I);k++)
448
+ {l[k]=I[k];}
449
+ for(j=1;j<=size(l);j++)
450
+ {
451
+ f=l[j];
452
+ M=delete(l,j);
453
+ for(i=1;i<=size(M);i++)
454
+ { B[i]=M[i];}
455
+ f=sagbiNF(f,B,1);
456
+ J=J+f;
457
+ }
458
+ return(J);
459
+ }
460
+ example
461
+ { "EXAMPLE:"; echo = 2;
462
+ ring r=0,(x,y,z),lp;
463
+ ideal I = xy+z2,x2y2+y3;
464
+ interreduceSd(I);
465
+ }
466
+
467
+ //////////////////////////////////////////////////////////////////////////////
468
+ static proc OrderStringalp(string Wpal,list #)
469
+ {
470
+ int n= nvars(basering);
471
+ string order_str;
472
+ intvec curr_weight, target_weight;
473
+ curr_weight = system("Mivdp",n);
474
+ target_weight = system("Mivlp",n);
475
+
476
+ // check if the target ring has a weighted lp ordering
477
+ list rl = ringlist(basering);
478
+ if (rl[3][1][1] == "a" and rl[3][2][1] == "lp") {
479
+ target_weight = rl[3][1][2];
480
+ }
481
+
482
+ if(size(#) != 0)
483
+ {
484
+ if(size(#) == 1)
485
+ {
486
+ if(typeof(#[1]) == "intvec")
487
+ {
488
+ if(Wpal == "al"){
489
+ order_str = "(a("+string(#[1])+"),lp("+string(n) + "),C)";
490
+ }
491
+ else {
492
+ order_str = "(Wp("+string(#[1])+"),C)";
493
+ }
494
+ curr_weight = #[1];
495
+ }
496
+ else
497
+ {
498
+ if(typeof(#[1]) == "string")
499
+ {
500
+ if(#[1] == "Dp") {
501
+ order_str = "Dp";
502
+ }
503
+ else {
504
+ order_str = "dp";
505
+ }
506
+ }
507
+ else {
508
+ order_str = "dp";
509
+ }
510
+ }
511
+ }
512
+ else
513
+ {
514
+ if(size(#) == 2)
515
+ {
516
+ if(typeof(#[2]) == "intvec")
517
+ {
518
+ target_weight = #[2];
519
+ }
520
+ if(typeof(#[1]) == "intvec")
521
+ {
522
+ if(Wpal == "al"){
523
+ order_str = "(a("+string(#[1])+"),lp("+string(n) + "),C)";
524
+ }
525
+ else {
526
+ order_str = "(Wp("+string(#[1])+"),C)";
527
+ }
528
+ curr_weight = #[1];
529
+ }
530
+ else
531
+ {
532
+ if(typeof(#[1]) == "string")
533
+ {
534
+ if(#[1] == "Dp") {
535
+ order_str = "Dp";
536
+ }
537
+ else {
538
+ order_str = "dp";
539
+ }
540
+ }
541
+ else {
542
+ order_str = "dp";
543
+ }
544
+ }
545
+ }
546
+ }
547
+ }
548
+ else {
549
+ order_str = "dp";
550
+ }
551
+ list result;
552
+ result[1] = order_str;
553
+ result[2] = curr_weight;
554
+ result[3] = target_weight;
555
+ return(result);
556
+ }
557
+
558
+ //////////////////////////////////////////////////////////////////////////////
559
+ static proc OrderStringalp_NP(string Wpal,list #)
560
+ {
561
+ int n= nvars(basering);
562
+ string order_str = "dp";
563
+ int nP = 1;// call LatsGB to compute the wanted GB by pwalk
564
+ intvec curr_weight = system("Mivdp",n); //define (1,1,...,1)
565
+ intvec target_weight = system("Mivlp",n); //define (1,0,...,0)
566
+
567
+ // check if the target ring has a weighted lp ordering
568
+ list rl = ringlist(basering);
569
+ if (rl[3][1][1] == "a" and rl[3][2][1] == "lp") {
570
+ target_weight = rl[3][1][2];
571
+ }
572
+
573
+ if(size(#) != 0)
574
+ {
575
+ if(size(#) == 1)
576
+ {
577
+ if(typeof(#[1]) == "intvec")
578
+ {
579
+ curr_weight = #[1];
580
+
581
+ if(Wpal == "al")
582
+ {
583
+ order_str = "(a("+string(#[1])+"),lp("+string(n) + "),C)";
584
+ }
585
+ else
586
+ {
587
+ order_str = "(Wp("+string(#[1])+"),C)";
588
+ }
589
+ }
590
+ else {
591
+ if(typeof(#[1]) == "int")
592
+ {
593
+ nP = #[1];
594
+ }
595
+ else
596
+ {
597
+ print("// ** the input must be \"(ideal, int)\" or ");
598
+ print("// ** \"(ideal, intvec)\"");
599
+ print("// ** a lex. GB will be computed from \"dp\" to \"lp\"");
600
+ }
601
+ }
602
+ }
603
+ else
604
+ {
605
+ if(size(#) == 2)
606
+ {
607
+ if(typeof(#[1]) == "intvec" and typeof(#[2]) == "int")
608
+ {
609
+ curr_weight = #[1];
610
+
611
+ if(Wpal == "al")
612
+ {
613
+ order_str = "(a("+string(#[1])+"),lp("+string(n) + "),C)";
614
+ }
615
+ else
616
+ {
617
+ order_str = "(Wp("+string(#[1])+"),C)";
618
+ }
619
+ }
620
+ else
621
+ {
622
+ if(typeof(#[1]) == "intvec" and typeof(#[2]) == "intvec")
623
+ {
624
+ curr_weight = #[1];
625
+ target_weight = #[2];
626
+
627
+ if(Wpal == "al")
628
+ {
629
+ order_str = "(a("+string(#[1])+"),lp("+string(n) + "),C)";
630
+ }
631
+ else
632
+ {
633
+ order_str = "(Wp("+string(#[1])+"),C)";
634
+ }
635
+ }
636
+ else
637
+ {
638
+ print("// ** the input must be \"(ideal,intvec,int)\" or ");
639
+ print("// ** \"(ideal,intvec,intvec)\"");
640
+ print("// ** and a lex. GB will be computed from \"dp\" to \"lp\"");
641
+ }
642
+ }
643
+ }
644
+ else {
645
+ if(size(#) == 3)
646
+ {
647
+ if(typeof(#[1]) == "intvec" and typeof(#[2]) == "intvec" and
648
+ typeof(#[3]) == "int")
649
+ {
650
+ curr_weight = #[1];
651
+ target_weight = #[2];
652
+ nP = #[3];
653
+ if(Wpal == "al")
654
+ {
655
+ order_str = "(a("+string(#[1])+"),lp("+string(n) + "),C)";
656
+ }
657
+ else
658
+ {
659
+ order_str = "(Wp("+string(#[1])+"),C)";
660
+ }
661
+ }
662
+ else
663
+ {
664
+ print("// ** the input must be \"(ideal,intvec,intvec,int)\"");
665
+ print("// ** and a lex. GB will be computed from \"dp\" to \"lp\"");
666
+
667
+ }
668
+ }
669
+ else
670
+ {
671
+ print("// ** The given input is wrong");
672
+ print("// ** and a lex. GB will be computed from \"dp\" to \"lp\"");
673
+ }
674
+ }
675
+ }
676
+ }
677
+ list result;
678
+ result[1] = nP;
679
+ result[2] = order_str;
680
+ result[3] = curr_weight;
681
+ result[4] = target_weight;
682
+ return(result);
683
+ }
684
+ //////////////////////////////////////////////////////////////////////////////
685
+ static proc test_in_cone(vector w, list l)
686
+ {
687
+ int i,j,k;
688
+ vector v;
689
+ poly n;
690
+ number a;
691
+ for(i=1;i<=size(l);i++)
692
+ {
693
+ for(j=1;j<=size(l[i]);j++)
694
+ {
695
+ v=0;
696
+ for(k=1;k<=size(l[i][j]);k++)
697
+ {
698
+ v=v+l[i][j][k]*gen(k);
699
+ }
700
+ n = inprod(w,v);
701
+ a = leadcoef(n);
702
+ if(a<0)
703
+ {
704
+ return(0);
705
+ }
706
+ }
707
+ }
708
+ return(1);
709
+ }
710
+ //////////////////////////////////////////////////////////////////////////////
711
+ static proc PertVectors(ideal Gold, vector target_weight, int pdeg)
712
+ {
713
+ int nV = nvars(basering);
714
+ int nG = size(Gold);
715
+ int i;
716
+ number ntemp, maxAi, maxA;
717
+ if(pdeg > nV || pdeg <= 0)
718
+ {
719
+ intvec v_null=0;
720
+ return v_null;
721
+ }
722
+ if(pdeg == 1)
723
+ {
724
+ return target_weight;
725
+ }
726
+ maxAi=0;
727
+ for(i=1; i<=nV; i++)
728
+ {
729
+ ntemp = leadcoef(inprod(target_weight,gen(i)));
730
+ if(ntemp < 0)
731
+ {
732
+ ntemp = -ntemp;
733
+ }
734
+ if(maxAi < ntemp)
735
+ {
736
+ maxAi = ntemp;
737
+ }
738
+ }
739
+ maxA = maxAi+pdeg-1;
740
+ number epsilon = maxA*deg(Gold)+1;
741
+ vector pert_weight = epsilon^(pdeg-1)*target_weight;
742
+ for(i=2; i<=pdeg; i++)
743
+ {
744
+ pert_weight = pert_weight + epsilon^(pdeg-i)*gen(i);
745
+ }
746
+ return(pert_weight);
747
+ }
748
+
749
+
750
+ //////////////////////////////////////////////////////////////////////////////
751
+ static proc RandomNextWeight(ideal Gold, list L, vector curr_weight,
752
+ vector target_weight,int weight_rad, int pdeg)
753
+ "USAGE: RandomNextWeight(Gold, L, curr_weight, target_weight);
754
+ RETURN: Intermediate next weight vector
755
+ EXAMPLE: example RandomNextWeight; shows an example
756
+ "
757
+ {
758
+ int i,n1,n2,n3;
759
+ number norm, weight_norm;
760
+ def Rold = basering;
761
+ int nV = nvars(basering);
762
+ number ulast=last(curr_weight, target_weight, L);
763
+ vector new_weight=(1-ulast)*curr_weight+ulast*target_weight;
764
+ vector w1=cleardenom(new_weight);
765
+ intvec v1=changeType(w1);
766
+ list p= ringlist(Rold);
767
+ p[3][1][2]= v1;
768
+ def new_ring=ring(p);
769
+ setring new_ring;
770
+ ideal Gold = fetch(Rold, Gold);
771
+ n1=size(Initial(Gold));
772
+ setring Rold;
773
+ intvec next_weight;
774
+ kill new_ring;
775
+ while(1)
776
+ {
777
+ weight_norm = 0;
778
+ while(weight_norm == 0)
779
+ {
780
+ for(i=1; i<=nV; i++)
781
+ {
782
+ next_weight[i] = random(1,10000)-5000;
783
+ weight_norm = weight_norm + next_weight[i]^2;
784
+ }
785
+ norm = 0;
786
+ while(norm^2 < weight_norm)
787
+ {
788
+ norm=norm+1;
789
+ }
790
+ weight_norm = 1+norm;
791
+ }
792
+ new_weight = 0;
793
+ for(i=1; i<=nV;i++)
794
+ {
795
+ if(next_weight[i] < 0)
796
+ {
797
+ new_weight = new_weight + (1 + round(weight_rad*leadcoef(next_weight[i])/weight_norm))*gen(i);
798
+ }
799
+ else
800
+ {
801
+ new_weight = new_weight + ( round(weight_rad*leadcoef(next_weight[i])/weight_norm))*gen(i);
802
+ }
803
+ }
804
+ new_weight = new_weight + curr_weight;
805
+ if(test_in_cone(new_weight, L)==1)
806
+ {
807
+ break;
808
+ }
809
+ }
810
+ kill next_weight;
811
+ kill norm;
812
+ vector w2=cleardenom(new_weight);
813
+ intvec v2=changeType(w2);
814
+ p[3][1][2]= v2;
815
+ def new_ring=ring(p);
816
+ setring new_ring;
817
+ ideal Gold = fetch(Rold, Gold);
818
+ n2=size(Initial(Gold));
819
+ setring Rold;
820
+ kill new_ring;
821
+
822
+ vector w3=cleardenom(PertVectors(Gold,target_weight,pdeg));
823
+ intvec v3=changeType(w3);
824
+ p[3][1][2]= v1;
825
+ def new_ring=ring(p);
826
+ setring new_ring;
827
+ ideal Gold = fetch(Rold, Gold);
828
+ n3=size(Initial(Gold));
829
+ setring Rold;
830
+ kill new_ring;
831
+ kill p;
832
+
833
+ if(n2<n1)
834
+ {
835
+ if(n3<n2)
836
+ {
837
+ // n3<n2<n1
838
+ return(w3);
839
+ }
840
+ else
841
+ {
842
+ // n2<n1 und n2<=n3
843
+ return(w2);
844
+ }
845
+ }
846
+ else
847
+ {
848
+ if(n3<n1)
849
+ {
850
+ //n3<n1<=n2
851
+ return(w3);
852
+ }
853
+ else
854
+ {
855
+ // n1<=n3 und n1<=n2
856
+ return(w1);
857
+ }
858
+ }
859
+ }
860
+
861
+ //////////////////////////////////////////////////////////////////////////////
862
+ /*
863
+ Further examples
864
+ ring r=0,(x,y,z),lp;
865
+
866
+ ideal I=x2y4, y4z2, xy4z+y2z, xy6z2+y10z5;
867
+
868
+ ideal Q=x2y4, y4z2, xy4z+y2z, xy6z2+y14z7;
869
+
870
+ ideal J=x2y4, y4z2, xy4z+y2z, xy6z2+y18z9;
871
+
872
+ ideal K=x2,y2,xy+y,2xy2+y5,z3+x;
873
+
874
+ ideal L=x2+y,y2+z,x+z2;
875
+ */
876
+
877
+