passagemath-singular 10.6.31rc3__cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.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 (490) hide show
  1. PySingular.cpython-314-aarch64-linux-gnu.so +0 -0
  2. passagemath_singular-10.6.31rc3.dist-info/METADATA +183 -0
  3. passagemath_singular-10.6.31rc3.dist-info/RECORD +490 -0
  4. passagemath_singular-10.6.31rc3.dist-info/WHEEL +6 -0
  5. passagemath_singular-10.6.31rc3.dist-info/top_level.txt +3 -0
  6. passagemath_singular.libs/libSingular-4-6a2a8666.4.1.so +0 -0
  7. passagemath_singular.libs/libcddgmp-ac579979.so.0.1.3 +0 -0
  8. passagemath_singular.libs/libfactory-4-66e33516.4.1.so +0 -0
  9. passagemath_singular.libs/libflint-81de1160.so.21.0.0 +0 -0
  10. passagemath_singular.libs/libgf2x-fbd36f80.so.3.0.0 +0 -0
  11. passagemath_singular.libs/libgfortran-e1b7dfc8.so.5.0.0 +0 -0
  12. passagemath_singular.libs/libgmp-93ebf16a.so.10.5.0 +0 -0
  13. passagemath_singular.libs/libgsl-e3525837.so.28.0.0 +0 -0
  14. passagemath_singular.libs/libmpfr-e0f11cf3.so.6.2.1 +0 -0
  15. passagemath_singular.libs/libntl-0043a3a2.so.44.0.1 +0 -0
  16. passagemath_singular.libs/libomalloc-0-06512335.9.6.so +0 -0
  17. passagemath_singular.libs/libopenblasp-r0-4c5b64b1.3.29.so +0 -0
  18. passagemath_singular.libs/libpolys-4-cb7246b5.4.1.so +0 -0
  19. passagemath_singular.libs/libreadline-28330744.so.8.2 +0 -0
  20. passagemath_singular.libs/libsingular_resources-4-8c425241.4.1.so +0 -0
  21. passagemath_singular.libs/libtinfo-f81c2d16.so.6.3 +0 -0
  22. sage/algebras/all__sagemath_singular.py +3 -0
  23. sage/algebras/fusion_rings/all.py +19 -0
  24. sage/algebras/fusion_rings/f_matrix.py +2448 -0
  25. sage/algebras/fusion_rings/fast_parallel_fmats_methods.cpython-314-aarch64-linux-gnu.so +0 -0
  26. sage/algebras/fusion_rings/fast_parallel_fmats_methods.pxd +5 -0
  27. sage/algebras/fusion_rings/fast_parallel_fmats_methods.pyx +538 -0
  28. sage/algebras/fusion_rings/fast_parallel_fusion_ring_braid_repn.cpython-314-aarch64-linux-gnu.so +0 -0
  29. sage/algebras/fusion_rings/fast_parallel_fusion_ring_braid_repn.pxd +3 -0
  30. sage/algebras/fusion_rings/fast_parallel_fusion_ring_braid_repn.pyx +331 -0
  31. sage/algebras/fusion_rings/fusion_double.py +899 -0
  32. sage/algebras/fusion_rings/fusion_ring.py +1580 -0
  33. sage/algebras/fusion_rings/poly_tup_engine.cpython-314-aarch64-linux-gnu.so +0 -0
  34. sage/algebras/fusion_rings/poly_tup_engine.pxd +24 -0
  35. sage/algebras/fusion_rings/poly_tup_engine.pyx +579 -0
  36. sage/algebras/fusion_rings/shm_managers.cpython-314-aarch64-linux-gnu.so +0 -0
  37. sage/algebras/fusion_rings/shm_managers.pxd +24 -0
  38. sage/algebras/fusion_rings/shm_managers.pyx +780 -0
  39. sage/algebras/letterplace/all.py +1 -0
  40. sage/algebras/letterplace/free_algebra_element_letterplace.cpython-314-aarch64-linux-gnu.so +0 -0
  41. sage/algebras/letterplace/free_algebra_element_letterplace.pxd +18 -0
  42. sage/algebras/letterplace/free_algebra_element_letterplace.pyx +755 -0
  43. sage/algebras/letterplace/free_algebra_letterplace.cpython-314-aarch64-linux-gnu.so +0 -0
  44. sage/algebras/letterplace/free_algebra_letterplace.pxd +35 -0
  45. sage/algebras/letterplace/free_algebra_letterplace.pyx +914 -0
  46. sage/algebras/letterplace/letterplace_ideal.cpython-314-aarch64-linux-gnu.so +0 -0
  47. sage/algebras/letterplace/letterplace_ideal.pyx +408 -0
  48. sage/algebras/quatalg/all.py +2 -0
  49. sage/algebras/quatalg/quaternion_algebra.py +4778 -0
  50. sage/algebras/quatalg/quaternion_algebra_cython.cpython-314-aarch64-linux-gnu.so +0 -0
  51. sage/algebras/quatalg/quaternion_algebra_cython.pyx +261 -0
  52. sage/algebras/quatalg/quaternion_algebra_element.cpython-314-aarch64-linux-gnu.so +0 -0
  53. sage/algebras/quatalg/quaternion_algebra_element.pxd +29 -0
  54. sage/algebras/quatalg/quaternion_algebra_element.pyx +2176 -0
  55. sage/all__sagemath_singular.py +11 -0
  56. sage/ext_data/all__sagemath_singular.py +1 -0
  57. sage/ext_data/singular/function_field/core.lib +98 -0
  58. sage/interfaces/all__sagemath_singular.py +1 -0
  59. sage/interfaces/singular.py +2835 -0
  60. sage/libs/all__sagemath_singular.py +1 -0
  61. sage/libs/singular/__init__.py +1 -0
  62. sage/libs/singular/decl.pxd +1168 -0
  63. sage/libs/singular/function.cpython-314-aarch64-linux-gnu.so +0 -0
  64. sage/libs/singular/function.pxd +87 -0
  65. sage/libs/singular/function.pyx +1901 -0
  66. sage/libs/singular/function_factory.py +61 -0
  67. sage/libs/singular/groebner_strategy.cpython-314-aarch64-linux-gnu.so +0 -0
  68. sage/libs/singular/groebner_strategy.pxd +22 -0
  69. sage/libs/singular/groebner_strategy.pyx +582 -0
  70. sage/libs/singular/option.cpython-314-aarch64-linux-gnu.so +0 -0
  71. sage/libs/singular/option.pyx +671 -0
  72. sage/libs/singular/polynomial.cpython-314-aarch64-linux-gnu.so +0 -0
  73. sage/libs/singular/polynomial.pxd +39 -0
  74. sage/libs/singular/polynomial.pyx +661 -0
  75. sage/libs/singular/ring.cpython-314-aarch64-linux-gnu.so +0 -0
  76. sage/libs/singular/ring.pxd +58 -0
  77. sage/libs/singular/ring.pyx +893 -0
  78. sage/libs/singular/singular.cpython-314-aarch64-linux-gnu.so +0 -0
  79. sage/libs/singular/singular.pxd +72 -0
  80. sage/libs/singular/singular.pyx +1944 -0
  81. sage/libs/singular/standard_options.py +145 -0
  82. sage/matrix/all__sagemath_singular.py +1 -0
  83. sage/matrix/matrix_mpolynomial_dense.cpython-314-aarch64-linux-gnu.so +0 -0
  84. sage/matrix/matrix_mpolynomial_dense.pxd +7 -0
  85. sage/matrix/matrix_mpolynomial_dense.pyx +615 -0
  86. sage/rings/all__sagemath_singular.py +1 -0
  87. sage/rings/function_field/all__sagemath_singular.py +1 -0
  88. sage/rings/function_field/derivations_polymod.py +911 -0
  89. sage/rings/function_field/element_polymod.cpython-314-aarch64-linux-gnu.so +0 -0
  90. sage/rings/function_field/element_polymod.pyx +406 -0
  91. sage/rings/function_field/function_field_polymod.py +2611 -0
  92. sage/rings/function_field/ideal_polymod.py +1775 -0
  93. sage/rings/function_field/order_polymod.py +1475 -0
  94. sage/rings/function_field/place_polymod.py +681 -0
  95. sage/rings/polynomial/all__sagemath_singular.py +1 -0
  96. sage/rings/polynomial/multi_polynomial_ideal_libsingular.cpython-314-aarch64-linux-gnu.so +0 -0
  97. sage/rings/polynomial/multi_polynomial_ideal_libsingular.pxd +5 -0
  98. sage/rings/polynomial/multi_polynomial_ideal_libsingular.pyx +339 -0
  99. sage/rings/polynomial/multi_polynomial_libsingular.cpython-314-aarch64-linux-gnu.so +0 -0
  100. sage/rings/polynomial/multi_polynomial_libsingular.pxd +30 -0
  101. sage/rings/polynomial/multi_polynomial_libsingular.pyx +6277 -0
  102. sage/rings/polynomial/plural.cpython-314-aarch64-linux-gnu.so +0 -0
  103. sage/rings/polynomial/plural.pxd +48 -0
  104. sage/rings/polynomial/plural.pyx +3171 -0
  105. sage/symbolic/all__sagemath_singular.py +1 -0
  106. sage/symbolic/comparison_impl.pxi +428 -0
  107. sage/symbolic/constants_c_impl.pxi +178 -0
  108. sage/symbolic/expression.cpython-314-aarch64-linux-gnu.so +0 -0
  109. sage/symbolic/expression.pxd +7 -0
  110. sage/symbolic/expression.pyx +14200 -0
  111. sage/symbolic/getitem_impl.pxi +202 -0
  112. sage/symbolic/pynac.pxi +572 -0
  113. sage/symbolic/pynac_constant_impl.pxi +133 -0
  114. sage/symbolic/pynac_function_impl.pxi +206 -0
  115. sage/symbolic/pynac_impl.pxi +2576 -0
  116. sage/symbolic/pynac_wrap.h +124 -0
  117. sage/symbolic/series_impl.pxi +272 -0
  118. sage/symbolic/substitution_map_impl.pxi +94 -0
  119. sage_wheels/bin/ESingular +0 -0
  120. sage_wheels/bin/Singular +0 -0
  121. sage_wheels/bin/TSingular +0 -0
  122. sage_wheels/lib/singular/MOD/cohomo.la +41 -0
  123. sage_wheels/lib/singular/MOD/cohomo.so +0 -0
  124. sage_wheels/lib/singular/MOD/customstd.la +41 -0
  125. sage_wheels/lib/singular/MOD/customstd.so +0 -0
  126. sage_wheels/lib/singular/MOD/freealgebra.la +41 -0
  127. sage_wheels/lib/singular/MOD/freealgebra.so +0 -0
  128. sage_wheels/lib/singular/MOD/gfanlib.la +41 -0
  129. sage_wheels/lib/singular/MOD/gfanlib.so +0 -0
  130. sage_wheels/lib/singular/MOD/gitfan.la +41 -0
  131. sage_wheels/lib/singular/MOD/gitfan.so +0 -0
  132. sage_wheels/lib/singular/MOD/interval.la +41 -0
  133. sage_wheels/lib/singular/MOD/interval.so +0 -0
  134. sage_wheels/lib/singular/MOD/loctriv.la +41 -0
  135. sage_wheels/lib/singular/MOD/loctriv.so +0 -0
  136. sage_wheels/lib/singular/MOD/machinelearning.la +41 -0
  137. sage_wheels/lib/singular/MOD/machinelearning.so +0 -0
  138. sage_wheels/lib/singular/MOD/p_Procs_FieldGeneral.la +41 -0
  139. sage_wheels/lib/singular/MOD/p_Procs_FieldGeneral.so +0 -0
  140. sage_wheels/lib/singular/MOD/p_Procs_FieldIndep.la +41 -0
  141. sage_wheels/lib/singular/MOD/p_Procs_FieldIndep.so +0 -0
  142. sage_wheels/lib/singular/MOD/p_Procs_FieldQ.la +41 -0
  143. sage_wheels/lib/singular/MOD/p_Procs_FieldQ.so +0 -0
  144. sage_wheels/lib/singular/MOD/p_Procs_FieldZp.la +41 -0
  145. sage_wheels/lib/singular/MOD/p_Procs_FieldZp.so +0 -0
  146. sage_wheels/lib/singular/MOD/partialgb.la +41 -0
  147. sage_wheels/lib/singular/MOD/partialgb.so +0 -0
  148. sage_wheels/lib/singular/MOD/pyobject.la +41 -0
  149. sage_wheels/lib/singular/MOD/pyobject.so +0 -0
  150. sage_wheels/lib/singular/MOD/singmathic.la +41 -0
  151. sage_wheels/lib/singular/MOD/singmathic.so +0 -0
  152. sage_wheels/lib/singular/MOD/sispasm.la +41 -0
  153. sage_wheels/lib/singular/MOD/sispasm.so +0 -0
  154. sage_wheels/lib/singular/MOD/subsets.la +41 -0
  155. sage_wheels/lib/singular/MOD/subsets.so +0 -0
  156. sage_wheels/lib/singular/MOD/systhreads.la +41 -0
  157. sage_wheels/lib/singular/MOD/systhreads.so +0 -0
  158. sage_wheels/lib/singular/MOD/syzextra.la +41 -0
  159. sage_wheels/lib/singular/MOD/syzextra.so +0 -0
  160. sage_wheels/libexec/singular/MOD/change_cost +0 -0
  161. sage_wheels/libexec/singular/MOD/singularsurf +11 -0
  162. sage_wheels/libexec/singular/MOD/singularsurf_jupyter +9 -0
  163. sage_wheels/libexec/singular/MOD/singularsurf_win +10 -0
  164. sage_wheels/libexec/singular/MOD/solve_IP +0 -0
  165. sage_wheels/libexec/singular/MOD/surfex +16 -0
  166. sage_wheels/libexec/singular/MOD/toric_ideal +0 -0
  167. sage_wheels/share/factory/gftables/10201 +342 -0
  168. sage_wheels/share/factory/gftables/1024 +37 -0
  169. sage_wheels/share/factory/gftables/10609 +356 -0
  170. sage_wheels/share/factory/gftables/11449 +384 -0
  171. sage_wheels/share/factory/gftables/11881 +398 -0
  172. sage_wheels/share/factory/gftables/121 +6 -0
  173. sage_wheels/share/factory/gftables/12167 +408 -0
  174. sage_wheels/share/factory/gftables/125 +7 -0
  175. sage_wheels/share/factory/gftables/12769 +428 -0
  176. sage_wheels/share/factory/gftables/128 +7 -0
  177. sage_wheels/share/factory/gftables/1331 +47 -0
  178. sage_wheels/share/factory/gftables/1369 +48 -0
  179. sage_wheels/share/factory/gftables/14641 +490 -0
  180. sage_wheels/share/factory/gftables/15625 +523 -0
  181. sage_wheels/share/factory/gftables/16 +3 -0
  182. sage_wheels/share/factory/gftables/16129 +540 -0
  183. sage_wheels/share/factory/gftables/16384 +549 -0
  184. sage_wheels/share/factory/gftables/16807 +563 -0
  185. sage_wheels/share/factory/gftables/1681 +58 -0
  186. sage_wheels/share/factory/gftables/169 +8 -0
  187. sage_wheels/share/factory/gftables/17161 +574 -0
  188. sage_wheels/share/factory/gftables/1849 +64 -0
  189. sage_wheels/share/factory/gftables/18769 +628 -0
  190. sage_wheels/share/factory/gftables/19321 +646 -0
  191. sage_wheels/share/factory/gftables/19683 +659 -0
  192. sage_wheels/share/factory/gftables/2048 +71 -0
  193. sage_wheels/share/factory/gftables/2187 +75 -0
  194. sage_wheels/share/factory/gftables/2197 +76 -0
  195. sage_wheels/share/factory/gftables/2209 +76 -0
  196. sage_wheels/share/factory/gftables/22201 +742 -0
  197. sage_wheels/share/factory/gftables/22801 +762 -0
  198. sage_wheels/share/factory/gftables/2401 +82 -0
  199. sage_wheels/share/factory/gftables/243 +11 -0
  200. sage_wheels/share/factory/gftables/24389 +815 -0
  201. sage_wheels/share/factory/gftables/24649 +824 -0
  202. sage_wheels/share/factory/gftables/25 +3 -0
  203. sage_wheels/share/factory/gftables/256 +11 -0
  204. sage_wheels/share/factory/gftables/26569 +888 -0
  205. sage_wheels/share/factory/gftables/27 +3 -0
  206. sage_wheels/share/factory/gftables/27889 +932 -0
  207. sage_wheels/share/factory/gftables/2809 +96 -0
  208. sage_wheels/share/factory/gftables/28561 +954 -0
  209. sage_wheels/share/factory/gftables/289 +12 -0
  210. sage_wheels/share/factory/gftables/29791 +995 -0
  211. sage_wheels/share/factory/gftables/29929 +1000 -0
  212. sage_wheels/share/factory/gftables/3125 +107 -0
  213. sage_wheels/share/factory/gftables/32 +4 -0
  214. sage_wheels/share/factory/gftables/32041 +1070 -0
  215. sage_wheels/share/factory/gftables/32761 +1094 -0
  216. sage_wheels/share/factory/gftables/32768 +1095 -0
  217. sage_wheels/share/factory/gftables/343 +14 -0
  218. sage_wheels/share/factory/gftables/3481 +118 -0
  219. sage_wheels/share/factory/gftables/361 +14 -0
  220. sage_wheels/share/factory/gftables/36481 +1218 -0
  221. sage_wheels/share/factory/gftables/3721 +126 -0
  222. sage_wheels/share/factory/gftables/37249 +1244 -0
  223. sage_wheels/share/factory/gftables/38809 +1296 -0
  224. sage_wheels/share/factory/gftables/39601 +1322 -0
  225. sage_wheels/share/factory/gftables/4 +3 -0
  226. sage_wheels/share/factory/gftables/4096 +139 -0
  227. sage_wheels/share/factory/gftables/44521 +1486 -0
  228. sage_wheels/share/factory/gftables/4489 +152 -0
  229. sage_wheels/share/factory/gftables/49 +4 -0
  230. sage_wheels/share/factory/gftables/4913 +166 -0
  231. sage_wheels/share/factory/gftables/49729 +1660 -0
  232. sage_wheels/share/factory/gftables/5041 +170 -0
  233. sage_wheels/share/factory/gftables/50653 +1691 -0
  234. sage_wheels/share/factory/gftables/512 +20 -0
  235. sage_wheels/share/factory/gftables/51529 +1720 -0
  236. sage_wheels/share/factory/gftables/52441 +1750 -0
  237. sage_wheels/share/factory/gftables/529 +20 -0
  238. sage_wheels/share/factory/gftables/5329 +180 -0
  239. sage_wheels/share/factory/gftables/54289 +1812 -0
  240. sage_wheels/share/factory/gftables/57121 +1906 -0
  241. sage_wheels/share/factory/gftables/58081 +1938 -0
  242. sage_wheels/share/factory/gftables/59049 +1971 -0
  243. sage_wheels/share/factory/gftables/6241 +210 -0
  244. sage_wheels/share/factory/gftables/625 +23 -0
  245. sage_wheels/share/factory/gftables/63001 +2102 -0
  246. sage_wheels/share/factory/gftables/64 +5 -0
  247. sage_wheels/share/factory/gftables/6561 +221 -0
  248. sage_wheels/share/factory/gftables/6859 +231 -0
  249. sage_wheels/share/factory/gftables/6889 +232 -0
  250. sage_wheels/share/factory/gftables/729 +27 -0
  251. sage_wheels/share/factory/gftables/7921 +266 -0
  252. sage_wheels/share/factory/gftables/8 +3 -0
  253. sage_wheels/share/factory/gftables/81 +5 -0
  254. sage_wheels/share/factory/gftables/8192 +276 -0
  255. sage_wheels/share/factory/gftables/841 +30 -0
  256. sage_wheels/share/factory/gftables/9 +3 -0
  257. sage_wheels/share/factory/gftables/9409 +316 -0
  258. sage_wheels/share/factory/gftables/961 +34 -0
  259. sage_wheels/share/info/singular.info +191898 -0
  260. sage_wheels/share/singular/LIB/GND.lib +1359 -0
  261. sage_wheels/share/singular/LIB/JMBTest.lib +976 -0
  262. sage_wheels/share/singular/LIB/JMSConst.lib +1363 -0
  263. sage_wheels/share/singular/LIB/KVequiv.lib +699 -0
  264. sage_wheels/share/singular/LIB/SingularityDBM.lib +491 -0
  265. sage_wheels/share/singular/LIB/VecField.lib +1542 -0
  266. sage_wheels/share/singular/LIB/absfact.lib +959 -0
  267. sage_wheels/share/singular/LIB/ainvar.lib +730 -0
  268. sage_wheels/share/singular/LIB/aksaka.lib +419 -0
  269. sage_wheels/share/singular/LIB/alexpoly.lib +2542 -0
  270. sage_wheels/share/singular/LIB/algebra.lib +1193 -0
  271. sage_wheels/share/singular/LIB/all.lib +136 -0
  272. sage_wheels/share/singular/LIB/arcpoint.lib +514 -0
  273. sage_wheels/share/singular/LIB/arnold.lib +4553 -0
  274. sage_wheels/share/singular/LIB/arnoldclassify.lib +2058 -0
  275. sage_wheels/share/singular/LIB/arr.lib +3486 -0
  276. sage_wheels/share/singular/LIB/assprimeszerodim.lib +755 -0
  277. sage_wheels/share/singular/LIB/autgradalg.lib +3361 -0
  278. sage_wheels/share/singular/LIB/bfun.lib +1964 -0
  279. sage_wheels/share/singular/LIB/bimodules.lib +774 -0
  280. sage_wheels/share/singular/LIB/brillnoether.lib +226 -0
  281. sage_wheels/share/singular/LIB/brnoeth.lib +5017 -0
  282. sage_wheels/share/singular/LIB/central.lib +2169 -0
  283. sage_wheels/share/singular/LIB/chern.lib +4162 -0
  284. sage_wheels/share/singular/LIB/cimonom.lib +571 -0
  285. sage_wheels/share/singular/LIB/cisimplicial.lib +1835 -0
  286. sage_wheels/share/singular/LIB/classify.lib +3239 -0
  287. sage_wheels/share/singular/LIB/classify2.lib +1462 -0
  288. sage_wheels/share/singular/LIB/classifyMapGerms.lib +1515 -0
  289. sage_wheels/share/singular/LIB/classify_aeq.lib +3253 -0
  290. sage_wheels/share/singular/LIB/classifyceq.lib +2092 -0
  291. sage_wheels/share/singular/LIB/classifyci.lib +1133 -0
  292. sage_wheels/share/singular/LIB/combinat.lib +91 -0
  293. sage_wheels/share/singular/LIB/compregb.lib +276 -0
  294. sage_wheels/share/singular/LIB/control.lib +1636 -0
  295. sage_wheels/share/singular/LIB/crypto.lib +3795 -0
  296. sage_wheels/share/singular/LIB/curveInv.lib +667 -0
  297. sage_wheels/share/singular/LIB/curvepar.lib +1817 -0
  298. sage_wheels/share/singular/LIB/customstd.lib +100 -0
  299. sage_wheels/share/singular/LIB/deRham.lib +5979 -0
  300. sage_wheels/share/singular/LIB/decodegb.lib +2134 -0
  301. sage_wheels/share/singular/LIB/decomp.lib +1655 -0
  302. sage_wheels/share/singular/LIB/deflation.lib +872 -0
  303. sage_wheels/share/singular/LIB/deform.lib +925 -0
  304. sage_wheels/share/singular/LIB/difform.lib +3055 -0
  305. sage_wheels/share/singular/LIB/divisors.lib +750 -0
  306. sage_wheels/share/singular/LIB/dmod.lib +5817 -0
  307. sage_wheels/share/singular/LIB/dmodapp.lib +3269 -0
  308. sage_wheels/share/singular/LIB/dmodideal.lib +1211 -0
  309. sage_wheels/share/singular/LIB/dmodloc.lib +2645 -0
  310. sage_wheels/share/singular/LIB/dmodvar.lib +818 -0
  311. sage_wheels/share/singular/LIB/dummy.lib +17 -0
  312. sage_wheels/share/singular/LIB/elim.lib +1009 -0
  313. sage_wheels/share/singular/LIB/ellipticcovers.lib +548 -0
  314. sage_wheels/share/singular/LIB/enumpoints.lib +146 -0
  315. sage_wheels/share/singular/LIB/equising.lib +2127 -0
  316. sage_wheels/share/singular/LIB/ffmodstd.lib +2384 -0
  317. sage_wheels/share/singular/LIB/ffsolve.lib +1289 -0
  318. sage_wheels/share/singular/LIB/findifs.lib +778 -0
  319. sage_wheels/share/singular/LIB/finitediff.lib +1768 -0
  320. sage_wheels/share/singular/LIB/finvar.lib +7989 -0
  321. sage_wheels/share/singular/LIB/fpadim.lib +2429 -0
  322. sage_wheels/share/singular/LIB/fpalgebras.lib +1666 -0
  323. sage_wheels/share/singular/LIB/fpaprops.lib +1462 -0
  324. sage_wheels/share/singular/LIB/freegb.lib +3853 -0
  325. sage_wheels/share/singular/LIB/general.lib +1350 -0
  326. sage_wheels/share/singular/LIB/gfan.lib +1768 -0
  327. sage_wheels/share/singular/LIB/gitfan.lib +3130 -0
  328. sage_wheels/share/singular/LIB/gkdim.lib +99 -0
  329. sage_wheels/share/singular/LIB/gmspoly.lib +589 -0
  330. sage_wheels/share/singular/LIB/gmssing.lib +1739 -0
  331. sage_wheels/share/singular/LIB/goettsche.lib +909 -0
  332. sage_wheels/share/singular/LIB/graal.lib +1366 -0
  333. sage_wheels/share/singular/LIB/gradedModules.lib +2541 -0
  334. sage_wheels/share/singular/LIB/graphics.lib +360 -0
  335. sage_wheels/share/singular/LIB/grobcov.lib +7706 -0
  336. sage_wheels/share/singular/LIB/groups.lib +1123 -0
  337. sage_wheels/share/singular/LIB/grwalk.lib +507 -0
  338. sage_wheels/share/singular/LIB/hdepth.lib +194 -0
  339. sage_wheels/share/singular/LIB/help.cnf +57 -0
  340. sage_wheels/share/singular/LIB/hess.lib +1946 -0
  341. sage_wheels/share/singular/LIB/hnoether.lib +4292 -0
  342. sage_wheels/share/singular/LIB/hodge.lib +400 -0
  343. sage_wheels/share/singular/LIB/homolog.lib +1965 -0
  344. sage_wheels/share/singular/LIB/hyperel.lib +975 -0
  345. sage_wheels/share/singular/LIB/inout.lib +679 -0
  346. sage_wheels/share/singular/LIB/integralbasis.lib +6224 -0
  347. sage_wheels/share/singular/LIB/interval.lib +1418 -0
  348. sage_wheels/share/singular/LIB/intprog.lib +778 -0
  349. sage_wheels/share/singular/LIB/invar.lib +443 -0
  350. sage_wheels/share/singular/LIB/involut.lib +980 -0
  351. sage_wheels/share/singular/LIB/jacobson.lib +1215 -0
  352. sage_wheels/share/singular/LIB/kskernel.lib +534 -0
  353. sage_wheels/share/singular/LIB/latex.lib +3146 -0
  354. sage_wheels/share/singular/LIB/lejeune.lib +651 -0
  355. sage_wheels/share/singular/LIB/linalg.lib +2040 -0
  356. sage_wheels/share/singular/LIB/locnormal.lib +212 -0
  357. sage_wheels/share/singular/LIB/lrcalc.lib +526 -0
  358. sage_wheels/share/singular/LIB/makedbm.lib +294 -0
  359. sage_wheels/share/singular/LIB/mathml.lib +813 -0
  360. sage_wheels/share/singular/LIB/matrix.lib +1372 -0
  361. sage_wheels/share/singular/LIB/maxlike.lib +1132 -0
  362. sage_wheels/share/singular/LIB/methods.lib +212 -0
  363. sage_wheels/share/singular/LIB/moddiq.lib +322 -0
  364. sage_wheels/share/singular/LIB/modfinduni.lib +181 -0
  365. sage_wheels/share/singular/LIB/modnormal.lib +218 -0
  366. sage_wheels/share/singular/LIB/modprimdec.lib +1278 -0
  367. sage_wheels/share/singular/LIB/modquotient.lib +269 -0
  368. sage_wheels/share/singular/LIB/modstd.lib +1024 -0
  369. sage_wheels/share/singular/LIB/modular.lib +545 -0
  370. sage_wheels/share/singular/LIB/modules.lib +2561 -0
  371. sage_wheels/share/singular/LIB/modwalk.lib +609 -0
  372. sage_wheels/share/singular/LIB/mondromy.lib +1016 -0
  373. sage_wheels/share/singular/LIB/monomialideal.lib +3851 -0
  374. sage_wheels/share/singular/LIB/mprimdec.lib +2353 -0
  375. sage_wheels/share/singular/LIB/mregular.lib +1863 -0
  376. sage_wheels/share/singular/LIB/multigrading.lib +5629 -0
  377. sage_wheels/share/singular/LIB/ncHilb.lib +777 -0
  378. sage_wheels/share/singular/LIB/ncModslimgb.lib +791 -0
  379. sage_wheels/share/singular/LIB/ncalg.lib +16311 -0
  380. sage_wheels/share/singular/LIB/ncall.lib +31 -0
  381. sage_wheels/share/singular/LIB/ncdecomp.lib +468 -0
  382. sage_wheels/share/singular/LIB/ncfactor.lib +13371 -0
  383. sage_wheels/share/singular/LIB/ncfrac.lib +1023 -0
  384. sage_wheels/share/singular/LIB/nchilbert.lib +448 -0
  385. sage_wheels/share/singular/LIB/nchomolog.lib +759 -0
  386. sage_wheels/share/singular/LIB/ncloc.lib +361 -0
  387. sage_wheels/share/singular/LIB/ncpreim.lib +795 -0
  388. sage_wheels/share/singular/LIB/ncrat.lib +2849 -0
  389. sage_wheels/share/singular/LIB/nctools.lib +1887 -0
  390. sage_wheels/share/singular/LIB/nets.lib +1456 -0
  391. sage_wheels/share/singular/LIB/nfmodstd.lib +1000 -0
  392. sage_wheels/share/singular/LIB/nfmodsyz.lib +732 -0
  393. sage_wheels/share/singular/LIB/noether.lib +1106 -0
  394. sage_wheels/share/singular/LIB/normal.lib +8700 -0
  395. sage_wheels/share/singular/LIB/normaliz.lib +2226 -0
  396. sage_wheels/share/singular/LIB/ntsolve.lib +362 -0
  397. sage_wheels/share/singular/LIB/numerAlg.lib +560 -0
  398. sage_wheels/share/singular/LIB/numerDecom.lib +2261 -0
  399. sage_wheels/share/singular/LIB/olga.lib +1933 -0
  400. sage_wheels/share/singular/LIB/orbitparam.lib +351 -0
  401. sage_wheels/share/singular/LIB/parallel.lib +319 -0
  402. sage_wheels/share/singular/LIB/paraplanecurves.lib +3110 -0
  403. sage_wheels/share/singular/LIB/perron.lib +202 -0
  404. sage_wheels/share/singular/LIB/pfd.lib +2223 -0
  405. sage_wheels/share/singular/LIB/phindex.lib +642 -0
  406. sage_wheels/share/singular/LIB/pointid.lib +673 -0
  407. sage_wheels/share/singular/LIB/polybori.lib +1430 -0
  408. sage_wheels/share/singular/LIB/polyclass.lib +525 -0
  409. sage_wheels/share/singular/LIB/polylib.lib +1174 -0
  410. sage_wheels/share/singular/LIB/polymake.lib +1902 -0
  411. sage_wheels/share/singular/LIB/presolve.lib +1533 -0
  412. sage_wheels/share/singular/LIB/primdec.lib +9576 -0
  413. sage_wheels/share/singular/LIB/primdecint.lib +1782 -0
  414. sage_wheels/share/singular/LIB/primitiv.lib +401 -0
  415. sage_wheels/share/singular/LIB/puiseuxexpansions.lib +1631 -0
  416. sage_wheels/share/singular/LIB/purityfiltration.lib +960 -0
  417. sage_wheels/share/singular/LIB/qhmoduli.lib +1561 -0
  418. sage_wheels/share/singular/LIB/qmatrix.lib +293 -0
  419. sage_wheels/share/singular/LIB/random.lib +455 -0
  420. sage_wheels/share/singular/LIB/ratgb.lib +489 -0
  421. sage_wheels/share/singular/LIB/realclassify.lib +5759 -0
  422. sage_wheels/share/singular/LIB/realizationMatroids.lib +772 -0
  423. sage_wheels/share/singular/LIB/realrad.lib +1197 -0
  424. sage_wheels/share/singular/LIB/recover.lib +2628 -0
  425. sage_wheels/share/singular/LIB/redcgs.lib +3984 -0
  426. sage_wheels/share/singular/LIB/reesclos.lib +465 -0
  427. sage_wheels/share/singular/LIB/resbinomial.lib +2802 -0
  428. sage_wheels/share/singular/LIB/resgraph.lib +789 -0
  429. sage_wheels/share/singular/LIB/resjung.lib +820 -0
  430. sage_wheels/share/singular/LIB/resolve.lib +5110 -0
  431. sage_wheels/share/singular/LIB/resources.lib +170 -0
  432. sage_wheels/share/singular/LIB/reszeta.lib +5473 -0
  433. sage_wheels/share/singular/LIB/ring.lib +1328 -0
  434. sage_wheels/share/singular/LIB/ringgb.lib +343 -0
  435. sage_wheels/share/singular/LIB/rinvar.lib +1153 -0
  436. sage_wheels/share/singular/LIB/rootisolation.lib +1481 -0
  437. sage_wheels/share/singular/LIB/rootsmr.lib +709 -0
  438. sage_wheels/share/singular/LIB/rootsur.lib +886 -0
  439. sage_wheels/share/singular/LIB/rstandard.lib +607 -0
  440. sage_wheels/share/singular/LIB/rwalk.lib +336 -0
  441. sage_wheels/share/singular/LIB/sagbi.lib +1353 -0
  442. sage_wheels/share/singular/LIB/sagbiNormaliz.lib +1622 -0
  443. sage_wheels/share/singular/LIB/sagbiNormaliz0.lib +1498 -0
  444. sage_wheels/share/singular/LIB/sagbigrob.lib +449 -0
  445. sage_wheels/share/singular/LIB/schreyer.lib +321 -0
  446. sage_wheels/share/singular/LIB/schubert.lib +2551 -0
  447. sage_wheels/share/singular/LIB/sets.lib +524 -0
  448. sage_wheels/share/singular/LIB/sheafcoh.lib +1663 -0
  449. sage_wheels/share/singular/LIB/signcond.lib +437 -0
  450. sage_wheels/share/singular/LIB/sing.lib +1094 -0
  451. sage_wheels/share/singular/LIB/sing4ti2.lib +419 -0
  452. sage_wheels/share/singular/LIB/solve.lib +2243 -0
  453. sage_wheels/share/singular/LIB/spcurve.lib +1077 -0
  454. sage_wheels/share/singular/LIB/spectrum.lib +62 -0
  455. sage_wheels/share/singular/LIB/sresext.lib +757 -0
  456. sage_wheels/share/singular/LIB/ssi.lib +143 -0
  457. sage_wheels/share/singular/LIB/standard.lib +2769 -0
  458. sage_wheels/share/singular/LIB/stanleyreisner.lib +473 -0
  459. sage_wheels/share/singular/LIB/stdmodule.lib +547 -0
  460. sage_wheels/share/singular/LIB/stratify.lib +1070 -0
  461. sage_wheels/share/singular/LIB/surf.lib +506 -0
  462. sage_wheels/share/singular/LIB/surf_jupyter.lib +223 -0
  463. sage_wheels/share/singular/LIB/surfacesignature.lib +522 -0
  464. sage_wheels/share/singular/LIB/surfex.lib +1462 -0
  465. sage_wheels/share/singular/LIB/swalk.lib +877 -0
  466. sage_wheels/share/singular/LIB/symodstd.lib +1570 -0
  467. sage_wheels/share/singular/LIB/systhreads.lib +74 -0
  468. sage_wheels/share/singular/LIB/tasks.lib +1324 -0
  469. sage_wheels/share/singular/LIB/tateProdCplxNegGrad.lib +2412 -0
  470. sage_wheels/share/singular/LIB/teachstd.lib +858 -0
  471. sage_wheels/share/singular/LIB/template.lib +116 -0
  472. sage_wheels/share/singular/LIB/toric.lib +1119 -0
  473. sage_wheels/share/singular/LIB/transformation.lib +116 -0
  474. sage_wheels/share/singular/LIB/triang.lib +1197 -0
  475. sage_wheels/share/singular/LIB/tropical.lib +8741 -0
  476. sage_wheels/share/singular/LIB/tropicalEllipticCovers.lib +2922 -0
  477. sage_wheels/share/singular/LIB/tropicalNewton.lib +1128 -0
  478. sage_wheels/share/singular/LIB/tst.lib +1108 -0
  479. sage_wheels/share/singular/LIB/weierstr.lib +241 -0
  480. sage_wheels/share/singular/LIB/zeroset.lib +1478 -0
  481. sage_wheels/share/singular/emacs/.emacs-general +184 -0
  482. sage_wheels/share/singular/emacs/.emacs-singular +234 -0
  483. sage_wheels/share/singular/emacs/COPYING +44 -0
  484. sage_wheels/share/singular/emacs/cmd-cmpl.el +241 -0
  485. sage_wheels/share/singular/emacs/ex-cmpl.el +1681 -0
  486. sage_wheels/share/singular/emacs/hlp-cmpl.el +4318 -0
  487. sage_wheels/share/singular/emacs/lib-cmpl.el +179 -0
  488. sage_wheels/share/singular/emacs/singular.el +4273 -0
  489. sage_wheels/share/singular/emacs/singular.xpm +39 -0
  490. sage_wheels/share/singular/singular.idx +5002 -0
