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,1133 @@
1
+ ////////////////////////////////////////////////////////////////////////////////
2
+ version=="version classifyci.lib 4.1.2.0 Feb_2019 "; // $Id: c4f1cbad60ad7c5d1a7ca7bf3d94f89efd855d06 $
3
+ category="Singularities";
4
+
5
+ info="
6
+ LIBRARY: classifyci.lib Isolated complete intersection singularities in characteristic 0
7
+ AUTHORS: Gerhard Pfister pfister@mathematik.uni-kl.de
8
+ Deeba Afzal deebafzal@gmail.com
9
+
10
+
11
+ OVERVIEW:
12
+ A library for classifying isolated complete intersection singularities for the base field of characteristic 0
13
+ and for computing weierstrass semigroup of the space curve.Isolated complete intersection singularities were
14
+ classified by M.Giusti [1] for the base field of characteristic 0. Algorithm for the semigroup of a space
15
+ curve singularity is given in [2].
16
+
17
+ REFERENCES:
18
+ [1] Giusti,M:Classification des singularities isolees simples d'intersections completes,
19
+ C,R.Acad.Sci.Paris Ser.A-B 284(1977),167-169.
20
+ [2] Castellanos,A.,Castellanos,J.,2005:Algorithm for the semigroup of a space curve singularity.
21
+ Semigroup Forum 70,44-66.
22
+ PROCEDURES:
23
+ classifyicis(I); Isolated simple complete intersection singularities for the base field of characteristic 0
24
+ Semigroup(I); Weierstrass semigroup of the space curve given by equations
25
+ ";
26
+ LIB "classify.lib";
27
+ LIB "classify_aeq.lib";
28
+ LIB "polylib.lib";
29
+ LIB "curvepar.lib";
30
+ LIB "algebra.lib";
31
+
32
+ ////////////////////////////////////////////////////////////////////////////////
33
+ proc classifyicis(ideal I)
34
+ "USAGE: classifyicis(I); I ideal
35
+ ASSUME: I is given by two generators
36
+ PURPOSE:Check whether the ideal defines a complete intersection singularity or not
37
+ RETURN: String type in the classification of Giusti,M
38
+ @* or The given singularity is not simple
39
+ EXAMPLE: example classifyicis; shows an example
40
+ "
41
+ {
42
+ def R=basering;
43
+ def SS=changeord(list(list("ds",nvars(R))),R);
44
+ setring SS;
45
+ ideal I=imap(R,I);
46
+ string re;
47
+ if(char(basering)==0)
48
+ {
49
+ re=ICIS12(I);
50
+ }
51
+ if(char(basering)!=0)
52
+ {
53
+ re="The characteristic of basering should be 0";
54
+ }
55
+ setring R;
56
+ return(re);
57
+ }
58
+ example
59
+ {
60
+ "EXAMPLE:"; echo=2;
61
+ ring R=0,(x,y,z),ds;
62
+ ideal I=x2+yz,xy+z4;
63
+ classifyicis(I);
64
+ }
65
+ ////////////////////////////////////////////////////////////////////////////////
66
+ static proc ICIS12(ideal I)
67
+ {
68
+ int n=nvars(basering);
69
+ if(n==2)
70
+ {
71
+ return(zerodim_ICIS(I));
72
+ }
73
+ if(n==3)
74
+ {
75
+ return(onedim_ICIS(I));
76
+ }
77
+ if(n>=4)
78
+ {
79
+ return("The given singularity is not simple");
80
+ }
81
+ }
82
+ ////////////////////////////////////////////////////////////////////////////////
83
+ static proc zerodim_ICIS(ideal I)
84
+ "USAGE: zerodim_ICIS(l); I is an ideal
85
+ ASSUME: I is given by two generators
86
+ PURPOSE: Check whether the ideal defines a complete intersection singularity of dimension zero or not
87
+ RETURN: String type in the classification of Giusti,M, of the 0-dimensional complete inetersection
88
+ @* or The given singularity is not simple
89
+ EXAMPLE: example zerodim_ICIS; shows an example
90
+ "
91
+ {
92
+ def R=basering;
93
+ poly g,h,r;
94
+ ideal J;
95
+ int a,b,c,d;
96
+ map phi;
97
+ list L;
98
+ string re;
99
+ // g=g[0]+g[1] where ord(g[1])>=3 ,g[0] can be zero
100
+ // h=h[0]+h[1] where ord(h[1])>=3 ,h[0] can be zero
101
+ d=vdim(std(I));
102
+ if(d==-1)
103
+ {
104
+ return("The given singularity is not simple");
105
+ }
106
+ a=ord(I[1]);
107
+ b=ord(I[2]);
108
+ if((a>=3)&&(b>=3))
109
+ { //start case1
110
+ return("The given singularity is not simple");
111
+ } // end case 1
112
+ if((a==2&&b>=3)||(a>=3&&b==2)) // start case 2
113
+ {
114
+ if(a==2)
115
+ {
116
+ g=I[1];
117
+ h=I[2];
118
+ }
119
+ if(b==2)
120
+ {
121
+ g=I[2];
122
+ h=I[1];
123
+ }
124
+ L=factorize(jet(g,2));
125
+ if(size(L[1])==3)
126
+ {
127
+ re=findwhichF(g,h,L);
128
+ return(re);
129
+ } // end size(L[1]=3)
130
+ if((size(L[1])==2)&&(L[2][2]==2))
131
+ { // start (size(L[1])==2)&&(L[2][2]==2)
132
+ // case (x2,h);
133
+ r=L[1][2];
134
+ if(size(r)==2) // ax+by goes to x
135
+ {
136
+ matrix M3=coef(r,var(1));
137
+ M3=subst(M3,var(2),1);
138
+ matrix A[2][2]=M3[2,1],M3[2,2],0,1;
139
+ matrix B=inverse(A);
140
+ phi=R,B[1,1]*var(1)+B[1,2]*var(2),B[2,1]*var(1)+B[2,2]*var(2);
141
+ g=phi(g);
142
+ h=phi(h);
143
+ J=(g,h);
144
+ } // end size(r)=2
145
+ if(size(r)==1) // jet(g,2)=ax2 or by2 goes to x2
146
+ {
147
+ if(leadmonom(r)==var(1))
148
+ {
149
+ phi=R,var(1)/leadcoef(r),var(2);
150
+ g=phi(g);
151
+ h=phi(h);
152
+ }
153
+ if(leadmonom(r)==var(2))
154
+ {
155
+ phi=R,var(2)/leadcoef(r),var(1);
156
+ g=phi(g);
157
+ h=phi(h);
158
+ }
159
+ J=(g,h);
160
+ } // end size(r)=1
161
+ c=milnor(g);
162
+ if((d>=7)&&(c==2))
163
+ {
164
+ //"I-series";
165
+ if(d mod(2)==0)
166
+ {
167
+ return("I_"+string(d-1)+":(x2+y3,y"+string(d div 2)+")");
168
+ }
169
+ if(d mod(2)!=0)
170
+ {
171
+ return("I_"+string(d-1)+":(x2+y3,xy"+string((d-3) div 2)+")");
172
+ }
173
+ }
174
+ if(d==6)
175
+ {
176
+ return("G_5:(x2,y3)");
177
+ }
178
+ ring R1=0,(var(2),var(1)),ds;
179
+ setring R1;
180
+ ideal J=imap(R,J);
181
+ poly h1=reduce(J[2],std(J[1]),d);
182
+ poly h2=leadmonom(h1);
183
+ int ss=deg(h2)-1;
184
+ if((h2==var(1)^4)&&((c>=3)||(c==-1)))
185
+ {
186
+ setring R;
187
+ return("G_7:(x2,y4)");
188
+ }
189
+ if((h2==var(2)*var(1)^2)&&((c>=3)||(c==-1)))
190
+ {
191
+ setring R;
192
+ return("H_"+string(d-1)+":(x2+y"+string(d-4)+",xy2)");
193
+ }
194
+ setring R;
195
+ return("The given singularity is not simple");
196
+ } // end (size(L[1])==2)&&(L[2][2]==2)
197
+ if((size(L[1])==2)&&(L[2][2]==1))
198
+ {
199
+ def S=factorExt(g);
200
+ setring S;
201
+ poly h=imap(R,h); // poly g=imap(R,g); we need not S has already g
202
+ re= findwhichF(g,h,L);
203
+ setring R;
204
+ return(re);
205
+ }
206
+ } // end case 2
207
+ if((a==2)&&(b==2)) // start case 3
208
+ {
209
+ g=I[1];
210
+ h=I[2];
211
+ poly Q=testDiv(jet(h,2),jet(g,2));
212
+ if(Q!=0)
213
+ {
214
+ I=(g,h-Q*g);
215
+ return(zerodim_ICIS(I));
216
+ }
217
+ if(Q==0)
218
+ {
219
+ L=factorize(jet(g,2));
220
+ if(size(L[1])==3)
221
+ {
222
+ re=findwhichF(g,h,L);
223
+ return(re);
224
+ }
225
+ if((size(L[1])==2)&&(L[2][2]==1))
226
+ {
227
+ def S=factorExt(g);
228
+ setring S;
229
+ poly h=imap(R,h);
230
+ re=findwhichF(g,h,L);
231
+ setring R;
232
+ return(re);
233
+ }
234
+ L=factorize(jet(h,2));
235
+ if(size(L[1])==3)
236
+ {
237
+ re=findwhichF(h,g,L);
238
+ return(re);
239
+ }
240
+ if((size(L[1])==2)&&(L[2][2]==1))
241
+ {
242
+ def S=factorExt(h);
243
+ setring S;
244
+ poly g=imap(R,g);
245
+ re=findwhichF(h,g,L);
246
+ setring R;
247
+ return(re);
248
+ }
249
+ else
250
+ { // there exist a s.t g[0]+ah[0] has two different factors.
251
+ int e=Finda(g,h);
252
+ I=(g+e*h,h);
253
+ re=zerodim_ICIS(I);
254
+ return(re);
255
+ }
256
+ }
257
+ } // end case 3
258
+ } // proc
259
+ example
260
+ {
261
+ "EXAMPLE:"; echo=2;
262
+ ring R=0,(x,y),ds;
263
+ ideal I=x2+8xy+16y2+y3,xy7+4y8;
264
+ zerodim_ICIS(I);
265
+ }
266
+ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
267
+ static proc Finda(poly g,poly h)
268
+ "USAGE: Finda(g,h); g,h are polynomials
269
+ PURPOSE: Find a such that jet(g,2)+a*jet(h,2) has two different factors
270
+ RETURN: integer a
271
+ {
272
+ // find a s.t jet(g,2)+a*jet(h,2) has two different factors.
273
+ int o;
274
+ list L=factorize(jet(h,2));
275
+ if(L[2][2]==1){return(0);}
276
+ poly r= jet(g,2);
277
+ list T=factorize(r);
278
+ while(T[2][2]!=1)
279
+ {
280
+ o++;
281
+ r= r+jet(h,2);
282
+ T=factorize(r);
283
+ }
284
+ return(o);
285
+ }
286
+ /*
287
+ ring R=0,(x,y),ds;
288
+ poly g=x2+xy3;
289
+ poly h=y2+x3+y7;
290
+ finda(g,h);
291
+ */
292
+ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
293
+ static proc testDiv(poly f,poly g)
294
+ "USAGE: testDiv(f,g); f,g are polynomials
295
+ ASSUME: I is given by two generators
296
+ PURPOSE: Check whether f divides g or not.
297
+ RETURN: poly h(quotient) if f divides g
298
+ @* 0 if f does not divide g
299
+ {
300
+ poly h=f/g;
301
+ if(f-h*g==0)
302
+ {
303
+ return(h);
304
+ }
305
+ return(0);
306
+ }
307
+ /*
308
+ ring R=0,(x,y,ds;
309
+ poly f=x2+y2;
310
+ poly g=3x2+3y2
311
+ testDiv(f,g);
312
+ */
313
+ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
314
+ static proc findwhichF(poly g,poly h,list L)
315
+ "USAGE: findwhichF(g,h,L); g,h are polynomials,L list of factors of jet(g,2)
316
+ RETURN: string type F^n,p_n+p-1 in the classification of Giusti,M
317
+ {
318
+ // return("F^n,p_n+p-1")
319
+ def R=basering;
320
+ matrix M,N;
321
+ ideal J;
322
+ map si;
323
+ list T;
324
+ string rem;
325
+ // in each case we want to transform jet(g,2) which has two factors to xy
326
+ // and then find std and know about the type of "F^n,p_n+p-1"
327
+ if((size(L[1][2])==2)&&(size(L[1][3])==2))
328
+ {
329
+ M=coef(L[1][2],var(1));
330
+ N=coef(L[1][3],var(1));
331
+ matrix A[2][2]=M[2,1],M[2,2],N[2,1],N[2,2];
332
+ A=subst(A,var(1),1,var(2),1);
333
+ matrix B=inverse(A);
334
+ si=R,B[1,1]*var(1)+B[1,2]*var(2),B[2,1]*var(1)+B[2,2]*var(2);
335
+ g=si(g);
336
+ h=si(h);
337
+ J=(g,h);
338
+ J=std(J);
339
+ // if g and h both of order 2 no problem in that case because deg(J[2])=2 so lead(J[2])=x2,y2,xy does not matter
340
+ T[1]=deg(lead(J[2]));
341
+ T[2]=deg(lead(J[3]))-1;
342
+ rem="F^"+string(T[1])+","+string(T[2])+"_"+string(T[1]+T[2]-1)+":(xy,x"+string(T[1])+"+y"+string(T[2])+")";
343
+ return(rem);
344
+ }
345
+ if((size(L[1][2])==2)&&(size(L[1][3])==1))
346
+ {
347
+ // two cases 1- jet(g,2)=(ax+by)*cx, 2- jet(g,2)=(ax+by)*cy
348
+ if(leadmonom(L[1][3])==var(1))
349
+ {
350
+ M=coef(L[1][2],var(1));
351
+ M=subst(M,var(2),1);
352
+ si=R,var(1),-M[2,1]/M[2,2]*var(1)+var(2);
353
+ g=si(g);
354
+ h=si(h);
355
+ J=(g,h);
356
+ J=std(J);
357
+ T[1]=deg(lead(J[2]));
358
+ T[2]=deg(lead(J[3]))-1;
359
+ rem="F^"+string(T[1])+","+string(T[2])+"_"+string(T[1]+T[2]-1)+":(xy,x"+string(T[1])+"+y"+string(T[2])+")";
360
+ return(rem);
361
+ }
362
+ if(leadmonom(L[1][3])==var(2))
363
+ {
364
+ M=coef(L[1][2],var(1));
365
+ M=subst(M,var(2),1);
366
+ matrix A[2][2]=M[2,1],M[2,2],0,1;
367
+ matrix B=inverse(A);
368
+ si=R,B[1,1]*var(1)+B[1,2]*var(2),B[2,1]*var(1)+B[2,2]*var(2);
369
+ g=si(g);
370
+ h=si(h);
371
+ J=(g,h);
372
+ J=std(J);
373
+ T[1]=deg(lead(J[2]));
374
+ T[2]=deg(lead(J[3]))-1;
375
+ rem="F^"+string(T[1])+","+string(T[2])+"_"+string(T[1]+T[2]-1)+":(xy,x"+string(T[1])+"+y"+string(T[2])+")";
376
+ return(rem);
377
+ }
378
+ }
379
+ else
380
+ {
381
+ J=(g,h);
382
+ J=std(J);
383
+ T[1]=deg(lead(J[2]));
384
+ T[2]=deg(lead(J[3]))-1;
385
+ rem="F^"+string(T[1])+","+string(T[2])+"_"+string(T[1]+T[2]-1)+":(xy,x"+string(T[1])+"+y"+string(T[2])+")";
386
+ return(rem);
387
+ }
388
+ }
389
+ /*
390
+ ring R=0,(x,y),ds;
391
+ poly g=xy+y2+y4;
392
+ poly h=x4+4x3y+6x2y2+4xy3+y4+y7+xy7;
393
+ L=factorize(jet(g,2),2);
394
+ findwhichF(g,h,L);
395
+ */
396
+ ////////////////////////////////////////////////////////////////////////////////
397
+ static proc factorExt(poly g)
398
+ "USAGE: procExt(g); jet(g,2) is an irreducible polynomial
399
+ PURPOSE: Find the field extension in which jet(g,2) has two different factors
400
+ RETURN: ring S in which jet(g,2) has factors
401
+ {
402
+ def R=basering;
403
+ g=simplify(g,1);
404
+ poly f=jet(g,2);
405
+ list L=factorize(f);
406
+ if(L[2][2]==1)
407
+ {
408
+ ring S=(0,t),(var(1),var(2)),ds;
409
+ poly f=fetch(R,f);
410
+ poly g=fetch(R,g);
411
+ minpoly=t2+leadcoef(f/(var(1)*var(2)))*t+leadcoef(f/var(2)^2);
412
+ list L=factorize(f);
413
+ export L;
414
+ export g;
415
+ }
416
+ else
417
+ {
418
+ def S=R;
419
+ export L;
420
+ }
421
+ setring R;
422
+ return(S);
423
+ }
424
+ /*
425
+ ring R=0,(x,y),ds;
426
+ poly g=x2=y2+x4+xy11;
427
+ factorExt(g);
428
+ */
429
+ ////////////////////////////////////////////////////////////////////////////////
430
+ static proc onedim_ICIS(ideal I)
431
+ "USAGE: onedim_ICIS(l); I is an ideal
432
+ ASSUME: I is given by two generators
433
+ PURPOSE: Check whether the ideal defines a complete intersection singularity of dimension 1 or not
434
+ RETURN: String type in the classification of Giusti,M, of 1-dimesnional complete inetersection singualrity
435
+ @* or The given singularity is not simple
436
+ EXAMPLE: example onedim_ICIS; shows an example
437
+ "
438
+ {
439
+ int m,t,r;
440
+ poly g1,g2,f1,f2;
441
+ string rem;
442
+ list A,B;
443
+ f1=I[1];
444
+ f2=I[2];
445
+ // I=nf_icis(I);
446
+ m=genericmilnor(I);
447
+ t=tjurina(I);
448
+ if(m==-1)
449
+ {
450
+ return("The given singularity is not simple");
451
+ }
452
+ if(m!=t) // in ICIS milnor=tjurina
453
+ {
454
+ return("The given singularity is not simple");
455
+ }
456
+ g1=jet(f1,2);
457
+ g2=jet(f2,2);
458
+ if((ord(g1)==1)||(ord(g2)==1)){return(arnoldsimple(I,m));}
459
+ if(g1==0)
460
+ {
461
+ return("The given singularity is not simple");
462
+ }
463
+ if(g2==0)
464
+ {
465
+ return("The given singularity is not simple");
466
+ }
467
+ rem=typejet2(g1,g2);
468
+ if(rem=="type1")
469
+ {
470
+ return("S_5:(x2+y2+z2,yz)");
471
+ }
472
+ if(rem=="type2")
473
+ {
474
+ return("S_"+string(m)+":(x2+y2+z"+string(m-3)+",yz)");
475
+ }
476
+ if(rem=="type3")
477
+ {
478
+ if(m==7)
479
+ {
480
+ return("T_7:(x2+y3+z3,yz)");
481
+ }
482
+ if(m==8)
483
+ {
484
+ return("T_8:(x2+y3+z4,yz)");
485
+ }
486
+ if(m==9)
487
+ {
488
+ B=Semigroup(I);
489
+ B=changeType(B);
490
+ A=list(list(2,5),list(2,3));
491
+ if(compLL(A,B))
492
+ {
493
+ return("T_9:(x2+y3+z5,yz)");
494
+ }
495
+ }
496
+ return("The given singularity is not simple");
497
+ }
498
+ if(rem=="type4")
499
+ {
500
+ if(m==7)
501
+ {
502
+ return("U_7:(x2+yz,xy+z3)");
503
+ }
504
+ if(m==8)
505
+ {
506
+ return("U_8:(x2+yz+z3,xy)");
507
+ }
508
+ if(m==9)
509
+ {
510
+ return("U_9:(x2+yz,xy+z4)");
511
+ }
512
+ return("The given singularity is not simple");
513
+ }
514
+ if(rem=="type5")
515
+ {
516
+ if(m==8)
517
+ {
518
+ return("W_8:(x2+z3,y2+xz)");
519
+ }
520
+ if(m==9)
521
+ {
522
+ return("W_9:(x2+yz2,y2+xz)");
523
+ }
524
+ return("The given singularity is not simple");
525
+ }
526
+ if(rem=="type6")
527
+ {
528
+ if(m==9)
529
+ {
530
+ return("Z_9:(x2+z3,y2+z3)");
531
+ }
532
+ if(m==10)
533
+ {
534
+ return("Z_10:(x2+yz2,y2+z3)");
535
+ }
536
+ return("The given singularity is not simple");
537
+ }
538
+ if(rem=="not simple")
539
+ {
540
+ return("The given singularity is not simple");
541
+ }
542
+ }
543
+ example
544
+ {
545
+ "EXAMPLE:"; echo=2;
546
+ ring R=0,(x,y,z),ds;
547
+ ideal I=x2+8xy+16y2+2xz+8yz+z2+yz2+9z3,y2+xz+22yz+82z2;
548
+ onedim_ICIS(I);
549
+ }
550
+ ////////////////////////////////////////////////////////////////////////////////
551
+ static proc arnoldsimple(ideal I,int m)
552
+ "USAGE: arnoldsimple(I,m); I is an ideal, m is an integer greater or equal to milnor number of the ideal I
553
+ ASSUME: I is given by two generators and one of the generator of the ideal I is of order 1
554
+ PURPOSE: check whether the ideal defines a hypersurface simple complete intersection singularity or not
555
+ RETURN: string type in the classification of Arnold,
556
+ @* or The given singularity is not simple
557
+ EXAMPLE: example arnoldsimple; shows an example
558
+ "
559
+ {
560
+ //if one generator is of order 1 we reduce case to hypersurface case
561
+ def R=basering;
562
+ if(ord(I[1])==1)
563
+ {
564
+ poly g=specialNF(I[2],I[1],m);
565
+ ring S=0,(var(2),var(3)),ds;
566
+ setring S;
567
+ poly g=imap(R,g);
568
+ string dd=complexSingType(g);
569
+ int e=modality(g);
570
+ setring R;
571
+ if(e==0)
572
+ {
573
+ return(dd);
574
+ }
575
+ if(e!=0)
576
+ {
577
+ return( "The given singularity is not simple");
578
+ }
579
+ }
580
+ if(ord(I[2])==1)
581
+ {
582
+ I=I[2],I[1];
583
+ return(arnoldsimple(I,m));
584
+ }
585
+ }
586
+ example
587
+ {
588
+ "EXAMPLE:"; echo=2;
589
+ ring R=0,(x,y,z),ds;
590
+ ideal I=x+y2,y3+z4+xy11;
591
+ arnoldsimple(I,6);
592
+ }
593
+ ////////////////////////////////////////////////////////////////////////////////
594
+ static proc specialNF(poly g,poly f,int m)
595
+ "USAGE: specialNF(g,f); g,f are polynomials, m is an integer greater or equal to milnor number of the ideal I=(g,h)
596
+ ASSUME: f is of order 1 and f=x+higher
597
+ RETURN: poly g not involving x (Using implicit fn thm)
598
+ {
599
+ poly k;
600
+ list T=linearpart(g,f);
601
+ f=T[1];
602
+ g=T[2];
603
+ poly h=var(1)-f;
604
+ while(1)
605
+ {
606
+ g=subst(g,var(1),h);
607
+ k=jet(g,m);
608
+ if(diff(k,var(1))==0)
609
+ {
610
+ break;
611
+ }
612
+ }
613
+ return(k);
614
+ }
615
+ /*
616
+ ring R=0,(x,y,z),ds;
617
+ poly f=x+y2;
618
+ poly g=y3+z4+xy11;
619
+ speciaNF(g,f,6);
620
+ */
621
+ ////////////////////////////////////////////////////////////////////////////////
622
+ static proc linearpart(poly g,poly f) // f=linear part+higher,g output list T,T[1]=x+higher term,T[2]=g
623
+ "USAGE: specialNF(g,f); g,f are polynomials
624
+ ASSUME: f=lineat part+higher that is f is of order 1
625
+ RETURN: list T, T[1]=x+higher and T[2]=g'
626
+ {
627
+ def R=basering;
628
+ poly i,j,k;
629
+ list T;
630
+ i=diff(jet(f,1),var(1));
631
+ j=diff(jet(f,1),var(2));
632
+ k=diff(jet(f,1),var(3));
633
+ if(i!=0)
634
+ {
635
+ ideal M=maxideal(1);
636
+ M[1]=(var(1)-((j*var(2)+k*var(3))/leadcoef(f)))/leadcoef(f);
637
+ map phi=R,M;
638
+ f=phi(f);
639
+ g=phi(g);
640
+ }
641
+ if(i==0)
642
+ {
643
+ if(j!=0)
644
+ {
645
+ map phi=R,var(2),var(1),var(3);
646
+ f=phi(f);
647
+ g=phi(g);
648
+ return(linearpart(g,f));
649
+ }
650
+ if(k!=0)
651
+ {
652
+ map phi=R,var(3),var(2),var(1);
653
+ f=phi(f);
654
+ g=phi(g);
655
+ return(linearpart(g,f));
656
+ }
657
+ }
658
+ T[1]=f;
659
+ T[2]=g;
660
+ return(T);
661
+ }
662
+ /*
663
+ ring R=0,(x,y,z),ds;
664
+ poly f=x+2y+y2;
665
+ poly g=y3+z4+zy11;
666
+ lineatpart(g,f);
667
+ */
668
+ ////////////////////////////////////////////////////////////////////////////////
669
+ static proc typejet2(poly g1,poly g2)
670
+ "USAGE: typejet2(g1,g2); g1,g2 are polynomials
671
+ ASSUME: g1,g2 are homogeneous polynomials of degree 2
672
+ PURPOSE: Check whether (g1,g2) is a quadratic form in the list of Guisti or not
673
+ RETURN: string type for the quadratic forms appearing in Guist's list
674
+ @* or not simple
675
+ {
676
+ def R=basering;
677
+ ideal I=(g1,g2);
678
+ def S=absPrimdecGTZ(I);
679
+ setring S;
680
+ list L,T;
681
+ int e,i,j;
682
+ intvec a,a1;
683
+ L=primary_decomp;
684
+ for(j=1;j<=size(L);j++)
685
+ {
686
+ if(dim(std(L[j][1]))!=2)
687
+ {
688
+ return("not simple");
689
+ }
690
+ }
691
+ T=absolute_primes;
692
+ for(i=1;i<=size(T);i++)
693
+ {
694
+ e=e+T[i][2];
695
+ }
696
+ if(e==4)
697
+ {
698
+ setring R;
699
+ return("type1");
700
+ }
701
+ if(e==3)
702
+ {
703
+ setring R;
704
+ return("type2");
705
+ }
706
+ if(e==2)
707
+ {
708
+ ideal J=std(L[1][1]);
709
+ ideal J1=std(L[2][1]);
710
+ a=hilbPoly(J);
711
+ a1=hilbPoly(J1);
712
+ if((a[2]==2)&&(a1[2]==2))
713
+ {
714
+ setring R;
715
+ return("type3");
716
+ }
717
+ if(((a[2]==3)&&(a1[2]==1))||((a[2]==1)&&(a1[2]==3))) //||(a[2]==1)&&(a1[2]==3))
718
+ {
719
+ setring R;
720
+ return("type4");
721
+ }
722
+ }
723
+ if(e==1)
724
+ {
725
+ setring R; // I lies in R and zero in S1
726
+ ideal JJ=radical(I);
727
+ JJ=JJ^3;
728
+ ideal JJJ=reduce(JJ,std(I));
729
+ if(size(JJJ)==0)
730
+ {
731
+ return("type6");
732
+ }
733
+ if(size(JJJ)!=0)
734
+ {
735
+ return("type5");
736
+ }
737
+ }
738
+ setring R;
739
+ return("not simple");
740
+ }
741
+ /*
742
+ ring R=0,(x,y,z),ds;
743
+ poly g1=x2+yz;
744
+ poly g2=xy;
745
+ typejet2(g1,g2);
746
+ */
747
+ ////////////////////////////////////////////////////////////////////////////////
748
+ static proc compL(list L,list M)
749
+ {
750
+ int l,m,i,j;
751
+ l=size(L);
752
+ m=size(M);
753
+ if(l!=m)
754
+ {return(0);}
755
+ for(i=1;i<=m;i++)
756
+ {
757
+ if(L[i]!=M[i])
758
+ {return(0);}
759
+ }
760
+ return(1);
761
+ }
762
+ ////////////////////////////////////////////////////////////////////////////////
763
+ static proc compLL(list L,list M)
764
+ "USAGE: compLL(L,M); L, M are lists
765
+ PURPOSE: Check whether the lists are equal or not
766
+ RETURN: 1 if both lists are equal upto a permutation
767
+ @* 0 if both are not equal
768
+ {
769
+ int l,m,i,j,s;
770
+ l=size(L);
771
+ m=size(M);
772
+ if(l!=m)
773
+ {return(0);}
774
+ for(i=1;i<=m;i++)
775
+ {
776
+ for(j=1;j<=m;j++)
777
+ {
778
+ if(compL(L[i],M[j]))
779
+ {
780
+ s++;
781
+ break;
782
+ }
783
+ }
784
+ }
785
+ if(s==m)
786
+ {return(1);}
787
+ if(s!=m)
788
+ {
789
+ return(0);
790
+ }
791
+ }
792
+ /*
793
+ ring R=0,(x,y,z),ds;
794
+ list L=(1),(2,3),(2,5);
795
+ list T=(2,3),(1),(2,5);
796
+ compLL(L,T);
797
+ */
798
+ ////////////////////////////////////////////////////////////////////////////////
799
+ static proc changeType(list L)
800
+ "USAGE: changeType(L); L is a list of intvectors
801
+ PURPOSE: Change the list of intvectors to the list of lists
802
+ RETURN: List of lists
803
+ {
804
+ int i,j;
805
+ list T;
806
+ for(i=1;i<=size(L);i++)
807
+ {
808
+ list S;
809
+ for(j=1;j<=size(L[i]);j++)
810
+ {
811
+ S[j]=L[i][j];
812
+ }
813
+ T[size(T)+1]=S;
814
+ kill S;
815
+ }
816
+ return(T);
817
+ }
818
+ /*
819
+ ring R=0,(x,y,z),ds;
820
+ list B=(4,6,7);
821
+ changeType(B);
822
+ */
823
+ ////////////////////////////////////////////////////////////////////////////////
824
+ static proc genericmilnor(ideal I)
825
+ "USAGE: genericmilnor(l); I is an ideal
826
+ PURPOSE: Computes the milnor number of generic linear combination of the ideal I
827
+ RETURN: Milnor number of I if it is finite
828
+ @* or -1 if it is not finite
829
+ {
830
+ int m=milnor(I);
831
+ int i,a,b;
832
+ if(m>=0)
833
+ {
834
+ return(m);
835
+ }
836
+ def R=basering;
837
+ def R1=changechar(32003,R);
838
+ setring R1;
839
+ ideal I;
840
+ while(i<10)
841
+ {
842
+ i++;
843
+ a=random(-100,100);
844
+ b=random(-100,100);
845
+ while(a==0)
846
+ {
847
+ a=random(-100,100);
848
+ }
849
+ while(b==0)
850
+ {
851
+ b=random(-100,100);
852
+ }
853
+ I=imap(R,I);
854
+ I[1]=a*I[1]+b*I[2];
855
+ m=milnor(I);
856
+ if(m>=0)
857
+ {
858
+ setring R;
859
+ return(m);
860
+ }
861
+ }
862
+ setring R;
863
+ return(-1);
864
+ }
865
+ /*
866
+ ring R=0,(x,y,z),ds;
867
+ ideal I=x2+z3,y2+z3;
868
+ genericmilnor(I);
869
+ */
870
+ ////////////////////////////////////////////////////////////////////////////////
871
+ proc Semigroup(ideal I)
872
+ "USAGE: Semigroup(l); I is an ideal
873
+ PURPOSE: Computes the semigroup of the ideal I corresponding to each branch
874
+ RETURN: list of semigroup of ideal I corresponding to each branch
875
+ EXAMPLE: Semigroup; shows an example
876
+ "
877
+ {
878
+ list L=facstd(I);
879
+ list RE,JE,PE;
880
+ if(size(L)==1)
881
+ {
882
+ RE=CurveRes(L[1]);
883
+ RE=semi_group(RE);
884
+ return(RE);
885
+ }
886
+ ideal J,K;
887
+ list T,T1,T2,T3,T4,T5,H;
888
+ int i,j,l;
889
+ for(i=1;i<=size(L);i++)
890
+ {
891
+ RE=CurveRes(radical(L[i])) ;
892
+ T1[i]=semi_group(RE);
893
+ for(j=i+1;j<=size(L);j++)
894
+ {
895
+ JE=CurveRes(radical(L[j]));
896
+ T2[j]=semi_group(JE);
897
+ J=L[i]+L[j];
898
+ if(dim(std(J))!=1)
899
+ {
900
+ break;
901
+ }
902
+ K=slocus(J);
903
+ if(K[1]==1)
904
+ { T3=1;}
905
+ else
906
+ {
907
+ PE=CurveRes(radical(J));
908
+ T3=semi_group(PE);
909
+ }
910
+ T4=commonpartlists(T1[i],T3);
911
+ T5=commonpartlists(T2[j],T3);
912
+ if(compLL(T4,T5))
913
+ {
914
+ T1[i]=del(T1[i],T4);
915
+ }
916
+ }
917
+ for(l=1;l<=size(T1[i]);l++)
918
+ {
919
+ H[size(H)+1]=T1[i][l];
920
+ }
921
+ }
922
+ return(H);
923
+ }
924
+ example
925
+ {
926
+ "EXAMPLE:"; echo=2;
927
+ ring R=0,(x,y,z),ds;
928
+ ideal I=x2+y3+z5,yz;
929
+ Semigroup(I);
930
+ }
931
+ ////////////////////////////////////////////////////////////////////////////////
932
+ static proc del(list L,list M)
933
+ "USAGE: del(L,M); L and M are two lists
934
+ PURPOSE: Delete common part of list M from List L
935
+ RETURN: list L
936
+ {
937
+ int i,j;
938
+ for(i=1;i<=size(M);i++)
939
+ {
940
+ for(j=1;j<=size(L);j++)
941
+ {
942
+ if(compL(L[j],M[i]))
943
+ {L=delete(L,j);}
944
+ }
945
+ }
946
+ return(L);
947
+ }
948
+ ////////////////////////////////////////////////////////////////////////////////
949
+ static proc commonpartlists(list L,list M)
950
+ "USAGE: commonpart(L,M); L and M are two lists
951
+ PURPOSE: Computes the intersetion of two list
952
+ RETURN: list T
953
+ {
954
+ list T;
955
+ int i,m,l,j,k;
956
+ m=size(M);
957
+ l=size(L);
958
+ if(l>=m)
959
+ {
960
+ for(i=1;i<=m;i++)
961
+ {
962
+ for(j=1;j<=l;j++)
963
+ {
964
+ if(compLL(M[i],L[j]))
965
+ {
966
+ T[k+1]=M[i];
967
+ k++;
968
+ }
969
+ }
970
+ }
971
+ }
972
+ return(T);
973
+ }
974
+ ////////////////////////////////////////////////////////////////////////////////
975
+ static proc semi_group(list H)
976
+ "USAGE: semi_group(H); H list
977
+ COMPUTE:Weierstrass semigroup of space curve C,which is given by an ideal
978
+ RETURN: list A , which gives generators set of the Weierstrass semigroup corresponding to each irreducible component of C
979
+ {
980
+ int i,d,u,v,w,k;
981
+ int j=1;
982
+ int e=1;
983
+ def R=basering;
984
+
985
+ list A;
986
+ list LL;
987
+ for(k=1;k<=size(H);k++)
988
+ {
989
+ LL=CurveParam(H[k]);
990
+ def S=LL[1];
991
+ setring S;
992
+ list TT;
993
+ poly mpo;
994
+ for(i=1;i<=size(Param);i++)
995
+ {
996
+ d=deg(Param[i][2]);
997
+ TT=Param[i];
998
+ mpo=Param[i][2];
999
+ ring S1=(0,a),(t),ds;
1000
+ setring S1;
1001
+ minpoly=leadcoef(imap(S,mpo));
1002
+ list TT=imap(S,TT);
1003
+ list T;
1004
+ ideal J1;
1005
+ for(u=1;u<=size(TT[1]);u++)
1006
+ {
1007
+ J1[u]=TT[1][u];
1008
+ }
1009
+ J1=simplify(J1,2);
1010
+ J1=sagbiAlg(J1);
1011
+ w=Classify_aeq::ConductorBound(J1);
1012
+ J1=lead(J1);
1013
+ list TTT;
1014
+ for(v=1;v<=size(J1);v++)
1015
+ {
1016
+ TTT[v]=J1[v];
1017
+ }
1018
+ for(j=1;j<=d;j++)
1019
+ {
1020
+ T=WSemigroup(TTT,w);
1021
+ A[e]=T[1]; // interested only in semigroup
1022
+ e++;
1023
+ }
1024
+ setring S;
1025
+ kill S1;
1026
+ kill T;
1027
+ }
1028
+ setring R;
1029
+ kill S;
1030
+ }
1031
+ return(A);
1032
+ }
1033
+ //==============================Examples======================================
1034
+ /*
1035
+ //=========Examples of Isolated simple complete intersection singularities======
1036
+ ring R=0,(x,y),ds;
1037
+ ideal M=maxideal(1);
1038
+ //======================
1039
+ ideal I=x2+y3,xy11;
1040
+ M[1]=x;
1041
+ M[2]=x+3y+xy;
1042
+ map phi=R,M;
1043
+ I=phi(I);
1044
+ classifyicis(I);
1045
+ //======================
1046
+ ideal I=xy,x5+y4;
1047
+ M[1]=x+4y;
1048
+ M[2]=y;
1049
+ map phi=R,M;
1050
+ I=phi(I);
1051
+ classifyicis(I);
1052
+ //======================
1053
+ ideal I=x2,y4;
1054
+ M[1]=x+xy2;
1055
+ M[2]=x+y+x2+y2;
1056
+ map phi=R,M;
1057
+ I=phi(I);
1058
+ classifyicis(I)
1059
+ //===========================================
1060
+ ideal I=x2+y11,x2y3+xy4;
1061
+ classifyicis(I);
1062
+ //======================
1063
+ ring S=0,(u,v),dp;
1064
+ ideal N=maxideal(1);
1065
+ //======================
1066
+ ideal J=u2+v7,uv2;
1067
+ N[1]=u+3v+uv+u3v;
1068
+ N[2]=v;
1069
+ map si=S,N;
1070
+ J=si(J);
1071
+ classifyicis(J);
1072
+ //======================
1073
+ ideal J=u2+v2+uv5+v11,uv4+v5;
1074
+ classifyicis(I);
1075
+ //===========================================
1076
+ ring R=0,(x,y,z),ds;
1077
+ ideal M=maxideal(1);
1078
+ //======================
1079
+ ideal I=x2+y3+z5,yz;
1080
+ classifyicis(I);
1081
+ //======================
1082
+ ideal I=x2+z3,y2+z3;
1083
+ classificis(I);
1084
+ //======================
1085
+ ideal I=x2+yz+z3,xy;
1086
+ M[3]=x+4y+3z+x2y;
1087
+ map phi=R,M;
1088
+ I=phi(I);
1089
+ classifyicis(I);
1090
+ //======================
1091
+ ideal I=x2+y3+z6,yz+xy3;
1092
+ classifyicis(I);
1093
+ //============================================
1094
+ ideal I=x2+z3,y2+xz;
1095
+ M[2]=x+3y;
1096
+ map phi=R,M;
1097
+ I=phi(I);
1098
+ classifyicis(I);
1099
+ //============================================
1100
+ ring S=0,(u,v,w),ds;
1101
+ ideal M=maxideal(1);
1102
+ ideal I=u2+vw+w3,uv;
1103
+ M[1]=u+3v+3vw+w2;
1104
+ map phi=S,M;
1105
+ I=phi(I);
1106
+ classifyicis(I);
1107
+ //==========Examples of Semigroup of the space curves====================
1108
+ ring R=0,(x,y,z),ds;
1109
+ ideal I=xy+z3,xz+z2y2+y6;
1110
+ Semigroup(I);
1111
+ //======================
1112
+ ideal I=xy,xz+z3+z2y3+y11;
1113
+ Semigroup(I);
1114
+ //======================
1115
+ ideal I=xy+z4,xz+y6+yz2;
1116
+ Semigroup(I);
1117
+ //======================
1118
+ ideal I=xy+z2,x2+z2y+5y4;
1119
+ Semigroup(I);
1120
+ //======================
1121
+ ideal I=x2+yz2,y2+z3;
1122
+ Semigroup(I);
1123
+ //======================
1124
+ ideal I=x2+yz,xy+z4;
1125
+ Semigroup(I);
1126
+ //======================
1127
+ ideal I=xy,xz+z3+z2y5+2y15;
1128
+ Semigroup(I);
1129
+ //======================
1130
+ ideal I=xy,xz+z3+zy9;
1131
+ Semigroup(I);
1132
+ //======================
1133
+ */