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,699 @@
1
+ /////////////////////////////////////////////////////////////////////////////
2
+ version="version KVequiv.lib 4.1.2.0 Feb_2019 "; // $Id: 4e14646d4b4d9383c89258c1a0c7e85df7be32f1 $
3
+ info="
4
+ LIBRARY: KVequiv.lib PROCEDURES RELATED TO K_V-EQUIVALENCE
5
+ AUTHOR: Anne Fruehbis-Krueger, anne@mathematik.uni-kl.de
6
+
7
+ OVERVIEW:
8
+ Let (V,0) be a complete intersection singularity in (C^p,0) and
9
+ f_0:(C^n,0) --> (C^p,0) an analytic map germ, which is viewed as a
10
+ section ov V so that the singularity V_0=f_0^-1(V) is a pullback.
11
+ K_V equivalence is then given by the group
12
+ K_V={g | g(C^n x V) (subset) C^n x V} (subset) K,
13
+ where K is the contact group of Mather. This library provides
14
+ functionality for computing K_V tangent space, K_V normal space
15
+ and liftable vector fields.
16
+ A more detailed introduction to K_V equivalence can e.g. be found
17
+ in [Damon,J.: On the legacy of free divisors, Amer.J.Math. 120,453-492]
18
+
19
+ PROCEDURES:
20
+ derlogV(iV); derlog(V(iV))
21
+ KVtangent(I,rname,dername,k) K_V tangent space to given singularity
22
+ KVversal(KVtan,I,rname,idname) K_V versal family
23
+ KVvermap(KVtan,I) section inducing K_V versal family
24
+ lft_vf(I,rname,idname) liftable vector fields
25
+
26
+ REMARKS:
27
+ * monomial ordering should be of type (c,...)
28
+ * monomial ordering should be local on the original (2) rings
29
+
30
+ SEE ALSO: sing_lib, deform_lib, spcurve_lib
31
+ ";
32
+ ////////////////////////////////////////////////////////////////////////////
33
+ // REQUIRED LIBRARIES
34
+ ////////////////////////////////////////////////////////////////////////////
35
+
36
+ // first the ones written in Singular
37
+ LIB "polylib.lib";
38
+
39
+ // then the ones written in C/C++
40
+ LIB("loctriv.so");
41
+
42
+ ////////////////////////////////////////////////////////////////////////////
43
+ // PROCEDURES
44
+ ////////////////////////////////////////////////////////////////////////////
45
+
46
+ proc derlogV(ideal iV)
47
+ "USAGE: @code{derlogV(iV)}; @code{iV} ideal
48
+ RETURN: matrix whose columns generate derlog(V(iV)),
49
+ i.e. the module of vector fields on (C^p,0) tangent to V
50
+ EXAMPLE: @code{example derlogV}; shows an example
51
+ "
52
+ {
53
+ //--------------------------------------------------------------------------
54
+ // Compute jacobian matrix of iV and add all iV[i]*gen(j) as extra columns
55
+ //--------------------------------------------------------------------------
56
+ int j;
57
+ def jiV=jacob(iV);
58
+ module mmV=jiV;
59
+ for(int i=1;i<=size(iV);i++)
60
+ {
61
+ for(j=1;j<=size(iV);j++)
62
+ {
63
+ mmV=mmV,iV[i]*gen(j);
64
+ }
65
+ }
66
+ //--------------------------------------------------------------------------
67
+ // The generators of derlog(V) are given by the part of the syzygy matrix
68
+ // of mmV which deals with the jacobian matrix
69
+ //--------------------------------------------------------------------------
70
+ def smmV=syz(mmV);
71
+ matrix smaV=matrix(smmV);
72
+ matrix smV[nvars(basering)][ncols(smaV)]=
73
+ smaV[1..nvars(basering),1..ncols(smaV)];
74
+ return(smV);
75
+ }
76
+ example
77
+ { "EXAMPLE:";echo=2;
78
+ ring r=0,(a,b,c,d,e,f),ds;
79
+ ideal i=ad-bc,af-be,cf-de;
80
+ def dV=derlogV(i);
81
+ print(dV);
82
+ }
83
+ ////////////////////////////////////////////////////////////////////////////
84
+
85
+ proc KVtangent(ideal mapi,string rname,string dername,list #)
86
+ "USAGE: @code{KVtangent(I,rname,dername[,k])}; @code{I} ideal
87
+ @code{rname,dername} strings
88
+ @code{[k]} int
89
+ RETURN: K_V tangent space to a singularity given as a section of a
90
+ model singularity
91
+ NOTE: The model singularity lives in the ring given by rname and
92
+ its derlog(V) is given by dername in that ring. The section is
93
+ specified by the generators of mapi. If k is given, the first k
94
+ variables are used as variables, the remaining ones as parameters
95
+ EXAMPLE: @code{example KVtangent}; shows an example
96
+ "
97
+ {
98
+ //--------------------------------------------------------------------------
99
+ // Sanity Checks
100
+ //--------------------------------------------------------------------------
101
+ if(size(#)==0)
102
+ {
103
+ int k=nvars(basering);
104
+ }
105
+ else
106
+ {
107
+ if(typeof(#[1])=="int")
108
+ {
109
+ int k=#[1];
110
+ }
111
+ else
112
+ {
113
+ int k=nvars(basering);
114
+ }
115
+ }
116
+ def baser=basering;
117
+ string teststr="setring " + rname + ";";
118
+ execute(teststr);
119
+ if(nameof(basering)!=rname)
120
+ {
121
+ ERROR("rname not name of a ring");
122
+ }
123
+ teststr="string typeder=typeof(" + dername + ");";
124
+ execute(teststr);
125
+ if((typeder!="matrix")&&(typeder!="module"))
126
+ {
127
+ ERROR("dername not name of a matrix or module in rname");
128
+ }
129
+ setring(baser);
130
+ if((k > nvars(basering))||(k < 1))
131
+ {
132
+ ERROR("k should be between 1 and the number of variables");
133
+ }
134
+ //--------------------------------------------------------------------------
135
+ // Define the map giving the section and use it for substituting the
136
+ // variables of the ring rname by the entries of mapi in the matrix
137
+ // given by dername
138
+ //--------------------------------------------------------------------------
139
+ setring baser;
140
+ string mapstr="map f0=" + rname + ",";
141
+ for(int i=1;i<ncols(mapi);i++)
142
+ {
143
+ mapstr=mapstr + string(mapi[i]) + ",";
144
+ }
145
+ mapstr=mapstr + string(mapi[ncols(mapi)]) + ";";
146
+ execute(mapstr);
147
+ string derstr="def derim=f0(" + dername + ");";
148
+ execute(derstr);
149
+ //---------------------------------------------------------------------------
150
+ // Form the derivatives of mapi by the first k variables
151
+ //---------------------------------------------------------------------------
152
+ matrix jmapi[ncols(mapi)][k];
153
+ for(i=1;i<=k;i++)
154
+ {
155
+ jmapi[1..nrows(jmapi),i]=diff(mapi,var(i));
156
+ }
157
+ //---------------------------------------------------------------------------
158
+ // Put everything together to get the tangent space
159
+ //---------------------------------------------------------------------------
160
+ string nvstr="int nvmodel=nvars(" + rname + ");";
161
+ execute(nvstr);
162
+ matrix M[nrows(derim)][ncols(derim)+k];
163
+ M[1..nrows(M),1..ncols(derim)]=derim[1..nrows(derim),1..ncols(derim)];
164
+ M[1..nrows(M),(ncols(derim)+1)..ncols(M)]=
165
+ jmapi[1..nrows(M),1..k];
166
+ return(M);
167
+ }
168
+ example
169
+ { "EXAMPLE:";echo=2;
170
+ ring ry=0,(a,b,c,d),ds;
171
+ ideal idy=ab,cd;
172
+ def dV=derlogV(idy);
173
+ echo=1; export ry; export dV; echo=2;
174
+ ring rx=0,(x,y,z),ds;
175
+ ideal mi=x-z+2y,x+y-z,y-x-z,x+2z-3y;
176
+ def M=KVtangent(mi,"ry","dV");
177
+ print(M);
178
+ M[1,5];
179
+ echo=1; kill ry;
180
+ }
181
+ /////////////////////////////////////////////////////////////////////////////
182
+
183
+ proc KVversal(matrix KVtan, ideal mapi, string rname, string idname)
184
+ "USAGE: @code{KVversal(KVtan,I,rname,idname)}; @code{KVtan} matrix
185
+ @code{I} ideal
186
+ @code{rname,idname} strings
187
+ RETURN: list; The first entry of the list is the new ring in which the
188
+ K_V versal family lives, the second is the name of the ideal
189
+ describing a K_V versal family of a singularity given as section
190
+ of a model singularity (which was specified as idname in rname)
191
+ NOTE: The section is given by the generators of I, KVtan is the matrix
192
+ describing the K_V tangent space to the singularity (as returned
193
+ by KVtangent). rname denotes the ring in which the model
194
+ singularity lives, and idname is the name of the ideal in this ring
195
+ defining the singularity.
196
+ EXAMPLE: @code{example KVversal}; shows an example
197
+ "
198
+ {
199
+ //---------------------------------------------------------------------------
200
+ // Sanity checks
201
+ //---------------------------------------------------------------------------
202
+ def baser=basering;
203
+ string teststr="setring " + rname + ";";
204
+ execute(teststr);
205
+ if(nameof(basering)!=rname)
206
+ {
207
+ ERROR("rname not name of a ring");
208
+ }
209
+ teststr="string typeid=typeof(" + idname + ");";
210
+ execute(teststr);
211
+ if(typeid!="ideal")
212
+ {
213
+ ERROR("idname not name of an ideal in rname");
214
+ }
215
+ setring baser;
216
+ //---------------------------------------------------------------------------
217
+ // Find a monomial basis of the K_V normal space
218
+ // and check whether we can define new variables A(i)
219
+ //---------------------------------------------------------------------------
220
+ module KVt=KVtan;
221
+ module KVts=std(KVt);
222
+ module kbKVt=kbase(KVts);
223
+ for(int i=1; i<=size(kbKVt); i++)
224
+ {
225
+ if(rvar(A(i)))
226
+ {
227
+ int jj=-1;
228
+ break;
229
+ }
230
+ }
231
+ if (defined(jj)>1)
232
+ {
233
+ if (jj==-1)
234
+ {
235
+ ERROR("Your ring contains a variable A(i)!");
236
+ }
237
+ }
238
+ //---------------------------------------------------------------------------
239
+ // Extend our current ring by adjoining the correct number of variables
240
+ // A(i) for the parameters and copy our objects to this ring
241
+ //---------------------------------------------------------------------------
242
+ def rbas=basering;
243
+ ring rtemp=0,(A(1..size(kbKVt))),(c,dp);
244
+ def rpert=rbas + rtemp;
245
+ setring rpert;
246
+ def mapi=imap(rbas,mapi);
247
+ def kbKVt=imap(rbas,kbKVt);
248
+ matrix mapv[ncols(mapi)][1]=mapi; // I hate the conversion from ideal
249
+ vector mapV=mapv[1]; // to vector
250
+ //---------------------------------------------------------------------------
251
+ // Build up the map of the perturbed section and apply it to the ideal
252
+ // idname
253
+ //---------------------------------------------------------------------------
254
+ for(i=1;i<=size(kbKVt);i++)
255
+ {
256
+ mapV=mapV+A(i)*kbKVt[i];
257
+ }
258
+
259
+ string mapstr="map fpert=" + rname + ",";
260
+ for(int i=1;i<size(mapV);i++)
261
+ {
262
+ mapstr=mapstr + string(mapV[i]) + ",";
263
+ }
264
+ mapstr=mapstr + string(mapV[size(mapV)]) + ";";
265
+ execute(mapstr);
266
+ string idstr="ideal Ipert=fpert(" + idname + ");";
267
+ execute(idstr);
268
+ //---------------------------------------------------------------------------
269
+ // Return our new ring and the name of the perturbed ideal
270
+ //---------------------------------------------------------------------------
271
+ export Ipert;
272
+ list retlist=rpert,"Ipert";
273
+ return(retlist);
274
+ }
275
+ example
276
+ { "EXAMPLE:";echo=2;
277
+ ring ry=0,(a,b,c,d),ds;
278
+ ideal idy=ab,cd;
279
+ def dV=derlogV(idy);
280
+ echo=1;
281
+ export ry; export dV; export idy; echo=2;
282
+ ring rx=0,(x,y,z),ds;
283
+ ideal mi=x-z+2y,x+y-z,y-x-z,x+2z-3y;
284
+ def M=KVtangent(mi,"ry","dV");
285
+ list li=KVversal(M,mi,"ry","idy");
286
+ def rnew=li[1];
287
+ setring rnew;
288
+ `li[2]`;
289
+ echo=1;
290
+ setring ry; kill idy; kill dV; setring rx; kill ry;
291
+ }
292
+ /////////////////////////////////////////////////////////////////////////////
293
+
294
+ proc KVvermap(matrix KVtan, ideal mapi)
295
+ "USAGE: @code{KVvermap(KVtan,I)}; @code{KVtan} matrix, @code{I} ideal
296
+ RETURN: list; The first entry of the list is the new ring in which the
297
+ versal object lives, the second specifies a map describing the
298
+ section which yields a K_V versal family of the original
299
+ singularity which was given as section of a model singularity
300
+ NOTE: The section is given by the generators of I, KVtan is the matrix
301
+ describing the K_V tangent space to the singularity (as returned
302
+ by KVtangent).
303
+ EXAMPLE: @code{example KVvermap}; shows an example
304
+ "
305
+ {
306
+ //---------------------------------------------------------------------------
307
+ // Find a monomial basis of the K_V normal space
308
+ // and check whether we can define new variables A(i)
309
+ //---------------------------------------------------------------------------
310
+ module KVt=KVtan;
311
+ module KVts=std(KVt);
312
+ module kbKVt=kbase(KVts);
313
+ for(int i=1; i<=size(kbKVt); i++)
314
+ {
315
+ if(rvar(A(i)))
316
+ {
317
+ int jj=-1;
318
+ break;
319
+ }
320
+ }
321
+ if (defined(jj)>1)
322
+ {
323
+ if (jj==-1)
324
+ {
325
+ ERROR("Your ring contains a variable A(i)!");
326
+ }
327
+ }
328
+ //---------------------------------------------------------------------------
329
+ // Extend our current ring by adjoining the correct number of variables
330
+ // A(i) for the parameters and copy our objects to this ring
331
+ //---------------------------------------------------------------------------
332
+ def rbas=basering;
333
+ ring rtemp=0,(A(1..size(kbKVt))),(c,dp);
334
+ def rpert=rbas + rtemp;
335
+ setring rpert;
336
+ def mapi=imap(rbas,mapi);
337
+ def kbKVt=imap(rbas,kbKVt);
338
+ matrix mapv[ncols(mapi)][1]=mapi;
339
+ vector mapV=mapv[1];
340
+ //---------------------------------------------------------------------------
341
+ // Build up the map of the perturbed section
342
+ //---------------------------------------------------------------------------
343
+ for(i=1;i<=size(kbKVt);i++)
344
+ {
345
+ mapV=mapV+A(i)*kbKVt[i];
346
+ }
347
+ ideal mappert=mapV[1..size(mapV)];
348
+ //---------------------------------------------------------------------------
349
+ // Return the new ring and the name of an ideal describing the perturbed map
350
+ //---------------------------------------------------------------------------
351
+ export mappert;
352
+ list retlist=basering,"mappert";
353
+ return(retlist);
354
+ }
355
+ example
356
+ { "EXAMPLE:";echo=2;
357
+ ring ry=0,(a,b,c,d),ds;
358
+ ideal idy=ab,cd;
359
+ def dV=derlogV(idy);
360
+ echo=1;
361
+ export ry; export dV; export idy; echo=2;
362
+ ring rx=0,(x,y,z),ds;
363
+ ideal mi=x-z+2y,x+y-z,y-x-z,x+2z-3y;
364
+ def M=KVtangent(mi,"ry","dV");
365
+ list li=KVvermap(M,mi);
366
+ def rnew=li[1];
367
+ setring rnew;
368
+ `li[2]`;
369
+ echo=1;
370
+ setring ry; kill idy; kill dV; setring rx; kill ry;
371
+ }
372
+ /////////////////////////////////////////////////////////////////////////////
373
+
374
+ proc lft_vf(ideal mapi, string rname, string idname, intvec wv, int b, list #)
375
+ "USAGE: @code{lft_vf(I,rname,iname,wv,b[,any])}
376
+ @code{I} ideal
377
+ @code{wv} intvec
378
+ @code{b} int
379
+ @code{rname,iname} strings
380
+ @code{[any]} def
381
+ RETURN: list
382
+ [1]: ring in which objects specified by the strings [2] and [3] live
383
+ [2]: name of ideal describing the liftable vector fields -
384
+ computed up to order b in the parameters
385
+ [3]: name of basis of the K_V-normal space of the original singularity
386
+ [4]: (if 6th argument is given)
387
+ ring in which the reduction of the liftable vector fields has
388
+ taken place.
389
+ [5]: name of liftable vector fields in ring [4]
390
+ [6]: name of ideal we are using for reduction of [5] in [4]
391
+ ASSUME: input is assumed to be quasihomogeneous in the following sense:
392
+ there are weights for the variables in the current basering
393
+ such that, after plugging in mapi[i] for the i-th variable of the
394
+ ring rname in the ideal idname, the resulting expression is
395
+ quasihomogeneous; wv specifies the weight vector of the ring rname.
396
+ b is the degree bound up in the perturbation parameters up to which
397
+ computations are performed.
398
+ NOTE: the original ring should not contain any variables of name
399
+ A(i) or e(j)
400
+ EXAMPLE:@code{example lft_vf;} gives an example
401
+ "
402
+ {
403
+ //---------------------------------------------------------------------------
404
+ // Sanity checks
405
+ //---------------------------------------------------------------------------
406
+ def baser=basering;
407
+ def qid=maxideal(1);
408
+ string teststr="setring " + rname + ";";
409
+ execute(teststr);
410
+ if(nameof(basering)!=rname)
411
+ {
412
+ ERROR("rname not name of a ring");
413
+ }
414
+ def ry=basering;
415
+ teststr="string typeid=typeof(" + idname + ");";
416
+ execute(teststr);
417
+ if(typeid!="ideal")
418
+ {
419
+ ERROR("idname not name of an ideal in rname");
420
+ }
421
+ setring baser;
422
+ for(int i=1; i<=ncols(mapi); i++)
423
+ {
424
+ if(rvar(e(i)))
425
+ {
426
+ int jj=-1;
427
+ break;
428
+ }
429
+ }
430
+ if (defined(jj)>1)
431
+ {
432
+ if (jj==-1)
433
+ {
434
+ ERROR("Your ring contains a variable e(j)!");
435
+ }
436
+ }
437
+ setring ry;
438
+ //---------------------------------------------------------------------------
439
+ // first prepare derlog(V) for the model singularity
440
+ // and set the correct weights
441
+ //---------------------------------------------------------------------------
442
+ def @dV=derlogV(`idname`);
443
+ export(@dV);
444
+ setring baser;
445
+ map maptemp=`rname`,mapi;
446
+ def tempid=maptemp(`idname`);
447
+ intvec ivm=qhweight(tempid);
448
+ string ringstr="ring baserw=" + charstr(baser) + ",(" + varstr(baser) +
449
+ "),(c,ws(" + string(ivm) + "));";
450
+ execute(ringstr);
451
+ //ring baserw = create_ring(ring_list(baser)[1], "(" + varstr(baser) +")", "(c,ws(" + string(ivm) + "))", "no_minpoly");
452
+ def mapi=imap(baser,mapi);
453
+ //---------------------------------------------------------------------------
454
+ // compute the unperturbed K_V tangent space
455
+ // and check K_V codimension
456
+ //---------------------------------------------------------------------------
457
+ def KVt=KVtangent(mapi,rname,"@dV",nvars(basering));
458
+ def sKVt=std(KVt);
459
+ if(dim(sKVt)>0)
460
+ {
461
+ ERROR("K_V-codimension not finite");
462
+ }
463
+ //---------------------------------------------------------------------------
464
+ // Construction of the versal family
465
+ //---------------------------------------------------------------------------
466
+ list lilit=KVvermap(KVt,mapi);
467
+ def rpert=lilit[1];
468
+ setring rpert;
469
+ def mapipert=`lilit[2]`;
470
+ def KVt=imap(baserw,KVt);
471
+ def mapi=imap(baserw,mapi);
472
+ def KVtpert=KVtangent(mapipert,rname,"@dV",nvars(baser));
473
+ //---------------------------------------------------------------------------
474
+ // put the unperturbed and the perturbed tangent space into a module
475
+ // (1st component unperturbed) and run a groebner basis computation
476
+ // which only considers spolys with non-vanishing first component
477
+ //---------------------------------------------------------------------------
478
+ def rxa=basering;
479
+ string rchange="ring rexa=" + charstr(basering) + ",(e(1.." +
480
+ string(ncols(mapi)) + ")," + varstr(basering) +
481
+ "),(c,ws(" + string((-1)*wv) + "," + string(ivm) + "),dp);";
482
+ execute(rchange);
483
+ /* list l1;
484
+ for (int ii = 1; ii <= ncols(mapi); ii++)
485
+ {
486
+ l1[ii] = "e("+string(ii)+")";
487
+ }
488
+ list l2 = ringlist(basering)[2];
489
+ l1 = l1+l2;
490
+ ring rexa = create_ring(ring_list(basering)[1], l1, "(c,ws(" + string((-1)*wv) + "," + string(ivm) + "),dp)", "no_minpoly");*/
491
+ def mapi=imap(rxa,mapi);
492
+ ideal eid=e(1..ncols(mapi)); // for later use
493
+ def KVt=imap(rxa,KVt);
494
+ def KVtpert=imap(rxa,KVtpert);
495
+ intvec iv=1..ncols(mapi);
496
+ ideal KVti=mod2id(KVt,iv);
497
+ //----------------------------------------------------------------------------
498
+ // small intermezzo (here because we did not have all input any earlier)
499
+ // get kbase of KVti for later use and determine an
500
+ // integer l such that m_x^l*(e_1,\dots,e_r) lies in KVt
501
+ //----------------------------------------------------------------------------
502
+ ideal sKVti=std(KVti);
503
+ ideal lsKVti=lead(sKVti);
504
+ module tmpmo=id2mod(lsKVti,iv);
505
+ setring baser;
506
+ def tmpmo=imap(rexa,tmpmo);
507
+ attrib(tmpmo,"isSB",1);
508
+ module kbKVt=kbase(tmpmo);
509
+ setring rexa;
510
+ def kbKVt=imap(baser,kbKVt);
511
+ ideal kbKVti=mod2id(kbKVt,iv);
512
+ def qid=imap(baser,qid);
513
+ intvec qiv;
514
+ for(i=1;i<=ncols(qid);i++)
515
+ {
516
+ qiv[rvar(qid[i])]=1;
517
+ }
518
+ int counter=1;
519
+ while(size(reduce(lsKVti,std(jet(lsKVti,i,qiv)),5))!=0)
520
+ {
521
+ counter++;
522
+ }
523
+ //----------------------------------------------------------------------------
524
+ // end of intermezzo
525
+ // proceed to the previously announced Groebner basis computation
526
+ //----------------------------------------------------------------------------
527
+ ideal KVtpi=mod2id(KVtpert,iv);
528
+ export(KVtpi);
529
+ matrix Eing[2][ncols(KVti)]=KVti,KVtpi;
530
+ module EinMo=Eing;
531
+ EinMo=EinMo,eid^2*gen(1),eid^2*gen(2);
532
+ module Ausg=Loctriv::kstd(EinMo,1);
533
+ //---------------------------------------------------------------------------
534
+ // * collect those elements of Ausg for which the first component is non-zero
535
+ // into mx and the others into mt
536
+ // * cut off the first component
537
+ // * find appropriate weights for the reduction
538
+ //---------------------------------------------------------------------------
539
+ intvec eiv;
540
+ for(i=1;i<=ncols(eid);i++)
541
+ {
542
+ eiv[rvar(eid[i])]=1;
543
+ }
544
+ if(size(reduce(var(nvars(basering)),std(eid),5))!=0)
545
+ {
546
+ eiv[nvars(basering)]=0;
547
+ }
548
+ module Aus2=jet(Ausg,1,eiv);
549
+ Aus2=simplify(Aus2,2);
550
+ ideal mx;
551
+ ideal mt;
552
+ int ordmax,ordmin;
553
+ int ordtemp;
554
+ for (i=1;i<=size(Aus2);i++)
555
+ {
556
+ if(Aus2[1,i]!=0)
557
+ {
558
+ mx=mx,Aus2[2,i];
559
+ ordtemp=ord(lead(Aus2[1,i]));
560
+ if(ordtemp>ordmax)
561
+ {
562
+ ordmax=ordtemp;
563
+ }
564
+ else
565
+ {
566
+ if(ordtemp<ordmin)
567
+ {
568
+ ordmin=ordtemp;
569
+ }
570
+ }
571
+ }
572
+ else
573
+ {
574
+ mt=mt,Aus2[2,i];
575
+ }
576
+ }
577
+ //---------------------------------------------------------------------------
578
+ // * change weights of the A(i) such that Aus2[1,i] and Aus2[2,i] have the
579
+ // same leading term, if the first one is non-zero
580
+ // * reduce mt by mx
581
+ // * find l such that (x_1,...,x_n)^l * eid can be used instead of noether
582
+ // which we have to avoid because we are playing with the weights
583
+ //---------------------------------------------------------------------------
584
+ intvec oiv;
585
+ for(i=1;i<=(nvars(basering)-nvars(baser)-size(eid));i++)
586
+ {
587
+ oiv[i]=2*(abs(ordmax)+abs(ordmin));
588
+ }
589
+ mx=jet(mx,counter*(b+1),qiv);
590
+ rchange="ring rexaw=" + charstr(basering) + ",(" + varstr(basering) +
591
+ "),(c,ws(" + string((-1)*wv) + "," + string(ivm) +
592
+ "," + string(oiv) + "));";
593
+ execute(rchange);
594
+ //ring rexaw = create_ring(ring_list(basering)[1], "(" + varstr(basering) +")", "(c,ws(" + string((-1)*wv) + "," + string(ivm) +"," + string(oiv) + "))", "no_minpoly");
595
+ ideal qid=imap(rexa,qid);
596
+ def eid=imap(rexa,eid);
597
+ def mx=imap(rexa,mx);
598
+ attrib(mx,"isSB",1);
599
+ def mto=imap(rexa,mt);
600
+ ideal Aid=A(1..size(oiv));
601
+ intvec Aiv;
602
+ for(i=1;i<=ncols(Aid);i++)
603
+ {
604
+ Aiv[rvar(Aid[i])]=1;
605
+ }
606
+ intvec riv=(b+1)*qiv+(b+2)*counter*Aiv;
607
+ def mt=mto;
608
+ for(i=1;i<=counter+1;i++)
609
+ {
610
+ mt=mt,mto*qid^i;
611
+ }
612
+ mt=jet(mt,(b+1)*(b+2)*counter,riv);
613
+ mt=jet(mt,1,eiv);
614
+ mt=simplify(mt,10);
615
+ module mmx=module(mx);
616
+ attrib(mmx,"isSB",1);
617
+ for(i=1;i<=ncols(mt);i++)
618
+ {
619
+ if(defined(watchProgress))
620
+ {
621
+ "reducing mt[i], i="+string(i);
622
+ }
623
+ mt[i]=system("locNF",vector(mt[i]),mmx,
624
+ (b+1)*(b+2)*counter,riv)[1][1,1];
625
+ }
626
+ mt=simplify(mt,10);
627
+ //----------------------------------------------------------------------------
628
+ // return the results by returning the ring and the names of the desired
629
+ // modules in the ring
630
+ // (if the list # is not empty, then we want to return this ring as well)
631
+ //----------------------------------------------------------------------------
632
+ if(size(#)!=0)
633
+ {
634
+ export mt;
635
+ export mx;
636
+ }
637
+ setring rexa;
638
+ def mtout=imap(rexaw,mt);
639
+ kbKVti=jet(kbKVti,1,eiv);
640
+ kbKVti=simplify(kbKVti,2);
641
+ intvec rediv;
642
+ int j=1;
643
+ for(i=1;i<=size(qiv);i++)
644
+ {
645
+ if(qiv[i]!=0)
646
+ {
647
+ rediv[j]=i;
648
+ j++;
649
+ }
650
+ }
651
+ list templi=subrInterred(kbKVti,mtout,rediv);
652
+ mtout=jet(templi[3],b+1,Aiv);
653
+ export mtout;
654
+ export kbKVti;
655
+ list result;
656
+ result[1]=rexa;
657
+ result[2]="mtout";
658
+ result[3]="kbKVti";
659
+ if(size(#)!=0)
660
+ {
661
+ result[4]=rexaw;
662
+ result[5]="mt";
663
+ result[6]="mx";
664
+ }
665
+ export rexa;
666
+ keepring rexa;
667
+ return(result);
668
+ }
669
+ example
670
+ { "EXAMPLE:";echo=2;
671
+ ring ry=0,(a,b,c,d),ds;
672
+ ideal idy=ab,cd;
673
+ def dV=derlogV(idy);
674
+ echo=1;
675
+ export ry; export dV; export idy; echo=2;
676
+ ring rx=0,(x,y,z),ds;
677
+ ideal mi=x-z+2y,x+y-z,y-x-z,x+2z-3y;
678
+ intvec wv=1,1,1,1;
679
+ def M=KVtangent(mi,"ry","dV");
680
+ list li=lft_vf(mi,"ry","idy",wv,5);
681
+ def rr=li[1];
682
+ setring rr;
683
+ `li[2]`;
684
+ `li[3]`;
685
+ echo=1;
686
+ setring ry; kill idy; kill dV; setring rx; kill ry;
687
+ }
688
+ //////////////////////////////////////////////////////////////////////////////
689
+ // STATIC PROCEDURES
690
+ //////////////////////////////////////////////////////////////////////////////
691
+ static
692
+ proc abs(int c)
693
+ "absolute value
694
+ "
695
+ {
696
+ if(c>=0){ return(c);}
697
+ else{ return(-c);}
698
+ }
699
+ ////////////////////////////////////////////////////////////////////////////