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

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

Potentially problematic release.


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

Files changed (491) hide show
  1. PySingular.cpython-314-x86_64-linux-gnu.so +0 -0
  2. passagemath_singular-10.6.31rc3.dist-info/METADATA +183 -0
  3. passagemath_singular-10.6.31rc3.dist-info/RECORD +491 -0
  4. passagemath_singular-10.6.31rc3.dist-info/WHEEL +6 -0
  5. passagemath_singular-10.6.31rc3.dist-info/top_level.txt +3 -0
  6. passagemath_singular.libs/libSingular-4-20aec911.4.1.so +0 -0
  7. passagemath_singular.libs/libcddgmp-21acf0c6.so.0.1.3 +0 -0
  8. passagemath_singular.libs/libfactory-4-fcee31da.4.1.so +0 -0
  9. passagemath_singular.libs/libflint-66e12231.so.21.0.0 +0 -0
  10. passagemath_singular.libs/libgf2x-a4cdec90.so.3.0.0 +0 -0
  11. passagemath_singular.libs/libgfortran-83c28eba.so.5.0.0 +0 -0
  12. passagemath_singular.libs/libgmp-6e109695.so.10.5.0 +0 -0
  13. passagemath_singular.libs/libgsl-cda90e79.so.28.0.0 +0 -0
  14. passagemath_singular.libs/libmpfr-82690d50.so.6.2.1 +0 -0
  15. passagemath_singular.libs/libntl-e6f0d543.so.44.0.1 +0 -0
  16. passagemath_singular.libs/libomalloc-0-5c9e866e.9.6.so +0 -0
  17. passagemath_singular.libs/libopenblasp-r0-6dcb67f9.3.29.so +0 -0
  18. passagemath_singular.libs/libpolys-4-5c0a87e0.4.1.so +0 -0
  19. passagemath_singular.libs/libquadmath-2284e583.so.0.0.0 +0 -0
  20. passagemath_singular.libs/libreadline-ea270e21.so.8.2 +0 -0
  21. passagemath_singular.libs/libsingular_resources-4-a1aafc6d.4.1.so +0 -0
  22. passagemath_singular.libs/libtinfo-ceb117d9.so.6.3 +0 -0
  23. sage/algebras/all__sagemath_singular.py +3 -0
  24. sage/algebras/fusion_rings/all.py +19 -0
  25. sage/algebras/fusion_rings/f_matrix.py +2448 -0
  26. sage/algebras/fusion_rings/fast_parallel_fmats_methods.cpython-314-x86_64-linux-gnu.so +0 -0
  27. sage/algebras/fusion_rings/fast_parallel_fmats_methods.pxd +5 -0
  28. sage/algebras/fusion_rings/fast_parallel_fmats_methods.pyx +538 -0
  29. sage/algebras/fusion_rings/fast_parallel_fusion_ring_braid_repn.cpython-314-x86_64-linux-gnu.so +0 -0
  30. sage/algebras/fusion_rings/fast_parallel_fusion_ring_braid_repn.pxd +3 -0
  31. sage/algebras/fusion_rings/fast_parallel_fusion_ring_braid_repn.pyx +331 -0
  32. sage/algebras/fusion_rings/fusion_double.py +899 -0
  33. sage/algebras/fusion_rings/fusion_ring.py +1580 -0
  34. sage/algebras/fusion_rings/poly_tup_engine.cpython-314-x86_64-linux-gnu.so +0 -0
  35. sage/algebras/fusion_rings/poly_tup_engine.pxd +24 -0
  36. sage/algebras/fusion_rings/poly_tup_engine.pyx +579 -0
  37. sage/algebras/fusion_rings/shm_managers.cpython-314-x86_64-linux-gnu.so +0 -0
  38. sage/algebras/fusion_rings/shm_managers.pxd +24 -0
  39. sage/algebras/fusion_rings/shm_managers.pyx +780 -0
  40. sage/algebras/letterplace/all.py +1 -0
  41. sage/algebras/letterplace/free_algebra_element_letterplace.cpython-314-x86_64-linux-gnu.so +0 -0
  42. sage/algebras/letterplace/free_algebra_element_letterplace.pxd +18 -0
  43. sage/algebras/letterplace/free_algebra_element_letterplace.pyx +755 -0
  44. sage/algebras/letterplace/free_algebra_letterplace.cpython-314-x86_64-linux-gnu.so +0 -0
  45. sage/algebras/letterplace/free_algebra_letterplace.pxd +35 -0
  46. sage/algebras/letterplace/free_algebra_letterplace.pyx +914 -0
  47. sage/algebras/letterplace/letterplace_ideal.cpython-314-x86_64-linux-gnu.so +0 -0
  48. sage/algebras/letterplace/letterplace_ideal.pyx +408 -0
  49. sage/algebras/quatalg/all.py +2 -0
  50. sage/algebras/quatalg/quaternion_algebra.py +4778 -0
  51. sage/algebras/quatalg/quaternion_algebra_cython.cpython-314-x86_64-linux-gnu.so +0 -0
  52. sage/algebras/quatalg/quaternion_algebra_cython.pyx +261 -0
  53. sage/algebras/quatalg/quaternion_algebra_element.cpython-314-x86_64-linux-gnu.so +0 -0
  54. sage/algebras/quatalg/quaternion_algebra_element.pxd +29 -0
  55. sage/algebras/quatalg/quaternion_algebra_element.pyx +2176 -0
  56. sage/all__sagemath_singular.py +11 -0
  57. sage/ext_data/all__sagemath_singular.py +1 -0
  58. sage/ext_data/singular/function_field/core.lib +98 -0
  59. sage/interfaces/all__sagemath_singular.py +1 -0
  60. sage/interfaces/singular.py +2835 -0
  61. sage/libs/all__sagemath_singular.py +1 -0
  62. sage/libs/singular/__init__.py +1 -0
  63. sage/libs/singular/decl.pxd +1168 -0
  64. sage/libs/singular/function.cpython-314-x86_64-linux-gnu.so +0 -0
  65. sage/libs/singular/function.pxd +87 -0
  66. sage/libs/singular/function.pyx +1901 -0
  67. sage/libs/singular/function_factory.py +61 -0
  68. sage/libs/singular/groebner_strategy.cpython-314-x86_64-linux-gnu.so +0 -0
  69. sage/libs/singular/groebner_strategy.pxd +22 -0
  70. sage/libs/singular/groebner_strategy.pyx +582 -0
  71. sage/libs/singular/option.cpython-314-x86_64-linux-gnu.so +0 -0
  72. sage/libs/singular/option.pyx +671 -0
  73. sage/libs/singular/polynomial.cpython-314-x86_64-linux-gnu.so +0 -0
  74. sage/libs/singular/polynomial.pxd +39 -0
  75. sage/libs/singular/polynomial.pyx +661 -0
  76. sage/libs/singular/ring.cpython-314-x86_64-linux-gnu.so +0 -0
  77. sage/libs/singular/ring.pxd +58 -0
  78. sage/libs/singular/ring.pyx +893 -0
  79. sage/libs/singular/singular.cpython-314-x86_64-linux-gnu.so +0 -0
  80. sage/libs/singular/singular.pxd +72 -0
  81. sage/libs/singular/singular.pyx +1944 -0
  82. sage/libs/singular/standard_options.py +145 -0
  83. sage/matrix/all__sagemath_singular.py +1 -0
  84. sage/matrix/matrix_mpolynomial_dense.cpython-314-x86_64-linux-gnu.so +0 -0
  85. sage/matrix/matrix_mpolynomial_dense.pxd +7 -0
  86. sage/matrix/matrix_mpolynomial_dense.pyx +615 -0
  87. sage/rings/all__sagemath_singular.py +1 -0
  88. sage/rings/function_field/all__sagemath_singular.py +1 -0
  89. sage/rings/function_field/derivations_polymod.py +911 -0
  90. sage/rings/function_field/element_polymod.cpython-314-x86_64-linux-gnu.so +0 -0
  91. sage/rings/function_field/element_polymod.pyx +406 -0
  92. sage/rings/function_field/function_field_polymod.py +2611 -0
  93. sage/rings/function_field/ideal_polymod.py +1775 -0
  94. sage/rings/function_field/order_polymod.py +1475 -0
  95. sage/rings/function_field/place_polymod.py +681 -0
  96. sage/rings/polynomial/all__sagemath_singular.py +1 -0
  97. sage/rings/polynomial/multi_polynomial_ideal_libsingular.cpython-314-x86_64-linux-gnu.so +0 -0
  98. sage/rings/polynomial/multi_polynomial_ideal_libsingular.pxd +5 -0
  99. sage/rings/polynomial/multi_polynomial_ideal_libsingular.pyx +339 -0
  100. sage/rings/polynomial/multi_polynomial_libsingular.cpython-314-x86_64-linux-gnu.so +0 -0
  101. sage/rings/polynomial/multi_polynomial_libsingular.pxd +30 -0
  102. sage/rings/polynomial/multi_polynomial_libsingular.pyx +6277 -0
  103. sage/rings/polynomial/plural.cpython-314-x86_64-linux-gnu.so +0 -0
  104. sage/rings/polynomial/plural.pxd +48 -0
  105. sage/rings/polynomial/plural.pyx +3171 -0
  106. sage/symbolic/all__sagemath_singular.py +1 -0
  107. sage/symbolic/comparison_impl.pxi +428 -0
  108. sage/symbolic/constants_c_impl.pxi +178 -0
  109. sage/symbolic/expression.cpython-314-x86_64-linux-gnu.so +0 -0
  110. sage/symbolic/expression.pxd +7 -0
  111. sage/symbolic/expression.pyx +14200 -0
  112. sage/symbolic/getitem_impl.pxi +202 -0
  113. sage/symbolic/pynac.pxi +572 -0
  114. sage/symbolic/pynac_constant_impl.pxi +133 -0
  115. sage/symbolic/pynac_function_impl.pxi +206 -0
  116. sage/symbolic/pynac_impl.pxi +2576 -0
  117. sage/symbolic/pynac_wrap.h +124 -0
  118. sage/symbolic/series_impl.pxi +272 -0
  119. sage/symbolic/substitution_map_impl.pxi +94 -0
  120. sage_wheels/bin/ESingular +0 -0
  121. sage_wheels/bin/Singular +0 -0
  122. sage_wheels/bin/TSingular +0 -0
  123. sage_wheels/lib/singular/MOD/cohomo.la +41 -0
  124. sage_wheels/lib/singular/MOD/cohomo.so +0 -0
  125. sage_wheels/lib/singular/MOD/customstd.la +41 -0
  126. sage_wheels/lib/singular/MOD/customstd.so +0 -0
  127. sage_wheels/lib/singular/MOD/freealgebra.la +41 -0
  128. sage_wheels/lib/singular/MOD/freealgebra.so +0 -0
  129. sage_wheels/lib/singular/MOD/gfanlib.la +41 -0
  130. sage_wheels/lib/singular/MOD/gfanlib.so +0 -0
  131. sage_wheels/lib/singular/MOD/gitfan.la +41 -0
  132. sage_wheels/lib/singular/MOD/gitfan.so +0 -0
  133. sage_wheels/lib/singular/MOD/interval.la +41 -0
  134. sage_wheels/lib/singular/MOD/interval.so +0 -0
  135. sage_wheels/lib/singular/MOD/loctriv.la +41 -0
  136. sage_wheels/lib/singular/MOD/loctriv.so +0 -0
  137. sage_wheels/lib/singular/MOD/machinelearning.la +41 -0
  138. sage_wheels/lib/singular/MOD/machinelearning.so +0 -0
  139. sage_wheels/lib/singular/MOD/p_Procs_FieldGeneral.la +41 -0
  140. sage_wheels/lib/singular/MOD/p_Procs_FieldGeneral.so +0 -0
  141. sage_wheels/lib/singular/MOD/p_Procs_FieldIndep.la +41 -0
  142. sage_wheels/lib/singular/MOD/p_Procs_FieldIndep.so +0 -0
  143. sage_wheels/lib/singular/MOD/p_Procs_FieldQ.la +41 -0
  144. sage_wheels/lib/singular/MOD/p_Procs_FieldQ.so +0 -0
  145. sage_wheels/lib/singular/MOD/p_Procs_FieldZp.la +41 -0
  146. sage_wheels/lib/singular/MOD/p_Procs_FieldZp.so +0 -0
  147. sage_wheels/lib/singular/MOD/partialgb.la +41 -0
  148. sage_wheels/lib/singular/MOD/partialgb.so +0 -0
  149. sage_wheels/lib/singular/MOD/pyobject.la +41 -0
  150. sage_wheels/lib/singular/MOD/pyobject.so +0 -0
  151. sage_wheels/lib/singular/MOD/singmathic.la +41 -0
  152. sage_wheels/lib/singular/MOD/singmathic.so +0 -0
  153. sage_wheels/lib/singular/MOD/sispasm.la +41 -0
  154. sage_wheels/lib/singular/MOD/sispasm.so +0 -0
  155. sage_wheels/lib/singular/MOD/subsets.la +41 -0
  156. sage_wheels/lib/singular/MOD/subsets.so +0 -0
  157. sage_wheels/lib/singular/MOD/systhreads.la +41 -0
  158. sage_wheels/lib/singular/MOD/systhreads.so +0 -0
  159. sage_wheels/lib/singular/MOD/syzextra.la +41 -0
  160. sage_wheels/lib/singular/MOD/syzextra.so +0 -0
  161. sage_wheels/libexec/singular/MOD/change_cost +0 -0
  162. sage_wheels/libexec/singular/MOD/singularsurf +11 -0
  163. sage_wheels/libexec/singular/MOD/singularsurf_jupyter +9 -0
  164. sage_wheels/libexec/singular/MOD/singularsurf_win +10 -0
  165. sage_wheels/libexec/singular/MOD/solve_IP +0 -0
  166. sage_wheels/libexec/singular/MOD/surfex +16 -0
  167. sage_wheels/libexec/singular/MOD/toric_ideal +0 -0
  168. sage_wheels/share/factory/gftables/10201 +342 -0
  169. sage_wheels/share/factory/gftables/1024 +37 -0
  170. sage_wheels/share/factory/gftables/10609 +356 -0
  171. sage_wheels/share/factory/gftables/11449 +384 -0
  172. sage_wheels/share/factory/gftables/11881 +398 -0
  173. sage_wheels/share/factory/gftables/121 +6 -0
  174. sage_wheels/share/factory/gftables/12167 +408 -0
  175. sage_wheels/share/factory/gftables/125 +7 -0
  176. sage_wheels/share/factory/gftables/12769 +428 -0
  177. sage_wheels/share/factory/gftables/128 +7 -0
  178. sage_wheels/share/factory/gftables/1331 +47 -0
  179. sage_wheels/share/factory/gftables/1369 +48 -0
  180. sage_wheels/share/factory/gftables/14641 +490 -0
  181. sage_wheels/share/factory/gftables/15625 +523 -0
  182. sage_wheels/share/factory/gftables/16 +3 -0
  183. sage_wheels/share/factory/gftables/16129 +540 -0
  184. sage_wheels/share/factory/gftables/16384 +549 -0
  185. sage_wheels/share/factory/gftables/16807 +563 -0
  186. sage_wheels/share/factory/gftables/1681 +58 -0
  187. sage_wheels/share/factory/gftables/169 +8 -0
  188. sage_wheels/share/factory/gftables/17161 +574 -0
  189. sage_wheels/share/factory/gftables/1849 +64 -0
  190. sage_wheels/share/factory/gftables/18769 +628 -0
  191. sage_wheels/share/factory/gftables/19321 +646 -0
  192. sage_wheels/share/factory/gftables/19683 +659 -0
  193. sage_wheels/share/factory/gftables/2048 +71 -0
  194. sage_wheels/share/factory/gftables/2187 +75 -0
  195. sage_wheels/share/factory/gftables/2197 +76 -0
  196. sage_wheels/share/factory/gftables/2209 +76 -0
  197. sage_wheels/share/factory/gftables/22201 +742 -0
  198. sage_wheels/share/factory/gftables/22801 +762 -0
  199. sage_wheels/share/factory/gftables/2401 +82 -0
  200. sage_wheels/share/factory/gftables/243 +11 -0
  201. sage_wheels/share/factory/gftables/24389 +815 -0
  202. sage_wheels/share/factory/gftables/24649 +824 -0
  203. sage_wheels/share/factory/gftables/25 +3 -0
  204. sage_wheels/share/factory/gftables/256 +11 -0
  205. sage_wheels/share/factory/gftables/26569 +888 -0
  206. sage_wheels/share/factory/gftables/27 +3 -0
  207. sage_wheels/share/factory/gftables/27889 +932 -0
  208. sage_wheels/share/factory/gftables/2809 +96 -0
  209. sage_wheels/share/factory/gftables/28561 +954 -0
  210. sage_wheels/share/factory/gftables/289 +12 -0
  211. sage_wheels/share/factory/gftables/29791 +995 -0
  212. sage_wheels/share/factory/gftables/29929 +1000 -0
  213. sage_wheels/share/factory/gftables/3125 +107 -0
  214. sage_wheels/share/factory/gftables/32 +4 -0
  215. sage_wheels/share/factory/gftables/32041 +1070 -0
  216. sage_wheels/share/factory/gftables/32761 +1094 -0
  217. sage_wheels/share/factory/gftables/32768 +1095 -0
  218. sage_wheels/share/factory/gftables/343 +14 -0
  219. sage_wheels/share/factory/gftables/3481 +118 -0
  220. sage_wheels/share/factory/gftables/361 +14 -0
  221. sage_wheels/share/factory/gftables/36481 +1218 -0
  222. sage_wheels/share/factory/gftables/3721 +126 -0
  223. sage_wheels/share/factory/gftables/37249 +1244 -0
  224. sage_wheels/share/factory/gftables/38809 +1296 -0
  225. sage_wheels/share/factory/gftables/39601 +1322 -0
  226. sage_wheels/share/factory/gftables/4 +3 -0
  227. sage_wheels/share/factory/gftables/4096 +139 -0
  228. sage_wheels/share/factory/gftables/44521 +1486 -0
  229. sage_wheels/share/factory/gftables/4489 +152 -0
  230. sage_wheels/share/factory/gftables/49 +4 -0
  231. sage_wheels/share/factory/gftables/4913 +166 -0
  232. sage_wheels/share/factory/gftables/49729 +1660 -0
  233. sage_wheels/share/factory/gftables/5041 +170 -0
  234. sage_wheels/share/factory/gftables/50653 +1691 -0
  235. sage_wheels/share/factory/gftables/512 +20 -0
  236. sage_wheels/share/factory/gftables/51529 +1720 -0
  237. sage_wheels/share/factory/gftables/52441 +1750 -0
  238. sage_wheels/share/factory/gftables/529 +20 -0
  239. sage_wheels/share/factory/gftables/5329 +180 -0
  240. sage_wheels/share/factory/gftables/54289 +1812 -0
  241. sage_wheels/share/factory/gftables/57121 +1906 -0
  242. sage_wheels/share/factory/gftables/58081 +1938 -0
  243. sage_wheels/share/factory/gftables/59049 +1971 -0
  244. sage_wheels/share/factory/gftables/6241 +210 -0
  245. sage_wheels/share/factory/gftables/625 +23 -0
  246. sage_wheels/share/factory/gftables/63001 +2102 -0
  247. sage_wheels/share/factory/gftables/64 +5 -0
  248. sage_wheels/share/factory/gftables/6561 +221 -0
  249. sage_wheels/share/factory/gftables/6859 +231 -0
  250. sage_wheels/share/factory/gftables/6889 +232 -0
  251. sage_wheels/share/factory/gftables/729 +27 -0
  252. sage_wheels/share/factory/gftables/7921 +266 -0
  253. sage_wheels/share/factory/gftables/8 +3 -0
  254. sage_wheels/share/factory/gftables/81 +5 -0
  255. sage_wheels/share/factory/gftables/8192 +276 -0
  256. sage_wheels/share/factory/gftables/841 +30 -0
  257. sage_wheels/share/factory/gftables/9 +3 -0
  258. sage_wheels/share/factory/gftables/9409 +316 -0
  259. sage_wheels/share/factory/gftables/961 +34 -0
  260. sage_wheels/share/info/singular.info +191898 -0
  261. sage_wheels/share/singular/LIB/GND.lib +1359 -0
  262. sage_wheels/share/singular/LIB/JMBTest.lib +976 -0
  263. sage_wheels/share/singular/LIB/JMSConst.lib +1363 -0
  264. sage_wheels/share/singular/LIB/KVequiv.lib +699 -0
  265. sage_wheels/share/singular/LIB/SingularityDBM.lib +491 -0
  266. sage_wheels/share/singular/LIB/VecField.lib +1542 -0
  267. sage_wheels/share/singular/LIB/absfact.lib +959 -0
  268. sage_wheels/share/singular/LIB/ainvar.lib +730 -0
  269. sage_wheels/share/singular/LIB/aksaka.lib +419 -0
  270. sage_wheels/share/singular/LIB/alexpoly.lib +2542 -0
  271. sage_wheels/share/singular/LIB/algebra.lib +1193 -0
  272. sage_wheels/share/singular/LIB/all.lib +136 -0
  273. sage_wheels/share/singular/LIB/arcpoint.lib +514 -0
  274. sage_wheels/share/singular/LIB/arnold.lib +4553 -0
  275. sage_wheels/share/singular/LIB/arnoldclassify.lib +2058 -0
  276. sage_wheels/share/singular/LIB/arr.lib +3486 -0
  277. sage_wheels/share/singular/LIB/assprimeszerodim.lib +755 -0
  278. sage_wheels/share/singular/LIB/autgradalg.lib +3361 -0
  279. sage_wheels/share/singular/LIB/bfun.lib +1964 -0
  280. sage_wheels/share/singular/LIB/bimodules.lib +774 -0
  281. sage_wheels/share/singular/LIB/brillnoether.lib +226 -0
  282. sage_wheels/share/singular/LIB/brnoeth.lib +5017 -0
  283. sage_wheels/share/singular/LIB/central.lib +2169 -0
  284. sage_wheels/share/singular/LIB/chern.lib +4162 -0
  285. sage_wheels/share/singular/LIB/cimonom.lib +571 -0
  286. sage_wheels/share/singular/LIB/cisimplicial.lib +1835 -0
  287. sage_wheels/share/singular/LIB/classify.lib +3239 -0
  288. sage_wheels/share/singular/LIB/classify2.lib +1462 -0
  289. sage_wheels/share/singular/LIB/classifyMapGerms.lib +1515 -0
  290. sage_wheels/share/singular/LIB/classify_aeq.lib +3253 -0
  291. sage_wheels/share/singular/LIB/classifyceq.lib +2092 -0
  292. sage_wheels/share/singular/LIB/classifyci.lib +1133 -0
  293. sage_wheels/share/singular/LIB/combinat.lib +91 -0
  294. sage_wheels/share/singular/LIB/compregb.lib +276 -0
  295. sage_wheels/share/singular/LIB/control.lib +1636 -0
  296. sage_wheels/share/singular/LIB/crypto.lib +3795 -0
  297. sage_wheels/share/singular/LIB/curveInv.lib +667 -0
  298. sage_wheels/share/singular/LIB/curvepar.lib +1817 -0
  299. sage_wheels/share/singular/LIB/customstd.lib +100 -0
  300. sage_wheels/share/singular/LIB/deRham.lib +5979 -0
  301. sage_wheels/share/singular/LIB/decodegb.lib +2134 -0
  302. sage_wheels/share/singular/LIB/decomp.lib +1655 -0
  303. sage_wheels/share/singular/LIB/deflation.lib +872 -0
  304. sage_wheels/share/singular/LIB/deform.lib +925 -0
  305. sage_wheels/share/singular/LIB/difform.lib +3055 -0
  306. sage_wheels/share/singular/LIB/divisors.lib +750 -0
  307. sage_wheels/share/singular/LIB/dmod.lib +5817 -0
  308. sage_wheels/share/singular/LIB/dmodapp.lib +3269 -0
  309. sage_wheels/share/singular/LIB/dmodideal.lib +1211 -0
  310. sage_wheels/share/singular/LIB/dmodloc.lib +2645 -0
  311. sage_wheels/share/singular/LIB/dmodvar.lib +818 -0
  312. sage_wheels/share/singular/LIB/dummy.lib +17 -0
  313. sage_wheels/share/singular/LIB/elim.lib +1009 -0
  314. sage_wheels/share/singular/LIB/ellipticcovers.lib +548 -0
  315. sage_wheels/share/singular/LIB/enumpoints.lib +146 -0
  316. sage_wheels/share/singular/LIB/equising.lib +2127 -0
  317. sage_wheels/share/singular/LIB/ffmodstd.lib +2384 -0
  318. sage_wheels/share/singular/LIB/ffsolve.lib +1289 -0
  319. sage_wheels/share/singular/LIB/findifs.lib +778 -0
  320. sage_wheels/share/singular/LIB/finitediff.lib +1768 -0
  321. sage_wheels/share/singular/LIB/finvar.lib +7989 -0
  322. sage_wheels/share/singular/LIB/fpadim.lib +2429 -0
  323. sage_wheels/share/singular/LIB/fpalgebras.lib +1666 -0
  324. sage_wheels/share/singular/LIB/fpaprops.lib +1462 -0
  325. sage_wheels/share/singular/LIB/freegb.lib +3853 -0
  326. sage_wheels/share/singular/LIB/general.lib +1350 -0
  327. sage_wheels/share/singular/LIB/gfan.lib +1768 -0
  328. sage_wheels/share/singular/LIB/gitfan.lib +3130 -0
  329. sage_wheels/share/singular/LIB/gkdim.lib +99 -0
  330. sage_wheels/share/singular/LIB/gmspoly.lib +589 -0
  331. sage_wheels/share/singular/LIB/gmssing.lib +1739 -0
  332. sage_wheels/share/singular/LIB/goettsche.lib +909 -0
  333. sage_wheels/share/singular/LIB/graal.lib +1366 -0
  334. sage_wheels/share/singular/LIB/gradedModules.lib +2541 -0
  335. sage_wheels/share/singular/LIB/graphics.lib +360 -0
  336. sage_wheels/share/singular/LIB/grobcov.lib +7706 -0
  337. sage_wheels/share/singular/LIB/groups.lib +1123 -0
  338. sage_wheels/share/singular/LIB/grwalk.lib +507 -0
  339. sage_wheels/share/singular/LIB/hdepth.lib +194 -0
  340. sage_wheels/share/singular/LIB/help.cnf +57 -0
  341. sage_wheels/share/singular/LIB/hess.lib +1946 -0
  342. sage_wheels/share/singular/LIB/hnoether.lib +4292 -0
  343. sage_wheels/share/singular/LIB/hodge.lib +400 -0
  344. sage_wheels/share/singular/LIB/homolog.lib +1965 -0
  345. sage_wheels/share/singular/LIB/hyperel.lib +975 -0
  346. sage_wheels/share/singular/LIB/inout.lib +679 -0
  347. sage_wheels/share/singular/LIB/integralbasis.lib +6224 -0
  348. sage_wheels/share/singular/LIB/interval.lib +1418 -0
  349. sage_wheels/share/singular/LIB/intprog.lib +778 -0
  350. sage_wheels/share/singular/LIB/invar.lib +443 -0
  351. sage_wheels/share/singular/LIB/involut.lib +980 -0
  352. sage_wheels/share/singular/LIB/jacobson.lib +1215 -0
  353. sage_wheels/share/singular/LIB/kskernel.lib +534 -0
  354. sage_wheels/share/singular/LIB/latex.lib +3146 -0
  355. sage_wheels/share/singular/LIB/lejeune.lib +651 -0
  356. sage_wheels/share/singular/LIB/linalg.lib +2040 -0
  357. sage_wheels/share/singular/LIB/locnormal.lib +212 -0
  358. sage_wheels/share/singular/LIB/lrcalc.lib +526 -0
  359. sage_wheels/share/singular/LIB/makedbm.lib +294 -0
  360. sage_wheels/share/singular/LIB/mathml.lib +813 -0
  361. sage_wheels/share/singular/LIB/matrix.lib +1372 -0
  362. sage_wheels/share/singular/LIB/maxlike.lib +1132 -0
  363. sage_wheels/share/singular/LIB/methods.lib +212 -0
  364. sage_wheels/share/singular/LIB/moddiq.lib +322 -0
  365. sage_wheels/share/singular/LIB/modfinduni.lib +181 -0
  366. sage_wheels/share/singular/LIB/modnormal.lib +218 -0
  367. sage_wheels/share/singular/LIB/modprimdec.lib +1278 -0
  368. sage_wheels/share/singular/LIB/modquotient.lib +269 -0
  369. sage_wheels/share/singular/LIB/modstd.lib +1024 -0
  370. sage_wheels/share/singular/LIB/modular.lib +545 -0
  371. sage_wheels/share/singular/LIB/modules.lib +2561 -0
  372. sage_wheels/share/singular/LIB/modwalk.lib +609 -0
  373. sage_wheels/share/singular/LIB/mondromy.lib +1016 -0
  374. sage_wheels/share/singular/LIB/monomialideal.lib +3851 -0
  375. sage_wheels/share/singular/LIB/mprimdec.lib +2353 -0
  376. sage_wheels/share/singular/LIB/mregular.lib +1863 -0
  377. sage_wheels/share/singular/LIB/multigrading.lib +5629 -0
  378. sage_wheels/share/singular/LIB/ncHilb.lib +777 -0
  379. sage_wheels/share/singular/LIB/ncModslimgb.lib +791 -0
  380. sage_wheels/share/singular/LIB/ncalg.lib +16311 -0
  381. sage_wheels/share/singular/LIB/ncall.lib +31 -0
  382. sage_wheels/share/singular/LIB/ncdecomp.lib +468 -0
  383. sage_wheels/share/singular/LIB/ncfactor.lib +13371 -0
  384. sage_wheels/share/singular/LIB/ncfrac.lib +1023 -0
  385. sage_wheels/share/singular/LIB/nchilbert.lib +448 -0
  386. sage_wheels/share/singular/LIB/nchomolog.lib +759 -0
  387. sage_wheels/share/singular/LIB/ncloc.lib +361 -0
  388. sage_wheels/share/singular/LIB/ncpreim.lib +795 -0
  389. sage_wheels/share/singular/LIB/ncrat.lib +2849 -0
  390. sage_wheels/share/singular/LIB/nctools.lib +1887 -0
  391. sage_wheels/share/singular/LIB/nets.lib +1456 -0
  392. sage_wheels/share/singular/LIB/nfmodstd.lib +1000 -0
  393. sage_wheels/share/singular/LIB/nfmodsyz.lib +732 -0
  394. sage_wheels/share/singular/LIB/noether.lib +1106 -0
  395. sage_wheels/share/singular/LIB/normal.lib +8700 -0
  396. sage_wheels/share/singular/LIB/normaliz.lib +2226 -0
  397. sage_wheels/share/singular/LIB/ntsolve.lib +362 -0
  398. sage_wheels/share/singular/LIB/numerAlg.lib +560 -0
  399. sage_wheels/share/singular/LIB/numerDecom.lib +2261 -0
  400. sage_wheels/share/singular/LIB/olga.lib +1933 -0
  401. sage_wheels/share/singular/LIB/orbitparam.lib +351 -0
  402. sage_wheels/share/singular/LIB/parallel.lib +319 -0
  403. sage_wheels/share/singular/LIB/paraplanecurves.lib +3110 -0
  404. sage_wheels/share/singular/LIB/perron.lib +202 -0
  405. sage_wheels/share/singular/LIB/pfd.lib +2223 -0
  406. sage_wheels/share/singular/LIB/phindex.lib +642 -0
  407. sage_wheels/share/singular/LIB/pointid.lib +673 -0
  408. sage_wheels/share/singular/LIB/polybori.lib +1430 -0
  409. sage_wheels/share/singular/LIB/polyclass.lib +525 -0
  410. sage_wheels/share/singular/LIB/polylib.lib +1174 -0
  411. sage_wheels/share/singular/LIB/polymake.lib +1902 -0
  412. sage_wheels/share/singular/LIB/presolve.lib +1533 -0
  413. sage_wheels/share/singular/LIB/primdec.lib +9576 -0
  414. sage_wheels/share/singular/LIB/primdecint.lib +1782 -0
  415. sage_wheels/share/singular/LIB/primitiv.lib +401 -0
  416. sage_wheels/share/singular/LIB/puiseuxexpansions.lib +1631 -0
  417. sage_wheels/share/singular/LIB/purityfiltration.lib +960 -0
  418. sage_wheels/share/singular/LIB/qhmoduli.lib +1561 -0
  419. sage_wheels/share/singular/LIB/qmatrix.lib +293 -0
  420. sage_wheels/share/singular/LIB/random.lib +455 -0
  421. sage_wheels/share/singular/LIB/ratgb.lib +489 -0
  422. sage_wheels/share/singular/LIB/realclassify.lib +5759 -0
  423. sage_wheels/share/singular/LIB/realizationMatroids.lib +772 -0
  424. sage_wheels/share/singular/LIB/realrad.lib +1197 -0
  425. sage_wheels/share/singular/LIB/recover.lib +2628 -0
  426. sage_wheels/share/singular/LIB/redcgs.lib +3984 -0
  427. sage_wheels/share/singular/LIB/reesclos.lib +465 -0
  428. sage_wheels/share/singular/LIB/resbinomial.lib +2802 -0
  429. sage_wheels/share/singular/LIB/resgraph.lib +789 -0
  430. sage_wheels/share/singular/LIB/resjung.lib +820 -0
  431. sage_wheels/share/singular/LIB/resolve.lib +5110 -0
  432. sage_wheels/share/singular/LIB/resources.lib +170 -0
  433. sage_wheels/share/singular/LIB/reszeta.lib +5473 -0
  434. sage_wheels/share/singular/LIB/ring.lib +1328 -0
  435. sage_wheels/share/singular/LIB/ringgb.lib +343 -0
  436. sage_wheels/share/singular/LIB/rinvar.lib +1153 -0
  437. sage_wheels/share/singular/LIB/rootisolation.lib +1481 -0
  438. sage_wheels/share/singular/LIB/rootsmr.lib +709 -0
  439. sage_wheels/share/singular/LIB/rootsur.lib +886 -0
  440. sage_wheels/share/singular/LIB/rstandard.lib +607 -0
  441. sage_wheels/share/singular/LIB/rwalk.lib +336 -0
  442. sage_wheels/share/singular/LIB/sagbi.lib +1353 -0
  443. sage_wheels/share/singular/LIB/sagbiNormaliz.lib +1622 -0
  444. sage_wheels/share/singular/LIB/sagbiNormaliz0.lib +1498 -0
  445. sage_wheels/share/singular/LIB/sagbigrob.lib +449 -0
  446. sage_wheels/share/singular/LIB/schreyer.lib +321 -0
  447. sage_wheels/share/singular/LIB/schubert.lib +2551 -0
  448. sage_wheels/share/singular/LIB/sets.lib +524 -0
  449. sage_wheels/share/singular/LIB/sheafcoh.lib +1663 -0
  450. sage_wheels/share/singular/LIB/signcond.lib +437 -0
  451. sage_wheels/share/singular/LIB/sing.lib +1094 -0
  452. sage_wheels/share/singular/LIB/sing4ti2.lib +419 -0
  453. sage_wheels/share/singular/LIB/solve.lib +2243 -0
  454. sage_wheels/share/singular/LIB/spcurve.lib +1077 -0
  455. sage_wheels/share/singular/LIB/spectrum.lib +62 -0
  456. sage_wheels/share/singular/LIB/sresext.lib +757 -0
  457. sage_wheels/share/singular/LIB/ssi.lib +143 -0
  458. sage_wheels/share/singular/LIB/standard.lib +2769 -0
  459. sage_wheels/share/singular/LIB/stanleyreisner.lib +473 -0
  460. sage_wheels/share/singular/LIB/stdmodule.lib +547 -0
  461. sage_wheels/share/singular/LIB/stratify.lib +1070 -0
  462. sage_wheels/share/singular/LIB/surf.lib +506 -0
  463. sage_wheels/share/singular/LIB/surf_jupyter.lib +223 -0
  464. sage_wheels/share/singular/LIB/surfacesignature.lib +522 -0
  465. sage_wheels/share/singular/LIB/surfex.lib +1462 -0
  466. sage_wheels/share/singular/LIB/swalk.lib +877 -0
  467. sage_wheels/share/singular/LIB/symodstd.lib +1570 -0
  468. sage_wheels/share/singular/LIB/systhreads.lib +74 -0
  469. sage_wheels/share/singular/LIB/tasks.lib +1324 -0
  470. sage_wheels/share/singular/LIB/tateProdCplxNegGrad.lib +2412 -0
  471. sage_wheels/share/singular/LIB/teachstd.lib +858 -0
  472. sage_wheels/share/singular/LIB/template.lib +116 -0
  473. sage_wheels/share/singular/LIB/toric.lib +1119 -0
  474. sage_wheels/share/singular/LIB/transformation.lib +116 -0
  475. sage_wheels/share/singular/LIB/triang.lib +1197 -0
  476. sage_wheels/share/singular/LIB/tropical.lib +8741 -0
  477. sage_wheels/share/singular/LIB/tropicalEllipticCovers.lib +2922 -0
  478. sage_wheels/share/singular/LIB/tropicalNewton.lib +1128 -0
  479. sage_wheels/share/singular/LIB/tst.lib +1108 -0
  480. sage_wheels/share/singular/LIB/weierstr.lib +241 -0
  481. sage_wheels/share/singular/LIB/zeroset.lib +1478 -0
  482. sage_wheels/share/singular/emacs/.emacs-general +184 -0
  483. sage_wheels/share/singular/emacs/.emacs-singular +234 -0
  484. sage_wheels/share/singular/emacs/COPYING +44 -0
  485. sage_wheels/share/singular/emacs/cmd-cmpl.el +241 -0
  486. sage_wheels/share/singular/emacs/ex-cmpl.el +1681 -0
  487. sage_wheels/share/singular/emacs/hlp-cmpl.el +4318 -0
  488. sage_wheels/share/singular/emacs/lib-cmpl.el +179 -0
  489. sage_wheels/share/singular/emacs/singular.el +4273 -0
  490. sage_wheels/share/singular/emacs/singular.xpm +39 -0
  491. sage_wheels/share/singular/singular.idx +5002 -0
