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,39 @@
1
+ # sage_setup: distribution = sagemath-singular
2
+ """
3
+ Wrapper for Singular's Polynomial Arithmetic
4
+
5
+ AUTHOR:
6
+
7
+ - Martin Albrecht (2009-07): initial implementation
8
+ """
9
+ #*****************************************************************************
10
+ # Copyright (C) 2009 Martin Albrecht <malb@informatik.uni-bremen.de>
11
+ #
12
+ # Distributed under the terms of the GNU General Public License (GPL)
13
+ # http://www.gnu.org/licenses/
14
+ #*****************************************************************************
15
+
16
+ from sage.structure.element cimport RingElement
17
+
18
+ from sage.libs.singular.decl cimport poly, ring
19
+
20
+ cdef int singular_polynomial_check(poly *p, ring *r) except -1
21
+ cdef int singular_polynomial_add (poly **ret, poly *p, poly *q, ring *r) noexcept
22
+ cdef int singular_polynomial_call (poly **ret, poly *p, ring *r, list args,
23
+ poly *(*get_element)(object) noexcept) noexcept
24
+ cdef int singular_polynomial_cmp (poly *p, poly *q, ring *r) noexcept
25
+ cdef int singular_polynomial_rmul (poly **ret, poly *p, RingElement q, ring *r) noexcept
26
+ cdef int singular_polynomial_mul (poly **ret, poly *p, poly *q, ring *r) except -1
27
+ cdef int singular_polynomial_sub (poly **ret, poly *p, poly *q, ring *r) noexcept
28
+ cdef int singular_polynomial_div_coeff (poly **ret, poly *p, poly *q, ring *r) except -1
29
+ cdef int singular_polynomial_pow (poly **ret, poly *p, unsigned long exp, ring *r) except -1
30
+ cdef int singular_polynomial_neg(poly **ret, poly *p, ring *r) noexcept
31
+
32
+ cdef object singular_polynomial_latex(poly *p, ring *r, object base, object latex_gens)
33
+ cdef object singular_polynomial_str(poly *p, ring *r)
34
+ cdef object singular_polynomial_str_with_changed_varnames(poly *p, ring *r, object varnames)
35
+ cdef long singular_polynomial_deg(poly *p, poly *x, ring *r) noexcept
36
+
37
+ cdef int singular_polynomial_length_bounded(poly *p, int bound) noexcept
38
+ cdef int singular_vector_maximal_component(poly *v, ring *r) except -1
39
+ cdef int singular_polynomial_subst(poly **p, int var_index, poly *value, ring *r) except -1
@@ -0,0 +1,661 @@
1
+ # sage_setup: distribution = sagemath-singular
2
+ """
3
+ Wrapper for Singular's Polynomial Arithmetic
4
+
5
+ AUTHOR:
6
+
7
+ - Martin Albrecht (2009-07): refactoring
8
+ """
9
+ # ****************************************************************************
10
+ # Copyright (C) 2009 Martin Albrecht <malb@informatik.uni-bremen.de>
11
+ #
12
+ # This program is free software: you can redistribute it and/or modify
13
+ # it under the terms of the GNU General Public License as published by
14
+ # the Free Software Foundation, either version 2 of the License, or
15
+ # (at your option) any later version.
16
+ # https://www.gnu.org/licenses/
17
+ # ****************************************************************************
18
+
19
+ from cysignals.signals cimport sig_on, sig_off
20
+
21
+ cdef extern from *: # hack to get at cython macro
22
+ int unlikely(int)
23
+
24
+ import re
25
+ plusminus_pattern = re.compile(r"([^\(^])([\+\-])")
26
+ parenthvar_pattern = re.compile(r"\(([a-zA-Z][a-zA-Z0-9]*)\)")
27
+
28
+ from sage.cpython.string cimport bytes_to_str, str_to_bytes
29
+
30
+ from sage.libs.singular.decl cimport number, ideal
31
+ from sage.libs.singular.decl cimport currRing, rChangeCurrRing
32
+ from sage.libs.singular.decl cimport p_Copy, p_Add_q, p_Neg, pp_Mult_nn, p_GetCoeff, p_IsConstant, p_Cmp, pNext
33
+ from sage.libs.singular.decl cimport p_GetMaxExp, pp_Mult_qq, pPower, p_String, p_GetExp, p_LDeg
34
+ from sage.libs.singular.decl cimport n_Delete, idInit, fast_map_common_subexp, id_Delete
35
+ from sage.libs.singular.decl cimport omAlloc0, omStrDup, omFree
36
+ from sage.libs.singular.decl cimport p_GetComp
37
+ from sage.libs.singular.decl cimport pSubst
38
+ from sage.libs.singular.decl cimport p_Normalize
39
+ from sage.libs.singular.decl cimport ndCopyMap, maMapPoly
40
+
41
+ from sage.libs.singular.singular cimport sa2si, si2sa, overflow_check
42
+
43
+ from sage.misc.latex import latex
44
+
45
+ cdef int singular_polynomial_check(poly *p, ring *r) except -1:
46
+ """
47
+ Run consistency checks on ``p``.
48
+ """
49
+ while p:
50
+ if p_GetCoeff(p, r) == NULL:
51
+ raise ZeroDivisionError("NULL pointer as coefficient.")
52
+ p = p.next
53
+ return 0
54
+
55
+ cdef int singular_polynomial_add(poly **ret, poly *p, poly *q, ring *r) noexcept:
56
+ """
57
+ ``ret[0] = p+q`` where ``p`` and ``p`` in ``r``.
58
+
59
+ INPUT:
60
+
61
+ - ``ret`` -- a pointer to a Singular polynomial to store the result in
62
+ - ``p`` -- a Singular polynomial
63
+ - ``q`` -- a Singular polynomial
64
+ - ``r`` -- a Singular ring
65
+
66
+ EXAMPLES::
67
+
68
+ sage: P.<x,y,z> = QQ[]
69
+ sage: x + y # indirect doctest
70
+ x + y
71
+
72
+ sage: x + P(0)
73
+ x
74
+ """
75
+ if r != currRing:
76
+ rChangeCurrRing(r)
77
+ p = p_Copy(p, r)
78
+ q = p_Copy(q, r)
79
+ ret[0] = p_Add_q(p, q, r)
80
+ return 0
81
+
82
+ cdef int singular_polynomial_sub(poly **ret, poly *p, poly *q, ring *r) noexcept:
83
+ """
84
+ ``ret[0] = p-q`` where ``p`` and ``p`` in ``r``.
85
+
86
+ INPUT:
87
+
88
+ - ``ret`` -- a pointer to a Singular polynomial to store the result in
89
+ - ``p`` -- a Singular polynomial
90
+ - ``q`` -- a Singular polynomial
91
+ - ``r`` -- a Singular ring
92
+
93
+ EXAMPLES::
94
+
95
+ sage: P.<x,y,z> = QQ[]
96
+ sage: x - y # indirect doctest
97
+ x - y
98
+
99
+ sage: x + P(0)
100
+ x
101
+ """
102
+ if r != currRing:
103
+ rChangeCurrRing(r)
104
+ p = p_Copy(p, r)
105
+ q = p_Copy(q, r)
106
+ ret[0] = p_Add_q(p, p_Neg(q, r), r)
107
+ return 0
108
+
109
+ cdef int singular_polynomial_rmul(poly **ret, poly *p, RingElement n, ring *r) noexcept:
110
+ """
111
+ ``ret[0] = n*p`` where ``n`` is a coefficient and ``p`` in ``r``.
112
+
113
+ INPUT:
114
+
115
+ - ``ret`` -- a pointer to a Singular polynomial to store the result in
116
+ - ``p`` -- a Singular polynomial
117
+ - ``n`` -- a Sage coefficient
118
+ - ``r`` -- a Singular ring
119
+
120
+ EXAMPLES::
121
+
122
+ sage: P.<x,y,z> = QQ[]
123
+ sage: 2*x # indirect doctest
124
+ 2*x
125
+
126
+ sage: P(0)*x
127
+ 0
128
+ """
129
+ if r != currRing:
130
+ rChangeCurrRing(r)
131
+ cdef number *_n = sa2si(n, r)
132
+ ret[0] = pp_Mult_nn(p, _n, r)
133
+ n_Delete(&_n, r.cf)
134
+ return 0
135
+
136
+ cdef int singular_polynomial_call(poly **ret, poly *p, ring *r, list args,
137
+ poly *(*get_element)(object) noexcept) noexcept:
138
+ """
139
+ ``ret[0] = p(*args)`` where each entry in arg is a polynomial and ``p`` in ``r``.
140
+
141
+ INPUT:
142
+
143
+ - ``ret`` -- a pointer to a Singular polynomial to store the result in
144
+ - ``p`` -- a Singular polynomial
145
+ - ``r`` -- a Singular ring
146
+ - ``args`` -- list/tuple of elements which can be converted to Singular
147
+ polynomials using the ``(get_element)`` function provided
148
+ - ``(*get_element)`` -- a function to turn a Sage element into a
149
+ Singular element
150
+
151
+ EXAMPLES::
152
+
153
+ sage: P.<x,y,z> = QQ[]
154
+ sage: x(0,0,0) # indirect doctest
155
+ 0
156
+
157
+ sage: (3*x*z)(x,x,x)
158
+ 3*x^2
159
+
160
+ TESTS:
161
+
162
+ Test that there is no memory leak in evaluating polynomials. Note
163
+ that (lib)Singular has pre-allocated buckets, so we have to run a
164
+ lot of iterations to fill those up first::
165
+
166
+ sage: import resource
167
+ sage: import gc
168
+ sage: F.<a> = GF(7^2)
169
+ sage: R.<x,y> = F[]
170
+ sage: p = x+2*y
171
+ sage: def leak(N):
172
+ ....: before = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss
173
+ ....: gc.collect()
174
+ ....: for i in range(N):
175
+ ....: _ = p(a, a)
176
+ ....: after = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss
177
+ ....: return (after - before) * 1024 # ru_maxrss is in kilobytes
178
+
179
+ Loop (at most 30 times) until we have 6 consecutive zeros when
180
+ calling ``leak(10000)``. Depending on the operating system, it is
181
+ possible to have several nonzero leak values in the beginning, but
182
+ after a while we should get only zeros. The fact that we require 6
183
+ zeros also means that Singular's pre-allocated buckets should not
184
+ be sufficient if there really would be a memory leak. ::
185
+
186
+ sage: zeros = 0
187
+ sage: for i in range(30): # long time
188
+ ....: n = leak(10000)
189
+ ....: print("Leaked {} bytes".format(n))
190
+ ....: if n == 0:
191
+ ....: zeros += 1
192
+ ....: if zeros >= 6:
193
+ ....: break
194
+ ....: else:
195
+ ....: zeros = 0
196
+ Leaked...
197
+ Leaked 0 bytes
198
+ Leaked 0 bytes
199
+ Leaked 0 bytes
200
+ Leaked 0 bytes
201
+ Leaked 0 bytes
202
+ """
203
+ cdef long l = len(args)
204
+ cdef ideal *to_id = idInit(l, 1)
205
+ cdef bint constant_args = 1
206
+ for i from 0 <= i < l:
207
+ to_id.m[i]= p_Copy( get_element(args[i]), r)
208
+ if not p_IsConstant(to_id.m[i], r):
209
+ constant_args = 0
210
+
211
+ cdef ideal *from_id
212
+ rChangeCurrRing(r)
213
+ cdef ideal *res_id
214
+ if not constant_args:
215
+ from_id = idInit(1,1)
216
+ from_id.m[0] = p
217
+
218
+ res_id = fast_map_common_subexp(from_id, r, to_id, r)
219
+ ret[0] = res_id.m[0]
220
+
221
+ from_id.m[0] = NULL
222
+ res_id.m[0] = NULL
223
+ id_Delete(&from_id, r)
224
+ id_Delete(&res_id, r)
225
+ else:
226
+ ret[0] = maMapPoly(p, r, to_id, r, ndCopyMap)
227
+
228
+ # Unsure why we have to normalize here. See #16958
229
+ p_Normalize(ret[0], r)
230
+
231
+ id_Delete(&to_id, r)
232
+
233
+ return 0
234
+
235
+ cdef int singular_polynomial_cmp(poly *p, poly *q, ring *r) noexcept:
236
+ """
237
+ Compare two Singular elements ``p`` and ``q`` in ``r``.
238
+
239
+ INPUT:
240
+
241
+ - ``p`` -- a Singular polynomial
242
+ - ``q`` -- a Singular polynomial
243
+ - ``r`` -- a Singular ring
244
+
245
+ EXAMPLES::
246
+
247
+ sage: P.<x,y,z> = PolynomialRing(QQ,order='degrevlex')
248
+ sage: x == x
249
+ True
250
+
251
+ sage: x > y
252
+ True
253
+ sage: y^2 > x
254
+ True
255
+
256
+ sage: (2/3*x^2 + 1/2*y + 3) > (2/3*x^2 + 1/4*y + 10)
257
+ True
258
+
259
+ TESTS:
260
+
261
+ Ensure that comparison is transitive (as long as ``cfGreater`` is transitive and
262
+ consistent with ``cfGreaterZero``, see :issue:`39018` for more details)::
263
+
264
+ sage: P.<x,y> = GF(5)[]
265
+ sage: P(1) > P(4)
266
+ False
267
+ sage: P(4) > P(2)
268
+ True
269
+ sage: P(2) > P(1)
270
+ True
271
+
272
+ ::
273
+
274
+ sage: R.<x,y> = Integers(10)[]
275
+ sage: l = [i*x+j*y+k for i in range(10) for j in range(10) for k in range(10)]
276
+ sage: l.sort()
277
+ sage: for i in range(len(l)):
278
+ ....: for b in l[:i]:
279
+ ....: assert b < l[i], (b, l[i])
280
+
281
+ More tests for :issue:`35681`::
282
+
283
+ sage: P.<x,y> = ZZ[]
284
+ sage: P(0) > P(-1)
285
+ True
286
+ """
287
+ cdef number *h
288
+ cdef int tmp
289
+
290
+ if r != currRing:
291
+ rChangeCurrRing(r)
292
+
293
+ while True:
294
+ if p == NULL:
295
+ if q == NULL:
296
+ return 0
297
+ return -1 if r.cf.cfGreaterZero(p_GetCoeff(q, r), r.cf) else 1
298
+ elif q == NULL:
299
+ return 1 if r.cf.cfGreaterZero(p_GetCoeff(p, r), r.cf) else -1
300
+
301
+ tmp = p_Cmp(p, q, r)
302
+ if tmp != 0:
303
+ if tmp < 0:
304
+ return -1 if r.cf.cfGreaterZero(p_GetCoeff(q, r), r.cf) else 1
305
+ else:
306
+ return 1 if r.cf.cfGreaterZero(p_GetCoeff(p, r), r.cf) else -1
307
+
308
+ # compare coefficients
309
+ if not r.cf.cfEqual(p_GetCoeff(p, r), p_GetCoeff(q, r), r.cf):
310
+ return 1 if r.cf.cfGreater(p_GetCoeff(p, r), p_GetCoeff(q, r), r.cf) else -1
311
+
312
+ p = pNext(p)
313
+ q = pNext(q)
314
+
315
+ cdef int singular_polynomial_mul(poly** ret, poly *p, poly *q, ring *r) except -1:
316
+ """
317
+ ``ret[0] = p*q`` where ``p`` and ``p`` in ``r``.
318
+
319
+ INPUT:
320
+
321
+ - ``ret`` -- a pointer to a Singular polynomial to store the result in
322
+ - ``p`` -- a Singular polynomial
323
+ - ``q`` -- a Singular polynomial
324
+ - ``r`` -- a Singular ring
325
+
326
+ EXAMPLES::
327
+
328
+ sage: P.<x,y,z> = QQ[]
329
+ sage: x*y # indirect doctest
330
+ x*y
331
+
332
+ sage: x * P(0)
333
+ 0
334
+ """
335
+ if r != currRing:
336
+ rChangeCurrRing(r)
337
+ cdef unsigned long le = p_GetMaxExp(p, r)
338
+ cdef unsigned long lr = p_GetMaxExp(q, r)
339
+ cdef unsigned long esum = le + lr
340
+ overflow_check(esum, r)
341
+ ret[0] = pp_Mult_qq(p, q, r)
342
+ return 0
343
+
344
+ cdef int singular_polynomial_div_coeff(poly** ret, poly *p, poly *q, ring *r) except -1:
345
+ """
346
+ ``ret[0] = p/n`` where ``p`` and ``q`` in ``r`` and ``q`` constant.
347
+
348
+ The last condition is not checked.
349
+
350
+ INPUT:
351
+
352
+ - ``ret`` -- a pointer to a Singular polynomial to store the result in
353
+ - ``p`` -- a Singular polynomial
354
+ - ``q`` -- a constant Singular polynomial
355
+ - ``r`` -- a Singular ring
356
+
357
+ EXAMPLES::
358
+
359
+ sage: P.<x,y,z> = QQ[]
360
+ sage: x/2 # indirect doctest
361
+ 1/2*x
362
+
363
+ sage: x/0
364
+ Traceback (most recent call last):
365
+ ...
366
+ ZeroDivisionError: rational division by zero
367
+ """
368
+ if q == NULL:
369
+ raise ZeroDivisionError
370
+ sig_on()
371
+ cdef number *n = p_GetCoeff(q, r)
372
+ n = r.cf.cfInvers(n,r.cf)
373
+ ret[0] = pp_Mult_nn(p, n, r)
374
+ n_Delete(&n, r.cf)
375
+ sig_off()
376
+ return 0
377
+
378
+ cdef int singular_polynomial_pow(poly **ret, poly *p, unsigned long exp, ring *r) except -1:
379
+ """
380
+ ``ret[0] = p**exp`` where ``p`` in ``r`` and ``exp`` > 0.
381
+
382
+ The last condition is not checked.
383
+
384
+ INPUT:
385
+
386
+ - ``ret`` -- a pointer to a Singular polynomial to store the result in
387
+ - ``p`` -- a Singular polynomial
388
+ - ``exp`` -- integer
389
+ - ``r`` -- a Singular ring
390
+
391
+ EXAMPLES::
392
+
393
+ sage: P.<x,y,z> = QQ[]
394
+ sage: f = 3*x*y + 5/2*z
395
+ sage: f*f == f^2 # indirect doctest
396
+ True
397
+ sage: f^2
398
+ 9*x^2*y^2 + 15*x*y*z + 25/4*z^2
399
+ sage: f^0
400
+ 1
401
+ sage: f^(2^60)
402
+ Traceback (most recent call last):
403
+ ...
404
+ OverflowError: ...
405
+ """
406
+ cdef unsigned long v = p_GetMaxExp(p, r)
407
+ v = v * exp
408
+ overflow_check(v, r)
409
+
410
+ if r != currRing:
411
+ rChangeCurrRing(r)
412
+ cdef int count = singular_polynomial_length_bounded(p, 15)
413
+ if count >= 15 or exp > 15:
414
+ sig_on()
415
+ ret[0] = pPower( p_Copy(p,r), exp)
416
+ if count >= 15 or exp > 15:
417
+ sig_off()
418
+ return 0
419
+
420
+ cdef int singular_polynomial_neg(poly **ret, poly *p, ring *r) noexcept:
421
+ """
422
+ ``ret[0] = -p where ``p`` in ``r``.
423
+
424
+ The last condition is not checked.
425
+
426
+ INPUT:
427
+
428
+ - ``ret`` -- a pointer to a Singular polynomial to store the result in
429
+ - ``p`` -- a Singular polynomial
430
+ - ``r`` -- a Singular ring
431
+
432
+ EXAMPLES::
433
+
434
+ sage: P.<x,y,z> = QQ[]
435
+ sage: f = 3*x*y + 5/2*z
436
+ sage: -f # indirect doctest
437
+ -3*x*y - 5/2*z
438
+ sage: -P(0)
439
+ 0
440
+ """
441
+ if r != currRing:
442
+ rChangeCurrRing(r)
443
+ ret[0] = p_Neg(p_Copy(p,r),r)
444
+ return 0
445
+
446
+ cdef object singular_polynomial_str(poly *p, ring *r):
447
+ """
448
+ Return the string representation of ``p``.
449
+
450
+ INPUT:
451
+
452
+ - ``p`` -- a Singular polynomial
453
+ - ``r`` -- a Singular ring
454
+
455
+ EXAMPLES::
456
+
457
+ sage: P.<x,y,z> = ZZ[]
458
+ sage: str(x) # indirect doctest
459
+ 'x'
460
+ sage: str(10*x)
461
+ '10*x'
462
+ """
463
+ if r != currRing:
464
+ rChangeCurrRing(r)
465
+
466
+ s = bytes_to_str(p_String(p, r, r))
467
+ s = plusminus_pattern.sub("\\1 \\2 ", s)
468
+ s = parenthvar_pattern.sub("\\1", s)
469
+ return s
470
+
471
+ cdef object singular_polynomial_latex(poly *p, ring *r, object base, object latex_gens):
472
+ r"""
473
+ Return the LaTeX string representation of ``p``.
474
+
475
+ INPUT:
476
+
477
+ - ``p`` -- a Singular polynomial
478
+ - ``r`` -- a Singular ring
479
+
480
+ EXAMPLES::
481
+
482
+ sage: P.<x,y,z> = QQ[]
483
+ sage: latex(x) # indirect doctest
484
+ x
485
+ sage: latex(10*x^2 + 1/2*y)
486
+ 10 x^{2} + \frac{1}{2} y
487
+
488
+ Demonstrate that coefficients over non-atomic represented rings are
489
+ properly parenthesized (:issue:`11186`)::
490
+
491
+ sage: # needs sage.symbolic
492
+ sage: x = var('x')
493
+ sage: K.<z> = QQ.extension(x^2 + x + 1)
494
+ sage: P.<v,w> = K[]
495
+ sage: latex((z+1)*v*w - z*w^2 + z*v + z^2*w + z + 1)
496
+ \left(z + 1\right) v w - z w^{2} + z v + \left(-z - 1\right) w + z + 1
497
+
498
+ Demonstrate that there are no extra blanks in latex expression of multivariate
499
+ polynomial (:issue:`12908`)::
500
+
501
+ sage: R.<X,Y> = ZZ[]
502
+ sage: latex(X-Y)
503
+ X - Y
504
+ sage: latex(X^2-X)
505
+ X^{2} - X
506
+ sage: latex(-Y^2-Y)
507
+ -Y^{2} - Y
508
+ """
509
+ poly = ""
510
+ cdef unsigned long e
511
+ cdef int n = r.N, j
512
+ cdef int atomic_repr = base._repr_option('element_is_atomic')
513
+ while p:
514
+
515
+ # First determine the multinomial:
516
+ multi = ""
517
+ for j in range(1, n+1):
518
+ e = p_GetExp(p, j, r)
519
+ if e > 0:
520
+ multi += " " + latex_gens[j-1]
521
+ if e > 1:
522
+ multi += "^{%d}" % e
523
+ multi = multi.lstrip().rstrip()
524
+
525
+ # Next determine coefficient of multinomial
526
+ c = si2sa(p_GetCoeff(p, r), r, base)
527
+ if not multi:
528
+ multi = latex(c)
529
+ elif c != 1:
530
+ if c == -1:
531
+ multi = "-%s" % (multi)
532
+ else:
533
+ sc = latex(c)
534
+ # Add parenthesis if the coefficient consists of terms divided by +, -
535
+ # (starting with - is not enough) and is not the constant term
536
+ if not atomic_repr and multi and (sc.find("+") != -1 or sc[1:].find("-") != -1):
537
+ sc = "\\left(%s\\right)" % sc
538
+ multi = "%s %s" % (sc, multi)
539
+
540
+ # Now add on coefficiented multinomials
541
+ if poly:
542
+ poly = poly + " + "
543
+ poly = poly + multi
544
+
545
+ p = pNext(p)
546
+
547
+ poly = poly.lstrip().rstrip()
548
+ poly = poly.replace("+ -","- ")
549
+
550
+ if not poly:
551
+ return "0"
552
+ return poly
553
+
554
+ cdef object singular_polynomial_str_with_changed_varnames(poly *p, ring *r, object varnames):
555
+ cdef char **_names
556
+ cdef char **_orig_names
557
+ cdef int i
558
+
559
+ if len(varnames) != r.N:
560
+ raise TypeError("len(varnames) doesn't equal self.parent().ngens()")
561
+
562
+ _names = <char**>omAlloc0(sizeof(char*)*r.N)
563
+ for i from 0 <= i < r.N:
564
+ _name = str_to_bytes(varnames[i])
565
+ _names[i] = omStrDup(_name)
566
+
567
+ _orig_names = r.names
568
+ r.names = _names
569
+ s = singular_polynomial_str(p, r)
570
+ r.names = _orig_names
571
+
572
+ for i from 0 <= i < r.N:
573
+ omFree(_names[i])
574
+ omFree(_names)
575
+ return s
576
+
577
+ cdef long singular_polynomial_deg(poly *p, poly *x, ring *r) noexcept:
578
+ cdef long _deg, deg
579
+ cdef int dummy
580
+
581
+ deg = -1
582
+ _deg = -1
583
+ if p == NULL:
584
+ return -1
585
+ if r != currRing:
586
+ rChangeCurrRing(r)
587
+ if x == NULL:
588
+ return p_LDeg(p, &dummy, r)
589
+
590
+ cdef int i = 0
591
+ for i in range(1,r.N+1):
592
+ if p_GetExp(x, i, r):
593
+ break
594
+ while p:
595
+ _deg = p_GetExp(p, i, r)
596
+ if _deg > deg:
597
+ deg = _deg
598
+ p = pNext(p)
599
+ return deg
600
+
601
+ cdef int singular_polynomial_length_bounded(poly *p, int bound) noexcept:
602
+ """
603
+ Return the number of monomials in ``p`` but stop counting at
604
+ ``bound``.
605
+
606
+ This is useful to estimate whether a certain calculation will take
607
+ long or not.
608
+
609
+ INPUT:
610
+
611
+ - ``p`` -- a Singular polynomial
612
+ - ``bound`` -- integer > 0
613
+ """
614
+ cdef int count = 0
615
+ while p != NULL and count < bound:
616
+ p = pNext(p)
617
+ count += 1
618
+ return count
619
+
620
+ cdef int singular_vector_maximal_component(poly *v, ring *r) except -1:
621
+ """
622
+ returns the maximal module component of the vector ``v``.
623
+ INPUT:
624
+
625
+ - ``v`` -- a polynomial/vector
626
+ - ``r`` -- a ring
627
+ """
628
+ cdef int res=0
629
+ while v!=NULL:
630
+ res=max(p_GetComp(v, r), res)
631
+ v = pNext(v)
632
+ return res
633
+
634
+ cdef int singular_polynomial_subst(poly **p, int var_index, poly *value, ring *r) except -1:
635
+ """
636
+ Substitute variable ``var_index`` with ``value`` in ``p``.
637
+
638
+ INPUT:
639
+
640
+ - ``p`` -- a polynomial
641
+ - ``var_index`` -- integer < ngens (zero based indexing)
642
+ - ``value`` -- a polynomial
643
+ - ``r`` -- a ring
644
+ """
645
+
646
+ if r != currRing:
647
+ rChangeCurrRing(r)
648
+
649
+ if p_IsConstant(value, r):
650
+ p[0] = pSubst(p[0], var_index+1, value)
651
+ return 0
652
+
653
+ cdef unsigned long exp = p_GetExp(p[0], var_index+1, r) * p_GetMaxExp(value, r)
654
+
655
+ overflow_check(exp, r)
656
+
657
+ cdef int count = singular_polynomial_length_bounded(p[0], 15)
658
+ if unlikely(count >= 15 or exp > 15): sig_on()
659
+ p[0] = pSubst(p[0], var_index+1, value)
660
+ if unlikely(count >= 15 or exp > 15): sig_off()
661
+ return 0