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,789 @@
1
+ ////////////////////////////////////////////////////////////////////////////
2
+ version="version resgraph.lib 4.1.2.0 Feb_2019 "; // $Id: 17dd959e9a046cc0539ae2bd9419db631b941273 $
3
+ category="Visualization";
4
+ info="
5
+ LIBRARY: resgraph.lib Visualization of Resolution Data
6
+
7
+ AUTHOR: A. Fruehbis-Krueger, anne@mathematik.uni-kl.de,
8
+
9
+ NOTE: This library uses the external programs surf, graphviz and imagemagick.
10
+ @* Input data is assumed to originate from resolve.lib and reszeta.lib
11
+
12
+ PROCEDURES:
13
+ InterDiv(M[,name]) dual graph of resolution of a surface (uses graphviz,imagemagick)
14
+ ResTree(L,M[,name]) tree of charts of resolution (uses graphviz,imagemagick)
15
+ finalCharts(L,...) pictures of final charts of surface (uses surf)
16
+ ";
17
+
18
+ proc InterDiv(intmat M, list #)
19
+ "USAGE: InterDiv(M[,name]);
20
+ @* M = matrix
21
+ @* name = string
22
+ ASSUME: - M is first list entry of output of 'intersectionDiv'
23
+ @* from library reszeta.lib
24
+ @* - write permission in the current directory or in the
25
+ @* directory in which the file with name 'name' resides
26
+ CREATE: file 'name.jpg' containing dual graph of resolution
27
+ @* if filename is given
28
+ NOTE: only available on UNIX-type systems and programs
29
+ @* 'display' (imagemagick package) and 'dot' (Graphviz package) need to
30
+ @* be in the standard search PATH
31
+ RETURN: nothing, only generating graphics output in separate window
32
+ EXAMPLE: not available (for technical reasons)
33
+ "
34
+ {
35
+ "Warning: alpha testing version of this procedure";
36
+ int i,j;
37
+ string tempstr;
38
+ //---------------------------------------------------------------------------
39
+ // build up temporary filename and open file for writing
40
+ //---------------------------------------------------------------------------
41
+ if(size(#)>0)
42
+ {
43
+ if((typeof(#[1])=="string") && (goodFilename(#[1])))
44
+ {
45
+ string @filename=#[1];
46
+ }
47
+ else
48
+ {
49
+ ERROR("Second argument should specify a WRITABLE file");
50
+ }
51
+ }
52
+ if(!defined(@filename))
53
+ {
54
+ string @filename=buildFilename("InterDiv.dot");
55
+ }
56
+ link eing=":w "+@filename;
57
+ //--------------------------------------------------------------------------
58
+ // write input for external program dot to file
59
+ //--------------------------------------------------------------------------
60
+ write(eing,"graph G{");
61
+ for(i=1;i<=ncols(M);i++)
62
+ {
63
+ if(M[i,i]!=-2)
64
+ {
65
+ tempstr=string(i)+"[shape=circle,label=\""+string(M[i,i])+"\"];";
66
+ }
67
+ else
68
+ {
69
+ tempstr=string(i)+"[shape=point,label=\" \"];";
70
+ }
71
+ write(eing,tempstr);
72
+ }
73
+ for(i=1;i<=nrows(M);i++)
74
+ {
75
+ for(j=i+1;j<=ncols(M);j++)
76
+ {
77
+ if(M[i,j]!=0)
78
+ {
79
+ tempstr=string(i) + "--" + string(j) + ";";
80
+ write(eing,tempstr);
81
+ }
82
+ }
83
+ }
84
+ write(eing,"}");
85
+ close(eing);
86
+ //---------------------------------------------------------------------------
87
+ // produce graphics output using the programs dot and display
88
+ //---------------------------------------------------------------------------
89
+ string outfile=@filename + ".jpg";
90
+ if(!find(outfile,"/"))
91
+ {
92
+ //--- display needs fully qualified path to file
93
+ outfile=system("getenv","PWD") + "/" + outfile;
94
+ }
95
+ j=system("sh","dot -Tjpg " + @filename + " -o "+ outfile);
96
+ j=system("sh","display " + outfile + " &");
97
+ //---------------------------------------------------------------------------
98
+ // clean up if necessary
99
+ //---------------------------------------------------------------------------
100
+ "Currently showing graphics in separate window";
101
+ "Press <Return> to continue";
102
+ pause();
103
+ if((size(#)==0)&&(find(@filename,"/tmp/")))
104
+ {
105
+ //--- do not leave any garbage in the public directories
106
+ j=system("sh","command rm " + outfile + " " + @filename);
107
+ }
108
+ return();
109
+ }
110
+ ///////////////////////////////////////////////////////////////////////////////
111
+ //static
112
+ proc goodFilename(string datei)
113
+ {
114
+ //--- check whether the specified file datei is writable for us
115
+ if(!system("sh","touch " + datei + " > /dev/null 2>&1"))
116
+ {
117
+ return(1);
118
+ }
119
+ else
120
+ {
121
+ return(0);
122
+ }
123
+ }
124
+ //////////////////////////////////////////////////////////////////////////////
125
+ //static
126
+ proc buildFilename(string datei)
127
+ {
128
+ if(goodFilename(datei))
129
+ {
130
+ return(datei);
131
+ }
132
+ if(find(datei,"/"))
133
+ {
134
+ ERROR("Specified directory/file is not writable");
135
+ }
136
+ datei="/tmp/" + datei;
137
+ if(goodFilename(datei))
138
+ {
139
+ return(datei);
140
+ }
141
+ //--- not reached
142
+ ERROR("At least /tmp should be writable");
143
+ }
144
+ ///////////////////////////////////////////////////////////////////////////////
145
+
146
+ proc ResTree(list re, intmat DivMat, list #)
147
+ "USAGE: ResTree(L,M[,name][,mark]);
148
+ @* L = list
149
+ @* M = matrix
150
+ @* name = string
151
+ @* mark = intvec
152
+ ASSUME: - L is the output of 'resolve' from resolve.lib
153
+ @* - M is first entry of output of 'collectDiv(L);' from reszeta.lib
154
+ @* - write permission in the current directory or in the
155
+ @* directory in which the file with name 'name' resides
156
+ @* - mark intvec of size size(L[2])
157
+ @* mark[i]=0 (default) border of box black
158
+ @* mark[i]=1 border of box red
159
+ CREATE: file 'name.jpg' containing the tree of charts of L
160
+ @* if filename is given
161
+ NOTE: only available on UNIX-type systems and programs
162
+ @* 'display' (imagemagick package) and 'dot' (Graphviz package) need to
163
+ @* be in the standard search PATH
164
+ RETURN: nothing, only generating graphics output in separate window
165
+ EXAMPLE: not available (for technical reasons)
166
+ "
167
+ {
168
+ //-----------------------------------------------------------------------------
169
+ // Initialization and definition of the temporary filename
170
+ //-----------------------------------------------------------------------------
171
+ int i,j,dimC,jsave;
172
+ string tempstr;
173
+ def R=basering;
174
+ if(size(#)>0)
175
+ {
176
+ if(typeof(#[1])=="string")
177
+ {
178
+ if(goodFilename(#[1]))
179
+ {
180
+ string @filename=#[1];
181
+ }
182
+ else
183
+ {
184
+ ERROR("optional argument of type string "+
185
+ "should specify a writable file.");
186
+ }
187
+ }
188
+ if(typeof(#[1])=="intvec")
189
+ {
190
+ intvec @rot=#[1];
191
+ }
192
+ }
193
+ if(size(#)>1)
194
+ {
195
+ if((typeof(#[2])=="string")&&(!defined(@filename)))
196
+ {
197
+ if(goodFilename(#[1]))
198
+ {
199
+ string @filename=#[1];
200
+ }
201
+ else
202
+ {
203
+ ERROR("optional argument of type string "+
204
+ "should specify a writable file.");
205
+ }
206
+ }
207
+ if((typeof(#[2])=="intvec")&&(!defined(@rot)))
208
+ {
209
+ intvec @rot=#[2];
210
+ }
211
+ }
212
+ if(!defined(@filename))
213
+ {
214
+ string @filename=buildFilename("ResTree.dot");
215
+ }
216
+ if(!defined(@rot))
217
+ {
218
+ intvec @rot;
219
+ @rot[size(re[2])]=0;
220
+ }
221
+ link eing=":w "+@filename;
222
+ //----------------------------------------------------------------------------
223
+ // writing the input to the program dot into a file
224
+ //----------------------------------------------------------------------------
225
+ write(eing,"graph G{");
226
+ tempstr="1[shape=box,label=\"chart 1\"];";
227
+ write(eing,tempstr);
228
+ for(i=2;i<=size(re[2]);i++)
229
+ {
230
+ tempstr=string(i)+"[shape=box,label=\"chart " + string(i)
231
+ + "\\nE:"+string(simplify(ideal(DivMat[i,1..ncols(DivMat)]),2))
232
+ + " \"";
233
+ if(@rot[i]==1)
234
+ {
235
+ tempstr=tempstr + "color=\"red\"];";
236
+ }
237
+ else
238
+ {
239
+ tempstr=tempstr + "];";
240
+ }
241
+ write(eing,tempstr);
242
+ }
243
+ for(i=2;i<=size(re[2]);i++)
244
+ {
245
+ def S=re[2][i];
246
+ setring S;
247
+ j=int(leadcoef(path[1,ncols(path)]));
248
+ if(j!=jsave)
249
+ {
250
+ def T=re[2][j];
251
+ setring T;
252
+ dimC=dim(std(BO[1]+cent));
253
+ setring S;
254
+ kill T;
255
+ }
256
+ setring R;
257
+ kill S;
258
+ if(j!=jsave)
259
+ {
260
+ tempstr=string(j) + "--" + string(i) +"[label=\"d=" + string(dimC)
261
+ + "\"];";
262
+ jsave=j;
263
+ }
264
+ else
265
+ {
266
+ tempstr=string(j) + "--" + string(i) +";";
267
+ }
268
+ write(eing,tempstr);
269
+ }
270
+ write(eing,"}");
271
+ close(eing);
272
+ //---------------------------------------------------------------------------
273
+ // Create the graphics output using the programs dot and display
274
+ //---------------------------------------------------------------------------
275
+ string outfile=@filename + ".jpg";
276
+ if(!find(outfile,"/"))
277
+ {
278
+ //--- display needs fully qualified path to file
279
+ outfile=system("getenv","PWD") + "/" + outfile;
280
+ }
281
+ j=system("sh", "dot -Tjpg " + @filename + " -o "+ outfile);
282
+ j=system("sh","display " + outfile + "&");
283
+ //---------------------------------------------------------------------------
284
+ // Clean up public directories if necessary
285
+ //---------------------------------------------------------------------------
286
+ "Currently showing graphics in separate window";
287
+ "Press <Return> to continue";
288
+ pause();
289
+ if(find(@filename,"/tmp/"))
290
+ {
291
+ //--- do not leave any garbage in the public directories
292
+ j=system("sh","command rm " + @filename + ".jpg "+ @filename);
293
+ }
294
+ return();
295
+ }
296
+ /////////////////////////////////////////////////////////////////////////////
297
+
298
+ proc finalCharts(list re, list inter, intvec endiv, list #)
299
+ "USAGE: finalCharts(L1,L2,iv[,name]);
300
+ @* L1 = list
301
+ @* L2 = list
302
+ @* iv = intvec
303
+ @* name = string
304
+ ASSUME: - L1 is the output of 'resolve' from resolve.lib
305
+ @* - L2 is the output of 'intersectionDiv(L1)' from reszeta.lib
306
+ @* - iv is the first entry of the output of 'abstractR(L1)'
307
+ @* - write permission in the current directory or in the
308
+ @* directory in which the file with name 'name' resides
309
+ CREATE: - new windows in which surf-images of the final charts are presented
310
+ @* - several '.ras' files in the directory in which 'name' resides
311
+ NOTE: only available on UNIX-type systems
312
+ @* external programs 'surf' and 'display' (imagemagick package) need to be
313
+ @* in the standard search PATH
314
+ RETURN: nothing, only generating graphics output in separate window
315
+ EXAMPLE: not available (for technical reasons)
316
+ "
317
+ {
318
+ //-----------------------------------------------------------------------------
319
+ // Initialization and Sanity Checks
320
+ //-----------------------------------------------------------------------------
321
+ int i,j,k,a,b,cnt,whichE,offset,haveDcE8;
322
+ def R=basering;
323
+ list endCharts;
324
+ string fname,tempstr;
325
+ for(i=1;i<=size(endiv);i++)
326
+ {
327
+ if(endiv[i]==1)
328
+ {
329
+ endCharts[size(endCharts)+1]=i;
330
+ //--- Sanity checks for the chart i
331
+ if(nvars(re[2][i])!=3)
332
+ {
333
+ ERROR("This chart is not embedded in 3-dimensional space");
334
+ }
335
+ if(defined(S)){kill S;}
336
+ def S=re[2][i];
337
+ setring S;
338
+ if(dim(std(BO[1]+BO[2]))!=2)
339
+ {
340
+ ERROR("Strict Transform is not a surface");
341
+ }
342
+ if(size(equidim(BO[1]+BO[2]))!=1)
343
+ {
344
+ ERROR("Strict Transform has lower dimensional components.");
345
+ }
346
+ //--- put the missing information into dcE, if necessary
347
+ for(k=1;k<=size(dcE);k++)
348
+ {
349
+ for(j=1;j<=size(dcE[k]);j++)
350
+ {
351
+ if(deg(std(dcE[k][j][1])[1])!=0)
352
+ {
353
+ if(size(dcE[k][j][1]) < 8)
354
+ {
355
+ setring R;
356
+ k=prepareDcE(re,inter,endiv);
357
+ setring S;
358
+ }
359
+ haveDcE8=1;
360
+ break;
361
+ }
362
+ }
363
+ if(haveDcE8!=0) break;
364
+ }
365
+ setring R;
366
+ }
367
+ }
368
+ if(!defined(colorlist))
369
+ {
370
+ list colorlist;
371
+ for(i=1;i<=10;i++)
372
+ {
373
+ colorlist[i]="curve_red = "+string((i-1)*25)+"; curve_green = "+
374
+ string(255-(i-1)*25)+"; curve_blue = "+
375
+ string(((i-1) mod 5)*50)+";";
376
+ }
377
+ }
378
+ else
379
+ {
380
+ "Warning!";
381
+ "Using colors specified in variable colorlist. No syntax checks";
382
+ "performed on the content of this list.";
383
+ "If built-in colors should be used, please rename the global";
384
+ "object colorlist";
385
+ }
386
+ if(ncols(inter[1])>size(colorlist))
387
+ {
388
+ ERROR("Too many exceptional curves on this surface.....");
389
+ }
390
+ if((size(endCharts)>20)&&(size(#)==0))
391
+ {
392
+ ERROR("More than 20 final charts...");
393
+ }
394
+ //-----------------------------------------------------------------------------
395
+ // Determine the basename of the temporary files
396
+ //-----------------------------------------------------------------------------
397
+ if(size(#)>0)
398
+ {
399
+ if((typeof(#[1])=="string") && (goodFilename(#[1])))
400
+ {
401
+ string fnamebase=#[1];
402
+ }
403
+ else
404
+ {
405
+ ERROR("Second argument should specify a WRITABLE file");
406
+ }
407
+ }
408
+ if(!defined(@fnamebase))
409
+ {
410
+ string fnamebase=buildFilename("Chart");
411
+ }
412
+ //-----------------------------------------------------------------------------
413
+ // Go through all final charts and write a separate surf input file for each
414
+ //-----------------------------------------------------------------------------
415
+ for(i=1;i<=size(endCharts);i++)
416
+ {
417
+ fname=fnamebase + string(endCharts[i]) + ".surf";
418
+ if(defined(eing)){kill eing;}
419
+ link eing=":w "+fname;
420
+ //--- define surf's root finding algorithm
421
+ tempstr="root_finder = d_chain_bisection; epsilon = 0.000000001;";
422
+ write(eing,tempstr);
423
+ //--- define image size
424
+ tempstr="int wid = 480;width = wid; height = wid;";
425
+ write(eing,tempstr);
426
+ //--- define ambient lighting
427
+ tempstr="ambient=50;";
428
+ write(eing,tempstr);
429
+ //--- define background colour: some shade of gray
430
+ tempstr="background_red=200; background_green=200; background_blue=200;";
431
+ write(eing,tempstr);
432
+ //--- define surface colour (one side):
433
+ tempstr="surface_red=22; surface_green=150; surface_blue=255;";
434
+ write(eing,tempstr);
435
+ //--- define surface colour (other side):
436
+ tempstr="inside_red=255; inside_green=192; inside_blue=0;";
437
+ write(eing,tempstr);
438
+ //--- define scaling factor
439
+ tempstr="scale_x=0.5; scale_y=0.5; scale_z=0.5;";
440
+ write(eing,tempstr);
441
+ //--- rotate a little bit
442
+ tempstr="rot_y=0.9013941717697173; rot_x=-0.5556596516994916; rot_z=0.103062920202253447;";
443
+ write(eing,tempstr);
444
+ //----------------------------------------------------------------------------
445
+ // change to the chart and extract the equation of the surface
446
+ // then draw the surface
447
+ //----------------------------------------------------------------------------
448
+ if(defined(S)){kill S;}
449
+ def S=re[2][endCharts[i]];
450
+ setring S;
451
+ //--- define equation of strict transform (hypersurface of dim 2)
452
+ ideal drawJ=simplify(mstd(radical(BO[1]+BO[2]))[2],2);
453
+ if(size(drawJ)>1)
454
+ {
455
+ //!!! unnoetig! Da kann man auch surface2,... machen
456
+ ERROR("Did not find generator of principal ideal " + string(drawJ));
457
+ }
458
+ tempstr="poly f = " + map2Surf(string(drawJ[1])) + ";";
459
+ write(eing,tempstr);
460
+ tempstr="surface = f;draw_surface;";
461
+ write(eing,tempstr);
462
+ //----------------------------------------------------------------------------
463
+ // now consider all exceptional curves in this chart separately
464
+ // and draw them
465
+ //---------------------------------------------------------------------------
466
+ if(!defined(dcE))
467
+ {
468
+ //--- Oups, exceptional curves not yet decomposed in this chart
469
+ //--- should not happen in practice
470
+ ERROR("The procedure intersectionDiv has not been used
471
+ on this tree of charts");
472
+ }
473
+ for(j=1;j<=size(dcE);j++)
474
+ {
475
+ //--- Run through all exceptional divisors (in the embedded sense)
476
+ for(k=1;k<=size(dcE[j]);k++)
477
+ {
478
+ //--- Run through all curves corresponding to the current divisor
479
+ if(deg(std(dcE[j][k][1])[1])==0)
480
+ {
481
+ //--- This one is empty - skip it
482
+ k++;
483
+ if(k>size(dcE[j])) {break;}
484
+ continue;
485
+ }
486
+ for(a=1;a<=size(inter[3]);a++)
487
+ {
488
+ //--- this curve belongs to which (Q-irred.) divisor in global numbering?
489
+ if(inIVList(intvec(endCharts[i],j,k),inter[3][a])) break;
490
+ }
491
+ if(a>size(inter[3]))
492
+ {
493
+ //--- curve not found in list
494
+ ERROR("Inconsistency between data of arguments 1 and 2");
495
+ }
496
+ whichE=a;
497
+ offset=0;
498
+ for(a=1;a<whichE;a++)
499
+ {
500
+ //--- count C-irred. divisors up to this (Q-irred. divisor) index
501
+ offset=offset+inter[4][a];
502
+ }
503
+ for(a=1;a<=size(dcE[j][k][7]);a++)
504
+ {
505
+ //--- run through all C-irred divisors corresponding to this Q-irred. one
506
+ //--- run through all generators of the ideal of the curve
507
+ //--- unfortunately the ideal is encoded in a string,
508
+ //--- and we need to work to find the generators
509
+ int tempint=find(dcE[j][k][6],",");
510
+ b=0;
511
+ cnt=1;
512
+ while(tempint!=0)
513
+ {
514
+ if(!find(dcE[j][k][7][a],"i"))
515
+ {
516
+ //--- 1) surf can only handle real numbers ==> we ignore the other curves
517
+ //--- 2) we can only form substrings of named strings:
518
+ tempstr=dcE[j][k][6]; // give it a name
519
+ tempstr=tempstr[b+1..tempint-1]; // find correct substring
520
+ tempstr="poly f" + string(offset+dcE[j][k][8][a])+ "_" +
521
+ string(b+1) + " = " +
522
+ map2Surf(plugInNumZero(tempstr,dcE[j][k][7][a])) + ";";
523
+ write(eing,tempstr);
524
+ tempstr="cutsurface" + string(cnt) + " = f" +
525
+ string(offset+dcE[j][k][8][a]) + "_" +string(b+1) + ";";
526
+ write(eing,tempstr);
527
+ cnt++;
528
+ }
529
+ b=tempint; // save end-mark
530
+ tempint=find(dcE[j][k][6],",",b+1); // next one please
531
+ }
532
+ if(!find(dcE[j][k][7][a],"i"))
533
+ {
534
+ tempstr=dcE[j][k][6]; // as before, but for last
535
+ tempstr=tempstr[b+1..size(tempstr)]; // fragment
536
+ tempstr="poly f" + string(offset+dcE[j][k][8][a])+ "_" +
537
+ string(b+1) + " = " +
538
+ map2Surf(plugInNumZero(tempstr,dcE[j][k][7][a])) + ";";
539
+ write(eing,tempstr);
540
+ tempstr="cutsurface" + string(cnt)+ " = f" +
541
+ string(offset+dcE[j][k][8][a]) + "_" +string(b+1) + ";";
542
+ write(eing,tempstr);
543
+ cnt++;
544
+ }
545
+ //--- draw the curve on the surface
546
+ if(cnt>1)
547
+ {
548
+ tempstr=colorlist[offset+dcE[j][k][8][a]];
549
+ write(eing,tempstr);
550
+ write(eing,"cut_with_surface;");
551
+ }
552
+ kill tempint;
553
+ }
554
+ }
555
+ }
556
+ if(!find(fnamebase,"/"))
557
+ {
558
+ //--- display needs fully qualified path to file
559
+ if(defined(outfile)) {kill outfile;}
560
+ string outfile=system("getenv","PWD") + "/" + fnamebase;
561
+ }
562
+ if(!defined(outfile))
563
+ {
564
+ tempstr="filename = \"" + fnamebase + string(endCharts[i]) + ".ras\";";
565
+ }
566
+ else
567
+ {
568
+ tempstr="filename = \"" + outfile + string(endCharts[i]) + ".ras\";";
569
+ }
570
+ write(eing,tempstr);
571
+ tempstr="color_file_format = sun;";
572
+ write(eing,tempstr);
573
+ tempstr="save_color_image;";
574
+ write(eing,tempstr);
575
+ close(eing);
576
+ j=system("sh", "surf -n " + fnamebase +string(endCharts[i]) + ".surf");
577
+ if(!defined(outfile))
578
+ {
579
+ j=system("sh","display " + fnamebase
580
+ + string(endCharts[i]) + ".ras &");
581
+ }
582
+ else
583
+ {
584
+ j=system("sh","display " + outfile
585
+ + string(endCharts[i]) + ".ras &");
586
+ kill outfile;
587
+ }
588
+ "Currently showing graphics for chart "+string(endCharts[i])
589
+ +" in separate window";
590
+ "Press <Return> to continue";
591
+ pause();
592
+ }
593
+ return(0);
594
+ }
595
+ //////////////////////////////////////////////////////////////////////////////
596
+ // static
597
+ proc plugInNumZero(string f,string num)
598
+ {
599
+ int i;
600
+ string fStr=f;
601
+ i=find(fStr,"t");
602
+ while(i!=0)
603
+ {
604
+ fStr = string(fStr[1..i-1]) + "(" + num + ")"
605
+ + string(fStr[i+1..size(fStr)]);
606
+ i=find(fStr,"t");
607
+ }
608
+ return(fStr);
609
+ }
610
+ //////////////////////////////////////////////////////////////////////////////
611
+ // static
612
+ proc replaceInStr(string alles, string alt, string neu)
613
+ {
614
+ int i=find(alles,alt);
615
+ while(i!=0)
616
+ {
617
+ if((i-1)<1)
618
+ {
619
+ if(size(alt)==size(alles))
620
+ {
621
+ alles=neu;
622
+ }
623
+ else
624
+ {
625
+ alles=neu + string(alles[i+size(alt)..size(alles)]);
626
+ }
627
+ }
628
+ else
629
+ {
630
+ if(i+size(alt)>size(alles))
631
+ {
632
+ alles=string(alles[1..i-1]) + neu;
633
+ }
634
+ else
635
+ {
636
+ alles=string(alles[1..i-1]) + neu +
637
+ string(alles[i+size(alt)..size(alles)]);
638
+ }
639
+ }
640
+ i=find(alles,alt);
641
+ }
642
+ return(alles);
643
+ }
644
+ /////////////////////////////////////////////////////////////////////////////
645
+ // static
646
+ proc map2Surf(string str)
647
+ {
648
+ str=replaceInStr(str,string(var(1)),"x");
649
+ str=replaceInStr(str,string(var(2)),"y");
650
+ str=replaceInStr(str,string(var(3)),"z");
651
+ return(str);
652
+ }
653
+ /////////////////////////////////////////////////////////////////////////////
654
+ // static
655
+ proc prepareDcE(list re, list inter, list endCharts)
656
+ {
657
+ def R=basering;
658
+ //---Test whether we are in the irreducible surface case
659
+ def S=re[2][1];
660
+ setring S;
661
+ BO[2]=BO[2]+BO[1]; // make sure we are living in the smooth W
662
+ if(dim(std(BO[2]))!=2)
663
+ {
664
+ ERROR("The given original object is not a surface");
665
+ }
666
+ if(dim(std(slocus(BO[2])))>0)
667
+ {
668
+ ERROR("The given original object has non-isolated singularities.");
669
+ }
670
+ setring R;
671
+ //----------------------------------------------------------------------------
672
+ // Compute a non-embedded resolution from the given embedded one by
673
+ // dropping redundant trailing blow-ups
674
+ //----------------------------------------------------------------------------
675
+ //--- compute non-embedded resolution
676
+ int ii,j,k,a,b,comPa;
677
+ list abst=abstractR(re);
678
+ intvec endiv=abst[1];
679
+ intvec deleted=abst[2];
680
+ //--- identify the divisors in the various final charts
681
+ list iden0=collectDiv(re,deleted)[2];
682
+ // list of final divisors
683
+ //----------------------------------------------------------------------------
684
+ // For each Q-irred. divisor (specified in inter[3]), run through all
685
+ // occurrences and identify the different C-components
686
+ //----------------------------------------------------------------------------
687
+ for(ii=1;ii<=size(inter[3]);ii++)
688
+ {
689
+ //--- run through all Q-irred. curves,
690
+ //--- set up the first occurrence for reference
691
+ if(defined(S)) {kill S;}
692
+ def S=re[2][inter[3][ii][1][1]];
693
+ // inter[3] = list of Q-irred div.
694
+ // inter[3][ii] = ii-th thereof
695
+ // inter[3][ii][1] = first occurrence
696
+ // inter[3][ii][1][1] = corr. chart index
697
+ setring S;
698
+ dcE[inter[3][ii][1][2]][inter[3][ii][1][3]][8]=
699
+ intvec(1..ncols(dcE[inter[3][ii][1][2]][inter[3][ii][1][3]][4]));
700
+ //--- prepare the ideal of the divisor for mapping to different chart
701
+ if(defined(idlist1)){kill idlist1;}
702
+ list idlist1;
703
+ idlist1[1]=dcE[inter[3][ii][1][2]][inter[3][ii][1][3]][6];
704
+ exportto(Top,idlist1);
705
+ for(j=2;j<=size(inter[3][ii]);j++)
706
+ {
707
+ //--- now do the comparison with the other occurrences
708
+ //--- 1. find a common parent for inter[3][ii][1][1] and inter[3][ii][j][1]
709
+ if(defined(S)){kill S;}
710
+ def S=re[2][inter[3][ii][j][1]];
711
+ setring S;
712
+ if(defined(opath)){kill opath;}
713
+ def opath=imap(re[2][inter[3][ii][1][1]],path);
714
+ k=1;
715
+ while(opath[1,k]==path[1,k])
716
+ {
717
+ k++;
718
+ if((k>ncols(opath))||(k>ncols(path))) break;
719
+ }
720
+ comPa=int(leadcoef(opath[1,k-1]));
721
+ //--- 2. use fetchInTree to transfer the C-components
722
+ if(defined(str)) {kill str;}
723
+ if(defined(il)) {kill il;}
724
+ if(defined(mpi)) {kill mpi;}
725
+ if(defined(nulli)) {kill nulli;}
726
+ string str="idlist1";
727
+ attrib(str,"algext",imap(re[2][inter[3][ii][1][1]],dcE)[inter[3][ii][1][2]][inter[3][ii][1][3]][5]);
728
+ list il=fetchInTree(re,inter[3][ii][1][1],comPa,inter[3][ii][j][1],str,iden0,1);
729
+ list nulli=imap(re[2][inter[3][ii][1][1]],dcE)[inter[3][ii][1][2]][inter[3][ii][1][3]][7];
730
+ string mpi=imap(re[2][inter[3][ii][1][1]],dcE)[inter[3][ii][1][2]][inter[3][ii][1][3]][5];
731
+ if(mpi!=dcE[inter[3][ii][j][2]][inter[3][ii][j][3]][5])
732
+ {
733
+ ERROR("Problem identifying the appropriate field extension.!");
734
+ }
735
+ if(defined(ringt)){kill ringt;}
736
+ ring ringt=0,(t),dp;
737
+ if(defined(St)){kill St;}
738
+ def St=S+ringt;
739
+ setring St;
740
+ if(defined(strId)) {kill strId;}
741
+ string strId="ideal id1=" + il[1] + ";";
742
+ execute(strId);
743
+ id1=std(id1);
744
+ strId="ideal idj="
745
+ + imap(S,dcE)[inter[3][ii][j][2]][inter[3][ii][j][3]][6]
746
+ + ";";
747
+ execute(strId);
748
+ idj=std(idj);
749
+ if(defined(nullj)){kill nullj;}
750
+ list nullj=imap(S,dcE)[inter[3][ii][1][2]][inter[3][ii][1][3]][7];
751
+ if(defined(rcomp)){kill rcomp;}
752
+ ring rcomp = create_ring(complex, "(" +varstr(basering) +")", "(" +ordstr(basering) + ")");
753
+ def id1=imap(St,id1);
754
+ def idj=imap(St,idj);
755
+ ideal id10,idj0;
756
+ if(defined(tintvec)){kill tintvec;}
757
+ intvec tintvec;
758
+ tintvec[size(nullj)]=0;
759
+ for(a=1;a<=size(nullj);a++)
760
+ {
761
+ if(defined(numa)) {kill numa;}
762
+ strId="number numa=" + string(nullj[a]) + ";";
763
+ execute(strId);
764
+ idj0=subst(idj,t,numa);
765
+ for(b=1;b<=size(nulli);b++)
766
+ {
767
+ if(defined(numb)) {kill numb;}
768
+ strId="number numb=" + string(nulli[b]) + ";";
769
+ execute(strId);
770
+ id10=subst(id1,t,numb);
771
+ attrib(id10,"isSB",1);
772
+ if(size(reduce(idj0,id10,5))==0)
773
+ {
774
+ tintvec[a]=b;
775
+ break;
776
+ }
777
+ }
778
+ if(!find(string(tintvec),string(b)))
779
+ {
780
+ ~;
781
+ ERROR("Problem identifying C-components in different charts.");
782
+ }
783
+ }
784
+ setring S;
785
+ dcE[inter[3][ii][1][2]][inter[3][ii][1][3]][8]=tintvec;
786
+ }
787
+ }
788
+ return(0);
789
+ }