@@ -0,0 +1,818 @@
1
+ ///////////////////////////////////////////////////////////////////////
2
+ version="version dmodvar.lib 4.1.2.0 Feb_2019 "; // $Id: d323c3ea8d1dd3849bcf1c448d302f7a910436f5 $
3
+ category="Noncommutative";
4
+ info="
5
+ LIBRARY: dmodvar.lib Algebraic D-modules for varieties
6
+
7
+ AUTHORS: Daniel Andres, daniel.andres@math.rwth-aachen.de
8
+ @* Viktor Levandovskyy, levandov@math.rwth-aachen.de
9
+ @* Jorge Martin-Morales, jorge@unizar.es
10
+
11
+ Support: DFG Graduiertenkolleg 1632 'Experimentelle und konstruktive Algebra'
12
+
13
+ OVERVIEW: Let K be a field of characteristic 0. Given a polynomial ring R = K[x_1,...,x_n]
14
+ and polynomials f_1,...,f_r in R, define F = f_1*...*f_r and F^s = f_1^s_1*...*f_r^s_r
15
+ for symbolic discrete (that is shiftable) variables s_1,..., s_r.
16
+ The module R[1/F]*F^s has the structure of a D<S>-module, where D<S> = D(R)
17
+ tensored with S over K, where
18
+ @* - D(R) is the n-th Weyl algebra K<x_1,...,x_n,d_1,...,d_n | d_j x_j = x_j d_j + 1>
19
+ @* - S is the universal enveloping algebra of gl_r, generated by s_i = s_{ii}.
20
+ @* One is interested in the following data:
21
+ @* - the left ideal Ann F^s in D<S>, usually denoted by LD in the output
22
+ @* - global Bernstein polynomial in one variable s = s_1+...+s_r, denoted by bs,
23
+ @* - its minimal integer root s0, the list of all roots of bs, which are known to be
24
+ negative rational numbers, with their multiplicities, which is denoted by BS
25
+ @* - an r-tuple of operators in D<S>, denoted by PS, such that the functional equality
26
+ sum(k=1 to k=r) P_k*f_k*F^s = bs*F^s holds in R[1/F]*F^s.
27
+
28
+ REFERENCES:
29
+ (BMS06) Budur, Mustata, Saito: Bernstein-Sato polynomials of arbitrary varieties (2006).
30
+ @* (ALM09) Andres, Levandovskyy, Martin-Morales: Principal Intersection and Bernstein-Sato
31
+ Polynomial of an Affine Variety (2009).
32
+
33
+
34
+ PROCEDURES:
35
+ bfctVarIn(F[,L]); computes the roots of the Bernstein-Sato polynomial b(s) of the variety V(F) using initial ideal approach
36
+ bfctVarAnn(F[,L]); computes the roots of the Bernstein-Sato polynomial b(s) of the variety V(F) using Sannfs approach
37
+ SannfsVar(F[,O,e]); computes the annihilator of F^s in the ring D<S>
38
+ makeMalgrange(F[,ORD]); creates the Malgrange ideal, associated with F = F[1],..,F[P]
39
+
40
+ SEE ALSO: bfun_lib, dmod_lib, dmodapp_lib, gmssing_lib
41
+
42
+ KEYWORDS: D-module; D-module structure; Bernstein-Sato polynomial for variety; global Bernstein-Sato polynomial for variety;
43
+ Weyl algebra; parametric annihilator for variety; Budur-Mustata-Saito approach; initial ideal approach
44
+ ";
45
+
46
+ /*
47
+ // Static procs:
48
+ // coDim(I); compute the codimension of the leading ideal of I
49
+ // dmodvarAssumeViolation()
50
+ // ORDstr2list (ORD, NN)
51
+ // smallGenCoDim(I,k)
52
+ */
53
+
54
+ /*
55
+ CHANGELOG
56
+ 11.10.10 by DA:
57
+ - reformated help strings
58
+ - simplified code
59
+ - add and use of safeVarName
60
+ - renamed makeIF to makeMalgrange
61
+ */
62
+
63
+
64
+ LIB "bfun.lib"; // for pIntersect
65
+ LIB "dmodapp.lib"; // for isCommutative etc.
66
+
67
+
68
+ ///////////////////////////////////////////////////////////////////////////////
69
+
70
+ // testing for consistency of the library:
71
+ proc testdmodvarlib ()
72
+ {
73
+ example makeMalgrange;
74
+ example bfctVarIn;
75
+ example bfctVarAnn;
76
+ example SannfsVar;
77
+ }
78
+ // example coDim;
79
+
80
+ ///////////////////////////////////////////////////////////////////////////////
81
+
82
+ static proc dmodvarAssumeViolation()
83
+ {
84
+ // char K = 0, no qring
85
+ if ( (size(ideal(basering)) >0) || (char(basering) >0) )
86
+ {
87
+ ERROR("Basering is inappropriate: characteristic>0 or qring present");
88
+ }
89
+ return();
90
+ }
91
+
92
+ static proc safeVarName (string s, string cv)
93
+ // assumes 's' to be a valid variable name
94
+ // returns valid var name string @@..@s
95
+ {
96
+ string S;
97
+ if (cv == "v") { S = "," + "," + varstr(basering) + ","; }
98
+ if (cv == "c") { S = "," + "," + charstr(basering) + ","; }
99
+ if (cv == "cv") { S = "," + charstr(basering) + "," + varstr(basering) + ","; }
100
+ s = "," + s + ",";
101
+ while (find(S,s) <> 0)
102
+ {
103
+ s[1] = "@";
104
+ s = "," + s;
105
+ }
106
+ s = s[2..size(s)-1];
107
+ return(s)
108
+ }
109
+
110
+ // da: in smallGenCoDim(), rewritten using mstd business
111
+ static proc coDim (ideal I)
112
+ "USAGE: coDim (I); I an ideal
113
+ RETURN: int
114
+ PURPOSE: computes the codimension of the ideal generated by the leading monomials
115
+ of the given generators of the ideal. This is also the codimension of
116
+ the ideal if it is represented by a standard basis.
117
+ NOTE: The codimension of an ideal I means the number of variables minus the
118
+ Krull dimension of the basering modulo I.
119
+ EXAMPLE: example coDim; shows examples
120
+ "
121
+ {
122
+ int n = nvars(basering);
123
+ int d = dim(I); // to insert: check whether I is in GB
124
+ return(n-d);
125
+ }
126
+ example
127
+ {
128
+ "EXAMPLE:"; echo = 2;
129
+ ring R = 0,(x,y,z),Dp;
130
+ ideal I = x^2+y^3, z;
131
+ coDim(std(I));
132
+ }
133
+
134
+ static proc ORDstr2list (string ORD, int NN)
135
+ {
136
+ /* convert an ordering defined in NN variables in the */
137
+ /* string form into the same ordering in the list form */
138
+ list l1;
139
+ for (int zz = 1; zz <= NN; zz++)
140
+ {
141
+ l1[size(l1)+1] = "z("+string(zz)+")";
142
+ }
143
+ ring @Z = create_ring(0, l1, ORD);
144
+ list L = ringlist(@Z)[3];
145
+ kill @Z;
146
+ return(L);
147
+ }
148
+
149
+ proc SannfsVar (ideal F, list #)
150
+ "USAGE: SannfsVar(F [,ORD,eng]); F an ideal, ORD an optional string, eng an optional int
151
+ RETURN: ring (Weyl algebra tensored with U(gl_P)), containing an ideal LD
152
+ PURPOSE: compute the D<S>-module structure of D<S>*f^s where f = F[1]*...*F[P]
153
+ and D<S> is the Weyl algebra D tensored with K<S>=U(gl_P), according to the
154
+ generalized algorithm by Briancon and Maisonobe for affine varieties
155
+ ASSUME: The basering is commutative and over a field of characteristic 0.
156
+ NOTE: Activate the output ring D<S> with the @code{setring} command.
157
+ In the ring D<S>, the ideal LD is the needed D<S>-module structure.
158
+ @* The value of ORD must be an elimination ordering in D<Dt,S> for Dt
159
+ written in the string form, otherwise the result may have no meaning.
160
+ By default ORD = '(a(1..(P)..1),a(1..(P+P^2)..1),dp)'.
161
+ @* If eng<>0, @code{std} is used for Groebner basis computations,
162
+ otherwise, and by default @code{slimgb} is used.
163
+ DISPLAY: If printlevel=1, progress debug messages will be printed,
164
+ @* if printlevel>=2, all the debug messages will be printed.
165
+ EXAMPLE: example SannfsVar; shows examples
166
+ "
167
+ {
168
+ dmodvarAssumeViolation();
169
+ if (!isCommutative())
170
+ {
171
+ ERROR("Basering must be commutative");
172
+ }
173
+ def save = basering;
174
+ int N = nvars(basering);
175
+ int P = ncols(F); //ncols better than size, since F[i] could be zero
176
+ // P is needed for default ORD
177
+ int i,j,k,l;
178
+ // st = "(a(1..(P)..1),a(1..(P+P^2)..1),dp)";
179
+ string st = "(a(" + string(1:P);
180
+ st = st + "),a(" + string(1:(P+P^2));
181
+ st = st + "),dp)";
182
+ // default values
183
+ string ORD = st;
184
+ int eng = 0;
185
+ if ( size(#)>0 )
186
+ {
187
+ if ( typeof(#[1]) == "string" )
188
+ {
189
+ ORD = string(#[1]);
190
+ // second arg
191
+ if (size(#)>1)
192
+ {
193
+ // exists 2nd arg
194
+ if ( typeof(#[2]) == "int" )
195
+ {
196
+ // the case: given ORD, given engine
197
+ eng = int(#[2]);
198
+ }
199
+ }
200
+ }
201
+ else
202
+ {
203
+ if ( typeof(#[1]) == "int" )
204
+ {
205
+ // the case: default ORD, engine given
206
+ eng = int(#[1]);
207
+ // ORD = "(a(1..(P)..1),a(1..(P+P^2)..1),dp)"; //is already set
208
+ }
209
+ else
210
+ {
211
+ // incorr. 1st arg
212
+ ORD = string(st);
213
+ }
214
+ }
215
+ }
216
+ // size(#)=0, i.e. there is no elimination ordering and no engine given
217
+ // eng = 0; ORD = "(a(1..(P)..1),a(1..(P^2)..1),dp)"; //are already set
218
+ int ppl = printlevel-voice+2;
219
+ // returns a list with a ring and an ideal LD in it
220
+ // save, N, P and the indices are already defined
221
+ int Nnew = 2*N+P+P^2;
222
+ list RL = ringlist(basering);
223
+ list L;
224
+ L[1] = RL[1]; //char
225
+ L[4] = RL[4]; //char, minpoly
226
+ // check whether vars have admissible names
227
+ list Name = RL[2];
228
+ list RName;
229
+ // (i,j) <--> (i-1)*p+j
230
+ for (i=1; i<=P; i++)
231
+ {
232
+ RName[i] = safeVarName("Dt("+string(i)+")","cv");
233
+ for (j=1; j<=P; j++)
234
+ {
235
+ RName[P+(i-1)*P+j] = safeVarName("s("+string(i)+")("+string(j)+")","cv");
236
+ }
237
+ }
238
+ // now, create the names for new vars
239
+ list DName;
240
+ for(i=1; i<=N; i++)
241
+ {
242
+ DName[i] = safeVarName("D"+Name[i],"cv"); //concat
243
+ }
244
+ list NName = RName + Name + DName;
245
+ L[2] = NName;
246
+ // Name, Dname will be used further
247
+ kill NName;
248
+ //block ord (a(1..(P)..1),a(1..(P+P^2)..1),dp);
249
+ //export Nnew;
250
+ L[3] = ORDstr2list(ORD,Nnew);
251
+ // we are done with the list
252
+ def @R@ = ring(L);
253
+ setring @R@;
254
+ matrix @D[Nnew][Nnew];
255
+ // kronecker(i,j) equals (i==j)
256
+ // (i,j) <--> (i-1)*p+j
257
+ for (i=1; i<=P; i++)
258
+ {
259
+ for (j=1; j<=P; j++)
260
+ {
261
+ for (k=1; k<=P; k++)
262
+ {
263
+ //[sij,Dtk] = djk*Dti
264
+ // @D[k,P+(i-1)*P+j] = (j==k)*Dt(i);
265
+ @D[k,P+(i-1)*P+j] = (j==k)*var(i);
266
+ for (l=1; l<=P; l++)
267
+ {
268
+ if ( (i-k)*P < l-j )
269
+ {
270
+ //[sij,skl] = djk*sil - dil*skj
271
+ // @D[P+(i-1)*P+j,P+(k-1)*P+l] = -(j==k)*s(i)(l) + (i==l)*s(k)(j);
272
+ @D[P+(i-1)*P+j,P+(k-1)*P+l] = -(j==k)*var(i*P+l) + (i==l)*var(k*P+j);
273
+ }
274
+ }
275
+ }
276
+ }
277
+ }
278
+ for (i=1; i<=N; i++)
279
+ {
280
+ //[Dx,x]=1
281
+ @D[P+P^2+i,P+P^2+N+i] = 1;
282
+ }
283
+ def @R = nc_algebra(1,@D);
284
+ setring @R;
285
+ //@R@ will be used further
286
+ dbprint(ppl,"// -1-1- the ring @R(_Dt,_s,_x,_Dx) is ready");
287
+ dbprint(ppl-1, @R);
288
+ // create the ideal I
289
+ // (i,j) <--> (i-1)*p+j
290
+ ideal F = imap(save,F);
291
+ ideal I;
292
+ for (i=1; i<=P; i++)
293
+ {
294
+ for (j=1; j<=P; j++)
295
+ {
296
+ // I[(i-1)*P+j] = Dt(i)*F[j] + s(i)(j);
297
+ I[(i-1)*P+j] = var(i)*F[j] + var(i*P+j);
298
+ }
299
+ }
300
+ poly p,q;
301
+ for (i=1; i<=N; i++)
302
+ {
303
+ p=0;
304
+ for (j=1; j<=P; j++)
305
+ {
306
+ // q = Dt(j);
307
+ q = var(j);
308
+ q = q*diff(F[j],var(P+P^2+i));
309
+ p = p + q;
310
+ }
311
+ I = I, p + var(P+P^2+N+i);
312
+ }
313
+ // -------- the ideal I is ready ----------
314
+ dbprint(ppl,"// -1-2- starting the elimination of Dt(i) in @R");
315
+ dbprint(ppl-1, I);
316
+ ideal J = engine(I,eng);
317
+ ideal K = nselect(J,1..P);
318
+ kill I,J;
319
+ dbprint(ppl,"// -1-3- all Dt(i) are eliminated");
320
+ dbprint(ppl-1, K); //K is without Dt(i)
321
+ // ----------- the ring @R2(_s,_x,_Dx) ------------
322
+ //come back to the ring save, recover L and remove all Dt(i)
323
+ //L[1],L[4] do not change
324
+ setring save;
325
+ list Lord, tmp;
326
+ // variables
327
+ tmp = L[2];
328
+ Lord = tmp[P+1..Nnew];
329
+ L[2] = Lord;
330
+ // ordering
331
+ // st = "(a(1..(P^2)..1),dp)";
332
+ st = "(a(" + string(1:P^2);
333
+ st = st + "),dp)";
334
+ tmp = ORDstr2list(st,Nnew-P);
335
+ L[3] = tmp;
336
+ def @R2@ = ring(L);
337
+ kill L;
338
+ // we are done with the list
339
+ setring @R2@;
340
+ matrix tmpM,LordM;
341
+ // non-commutative relations
342
+ intvec iv = P+1..Nnew;
343
+ tmpM = imap(@R@,@D);
344
+ kill @R@;
345
+ LordM = submat(tmpM,iv,iv);
346
+ matrix @D2 = LordM;
347
+ def @R2 = nc_algebra(1,@D2);
348
+ setring @R2;
349
+ kill @R2@;
350
+ dbprint(ppl,"// -2-1- the ring @R(_s,_x,_Dx) is ready");
351
+ dbprint(ppl-1, @R2);
352
+ ideal K = imap(@R,K);
353
+ kill @R;
354
+ dbprint(ppl,"// -2-2- starting cosmetic Groebner basis computation");
355
+ dbprint(ppl-1, K);
356
+ K = engine(K,eng);
357
+ dbprint(ppl,"// -2-3- the cosmetic Groebner basis has been computed");
358
+ dbprint(ppl-1,K);
359
+ ideal LD = K;
360
+ attrib(LD,"isSB",1);
361
+ export LD;
362
+ return(@R2);
363
+ }
364
+ example
365
+ {
366
+ "EXAMPLE:"; echo = 2;
367
+ ring R = 0,(x,y),Dp;
368
+ ideal F = x^3, y^5;
369
+ //ORD = "(a(1,1),a(1,1,1,1,1,1),dp)";
370
+ //eng = 0;
371
+ def A = SannfsVar(F);
372
+ setring A;
373
+ A;
374
+ LD;
375
+ }
376
+
377
+ proc bfctVarAnn (ideal F, list #)
378
+ "USAGE: bfctVarAnn(F[,gid,eng]); F an ideal, gid,eng optional ints
379
+ RETURN: list of an ideal and an intvec
380
+ PURPOSE: computes the roots of the Bernstein-Sato polynomial and their multiplicities
381
+ for an affine algebraic variety defined by F = F[1],..,F[r].
382
+ ASSUME: The basering is commutative and over a field in char 0.
383
+ NOTE: In the output list, the ideal contains all the roots and
384
+ the intvec their multiplicities.
385
+ @* If gid<>0, the ideal is used as given. Otherwise, and by default, a
386
+ heuristically better suited generating set is used.
387
+ @* If eng<>0, @code{std} is used for GB computations,
388
+ otherwise, and by default, @code{slimgb} is used.
389
+ @* Computational remark: The time of computation can be very different depending
390
+ on the chosen generators of F, although the result is always the same.
391
+ @* Further note that in this proc, the annihilator of f^s in D[s] is computed and
392
+ then a system of linear equations is solved by linear reductions in order to
393
+ find the minimal polynomial of S = s(1)(1) + ... + s(P)(P).
394
+ The resulted is shifted by 1-codim(Var(F)) following (BMS06).
395
+ DISPLAY: If printlevel=1, progress debug messages will be printed,
396
+ @* if printlevel=2, all the debug messages will be printed.
397
+ EXAMPLE: example bfctVarAnn; shows examples
398
+ "
399
+ {
400
+ dmodvarAssumeViolation();
401
+ if (!isCommutative())
402
+ {
403
+ ERROR("Basering must be commutative");
404
+ }
405
+ int gid = 0; // default
406
+ int eng = 0; // default
407
+ if (size(#)>0)
408
+ {
409
+ if (typeof(#[1])=="int" || typeof(#[1])=="number")
410
+ {
411
+ gid = int(#[1]);
412
+ }
413
+ if (size(#)>1)
414
+ {
415
+ if (typeof(#[2])=="int" || typeof(#[2])=="number")
416
+ {
417
+ eng = int(#[2]);
418
+ }
419
+ }
420
+ }
421
+ def save = basering;
422
+ int ppl = printlevel - voice + 2;
423
+ printlevel = printlevel+1;
424
+ list L = smallGenCoDim(F,gid);
425
+ F = L[1];
426
+ int cd = L[2];
427
+ kill L;
428
+ def @R2 = SannfsVar(F,eng);
429
+ printlevel = printlevel-1;
430
+ int sF = size(F); // no 0 in F
431
+ setring @R2;
432
+ // we are in D[s] and LD is a std of SannfsVar(F)
433
+ ideal F = imap(save,F);
434
+ ideal GF = std(F);
435
+ ideal J = NF(LD,GF);
436
+ J = J, F;
437
+ dbprint(ppl,"// -3-1- starting Groebner basis of ann F^s + F ");
438
+ dbprint(ppl-1,J);
439
+ ideal K = engine(J,eng);
440
+ dbprint(ppl,"// -3-2- finished Groebner basis of ann F^s + F ");
441
+ dbprint(ppl-1,K);
442
+ poly S;
443
+ int i;
444
+ for (i=1; i<=sF; i++)
445
+ {
446
+ // S = S + s(i)(i);
447
+ S = S + var((i-1)*sF+i);
448
+ }
449
+ dbprint(ppl,"// -4-1- computing the minimal polynomial of S");
450
+ dbprint(ppl-1,"S = "+string(S));
451
+ vector M = pIntersect(S,K);
452
+ dbprint(ppl,"// -4-2- the minimal polynomial has been computed");
453
+ ring @R3 = 0,s,dp;
454
+ vector M = imap(@R2,M);
455
+ poly p = vec2poly(M);
456
+ dbprint(ppl-1,p);
457
+ dbprint(ppl,"// -5-1- codimension of the variety");
458
+ dbprint(ppl-1,cd);
459
+ dbprint(ppl,"// -5-2- shifting BS(s)=minpoly(s-codim+1)");
460
+ p = subst(p,var(1),var(1)-cd+1);
461
+ dbprint(ppl-1,p);
462
+ dbprint(ppl,"// -5-3- factorization of the minimal polynomial");
463
+ list BS = bFactor(p);
464
+ setring save;
465
+ list BS = imap(@R3,BS);
466
+ kill @R2,@R3;
467
+ return(BS);
468
+ }
469
+ example
470
+ {
471
+ "EXAMPLE:"; echo = 2;
472
+ ring R = 0,(x,y,z),Dp;
473
+ ideal F = x^2+y^3, z;
474
+ bfctVarAnn(F);
475
+ }
476
+
477
+ proc makeMalgrange (ideal F, list #)
478
+ "USAGE: makeMalgrange(F [,ORD]); F an ideal, ORD an optional string
479
+ RETURN: ring (Weyl algebra) containing an ideal IF
480
+ PURPOSE: create the ideal by Malgrange associated with F = F[1],...,F[P].
481
+ NOTE: Activate the output ring with the @code{setring} command. In this ring,
482
+ the ideal IF is the ideal by Malgrange corresponding to F.
483
+ @* The value of ORD must be an arbitrary ordering in K<_t,_x,_Dt,_Dx>
484
+ written in the string form. By default ORD = 'dp'.
485
+ DISPLAY: If printlevel=1, progress debug messages will be printed,
486
+ @* if printlevel>=2, all the debug messages will be printed.
487
+ EXAMPLE: example makeMalgrange; shows examples
488
+ "
489
+ {
490
+ string ORD = "dp";
491
+ if ( size(#)>0 )
492
+ {
493
+ if ( typeof(#[1]) == "string" )
494
+ {
495
+ ORD = string(#[1]);
496
+ }
497
+ }
498
+ int ppl = printlevel-voice+2;
499
+ def save = basering;
500
+ int N = nvars(save);
501
+ int P = ncols(F);
502
+ int Nnew = 2*P+2*N;
503
+ int i,j;
504
+ string st;
505
+ list RL = ringlist(save);
506
+ list L,Lord;
507
+ list tmp;
508
+ intvec iv;
509
+ L[1] = RL[1];
510
+ L[4] = RL[4];
511
+ //check whether vars have admissible names
512
+ list Name = RL[2];
513
+ list TName, DTName;
514
+ for (i=1; i<=P; i++)
515
+ {
516
+ TName[i] = safeVarName("t("+string(i)+")","cv");
517
+ DTName[i] = safeVarName("Dt("+string(i)+")","cv");
518
+ }
519
+ //now, create the names for new vars
520
+ list DName;
521
+ for (i=1; i<=N; i++)
522
+ {
523
+ DName[i] = safeVarName("D"+Name[i],"cv"); //concat
524
+ }
525
+ list NName = TName + Name + DTName + DName;
526
+ L[2] = NName;
527
+ // Name, Dname will be used further
528
+ kill NName, TName, Name, DTName, DName;
529
+ // ORD already set, default ord dp;
530
+ L[3] = ORDstr2list(ORD,Nnew);
531
+ // we are done with the list
532
+ def @R@ = ring(L);
533
+ setring @R@;
534
+ def @R = Weyl();
535
+ setring @R;
536
+ kill @R@;
537
+ //dbprint(ppl,"// -1-1- the ring @R(_t,_x,_Dt,_Dx) is ready");
538
+ //dbprint(ppl-1, @R);
539
+ // create the ideal I
540
+ ideal F = imap(save,F);
541
+ ideal I;
542
+ for (j=1; j<=P; j++)
543
+ {
544
+ // I[j] = t(j) - F[j];
545
+ I[j] = var(j) - F[j];
546
+ }
547
+ poly p,q;
548
+ for (i=1; i<=N; i++)
549
+ {
550
+ p=0;
551
+ for (j=1; j<=P; j++)
552
+ {
553
+ // q = Dt(j);
554
+ q = var(P+N+j);
555
+ q = diff(F[j],var(P+i))*q;
556
+ p = p + q;
557
+ }
558
+ I = I, p + var(2*P+N+i);
559
+ }
560
+ // -------- the ideal I is ready ----------
561
+ ideal IF = I;
562
+ export IF;
563
+ return(@R);
564
+ }
565
+ example
566
+ {
567
+ "EXAMPLE:"; echo = 2;
568
+ ring R = 0,(x,y,z),Dp;
569
+ ideal I = x^2+y^3, z;
570
+ def W = makeMalgrange(I);
571
+ setring W;
572
+ W;
573
+ IF;
574
+ }
575
+
576
+ proc bfctVarIn (ideal I, list #)
577
+ "USAGE: bfctVarIn(I [,a,b,c]); I an ideal, a,b,c optional ints
578
+ RETURN: list of ideal and intvec
579
+ PURPOSE: computes the roots of the Bernstein-Sato polynomial and their
580
+ multiplicities for an affine algebraic variety defined by I.
581
+ ASSUME: The basering is commutative and over a field of characteristic 0.
582
+ @* Varnames of the basering do not include t(1),...,t(r) and
583
+ Dt(1),...,Dt(r), where r is the number of entries of the input ideal.
584
+ NOTE: In the output list, say L,
585
+ @* - L[1] of type ideal contains all the rational roots of a b-function,
586
+ @* - L[2] of type intvec contains the multiplicities of above roots,
587
+ @* - optional L[3] of type string is the part of b-function without rational roots.
588
+ @* Note, that a b-function of degree 0 is encoded via L[1][1]=0, L[2]=0 and
589
+ L[3] is 1 (for nonzero constant) or 0 (for zero b-function).
590
+ @* If a<>0, the ideal is used as given. Otherwise, and by default, a
591
+ heuristically better suited generating set is used to reduce computation time.
592
+ @* If b<>0, @code{std} is used for GB computations in characteristic 0,
593
+ otherwise, and by default, @code{slimgb} is used.
594
+ @* If c<>0, a matrix ordering is used for GB computations, otherwise,
595
+ and by default, a block ordering is used.
596
+ @* Further note, that in this proc, the initial ideal of the multivariate Malgrange
597
+ ideal defined by I is computed and then a system of linear equations is solved
598
+ by linear reductions following the ideas by Noro.
599
+ The result is shifted by 1-codim(Var(F)) following (BMS06).
600
+ DISPLAY: If printlevel=1, progress debug messages will be printed,
601
+ @* if printlevel>=2, all the debug messages will be printed.
602
+ EXAMPLE: example bfctVarIn; shows examples
603
+ "
604
+ {
605
+ dmodvarAssumeViolation();
606
+ if (!isCommutative())
607
+ {
608
+ ERROR("Basering must be commutative");
609
+ }
610
+ int ppl = printlevel - voice + 2;
611
+ int idealasgiven = 0; // default
612
+ int whicheng = 0; // default
613
+ int whichord = 0; // default
614
+ if (size(#)>0)
615
+ {
616
+ if (typeof(#[1])=="int" || typeof(#[1])=="number")
617
+ {
618
+ idealasgiven = int(#[1]);
619
+ }
620
+ if (size(#)>1)
621
+ {
622
+ if (typeof(#[2])=="int" || typeof(#[2])=="number")
623
+ {
624
+ whicheng = int(#[2]);
625
+ }
626
+ if (size(#)>2)
627
+ {
628
+ if (typeof(#[3])=="int" || typeof(#[3])=="number")
629
+ {
630
+ whichord = int(#[3]);
631
+ }
632
+ }
633
+ }
634
+ }
635
+ def save = basering;
636
+ int i;
637
+ int n = nvars(basering);
638
+ // step 0: get small generating set
639
+ I = simplify(I,2);
640
+ list L = smallGenCoDim(I,idealasgiven);
641
+ I = L[1];
642
+ int c = L[2];
643
+ kill L;
644
+ // step 1: setting up the multivariate Malgrange ideal
645
+ int r = size(I);
646
+ def D = makeMalgrange(I);
647
+ setring D;
648
+ dbprint(ppl-1,"// Computing in " + string(n+r) + "-th Weyl algebra:", D);
649
+ dbprint(ppl-1,"// The Malgrange ideal: ", IF);
650
+ // step 2: compute the b-function of the Malgrange ideal w.r.t. appropriate weights
651
+ intvec w = 1:r;
652
+ w[r+n] = 0;
653
+ dbprint(ppl,"// Computing the b-function of the Malgrange ideal...");
654
+ list L = bfctIdeal(IF,w,whicheng,whichord);
655
+ dbprint(ppl,"// ... done.");
656
+ dbprint(ppl-1,"// The b-function: ",L);
657
+ // step 3: shift the result
658
+ ring S = 0,s,dp;
659
+ list L = imap(D,L);
660
+ kill D;
661
+ if (size(L)==2)
662
+ {
663
+ ideal B = L[1];
664
+ ideal BB;
665
+ int nB = ncols(B);
666
+ for (i=nB; i>0; i--)
667
+ {
668
+ BB[i] = -B[nB-i+1]+c-r-1;
669
+ }
670
+ L[1] = BB;
671
+ }
672
+ else // should never get here: BS poly has non-rational roots
673
+ {
674
+ string str = L[3];
675
+ L = delete(L,3);
676
+ str = "poly @b = (" + str + ")*(" + string(fl2poly(L,"s")) + ");";
677
+ execute(str);
678
+ poly b = subst(@b,s,-s+c-r-1);
679
+ L = bFactor(b);
680
+ }
681
+ setring save;
682
+ list L = imap(S,L);
683
+ return(L);
684
+ }
685
+ example
686
+ {
687
+ "EXAMPLE:"; echo = 2;
688
+ ring R = 0,(x,y,z),dp;
689
+ ideal F = x^2+y^3, z;
690
+ list L = bfctVarIn(F);
691
+ L;
692
+ }
693
+
694
+ static proc smallGenCoDim (ideal I, int Iasgiven)
695
+ {
696
+ // call from K[x], returns list L
697
+ // L[1]=I or L[1]=smaller generating set of I
698
+ // L[2]=codimension(I)
699
+ int ppl = printlevel - voice + 2;
700
+ int n = nvars(basering);
701
+ int c;
702
+ if (attrib(I,"isSB"))
703
+ {
704
+ c = n - dim(I);
705
+ if (!Iasgiven)
706
+ {
707
+ list L = mstd(I);
708
+ }
709
+ }
710
+ else
711
+ {
712
+ def save = basering;
713
+ list RL = ringlist(save);
714
+ list @ord;
715
+ @ord[1] = list("dp", intvec(1:n));
716
+ @ord[2] = list("C", intvec(0));
717
+ RL[3] = @ord;
718
+ kill @ord;
719
+ if (size(RL)>4) // commutative G-algebra present
720
+ {
721
+ RL = RL[1..4];
722
+ }
723
+ def R = ring(RL);
724
+ kill RL;
725
+ setring R;
726
+ ideal I = imap(save,I);
727
+ if (!Iasgiven)
728
+ {
729
+ list L = mstd(I);
730
+ c = n - dim(L[1]);
731
+ setring save;
732
+ list L = imap(R,L);
733
+ }
734
+ else
735
+ {
736
+ I = std(I);
737
+ c = n - dim(I);
738
+ setring save;
739
+ }
740
+ kill R;
741
+ }
742
+ if (!Iasgiven)
743
+ {
744
+ if (size(L[2]) < size(I))
745
+ {
746
+ I = L[2];
747
+ dbprint(ppl,"// Found smaller generating set of the given variety: ", I);
748
+ }
749
+ else
750
+ {
751
+ dbprint(ppl,"// Have not found smaller generating set of the given variety.");
752
+ }
753
+ }
754
+ dbprint(ppl-1,"// The codim of the given variety is " + string(c) + ".");
755
+ if (!defined(L))
756
+ {
757
+ list L;
758
+ }
759
+ L[1] = I;
760
+ L[2] = c;
761
+ return(L);
762
+ }
763
+
764
+ /*
765
+ // Some more examples
766
+
767
+ static proc TXcups()
768
+ {
769
+ "EXAMPLE:"; echo = 2;
770
+ //TX tangent space of X=V(x^2+y^3)
771
+ ring R = 0,(x0,x1,y0,y1),Dp;
772
+ ideal F = x0^2+y0^3, 2*x0*x1+3*y0^2*y1;
773
+ printlevel = 0;
774
+ //ORD = "(a(1,1),a(1,1,1,1,1,1),dp)";
775
+ //eng = 0;
776
+ def A = SannfsVar(F);
777
+ setring A;
778
+ LD;
779
+ }
780
+
781
+ static proc ex47()
782
+ {
783
+ ring r7 = 0,(x0,x1,y0,y1),dp;
784
+ ideal I = x0^2+y0^3, 2*x0*x1+3*y0^2*y1;
785
+ bfctVarIn(I);
786
+ // second ex - too big
787
+ ideal J = x0^4+y0^5, 4*x0^3*x1+5*y0^4*y1;
788
+ bfctVarIn(J);
789
+ }
790
+
791
+ static proc ex48()
792
+ {
793
+ ring r8 = 0,(x1,x2,x3),dp;
794
+ ideal I = x1^3-x2*x3, x2^2-x1*x3, x3^2-x1^2*x2;
795
+ bfctVarIn(I);
796
+ }
797
+
798
+ static proc ex49 ()
799
+ {
800
+ ring r9 = 0,(z1,z2,z3,z4),dp;
801
+ ideal I = z3^2-z2*z4, z2^2*z3-z1*z4, z2^3-z1*z3;
802
+ bfctVarIn(I);
803
+ }
804
+
805
+ static proc ex410()
806
+ {
807
+ LIB "toric.lib";
808
+ ring r = 0,(z(1..7)),dp;
809
+ intmat A[3][7];
810
+ A = 6,4,2,0,3,1,0,0,1,2,3,0,1,0,0,0,0,0,1,1,2;
811
+ ideal I = toric_ideal(A,"pt");
812
+ I = std(I);
813
+ //ideal I = z(6)^2-z(3)*z(7), z(5)*z(6)-z(2)*z(7), z(5)^2-z(1)*z(7),
814
+ // z(4)*z(5)-z(3)*z(6), z(3)*z(5)-z(2)*z(6), z(2)*z(5)-z(1)*z(6),
815
+ // z(3)^2-z(2)*z(4), z(2)*z(3)-z(1)*z(4), z(2)^2-z(1)*z(3);
816
+ bfctVarIn(I,1); // no result yet
817
+ }
818
+ */