@@ -0,0 +1,750 @@
1
+ ///////////////////////////////////////////////////////////////////////////////
2
+ version="version divisors.lib 4.2.0.1 Jan_2021 "; // $Id: 654f5ddbed8add1d9fbdc300fee234bd650a9e6e $
3
+ category = "Commutative Algebra";
4
+ info="
5
+ LIBRARY: divisors.lib Divisors and P-Divisors
6
+
7
+ AUTHORS: Janko Boehm boehm@mathematik.uni-kl.de
8
+ @* Lars Kastner kastner@math.fu-berlin.de
9
+ @* Benjamin Lorenz blorenz@math.uni-frankfurt.de
10
+ @* Hans Schoenemann hannes@mathematik.uni-kl.de
11
+ @* Yue Ren ren@mathematik.uni-kl.de
12
+
13
+ OVERVIEW:
14
+
15
+ We implement a class divisor on an algebraic variety and methods
16
+ for computing with them. Divisors are represented by tuples of ideals
17
+ defining the positive and the negative part. In particular, we implement the group
18
+ structure on divisors, computing global sections and testing linear
19
+ equivalence.
20
+
21
+ In addition to this we provide a class formaldivisor which implements
22
+ integer formal sums of divisors (not necessarily prime). A formal divisor
23
+ can be evaluated to a divisor, and a divisor can be decomposed into
24
+ a formal sum.
25
+
26
+ Finally we provide a class pdivisor which implements polyhedral formal sums of
27
+ divisors (P-divisors) where the coefficients are assumed to be polyhedra with fixed tail cone.
28
+ There is a function to evaluate a P-divisor on a vector in the dual of the tail cone. The
29
+ result will be a formal divisor.
30
+
31
+
32
+ REFERENCES:
33
+
34
+ For the class divisor we closely follow Macaulay2's tutorial on divisors.
35
+
36
+
37
+ PROCEDURES:
38
+
39
+ makeDivisor(ideal,ideal) create a divisor
40
+ divisorplus(divisor,divisor) add two divisors
41
+ multdivisor(int,divisor) multiply a divisor by an integer
42
+ negativedivisor(divisor) compute the negative of the divisor
43
+ normalFormDivisor(divisor) normal form of a divisor
44
+ isEqualDivisor(divisor,divisor) test whether two divisors are equal
45
+ globalSections(divisor) compute the global sections of a divisor
46
+ degreeDivisor(divisor) degree of a divisor
47
+ linearlyEquivalent(divisor,divisor) test whether two divisors a linearly equivalent
48
+ effective(divisor) compute an effective divisor
49
+ linearly equivalent to a divisor
50
+
51
+ makeFormalDivisor(list) make a formal integer sum of divisors
52
+ evaluateFormalDivisor(formaldivisor) evaluate a formal sum of divisors to a divisor
53
+ formaldivisorplus(formaldivisor,formaldivisor) add two formal divisors
54
+ negativeformaldivisor(formaldivisor) compute the negative of the formal divisor
55
+ multformaldivisor(int,formaldivisor) multiply a formal divisor by an integer
56
+ degreeFormalDivisor(formaldivisor) degree of a formal divisor
57
+
58
+ makePDivisor(List) make a formal polyhedral sum of divisors
59
+
60
+
61
+ ";
62
+
63
+
64
+ ////////////////////////////////////////////////////////////////////////////////
65
+
66
+ LIB "primdec.lib";
67
+
68
+ static proc mod_init()
69
+ {
70
+ LIB"customstd.lib";
71
+ LIB"gfan.lib";
72
+ newstruct("divisor","ideal den,ideal num");
73
+ newstruct("formaldivisor","list summands");
74
+ newstruct("pdivisor","list summands, cone tail");
75
+
76
+ system("install","divisor","print",divisor_print,1);
77
+ system("install","divisor","+",divisorplus,2);
78
+ system("install","divisor","*",proxymultdivisor,2);
79
+ system("install","formaldivisor","print",formaldivisor_print,1);
80
+ system("install","formaldivisor","+",formaldivisorplus,2);
81
+ system("install","formaldivisor","*",proxymultformaldivisor,2);
82
+ }
83
+
84
+
85
+
86
+ proc divisor_print(divisor D)
87
+ "USAGE: divisor_print(D); D; D = divisor. @*
88
+ ASSUME: D is a divisor.
89
+ RETURN: Will print D.
90
+ KEYWORDS: divisors
91
+ EXAMPLE: example divisor_print; shows an example
92
+ "
93
+ {
94
+ "("+string(D.num)+") - ("+string(D.den)+")";
95
+ }
96
+ example
97
+ { "EXAMPLE:";
98
+ ring r=31991,(x,y,z),dp;
99
+ ideal I = y^2*z - x*(x-z)*(x+3*z);
100
+ qring Q = std(I);
101
+ divisor P = makeDivisor(ideal(x,z),ideal(1));
102
+ P;
103
+ }
104
+
105
+
106
+ proc formaldivisor_print(formaldivisor fD)
107
+ "USAGE: formaldivisor_print(D); D; D = formaldivisor. @*
108
+ ASSUME: fD is a formaldivisor.
109
+ RETURN: Will print fD.
110
+ KEYWORDS: divisors
111
+ EXAMPLE: example formaldivisor_print; shows an example
112
+ "
113
+ {
114
+ int i; string s; list L=fD.summands;
115
+ list cd; int c; divisor d;
116
+ string linebreak =
117
+ "
118
+ ";
119
+ for (i=1; i<=size(L); i++)
120
+ {
121
+ cd=L[i]; c=cd[1]; d=cd[2];
122
+ if (i>1 && c>=0) { s = s + "+"; }
123
+ s = s + string(c)+"*( ("+string(d.num)+") - ("+string(d.den)+") )";
124
+ if (i!=size(L)) { s = s + linebreak; }
125
+ }
126
+ s;
127
+ }
128
+ example
129
+ { "EXAMPLE:";
130
+ ring r=31991,(x,y,z),dp;
131
+ ideal I = y^2*z - x*(x-z)*(x+3*z);
132
+ qring Q = std(I);
133
+ divisor P = makeDivisor(ideal(x,z),ideal(1));
134
+ P;
135
+ }
136
+
137
+
138
+ ////////////////////////////////////////////////////////////////////////////////
139
+ // divisors as numerator and denomiator ideals
140
+
141
+ proc makeDivisor(ideal I, ideal J)
142
+ "USAGE: makeDivisor(I ,J); I = ideal, J = ideal. @*
143
+ ASSUME: I and J are ideals in a qring Q of a smooth irreducible variety X
144
+ such that any ideal in Q satisfies the S2 condition.
145
+ RETURN: a divisor on X
146
+ THEORY: The procedure will eliminate all components which are not of codimension 1.
147
+ The S2 condition requires that every proper nonzero principal ideal
148
+ has pure codimension 1.
149
+ KEYWORDS: divisors
150
+ EXAMPLE: example makeDivisor; shows an example
151
+ "
152
+ {
153
+ divisor C;
154
+ C.num = purify1(I);
155
+ C.den = purify1(J);
156
+ return(C);
157
+ }
158
+
159
+ example
160
+ { "EXAMPLE:";
161
+ ring r=31991,(x,y,z),dp;
162
+ ideal I = y^2*z - x*(x-z)*(x+3*z);
163
+ qring Q = std(I);
164
+ divisor P = makeDivisor(ideal(x,z),ideal(1));
165
+ }
166
+
167
+
168
+ proc divisorplus(divisor A, divisor B)
169
+ "USAGE: divisorplus(A ,B); A + B; A = divisor, B = divisor. @*
170
+ ASSUME: A and B are divisors on X.
171
+ RETURN: a divisor on X
172
+ THEORY: The procedure will compute the product of the numerator
173
+ and denominator ideals, respectively.
174
+ KEYWORDS: divisors
175
+ EXAMPLE: example divisorplus; shows an example
176
+ "
177
+ {
178
+ return(makeDivisor(interred(A.num*B.num),interred(A.den*B.den)));
179
+ }
180
+ example
181
+ { "EXAMPLE:";
182
+ ring r=31991,(x,y,z),dp;
183
+ ideal I = y^2*z - x*(x-z)*(x+3*z);
184
+ qring Q = std(I);
185
+ divisor A = makeDivisor(ideal(x,z),ideal(1));
186
+ divisor B = makeDivisor(ideal(x,y),ideal(1));
187
+ A+B;
188
+ }
189
+
190
+
191
+ proc multdivisor(int n, divisor A)
192
+ "USAGE: multdivisor(n ,A); A*n; n = integer, A = divisor.@*
193
+ ASSUME: n is an integer and A is a divisor on X.
194
+ RETURN: a divisor on X
195
+ THEORY: The procedure will compute the n-th power of the numerator
196
+ and denominator ideals, respectively.
197
+ KEYWORDS: divisors
198
+ EXAMPLE: example multdivisor; shows an example
199
+ "
200
+ {
201
+ if (n<0) {return(multdivisor(-n,negativedivisor(A)));}
202
+ return(makeDivisor(interred((A.num)^n),interred((A.den)^n)));
203
+ }
204
+ example
205
+ { "EXAMPLE:";
206
+ ring r=31991,(x,y,z),dp;
207
+ ideal I = y^2*z - x*(x-z)*(x+3*z);
208
+ qring Q = std(I);
209
+ divisor A = makeDivisor(ideal(x,z),ideal(1));
210
+ A;
211
+ divisor D = multdivisor(4,A);
212
+ D;
213
+ A*4;
214
+ }
215
+
216
+
217
+ /***
218
+ * For operator overloading, which needs a procedure which takes a divisor first
219
+ * and integer second.
220
+ **/
221
+ proc proxymultdivisor(divisor A, int n)
222
+ {
223
+ if (n<0) {return(multdivisor(-n,negativedivisor(A)));}
224
+ return(makeDivisor(interred((A.num)^n),interred((A.den)^n)));
225
+ }
226
+
227
+
228
+ proc negativedivisor(divisor A)
229
+ "USAGE: negativedivisor(A); A*(-1); A = divisor.@*
230
+ ASSUME: A is a divisor on X.
231
+ RETURN: a divisor on X
232
+ THEORY: The procedure will interchange the numerator and denominator ideals.
233
+ KEYWORDS: divisors
234
+ EXAMPLE: example negativedivisor; shows an example
235
+ "
236
+ {
237
+ divisor B;
238
+ B.num=A.den;
239
+ B.den=A.num;
240
+ return(B);
241
+ }
242
+ example
243
+ { "EXAMPLE:";
244
+ ring r=31991,(x,y,z),dp;
245
+ ideal I = y^2*z - x*(x-z)*(x+3*z);
246
+ qring Q = std(I);
247
+ divisor A = makeDivisor(ideal(x,z),ideal(1));
248
+ A;
249
+ divisor D = negativedivisor(A);
250
+ D;
251
+ }
252
+
253
+
254
+ proc normalFormDivisor(divisor A)
255
+ "USAGE: normalFormDivisor(A); A = divisor.@*
256
+ ASSUME: A is a divisor on X.
257
+ RETURN: different representative of the same divisor on X
258
+ THEORY: The procedure will cancel common components of numerator and denominator.
259
+ KEYWORDS: divisors
260
+ EXAMPLE: example normalFormDivisor; shows an example
261
+ "
262
+ {
263
+ divisor B;
264
+ B.num=quotient(A.num,A.den);
265
+ B.den=quotient(A.den,A.num);
266
+ return(B);
267
+ }
268
+ example
269
+ { "EXAMPLE:";
270
+ ring r=31991,(x,y,z),dp;
271
+ ideal I = y^2*z - x*(x-z)*(x+3*z);
272
+ qring Q = std(I);
273
+ divisor A = makeDivisor(ideal(x,z),ideal(1));
274
+ divisor B = makeDivisor(ideal(x,y),ideal(1));
275
+ divisor D = (A+B)+multdivisor(-1,B);
276
+ D;
277
+ normalFormDivisor(D);
278
+ }
279
+
280
+
281
+
282
+
283
+ static proc isEqualIdeal(ideal A,ideal B){
284
+ return((size(NF(A,std(B)))==0) && (size(NF(B,std(A)))==0));
285
+ }
286
+
287
+
288
+ proc isEqualDivisor(divisor A,divisor B)
289
+ "USAGE: isEqualDivisor(A,B); A = divisor, B = divisor.@*
290
+ ASSUME: A and B are divisors on X.
291
+ RETURN: int 0 or 1, checks equality of A and B.
292
+ THEORY: The procedure will compute the normal forms of A and B and compare.
293
+ KEYWORDS: divisors
294
+ EXAMPLE: example isEqualDivisor; shows an example
295
+ "
296
+ {
297
+ A=normalFormDivisor(A);
298
+ B=normalFormDivisor(B);
299
+ return((isEqualIdeal(A.num,B.num)) && (isEqualIdeal(A.den,B.den)));
300
+ }
301
+ example
302
+ { "EXAMPLE:";
303
+ ring r=31991,(x,y,z),dp;
304
+ ideal I = y^2*z - x*(x-z)*(x+3*z);
305
+ qring Q = std(I);
306
+ divisor A = makeDivisor(ideal(x,z),ideal(1));
307
+ divisor B = makeDivisor(ideal(x,y),ideal(1));
308
+ divisor D = (A+B)+multdivisor(-1,B);
309
+ isEqualDivisor(A,D);
310
+ }
311
+
312
+
313
+ static proc purify1(ideal I)
314
+ {
315
+ I = simplify(I,2);
316
+ if (I[1]==0){ERROR("expected a non-zero ideal");}
317
+ ideal f = I[1];
318
+ return(minbase(quotient(f,quotient(f,I))));
319
+ }
320
+
321
+
322
+ static proc basis(ideal I,int d)
323
+ {
324
+ I=simplify(jet(intersect(I,maxideal(d)),d),2);
325
+ return(I)}
326
+
327
+ //basis(ideal(x,y^3),2);
328
+
329
+
330
+ proc globalSections(divisor D)
331
+ "USAGE: globalSections(A); A = divisor.@*
332
+ ASSUME: A is a divisor on X.
333
+ RETURN: a list with a basis of the space of global sections of D.
334
+ THEORY: We assume that the qring of X satisfies the S2-condition and that X is smooth. We compute sat((f*J) : I) /f
335
+ where D = (I)-(J).
336
+ KEYWORDS: divisors
337
+ EXAMPLE: example globalSections; shows an example
338
+ "
339
+ {
340
+ poly f =(simplify(D.num,2))[1];
341
+ ideal LD = basis(purify1(quotient(f*D.den,D.num)),deg(f));
342
+ list L = simplify(LD,2),f;
343
+ return(L);
344
+ }
345
+ example
346
+ { "EXAMPLE:";
347
+ ring r=31991,(x,y,z),dp;
348
+ ideal I = y^2*z - x*(x-z)*(x+3*z);
349
+ qring Q = std(I);
350
+ divisor P = makeDivisor(ideal(x,z),ideal(1));
351
+ divisor D = multdivisor(4,P);
352
+ globalSections(D);
353
+ }
354
+
355
+
356
+ static proc sectionIdeal(poly f, poly g, divisor D){
357
+ return(purify1(quotient(quotient(f*D.num,g), D.den)));
358
+ }
359
+
360
+ proc degreeDivisor(divisor A)
361
+ "USAGE: degreeDivisor(A); A = divisor.@*
362
+ ASSUME: A is a divisor on X.
363
+ RETURN: The degree of A.
364
+ THEORY: We compute difference of the degrees of the numerator and denominator ideals.
365
+ KEYWORDS: divisors
366
+ EXAMPLE: example degreeDivisor; shows an example
367
+ "
368
+ {
369
+ return( mult(std(A.num))-mult(std(A.den)));
370
+ }
371
+ example
372
+ { "EXAMPLE:";
373
+ ring r=31991,(x,y,z),dp;
374
+ ideal I = y^2*z - x*(x-z)*(x+3*z);
375
+ qring Q = std(I);
376
+ divisor P = makeDivisor(ideal(x,z),ideal(1));
377
+ degreeDivisor(P);
378
+ }
379
+
380
+ proc linearlyEquivalent(divisor A, divisor B)
381
+ "USAGE: linearlyEquivalent(A,B); A = divisor, B = divisor.@*
382
+ ASSUME: A and B are divisors on X.
383
+ RETURN: list if A and B a linearly equivalent and int 0 otherwise.
384
+ THEORY: Checks whether A-B is principle. If yes, returns a list L=(f,g) where
385
+ A - B = (f/g).
386
+ KEYWORDS: divisors
387
+ EXAMPLE: example linearlyEquivalent; shows an example
388
+ "
389
+ {
390
+ divisor F = normalFormDivisor(divisorplus(A,negativedivisor(B)));
391
+ list LB = globalSections(F);
392
+ if (size(LB[1])!=1) {return(0);}
393
+ ideal V = sectionIdeal(LB[1][1,1],LB[2],F);
394
+ if (isEqualIdeal(V,ideal(1))==1) {return(list(LB[1][1,1],LB[2]));}
395
+ return(0);
396
+ }
397
+ example
398
+ { "EXAMPLE:";
399
+ ring r=31991,(x,y,z),dp;
400
+ ideal I = y^2*z - x*(x-z)*(x+3*z);
401
+ qring Q = std(I);
402
+ divisor A = makeDivisor(ideal(x,z),ideal(1));
403
+ divisor B = makeDivisor(ideal(x,y),ideal(1));
404
+ linearlyEquivalent(A,B);
405
+ linearlyEquivalent(multdivisor(2,A),multdivisor(2,B));
406
+ }
407
+
408
+
409
+ proc effective(divisor A)
410
+ "USAGE: effective(A); A = divisor.@*
411
+ ASSUME: A is a divisor on X which is linearly equivalent to an effective divisor.
412
+ RETURN: divisor on X.
413
+ THEORY: We compute an effective divisor linearly equivalent to A.
414
+ KEYWORDS: divisors
415
+ EXAMPLE: example effective; shows an example
416
+ "
417
+ {
418
+ list LB = globalSections(A);
419
+ if (size(LB[1])==0) {ERROR("the divisor is not linearly equivalent to an effective divisor");}
420
+ ideal V = sectionIdeal(LB[1][1,1],LB[2],A);
421
+ return(makeDivisor(V,ideal(1)));
422
+ }
423
+ example
424
+ { "EXAMPLE:";
425
+ ring r=31991,(x,y,z),dp;
426
+ ideal I = y^2*z - x*(x-z)*(x+3*z);
427
+ qring Q = std(I);
428
+ divisor A = makeDivisor(ideal(x,z),ideal(1));
429
+ divisor B = makeDivisor(ideal(x,y),ideal(1));
430
+ divisor D = divisorplus(multdivisor(2,B),negativedivisor(A));
431
+ effective(D);
432
+ }
433
+
434
+
435
+
436
+ ////////////////////////////////////////////////////////////////////////////////
437
+ // formal sums of divisors
438
+
439
+ proc makeFormalDivisor(list L)
440
+ "USAGE: makeFormalDivisor(L); L = list.@*
441
+ ASSUME: L is a list of tuples of an integer and a divisor.
442
+ RETURN: a formal divisor on X
443
+ THEORY: Represents an integer formal sum of divisors.
444
+ KEYWORDS: divisors
445
+ EXAMPLE: example makeFormalDivisor; shows an example
446
+ "
447
+ {
448
+ formaldivisor C;
449
+ C.summands = L;
450
+ return(C);
451
+ }
452
+ example
453
+ { "EXAMPLE:";
454
+ ring r=31991,(x,y,z),dp;
455
+ ideal I = y^2*z - x*(x-z)*(x+3*z);
456
+ qring Q = std(I);
457
+ divisor A = makeDivisor(ideal(x,z),ideal(1));
458
+ divisor B = makeDivisor(ideal(x,y),ideal(1));
459
+ makeFormalDivisor(list(list(-5,A),list(2,B)));
460
+ }
461
+
462
+
463
+ proc evaluateFormalDivisor(formaldivisor D)
464
+ "USAGE: evaluateFormalDivisor(D); D = formal divisor.@*
465
+ ASSUME: D is a formal divisor on X.
466
+ RETURN: a divisor on X
467
+ THEORY: Will evaluate the formal sum.
468
+ KEYWORDS: divisors
469
+ EXAMPLE: example evaluateFormalDivisor; shows an example
470
+ "
471
+ {
472
+ list L = D.summands;
473
+ if (size(L)==0) {return(makeDivisor(ideal(1),ideal(1)));}
474
+ int i;
475
+ divisor E = multdivisor(L[1][1],L[1][2]);
476
+ for ( i=2; i <= size(L); i++ )
477
+ {
478
+ E = divisorplus(E, multdivisor(L[i][1],L[i][2]));
479
+ }
480
+ return(E);
481
+ }
482
+ example
483
+ { "EXAMPLE:";
484
+ ring r=31991,(x,y,z),dp;
485
+ ideal I = y^2*z - x*(x-z)*(x+3*z);
486
+ qring Q = std(I);
487
+ divisor A = makeDivisor(ideal(x,z),ideal(1));
488
+ divisor B = makeDivisor(ideal(x,y),ideal(1));
489
+ formaldivisor fE= makeFormalDivisor(list(list(-5,A),list(2,B)));
490
+ evaluateFormalDivisor(fE);
491
+ }
492
+
493
+
494
+
495
+ static proc position(divisor I,list L){
496
+ int i;
497
+ for (i=1; i <=size(L); i++){
498
+ if (isEqualDivisor(I,L[i][2])==1) {return(i);}
499
+ }
500
+ return(0);}
501
+
502
+
503
+ proc formaldivisorplus(formaldivisor A, formaldivisor B)
504
+ "USAGE: formaldivisorplus(A ,B); A + B; A = formaldivisor, B = formaldivisor. @*
505
+ ASSUME: A and B are formal divisors on X.
506
+ RETURN: a formal divisor on X
507
+ THEORY: The procedure will add the formal sums.
508
+ KEYWORDS: divisors
509
+ EXAMPLE: example formaldivisorplus; shows an example
510
+ "
511
+ {
512
+ formaldivisor C;
513
+ int i,p;
514
+ int j=1;
515
+ list L;
516
+ list LA=A.summands;
517
+ list LB=B.summands;
518
+ for (i=1; i<=size(LA);i++){
519
+ p=position(LA[i][2],L);
520
+ if (p==0) {
521
+ L[j]=list();
522
+ L[j][2]=LA[i][2];
523
+ L[j][1]=LA[i][1];
524
+ j=j+1;
525
+ } else {
526
+ L[p][1]=L[p][1]+LA[i][1];
527
+ };
528
+ }
529
+ for (i=1; i<=size(LB);i++){
530
+ p=position(LB[i][2],L);
531
+ if (p==0) {
532
+ L[j]=list();
533
+ L[j][2]=LB[i][2];
534
+ L[j][1]=LB[i][1];
535
+ j=j+1;
536
+ } else {
537
+ L[p][1]=L[p][1]+LB[i][1];
538
+ };
539
+ }
540
+ //C.summands = (A.summands)+(B.summands);
541
+ return(L);
542
+ }
543
+ example
544
+ { "EXAMPLE:";
545
+ ring r=31991,(x,y,z),dp;
546
+ ideal I = y^2*z - x*(x-z)*(x+3*z);
547
+ qring Q = std(I);
548
+ divisor A = makeDivisor(ideal(x,z),ideal(1));
549
+ divisor B = makeDivisor(ideal(x,y),ideal(1));
550
+ divisor C = makeDivisor(ideal(x-z,y),ideal(1));
551
+ formaldivisor fE= makeFormalDivisor(list(list(-5,A),list(2,B)));
552
+ formaldivisor fE2= makeFormalDivisor(list(list(-5,A),list(2,C)));
553
+ formaldivisorplus(fE,fE2);
554
+ }
555
+
556
+
557
+ proc degreeFormalDivisor(formaldivisor A)
558
+ "USAGE: degreeFormalDivisor(A); A = formaldivisor.@*
559
+ ASSUME: A is a formaldivisor on X.
560
+ RETURN: The degree of A.
561
+ THEORY: We compute degrees of the summands and return the weighted sum.
562
+ KEYWORDS: divisors
563
+ EXAMPLE: example degreeFormalDivisor; shows an example
564
+ "
565
+ {
566
+ int i,s;
567
+ list L = A.summands;
568
+ for (i=1;i<=size(L);i++){
569
+ s=s+L[i][1]*degreeDivisor(L[i][2]);
570
+ }
571
+ return(s);
572
+ }
573
+ example
574
+ { "EXAMPLE:";
575
+ ring r=31991,(x,y,z),dp;
576
+ ideal I = y^2*z - x*(x-z)*(x+3*z);
577
+ qring Q = std(I);
578
+ divisor A = makeDivisor(ideal(x,z),ideal(1));
579
+ divisor B = makeDivisor(ideal(x,y),ideal(1));
580
+ formaldivisor fE= makeFormalDivisor(list(list(-5,A),list(2,B)));
581
+ degreeFormalDivisor(fE);
582
+ }
583
+
584
+
585
+ proc multformaldivisor(int n,formaldivisor A)
586
+ "USAGE: multformaldivisor(n ,A); A*n; n = integer, A = formaldivisor.@*
587
+ ASSUME: n is an integer and A is a formal divisor on X.
588
+ RETURN: a formal divisor on X
589
+ THEORY: The procedure will multiply the formal sum with n.
590
+ KEYWORDS: divisors
591
+ EXAMPLE: example multformaldivisor; shows an example
592
+ "
593
+ {
594
+ formaldivisor B;
595
+ list L=A.summands;
596
+ int i;
597
+ for (i=1;i<=size(L);i++){
598
+ L[i][1]=n*L[i][1];
599
+ }
600
+ B.summands=L;
601
+ return(B);
602
+ }
603
+ example
604
+ { "EXAMPLE:";
605
+ ring r=31991,(x,y,z),dp;
606
+ ideal I = y^2*z - x*(x-z)*(x+3*z);
607
+ qring Q = std(I);
608
+ divisor A = makeDivisor(ideal(x,z),ideal(1));
609
+ divisor B = makeDivisor(ideal(x,y),ideal(1));
610
+ formaldivisor fE= makeFormalDivisor(list(list(-5,A),list(2,B)));
611
+ fE*2;
612
+ }
613
+
614
+
615
+ /***
616
+ * For operator overloading, which needs a procedure which takes a divisor first
617
+ * and integer second.
618
+ **/
619
+ proc proxymultformaldivisor(formaldivisor A, int n)
620
+ {
621
+ formaldivisor B;
622
+ list L=A.summands;
623
+ int i;
624
+ for (i=1;i<=size(L);i++){
625
+ L[i][1]=n*L[i][1];
626
+ }
627
+ B.summands=L;
628
+ return(B);
629
+ }
630
+
631
+
632
+
633
+ proc negativeformaldivisor(formaldivisor A)
634
+ "USAGE: negativeformaldivisor(A); A = formaldivisor.@*
635
+ ASSUME: A is a formaldivisor on X.
636
+ RETURN: a formal divisor on X
637
+ THEORY: The procedure will change the signs of the coefficients.
638
+ KEYWORDS: divisors
639
+ EXAMPLE: example negativeformaldivisor; shows an example
640
+ "
641
+ {
642
+ formaldivisor B;
643
+ list L=A.summands;
644
+ int i;
645
+ for (i=1;i<=size(L);i++){
646
+ L[i][1]=-L[i][1];
647
+ }
648
+ B.summands=L;
649
+ return(B);
650
+ }
651
+ example
652
+ { "EXAMPLE:";
653
+ ring r=31991,(x,y,z),dp;
654
+ ideal I = y^2*z - x*(x-z)*(x+3*z);
655
+ qring Q = std(I);
656
+ divisor A = makeDivisor(ideal(x,z),ideal(1));
657
+ divisor B = makeDivisor(ideal(x,y),ideal(1));
658
+ formaldivisor fE= makeFormalDivisor(list(list(-5,A),list(2,B)));
659
+ negativeformaldivisor(fE);
660
+ }
661
+
662
+
663
+ static proc primDecDivisor(divisor D)
664
+ "decompose a divisor into a formal divisor of primary divisors"
665
+ {
666
+ formaldivisor E;
667
+ ideal I = D.num;
668
+ ideal J = D.den;
669
+ list L;
670
+ int i;
671
+ int j = 1;
672
+ list LI = primdecGTZ(I);
673
+ for (i=1;i<=size(LI);i++){
674
+ LI[i][2];
675
+ L[j]=list(1,makeDivisor(LI[i][1],ideal(1)));
676
+ j=j+1;
677
+ };
678
+ list LJ = primdecGTZ(J);
679
+ for (i=1;i<=size(LJ);i++){
680
+ LJ[i][2];
681
+ L[j]=list(-1,makeDivisor(LJ[i][1],ideal(1)));
682
+ j=j+1;
683
+ };
684
+ E.summands=L;
685
+ return(E);}
686
+
687
+
688
+
689
+
690
+ ////////////////////////////////////////////////////////////////////////////////
691
+ // P-divisors
692
+
693
+ proc makePDivisor(list L)
694
+ "USAGE: makePDivisor(L); L = list.@*
695
+ ASSUME: L is a list of tuples of a integral polyhedron and a divisor such that
696
+ all polyhedra have the same tail cone.
697
+ RETURN: a pdivisor on X
698
+ THEORY: Represents an polyhedral formal sum of divisors.
699
+ KEYWORDS: divisors, polyhedra
700
+ EXAMPLE: example makePDivisor; shows an example
701
+ "
702
+ {
703
+ pdivisor P;
704
+ list CP = decomposePolyhedron(L[1][1]);
705
+ P.tail = CP[1];
706
+ list LP;
707
+ LP[1]=list(CP[2],L[1][2]);
708
+ int i;
709
+ for (i=2; i<=size(L);i++){
710
+ CP = decomposePolyhedron(L[i][1]);
711
+ if (!(CP[1]==P.tail)) {ERROR("All P-coefficients should have the same tail cone");}
712
+ LP[i]=list(CP[2],L[i][2]);
713
+ }
714
+ P.summands = LP;
715
+ return(P);
716
+ }
717
+ example
718
+ { "EXAMPLE:";
719
+ ring r=31991,(x,y,z),dp;
720
+ ideal I = y^2*z - x*(x-z)*(x+3*z);
721
+ qring Q = std(I);
722
+ divisor A = makeDivisor(ideal(x,z),ideal(1));
723
+ divisor B = makeDivisor(ideal(x,y),ideal(1));
724
+ intmat M[4][4]= 1,4,0,0,
725
+ 1,0,3,0,
726
+ 0,0,0,2,
727
+ 1,1,1,1;
728
+ polytope PP = polytopeViaPoints(M);
729
+ makePDivisor(list(list(PP,A),list(PP,B)));
730
+ }
731
+
732
+ static proc decomposePolyhedron(polytope P){
733
+ bigintmat rays = vertices(P);
734
+ bigintmat rays2 = rays;
735
+ int i,j;
736
+ for (i=1; i<=nrows(rays);i++){
737
+ if (rays[i,1]==1) {
738
+ for (j=1; j<=ncols(rays);j++){
739
+ rays[i,j]=0;
740
+ }
741
+ } else {
742
+ for (j=1; j<=ncols(rays);j++){
743
+ rays2[i,j]=0;
744
+ }
745
+ }
746
+ }
747
+ cone C = coneViaPoints(rays);
748
+ polytope C2 = polytopeViaPoints(rays2);
749
+ return(list(C,C2));
750
+ }