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,212 @@
1
+ ///////////////////////////////////////////////////////////////////////////////
2
+ version="version methods.lib 4.3.1.3 Feb_2023 "; //$Id: 7a36197a385ecb3774d2bfa2365fbfbda5183461 $
3
+ category="Miscellaneous";
4
+ info="
5
+ LIBRARY: methods.lib installing methods in Singular
6
+
7
+ AUTHORS: J. Boehm, boehm @ mathematik.uni-kl.de
8
+
9
+ OVERVIEW:
10
+
11
+ Methods select the function to execute by the types of the input tuple.
12
+ The central function is installMethod, which takes a hashtable associating a tuple of
13
+ input types to function names and creates a corresponding procedure.
14
+
15
+ HashTables are lists with arbitrary index sets. They can be created by the
16
+ command hashTable. Their size can be determined by the command size. Values
17
+ can be extracted by selectKey or the * operator. HashTables can also be added
18
+ using addHashTables or the + operator.
19
+
20
+ Methods can be added with the + operator.
21
+
22
+ TYPES:
23
+ Method the class of all methods
24
+ HashTable the class of all hash tables
25
+
26
+ KEYWORDS:
27
+ methods, hashtables
28
+
29
+
30
+ PROCEDURES:
31
+
32
+ installMethod install a method
33
+ method make a method
34
+ hashTable make a HashTable
35
+ selectKey select a key in a HashTable, can also be used by *
36
+ addHashTables add two HashTables, can also be used by +
37
+ ";
38
+
39
+ static proc mod_init()
40
+ {
41
+ newstruct("HashTable","list keys, list values");
42
+ system("install","HashTable","print",printHashTable,1);
43
+ system("install","HashTable","size",sizeHashTable,1);
44
+ system("install","HashTable","*",selectKey,2);
45
+ system("install","HashTable","+",addHashTables,2);
46
+
47
+ newstruct("Method","HashTable functionClosures");
48
+
49
+ system("install","Method","print",printMethod,1);
50
+ system("install","Method","+",addMethods,2);
51
+ }
52
+
53
+
54
+ proc hashTable(list k, list v)
55
+ "USAGE: hashTable(k, v); k,v,lists
56
+ RETURN: makes a HashTable with keys k and values v
57
+ EXAMPLE: example hashTable, shows an example
58
+ "
59
+ {
60
+ HashTable H;
61
+ H.keys = k;
62
+ H.values = v;
63
+ return(H);
64
+ }
65
+ example
66
+ { "EXAMPLE:"; echo=2;
67
+ HashTable H = hashTable(list("a","b","c"),list("aa","bb","cc"));
68
+ H;
69
+ }
70
+
71
+
72
+ proc printHashTable(HashTable H)
73
+ {
74
+ for (int j=1; j<=size(H); j++)
75
+ {
76
+ print(string((H.keys)[j])+" => "+string((H.values)[j]));
77
+ }
78
+ }
79
+
80
+ proc sizeHashTable(HashTable H)
81
+ {
82
+ return(size(H.keys));
83
+ }
84
+
85
+
86
+ proc selectKey(HashTable H, def k)
87
+ "USAGE: selectKey(H, k); H HashTable, k key
88
+ RETURN: returns the k-th value of H
89
+ EXAMPLE: example selectKey, shows an example
90
+ "
91
+ {
92
+ for (int j=1; j<=size(H); j++)
93
+ {
94
+ if ((H.keys)[j]==k){return((H.values)[j]);}
95
+ }
96
+ ERROR("key not found");
97
+ }
98
+ example
99
+ { "EXAMPLE:"; echo=2;
100
+ HashTable H = hashTable(list("a","b","c"),list("aa","bb","cc"));
101
+ selectKey(H,"b");
102
+ selectKey(H,"d");
103
+ H*"b";
104
+ }
105
+
106
+
107
+ proc addHashTables(HashTable H, HashTable W)
108
+ "USAGE: addHashTables(H, L); H HashTable, L HashTable
109
+ RETURN: joins two hash tables with disjoint key sets
110
+ THEORY: At the moment, the function does not check whether the key sets are disjoint.
111
+ EXAMPLE: example addHashTables, shows an example
112
+ "
113
+ {
114
+ HashTable D;
115
+ D.keys = (H.keys)+(W.keys);
116
+ D.values = (H.values)+(W.values);
117
+ return(D);
118
+ }
119
+ example
120
+ { "EXAMPLE:"; echo=2;
121
+ HashTable H = hashTable(list("a","b","c"),list("aa","bb","cc"));
122
+ HashTable W = hashTable(list("d","e","f"),list("aa","bb","cc"));
123
+ addHashTables(H,W);
124
+ H+W;
125
+ }
126
+
127
+ proc method(HashTable #)
128
+ {
129
+ Method M;
130
+ //typeof(#);
131
+ //if (typeof(#)=="HashTable"){
132
+ M.functionClosures = #;
133
+ //} else
134
+ //{
135
+ // HashTable H;
136
+ // H.keys=list(#[1]);
137
+ //H.values=list(#[2]);
138
+ //M.functionClosures = H;
139
+ //}
140
+ return(M);
141
+ }
142
+
143
+ proc printMethod(Method f)
144
+ {
145
+ print(f.functionClosures);
146
+ }
147
+
148
+ proc addMethods(Method f, Method g)
149
+ {
150
+ Method M;
151
+ HashTable H = (f.functionClosures)+(g.functionClosures);
152
+ M.functionClosures = H;
153
+ return(M);
154
+ }
155
+
156
+ proc installMethod(Method M,string fname)
157
+ "USAGE: installMethod(M, st); M Method, st string
158
+ RETURN: installs a method calling procedures according to M
159
+ EXAMPLE: example installMethod, shows an example
160
+ "
161
+ {
162
+ HashTable H = M.functionClosures;
163
+ //string fname = nameof(M);
164
+ //fname=fname[1..size(fname)-1];
165
+ string s = "";
166
+ string ff;
167
+ list v = H.values;
168
+ list k = H.keys;
169
+ string ki;
170
+ int i,j,l;
171
+ for (i=1; i<=size(H); i++)
172
+ {
173
+ ff = v[i];
174
+ ki="";
175
+ for (j=1; j<size(k[i]); j++)
176
+ {
177
+ ki=ki+"\""+k[i][j]+"\",";
178
+ }
179
+ ki=ki+"\""+k[i][size(k[i])]+"\"";
180
+ s=s+"branchTo("+ki+","+ff+");";
181
+ };
182
+ s=s+"ERROR(\"No method found\");";
183
+ //s;
184
+ intvec o=option(get);
185
+ option(noredefine);
186
+ proc `fname`=s;
187
+ exportto(Top,`fname`);
188
+ option(set,o);
189
+ }
190
+ example
191
+ { "EXAMPLE:"; echo=2;
192
+ proc square(int i){return(i^2);}; export(square);
193
+ HashTable H1 = hashTable(list(list("int")),list("square"));
194
+ Method m1 = method(H1);
195
+ installMethod(m1,"tst");
196
+ tst(2);
197
+ proc kbase2(ideal I,int n){return(kbase(I,n));};export(kbase2);
198
+ HashTable H2 = hashTable(list(list("ideal","int")),list("kbase2"));
199
+ Method m2=method(H2);
200
+ Method m=m1+m2;
201
+ installMethod(m,"tst");
202
+ ring R=0,(x,y),dp;
203
+ ideal I = x^3,y^7;
204
+ I=std(I);
205
+ tst(I,2);
206
+ HashTable F = hashTable(list(list("int"),list("ideal","int")),list("square","kbase2"));
207
+ Method m3 = method(F);
208
+ installMethod(m3,"tst");
209
+ tst(I,2);
210
+ tst(3);
211
+ }
212
+
@@ -0,0 +1,322 @@
1
+ ///////////////////////////////////////////////////////////////////////////////
2
+ version="version moddiq.lib 4.3.2.2 Jun_2023 "; // $Id: 1a9cf95b4aa16fae3f71be46f8cf9290b2a90199 $
3
+ category="Commutative Algebra";
4
+ info="
5
+ LIBRARY: moddiq.lib Double ideal quotient using modular methods
6
+
7
+ AUTHORS: Y. Ishihara yishihara@rikkyo.ac.jp
8
+
9
+ OVERVIEW:
10
+ A library for computing ideal quotient and saturation in the polynomial ring
11
+ over the rational numbers using modular methods.
12
+
13
+ REFERENCES:
14
+ M. Noro, K. Yokoyama: Usage of Modular Techniques for Efficient Computation of Ideal Operations.
15
+ Math.Comput.Sci. 12: 1, 1-32. (2017).
16
+
17
+ PROCEDURES:
18
+ modQuotient(I,J); standard basis of (I:J) using modular methods
19
+ modSat(I,J); standard basis of (I:J^\infty) using modular methods
20
+ ";
21
+ //UPCOMING PROCEDURES:
22
+ // moddiq(I,J); standard basis of (I:(I:J)) using modular methods
23
+ // modAssCheck(I,P); check if P is associated of I or not using modular methods
24
+ // IntermediatePrimaryDecomposition(I); compute intermediate primary decomposition of I
25
+ // by using modular method
26
+
27
+ LIB "polylib.lib";
28
+ LIB "elim.lib";
29
+ LIB "modular.lib";
30
+ LIB "modstd.lib";
31
+
32
+ proc modQuotient(def I, def J)
33
+ "USAGE: modQuotient(I,J); I,J ideal
34
+ RETURN: a standard basis of (I:J)
35
+ NOTE: The procedure computes a standard basis of (I:J) (over the rational
36
+ numbers) by using modular methods.
37
+ SEE ALSO: modular; quotient
38
+ EXAMPLE: example modQuotient; shows an example"
39
+ {
40
+ if(system("--cpus")<1) { return(quotient(I,J));}
41
+ I = modStd(I);
42
+ def IJ=modular("quotient",list(I,J),primeTest_quotient,
43
+ Modstd::deleteUnluckyPrimes_std,pTest_quotient,finalTest_quotient);
44
+ return(IJ);
45
+ }
46
+ example
47
+ {
48
+ "EXAMPLE:";
49
+ echo=2;
50
+ ring r=0,x(1..6),dp;
51
+ ideal i=cyclic(6);
52
+ ideal j=-15*var(5)+16*var(6)^3-60*var(6)^2+225*var(6)-4,2*var(5)^2-7*var(5)+2*var(6)^2-7*var(6)+28,(4*var(6)-1)*var(5)-var(6)+4,4*var(1)+var(5)+var(6),4*var(2)+var(5)+var(6),4*var(3)+var(5)+var(6),4*var(4)+var(5)+var(6);
53
+ modQuotient(i,modQuotient(i,j));
54
+ ideal id2=x(1)^2+x(1)*x(2)*x(3),x(2)^2-x(3)^3*x(2),x(3)^3+x(2)^5*x(1)*x(3);
55
+ quotient(id2,maxideal(3));
56
+ }
57
+
58
+ /* test if a prime number p is permissible for an ideal I
59
+ * i.e. it does not divide the denominator of any of the coefficients
60
+ * or numerator of any of the leading coefficients */
61
+ static proc isPermissible(int p,ideal I)
62
+ {
63
+ /* erase zero generators */
64
+ def J = simplify(I, 2);
65
+
66
+ /* clear denominators and compute the leading coefficients of
67
+ the cleared one and the original one*/
68
+ int n = ncols(J);
69
+ int i;
70
+ ideal K;
71
+ for(i = n; i > 0; i--)
72
+ {
73
+ K[i] = leadcoef(cleardenom(J[i]))*var(1)+leadcoef(J[i]);
74
+ }
75
+
76
+ /* change to characteristic p */
77
+ def br = basering;
78
+ list lbr = ringlist(br);
79
+ if (typeof(lbr[1]) == "int") { lbr[1] = p; }
80
+ else { lbr[1][1] = p; }
81
+ def rp = ring(lbr);
82
+ setring(rp);
83
+ ideal Kp = fetch(br, K);
84
+
85
+ /* test if any leading coefficient is missing */
86
+ if (intvec(size(Kp[1..n])) != 2:n) { setring(br); return(0); }
87
+ setring(br);
88
+ return(1);
89
+ }
90
+
91
+ /* test if the prime p is permissible for I and J */
92
+ static proc primeTest_quotient(int p, alias list args)
93
+ {
94
+ def I = args[1];
95
+ def J = args[2];
96
+ if(!isPermissible(p,I)){print("not permissible");return(0);}
97
+ if(!isPermissible(p,J)){print("not permissible");return(0);}
98
+ return(1);
99
+ }
100
+
101
+ /* test if 'command' applied to 'args' in characteristic p is the same as
102
+ 'result' mapped to characteristic p */
103
+ static proc pTest_quotient(string command, alias list args, alias def result,
104
+ int p)
105
+ {
106
+ /* change to characteristic p */
107
+ def br = basering;
108
+ list lbr = ringlist(br);
109
+ if (typeof(lbr[1]) == "int") { lbr[1] = p; }
110
+ else { lbr[1][1] = p; }
111
+ def rp = ring(lbr);
112
+ setring(rp);
113
+ list args_fetched = fetch(br, args);
114
+ def Ip = args_fetched[1];
115
+ def Jp = args_fetched[2];
116
+ def Gp = fetch(br, result);
117
+ def IJp;
118
+ attrib(Ip, "isSB", 1);
119
+ attrib(Gp, "isSB", 1);
120
+
121
+ /* test if (Ip:Jp) is in Gp */
122
+ /* compute command(args) */
123
+ execute("IJp = "+command+"(Ip,Jp);");
124
+ int i;
125
+ for (i = ncols(IJp); i > 0; i--)
126
+ {
127
+ if (reduce(IJp[i], Gp, 1) != 0)
128
+ {
129
+ setring(br);
130
+ return(0);
131
+ }
132
+ }
133
+
134
+ /* test if Gp is in (Ip:Jp) */
135
+ ideal GpJp=Gp*Jp;
136
+ for (i = ncols(GpJp); i > 0; i--)
137
+ {
138
+ if (reduce(GpJp[i], Ip, 1) != 0) { setring(br); return(0); }
139
+ }
140
+ setring(br);
141
+ return(1);
142
+ }
143
+
144
+ /* test if 'result' is a GB of (I:J) */
145
+ static proc finalTest_quotient(string command, alias list args, def result)
146
+ {
147
+ /* test if result is in (I:J)*/
148
+ attrib(result, "isSB", 1);
149
+ int i;
150
+ def IJ=result*args[2];
151
+ for (i = ncols(IJ); i > 0; i--)
152
+ {
153
+ if (reduce(IJ[i], args[1], 1) != 0) {print("fail") return(0); }
154
+ }
155
+ return(1);
156
+ }
157
+
158
+ proc modSat(def I, def J)
159
+ "USAGE: modSat(I,J); I,J ideal
160
+ RETURN: a standard basis of (I:J^\infty)
161
+ NOTE: The procedure computes a standard basis of (I:J^\infty) (over the rational
162
+ numbers) by using modular methods.
163
+ KEYWORDS: saturation
164
+ SEE ALSO: modular; sat_with_exp
165
+ EXAMPLE: example modSat; shows an example"
166
+ {
167
+ I = modStd(I);
168
+ def IJ=modular("sat_with_exp",list(I,J),primeTest_sat,
169
+ deleteUnluckyPrimes_sat,pTest_sat,finalTest_sat);
170
+ return(IJ);
171
+ }
172
+ example
173
+ {
174
+ "EXAMPLE:";
175
+ echo=2;
176
+ ring r=0,x(1..6),dp;
177
+ ideal i=cyclic(6);
178
+ ideal j=-15*var(5)+16*var(6)^3-60*var(6)^2+225*var(6)-4,2*var(5)^2-7*var(5)+2*var(6)^2-7*var(6)+28,(4*var(6)-1)*var(5)-var(6)+4,4*var(1)+var(5)+var(6),4*var(2)+var(5)+var(6),4*var(3)+var(5)+var(6),4*var(4)+var(5)+var(6);
179
+ modSat(i,modSat(i,j)[1])[1];
180
+ poly F = x(1)^5+x(2)^5+(x(1)-x(2))^2*x(1)*x(2)*x(3);
181
+ ideal J = jacob(F);
182
+ modSat(J,maxideal(1));
183
+ }
184
+
185
+ /* test if the prime p is permissible for I and J */
186
+ static proc primeTest_sat(int p, alias list args)
187
+ {
188
+ return(primeTest_quotient(p,args));
189
+ }
190
+
191
+ /* find entries in modresults which come from unlucky primes.
192
+ * For this, sort the entries into categories depending on their leading
193
+ * ideal and return the indices in all but the biggest category.
194
+ * Referring to Modstd::deleteUnlickyPrimes_std. */
195
+ static proc deleteUnluckyPrimes_sat(alias list modresults)
196
+ {
197
+ int size_modresults = size(modresults);
198
+
199
+ /* sort results into categories.
200
+ * each category is represented by three entries:
201
+ * - the corresponding leading ideal
202
+ * - the number of elements
203
+ * - the indices of the elements
204
+ */
205
+ list cat;
206
+ int size_cat;
207
+ def L=modresults[1][1]; // dummy assign to get the type of L
208
+ int i;
209
+ int j;
210
+ for (i = 1; i <= size_modresults; i++)
211
+ {
212
+ L = lead(modresults[i][1]);
213
+ attrib(L, "isSB", 1);
214
+ for (j = 1; j <= size_cat; j++)
215
+ {
216
+ if (size(L) == size(cat[j][1]))
217
+ {
218
+ if (size(reduce(L, cat[j][1], 5)) == 0)
219
+ {
220
+ if (size(reduce(cat[j][1], L, 5)) == 0)
221
+ {
222
+ cat[j][2] = cat[j][2]+1;
223
+ cat[j][3][cat[j][2]] = i;
224
+ break;
225
+ }
226
+ }
227
+ }
228
+ }
229
+ if (j > size_cat)
230
+ {
231
+ size_cat++;
232
+ cat[size_cat] = list();
233
+ cat[size_cat][1] = L;
234
+ cat[size_cat][2] = 1;
235
+ cat[size_cat][3] = list(i);
236
+ }
237
+ }
238
+
239
+ /* find the biggest categories */
240
+ int cat_max = 1;
241
+ int max = cat[1][2];
242
+ for (i = 2; i <= size_cat; i++)
243
+ {
244
+ if (cat[i][2] > max)
245
+ {
246
+ cat_max = i;
247
+ max = cat[i][2];
248
+ }
249
+ }
250
+
251
+ /* return all other indices */
252
+ list unluckyIndices;
253
+ for (i = 1; i <= size_cat; i++)
254
+ {
255
+ if (i != cat_max) { unluckyIndices = unluckyIndices + cat[i][3]; }
256
+ }
257
+ return(unluckyIndices);
258
+ }
259
+
260
+ /* test if 'command' applied to 'args' in characteristic p is the same as
261
+ 'result' mapped to characteristic p */
262
+ static proc pTest_sat(string command, alias list args, alias def result,
263
+ int p)
264
+ {
265
+ /* change to characteristic p */
266
+ def br = basering;
267
+ list lbr = ringlist(br);
268
+ if (typeof(lbr[1]) == "int") { lbr[1] = p; }
269
+ else { lbr[1][1] = p; }
270
+ def rp = ring(lbr);
271
+ setring(rp);
272
+ list args_fetched = fetch(br, args);
273
+ def Ip = args_fetched[1];
274
+ def Jp = args_fetched[2];
275
+ def pResult = fetch(br, result);
276
+ def Gp=pResult[1];
277
+ def IJp;
278
+ attrib(Ip, "isSB", 1);
279
+ attrib(Gp, "isSB", 1);
280
+
281
+ /* test if (Ip:Jp^\infty) is in Gp */
282
+ /* compute command(args) */
283
+ execute("IJp = "+command+"(Ip,Jp)[1];");
284
+ int i;
285
+ for (i = ncols(IJp); i > 0; i--)
286
+ {
287
+ if (reduce(IJp[i], Gp, 5) != 0)
288
+ {
289
+ setring(br);
290
+ return(0);
291
+ }
292
+ }
293
+
294
+ /* test if Gp is in (Ip:Jp^\infty) */
295
+ for (i = ncols(Gp); i > 0; i--)
296
+ {
297
+ if (reduce(Gp[i], IJp, 5) != 0) { setring(br); return(0); }
298
+ }
299
+ setring(br);
300
+ return(1);
301
+ }
302
+
303
+ /* test if 'result' is a GB of (I:J^\infty) */
304
+ static proc finalTest_sat(string command, alias list args, def result)
305
+ {
306
+ /* test if result is in (I:J^\infty)*/
307
+ int i;
308
+ ideal H = result[1];
309
+ int m=0;
310
+ for (i = 0 ; i < result[2]; i++){m++;}
311
+ ideal JGm;
312
+ for (i = 0 ; i < size(args[2]); i++)
313
+ {
314
+ JGm = JGm + args[2]^m;
315
+ }
316
+ def K=H*JGm;
317
+ for (i = ncols(K); i > 0; i--)
318
+ {
319
+ if (reduce(K[i], args[1], 5) != 0) {print("fail") return(0); }
320
+ }
321
+ return(1);
322
+ }
@@ -0,0 +1,181 @@
1
+ ///////////////////////////////////////////////////////////////////////////////
2
+ version="version modfinduni.lib 4.4.0.0 Dec_2023 "; // $Id: 69c17fd1790f448fc2f1a7f30ac28a8aec62c6a6 $
3
+ category="Commutative Algebra";
4
+ info="
5
+ LIBRARY: modfinduni.lib finduni using modular methods
6
+
7
+ AUTHORS: H. Schoenemann hannes@mathematik.uni-kl.de
8
+
9
+ OVERVIEW: parallel version of finduni via modular.lib
10
+
11
+ PROCEDURES:
12
+ modFinduni(I); finduni of I using modular methods
13
+ ";
14
+
15
+ LIB "modular.lib";
16
+
17
+ proc modFinduni(ideal I)
18
+ "USAGE: modFinduni(I); I ideal
19
+ RETURN:
20
+ NOTE: The procedure computes a standard basis of I (over the rational
21
+ numbers) by using modular methods.
22
+ SEE ALSO: modular
23
+ EXAMPLE: example modFinduni; shows an example"
24
+ {
25
+ /* save options */
26
+ intvec opt = option(get);
27
+ option(redSB);
28
+ /* choose the right command */
29
+ string command = "nFinduni";
30
+
31
+ /* call modular() */
32
+ I = modular(command, list(I), primeTest_std,
33
+ deleteUnluckyPrimes_default, pTest_default,
34
+ finalTest_finduni,536870909);
35
+ /* return the result */
36
+ option(set, opt);
37
+ return(I);
38
+ }
39
+ example
40
+ {
41
+ "EXAMPLE:";
42
+ echo = 2;
43
+ }
44
+
45
+ /* test if the prime p is suitable for the input, i.e. it does not divide
46
+ * the numerator or denominator of any of the coefficients */
47
+ static proc primeTest_std(int p, alias list args)
48
+ {
49
+ /* erase zero generators */
50
+ def I = simplify(args[1], 2);
51
+
52
+ /* clear denominators and count the terms */
53
+ def J=I; // dummy assign, to get the type of I
54
+ ideal K;
55
+ int n = ncols(I);
56
+ intvec sizes;
57
+ number cnt;
58
+ int i;
59
+ for(i = n; i > 0; i--)
60
+ {
61
+ J[i] = cleardenom(I[i]);
62
+ cnt = leadcoef(J[i])/leadcoef(I[i]);
63
+ K[i] = numerator(cnt)*var(1)+denominator(cnt);
64
+ }
65
+ sizes = size(J[1..n]);
66
+
67
+ /* change to characteristic p */
68
+ def br = basering;
69
+ list lbr = ringlist(br);
70
+ if (typeof(lbr[1]) == "int") { lbr[1] = p; }
71
+ else { lbr[1][1] = p; }
72
+ def rp = ring(lbr);
73
+ setring(rp);
74
+ def Jp = fetch(br, J);
75
+ ideal Kp = fetch(br, K);
76
+
77
+ /* test if any coefficient is missing */
78
+ if (intvec(size(Kp[1..n])) != 2:n) { setring(br); return(0); }
79
+ if (intvec(size(Jp[1..n])) != sizes) { setring(br); return(0); }
80
+ setring(br);
81
+ return(1);
82
+ }
83
+
84
+ static proc deleteUnluckyPrimes_default(alias list modresults)
85
+ {
86
+ return(list());
87
+ }
88
+
89
+ proc nFinduni(ideal I)
90
+ {
91
+ attrib(I,"isSB",1);
92
+ I=finduni(I);
93
+ I=simplify(I,1);
94
+ return(I);
95
+ }
96
+
97
+ /* find entries in modresults which come from unlucky primes.
98
+ * For this, sort the entries into categories depending on their leading
99
+ * ideal and return the indices in all but the biggest category. */
100
+ static proc deleteUnluckyPrimes_std(alias list modresults)
101
+ {
102
+ int size_modresults = size(modresults);
103
+
104
+ /* sort results into categories.
105
+ * each category is represented by three entries:
106
+ * - the corresponding leading ideal
107
+ * - the number of elements
108
+ * - the indices of the elements
109
+ */
110
+ list cat;
111
+ int size_cat;
112
+ def L=modresults[1]; // dummy assign to get the type of L
113
+ int i;
114
+ int j;
115
+ for (i = 1; i <= size_modresults; i++)
116
+ {
117
+ L = lead(modresults[i]);
118
+ attrib(L, "isSB", 1);
119
+ for (j = 1; j <= size_cat; j++)
120
+ {
121
+ if (size(L) == size(cat[j][1])
122
+ && size(reduce(L, cat[j][1], 5)) == 0
123
+ && size(reduce(cat[j][1], L, 5)) == 0)
124
+ {
125
+ cat[j][2] = cat[j][2]+1;
126
+ cat[j][3][cat[j][2]] = i;
127
+ break;
128
+ }
129
+ }
130
+ if (j > size_cat)
131
+ {
132
+ size_cat++;
133
+ cat[size_cat] = list();
134
+ cat[size_cat][1] = L;
135
+ cat[size_cat][2] = 1;
136
+ cat[size_cat][3] = list(i);
137
+ }
138
+ }
139
+
140
+ /* find the biggest categories */
141
+ int cat_max = 1;
142
+ int max = cat[1][2];
143
+ for (i = 2; i <= size_cat; i++)
144
+ {
145
+ if (cat[i][2] > max)
146
+ {
147
+ cat_max = i;
148
+ max = cat[i][2];
149
+ }
150
+ }
151
+
152
+ /* return all other indices */
153
+ list unluckyIndices;
154
+ for (i = 1; i <= size_cat; i++)
155
+ {
156
+ if (i != cat_max) { unluckyIndices = unluckyIndices + cat[i][3]; }
157
+ }
158
+ return(unluckyIndices);
159
+ }
160
+ ////////////////////////////////////////////////////////////////////////////////
161
+
162
+ /* test if 'result' is finduni of the input ideal */
163
+ static proc finalTest_finduni(string command, alias list args, def result)
164
+ {
165
+ /* test if args[1] is in result */
166
+ int i;
167
+ ideal I=args[1];
168
+ attrib(I,"isSB",1);
169
+ for (i = ncols(result); i > 0; i--)
170
+ {
171
+ if (reduce(result[i], I, 5) != 0) { return(0); }
172
+ }
173
+ return(1);
174
+ }
175
+
176
+ static proc pTest_default(string command, alias list args, alias def result,
177
+ int p)
178
+ {
179
+ return(1);
180
+ }
181
+