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,351 @@
1
+ //////////////////////////////////////////////////////////////////////////////
2
+ version="version orbitparam.lib 4.1.2.0 Feb_2019 "; // $Id: 0404076cf29a9a8402af8b496b751f0a9f3814b5 $
3
+ category="Algebraic Geometry";
4
+ info="
5
+ LIBRARY: orbitparam.lib Parametrizing orbits of unipotent actions
6
+
7
+ AUTHORS: J. Boehm, boehm at mathematik.uni-kl.de @*
8
+ S. Papadakis, papadak at math.ist.utl.pt @*
9
+
10
+ OVERVIEW:
11
+
12
+ This library implements the theorem of Chevalley-Rosenlicht as stated in Theorem 3.1.4 of [Corwin, Greenleaf].
13
+ Given a set of strictly upper triangular n x n matrices L_1,...,L_c which generate
14
+ a Lie algebra as a vector space, and a vector v of size n, the
15
+ function @code{parametrizeOrbit} constructs a parametrization of the orbit of v under
16
+ the action of exp(<L_1,...,L_c>).
17
+
18
+ To compute exp of the Lie algebra elements corresponding
19
+ to the parameters we require that the characteristic of the base field is zero or larger than n.
20
+
21
+ By determining the parameters from bottom to top
22
+ this allows you to find an element in the orbit with (at least) as many zeros as the dimension of the
23
+ orbit.
24
+
25
+ Note: Theorem 3.1.4 of [Corwin, Greenleaf] uses strictly lower triangular matrices.
26
+
27
+ REFERENCES:
28
+
29
+ Laurence Corwin, Frederick P. Greenleaf: Representations of Nilpotent Lie Groups and their Applications: Volume 1, Part 1, Basic Theory and Examples, Cambridge University Press (2004).
30
+
31
+ PROCEDURES:
32
+
33
+ tangentGens(list,matrix); Returns elements in the Lie algebra, which form a basis of the tangent space of the parametrization.
34
+ matrixExp(matrix); Matrix exp for nilpotent matrices.
35
+ matrixLog(matrix); Matrix log for unipotent matrices.
36
+ parametrizeOrbit(list,matrix); Returns parametrization of the orbit.
37
+ maxZeros(list,matrix); Determine an element in the orbit with the maximum number of zeroes.
38
+
39
+ KEYWORDS: nilpotent Lie algebras; unipotent groups; orbit; parametrization; Chevalley-Rosenlicht theorem
40
+ ";
41
+
42
+ LIB "general.lib";
43
+ LIB "matrix.lib";
44
+
45
+
46
+
47
+ ///////////////////////////////////////////////////////////////////////////////
48
+
49
+ ///////////////////////////////////////////////////////////////////////////////
50
+ proc tangentGens(list L, matrix v)
51
+ "USAGE: tangentGens(L,v); L list, v matrix.
52
+ ASSUME: L is a list of strictly upper triangular n x n matrices of same size.
53
+ The vector space <L> generated by the elements of L should be closed
54
+ under the Lie bracket.
55
+
56
+ v is matrix of constants of size n x 1.
57
+
58
+ RETURN: list, with four entries
59
+ @* - first entry is the dimension of the orbit of under the action of exp(<L>)
60
+ @* - second entry is a list generators of the tangent space of the orbit of v at v
61
+ under the action of exp(<L>). If the characteristic p of the ground field is positive, then n has to be smaller than p. The generators are elements of <L>.
62
+ @* - third entry is the list of matrices with the coefficient to obtain the generators
63
+ as a linear combination of the elements of L
64
+ @* - fourth entry is list of integers with entries in v which can be made zero by the
65
+ action of exp(<L>)
66
+
67
+ THEORY: We apply the theorem of Chevalley-Rosenlicht.
68
+
69
+ KEYWORDS: Lie algebra; orbit; Chevalley-Rosenlicht theorem
70
+
71
+ EXAMPLE: example tangentGens; shows an example
72
+
73
+ "
74
+ {
75
+ list T;
76
+ list M;
77
+ int i;
78
+ int s;
79
+ int t;
80
+ list Z;
81
+ int d=size(L);
82
+ int n=nrows(v);
83
+ if (d<1){ERROR("expected nonempty list of generators");}
84
+ if (n<>nrows(L[1])){ERROR("vector should be same dimension as size of matrix");}
85
+ matrix A= L[1]*v;
86
+ for ( i=2; i <= d; i++ )
87
+ {
88
+ A=concat(A,L[i]*v);
89
+ }
90
+ matrix B;
91
+ for ( i=n-1; i >=1; i=i-1 )
92
+ {
93
+ B=submat(A,i..n,1..d);
94
+ matrix E[n-i+1][1];
95
+ E[1,1]=1;
96
+ list LU=ludecomp(B);
97
+ list Q=lusolve(LU[1],LU[2],LU[3],E);
98
+ if (Q[1]<>0){
99
+ s++;
100
+ T[s]=Q[2];
101
+ matrix C = Q[2][1,1]*L[1];
102
+ for ( t=2; t <= d; t++ )
103
+ {
104
+ C=C+Q[2][t,1]*L[t];
105
+ }
106
+ M[s]=C;
107
+ Z[s]=i;
108
+ kill C;
109
+ }
110
+ kill E,LU,Q;
111
+ }
112
+ return(list(s,M,T,Z));
113
+ }
114
+
115
+ example
116
+ { "EXAMPLE:";
117
+ ring R = 0,(x),dp;
118
+ matrix L1[3][3] = 0,1,0, 0,0,0, 0,0,0;
119
+ matrix L2[3][3] = 0,0,1, 0,0,0, 0,0,0;
120
+ matrix L3[3][3] = 0,1,1, 0,0,1, 0,0,0;
121
+ list L = L1,L2,L3;
122
+ matrix v[3][1] = 1,2,3;
123
+ tangentGens(L,v);
124
+ }
125
+
126
+
127
+ proc matrixExp(matrix A)
128
+ "USAGE: matrixExp(A); A matrix.
129
+ ASSUME: A is a nilpotent n x n matrix.
130
+ If the characteristic p of the ground field is positive, then n has to be
131
+ smaller than p.
132
+
133
+ RETURN: matrix, exp(A)
134
+
135
+ THEORY: We compute the power series, which terminates since A is nilpotent.
136
+
137
+ KEYWORDS: Exp for matrices
138
+
139
+ EXAMPLE: example matrixExp; shows an example
140
+
141
+ "
142
+ {
143
+ int i;
144
+ int n = nrows(A);
145
+ if (n<>ncols(A)){
146
+ ERROR("expected square matrix");
147
+ }
148
+ matrix Z[n][n];
149
+ matrix B[n][n];
150
+ B=B+1;
151
+ matrix D[n][n];
152
+ D=D+1;
153
+ number j=1;
154
+ for (i=1; i <= n; i++ )
155
+ {
156
+ j=j*i;
157
+ D=D*A;
158
+ if (D==Z){break;}
159
+ B=B+(1/j)*D;
160
+ }
161
+ return(B);}
162
+ example
163
+ { "EXAMPLE:";
164
+ ring R = 0,(x),dp;
165
+ matrix A[4][4] = 0,0,1,0, 0,0,1,0, 0,0,0,0;
166
+ matrixExp(A);
167
+ }
168
+
169
+
170
+ proc matrixLog(matrix A)
171
+ "USAGE: matrixLog(A); A matrix.
172
+ ASSUME: A-E is a nilpotent n x n matrix.
173
+ If the characteristic p of the ground field is positive, then n has to be
174
+ smaller than p.
175
+
176
+ RETURN: matrix, log(A)
177
+
178
+ THEORY: We compute the power series, which terminates since A-E is nilpotent.
179
+
180
+ KEYWORDS: Log for matrices
181
+
182
+ EXAMPLE: example matrixLog; shows an example
183
+
184
+ "
185
+ {
186
+ int i;
187
+ int n = nrows(A);
188
+ if (n<>ncols(A)){
189
+ ERROR("expected square matrix");
190
+ }
191
+ matrix Z[n][n];
192
+ matrix B[n][n];
193
+ matrix D[n][n];
194
+ matrix N[n][n]= A-1;
195
+ D=D+1;
196
+ number j;
197
+ for (i=1; i <= n; i++ )
198
+ {
199
+ j=j+1;
200
+ D=D*N;
201
+ if (D==Z){break;}
202
+ B=B+(1/j)*(-1)^(i+1)*D;
203
+ }
204
+ return(B);}
205
+ example
206
+ { "EXAMPLE:";
207
+ ring R = 0,(s,t),dp;
208
+ matrix A[3][3] = 1,s,st/2, 0,1,t, 0,0,1;
209
+ matrixLog(A);
210
+ }
211
+
212
+
213
+
214
+ proc parametrizeOrbit(list L, matrix v)
215
+ "USAGE: parametrizeOrbit(L,v); L list, v matrix.
216
+ ASSUME: L is a list of strictly upper triangular n x n matrices of same size.
217
+ The vector space <L> generated by the elements of L should be closed
218
+ under the Lie bracket.
219
+ @* v is matrix of constants of size n x 1.
220
+ @* The basering has at least size(L) variables. However we will only use
221
+ tangentGens(L,v)[1] many of them.
222
+
223
+ RETURN: list, with four entries
224
+ @* - int, dimension of the orbit
225
+ @* - matrix A over the basering giving a parametrization of the orbit of v under the action of exp(<L>).
226
+ @* - list of integers, with the (row)-indices of entries which can be deleted by the action
227
+ @* - the variables of the parametrization to solve for
228
+
229
+ THEORY: We apply the theorem of Chevalley-Rosenlicht. First we determine tangent space generators,
230
+ then apply @code{matrixExp} to the generators, and finally take the product
231
+ to obtain the parametrization.
232
+
233
+ KEYWORDS: Lie group; orbit; parametrization
234
+
235
+ EXAMPLE: example parametrizeOrbit; shows an example
236
+ "
237
+ {
238
+ list T = tangentGens(L,v);
239
+ list T2 = T[2];
240
+ int i;
241
+ int d=size(L);
242
+ list vL;
243
+ if (nvars(basering)<d)
244
+ {
245
+ ERROR("expected basering with at least generators many variables");
246
+ }
247
+ for (i=1; i <= size(T2); i++ )
248
+ {
249
+ v = matrixExp(T2[size(T2)-i+1]*var(size(T2)-i+1))*v;
250
+ vL[i]=var(i);
251
+ }
252
+ return(list(T[1],v,T[4],vL));
253
+ }
254
+
255
+ example
256
+ { "EXAMPLE:";
257
+ ring R = 0,(t(1..3)),dp;
258
+ matrix L1[3][3] = 0,1,0, 0,0,0, 0,0,0;
259
+ matrix L2[3][3] = 0,0,1, 0,0,0, 0,0,0;
260
+ matrix L3[3][3] = 0,1,1, 0,0,1, 0,0,0;
261
+ list L = L1,L2,L3;
262
+ matrix v[3][1] = 1,2,3;
263
+ parametrizeOrbit(L,v);
264
+
265
+ ring R1 = 0,(t(1..2)),dp;
266
+ matrix L1[4][4] = 0,1,0,0, 0,0,0,0, 0,0,0,1, 0,0,0,0;
267
+ matrix L2[4][4] = 0,0,1,0, 0,0,0,1, 0,0,0,0, 0,0,0,0;
268
+ list L = L1,L2;
269
+ matrix v[4][1] = 1,2,3,4;
270
+ parametrizeOrbit(L,v);
271
+ }
272
+
273
+
274
+ proc maxZeros(list L, matrix v)
275
+ "USAGE: maxZeros(L,v); L list, v matrix.
276
+ ASSUME: L is a list of strictly upper triangular n x n matrices of same size.
277
+ The vector space <L> generated by the elements of L should be closed
278
+ under the Lie bracket.
279
+
280
+ v is matrix of constants of size n x 1.
281
+
282
+ The basering has at least size(L) variables. However we will only use
283
+ tangentGens(L,v)[1] many of them.
284
+
285
+ RETURN: matrix of constants over the basering giving an element in the orbit of v
286
+ under the action of exp(<L>) with (at least) as many zeros as the dimension of the
287
+ orbit.
288
+
289
+ THEORY: We apply @code{parametrizeOrbit} to obtain a parametrization of the orbit
290
+ according to the theorem of Chevalley-Rosenlicht. By determining the parameters from bottom to top
291
+ we find an element in the orbit with (at least) as many zeros as the dimension of the
292
+ orbit.
293
+
294
+ KEYWORDS: Lie group; orbit; maximum number of zeroes
295
+
296
+ EXAMPLE: example parametrizeOrbit; shows an example
297
+ "
298
+ {
299
+ int d = size(L);
300
+ def Roriginal = basering;
301
+ list rl = ringlist(Roriginal);
302
+ int k;
303
+ for(k = 1; k <= d; k++)
304
+ {
305
+ rl[2][k] = "x("+string(k)+")";
306
+ }
307
+ rl[3]= list(list("dp",1:(d)),list("C",0));
308
+ def R = ring(rl);
309
+ setring R;
310
+ list L = fetch(Roriginal,L);
311
+ matrix v = fetch(Roriginal,v);
312
+ list P = parametrizeOrbit(L,v);
313
+ matrix p = P[2];
314
+ int n = P[1];
315
+ list idx = P[3];
316
+ list va = P[4];
317
+ poly equ,rhs;
318
+ number de;
319
+ list parval;
320
+ for(k = 1; k <= n; k++)
321
+ {
322
+ equ = p[idx[k],1];
323
+ rhs=-number(subst(equ,va[k],0));
324
+ de = number(diff (equ, va[k]));
325
+ parval[k] = rhs/de;
326
+ p = subst(p,va[k],rhs/de);
327
+ }
328
+ setring(Roriginal);
329
+ matrix p=fetch(R,p);
330
+ return(p);
331
+ }
332
+
333
+ example
334
+ { "EXAMPLE:";
335
+ ring R = 0,(x),dp;
336
+ matrix L1[3][3] = 0,1,0, 0,0,0, 0,0,0;
337
+ matrix L2[3][3] = 0,0,1, 0,0,0, 0,0,0;
338
+ matrix L3[3][3] = 0,1,1, 0,0,1, 0,0,0;
339
+ list L = L1,L2,L3;
340
+ matrix v[3][1] = 1,2,3;
341
+ maxZeros(L,v);
342
+
343
+ ring R1 = 0,(x),dp;
344
+ matrix L1[4][4] = 0,1,0,0, 0,0,0,0, 0,0,0,1, 0,0,0,0;
345
+ matrix L2[4][4] = 0,0,1,0, 0,0,0,1, 0,0,0,0, 0,0,0,0;
346
+ list L = L1,L2;
347
+ matrix v[4][1] = 1,2,3,4;
348
+ maxZeros(L,v);
349
+ }
350
+
351
+
@@ -0,0 +1,319 @@
1
+ ////////////////////////////////////////////////////////////////////
2
+ version="version parallel.lib 4.4.1.1 Feb_2025 "; // $Id: a5e93aee5a9d3333810fc57b6fd047fa89e9f5b9 $
3
+ category="General purpose";
4
+ info="
5
+ LIBRARY: parallel.lib An abstraction layer for parallel skeletons
6
+
7
+ AUTHOR: Andreas Steenpass, e-mail: steenpass@mathematik.uni-kl.de
8
+
9
+ OVERVIEW:
10
+ This library provides implementations of several parallel 'skeletons' (i.e.
11
+ ways in which parallel tasks rely upon and interact with each other). It is
12
+ based on the library tasks.lib and aims at both ordinary Singular users as well
13
+ as authors of Singular libraries.
14
+
15
+ KEYWORDS: parallelization; parallel skeletons; distributed computing
16
+
17
+ SEE ALSO: resources_lib, tasks_lib, modstd_lib, normal_lib
18
+
19
+ PROCEDURES:
20
+ parallelWaitN(); execute several jobs in parallel
21
+ and wait for N of them to finish
22
+ parallelWaitFirst(); execute several jobs in parallel
23
+ and wait for the first to finish
24
+ parallelWaitAll(); execute several jobs in parallel
25
+ and wait for all of them to finish
26
+ parallelTestAND(); run several tests in parallel
27
+ and determine if they all succeed
28
+ parallelTestOR(); run several tests in parallel
29
+ and determine if any of them succeeds
30
+ ";
31
+
32
+ LIB "tasks.lib";
33
+
34
+ proc parallelWaitN(alias list commands, alias list args, int N, list #)
35
+ "USAGE: parallelWaitN(commands, arguments, N[, timeout]); commands list,
36
+ arguments list, N int, timeout int
37
+ RETURN: a list, containing the results of commands[i] applied to
38
+ arguments[i], i = 1, ..., size(arguments).
39
+ @* The procedure waits for N jobs to finish.
40
+ @* An optional timeout in ms can be provided. Default is 0 which
41
+ disables the timeout.
42
+ NOTE: The entries of the list commands must be strings. The entries of the
43
+ list arguments must be lists.
44
+ @* The type of any entry of the returned list whose corresponding task
45
+ did not finish (due to timeout or error) is \"none\".
46
+ @* The returned list may contain more than N results if several jobs
47
+ finished \"at the same time\". It may contain less than N results in
48
+ the case of timeout or errors occurring.
49
+ SEE ALSO: parallelWaitAll, parallelWaitFirst, tasks_lib
50
+ EXAMPLE: example parallelWaitN; shows an example"
51
+ {
52
+ // auxiliary variables
53
+ int i;
54
+
55
+ // read optional parameters
56
+ int timeout;
57
+ int ncores; // obsolete, but kept for compatibility with old libraries
58
+ if (size(#) > 0) {
59
+ if (typeof(#[1]) != "int") {
60
+ ERROR("wrong optional parameters");
61
+ }
62
+ timeout = #[1];
63
+ if (size(#) > 1) {
64
+ if (size(#) > 2 || typeof(#[2]) != "int") {
65
+ ERROR("wrong optional parameters");
66
+ }
67
+ ncores = #[2];
68
+ }
69
+ }
70
+
71
+ // apply wrapper for obsolete optional parameter ncores
72
+ if (ncores) {
73
+ list semaphore_save = Resources::setcores_subtree(ncores);
74
+ }
75
+
76
+ // error checking
77
+ int njobs = size(commands);
78
+ if (njobs != size(args)) {
79
+ ERROR("The number of commands does not match the number of lists"
80
+ +newline+"of arguments.");
81
+ }
82
+ if (njobs == 0) {
83
+ ERROR("no commands specified");
84
+ }
85
+ for (i = 1; i <= njobs; i++) {
86
+ if (typeof(commands[i]) != "string") {
87
+ ERROR("The first argument is not a list of strings.");
88
+ }
89
+ if (typeof(args[i]) != "list") {
90
+ ERROR("The second argument is not a list of lists.");
91
+ }
92
+ }
93
+
94
+ list results;
95
+ if(system("cpu")<=1)
96
+ {
97
+ list tmp;
98
+ int tmp_s;
99
+ for(i=njobs;i>0;i--)
100
+ {
101
+ tmp=args[i];
102
+ tmp_s=size(tmp);
103
+ execute("results[i]="+commands[i]+"(tmp[1..tmp_s]);");
104
+ }
105
+ }
106
+ else
107
+ {
108
+ // compute the tasks
109
+ for (i = 1; i <= njobs; i++) {
110
+ task t(i) = commands[i], args[i];
111
+ }
112
+ startTasks(t(1..njobs));
113
+ list indices = waitTasks(list(t(1..njobs)), N, timeout);
114
+
115
+ // wrap back to saved semaphore
116
+ if (ncores) {
117
+ Resources::resetcores_subtree(semaphore_save);
118
+ }
119
+
120
+ // return results
121
+ for (i = size(indices); i > 0; i--) {
122
+ results[indices[i]] = getResult(t(indices[i]));
123
+ }
124
+ for (i = 1; i <= njobs; i++) {
125
+ killTask(t(i));
126
+ }
127
+ }
128
+ return(results);
129
+ }
130
+ example
131
+ {
132
+ "EXAMPLE:";
133
+ echo = 2;
134
+ ring R = 0, (x,y,z), lp;
135
+ ideal I = 3x3y+x3+xy3+y2z2, 2x3z-xy-xz3-y4-z2, 2x2yz-2xy2+xz2-y4;
136
+ ideal J = x10+x9y2, x2y7-y8;
137
+ list commands = list("std", "std");
138
+ list arguments = list(list(I), list(J));
139
+ parallelWaitN(commands, arguments, 1);
140
+ }
141
+
142
+ proc parallelWaitFirst(alias list commands, alias list args, list #)
143
+ "USAGE: parallelWaitFirst(commands, args[, timeout]); commands list,
144
+ arguments list, timeout int
145
+ RETURN: a list, containing at least one (if no timeout occurs) of the results
146
+ of commands[i] applied to arguments[i], i = 1, ..., size(arguments).
147
+ @* The command @code{parallelWaitFirst(commands, arguments[, timeout])}
148
+ is synonymous to
149
+ @code{parallelWaitN(commands, arguments, 1[, timeout])}. See
150
+ @ref{parallelWaitN} for details on optional arguments and other
151
+ remarks.
152
+ SEE ALSO: parallelWaitN, parallelWaitAll, tasks_lib
153
+ EXAMPLE: example parallelWaitFirst; shows an example"
154
+ {
155
+ return(parallelWaitN(commands, args, 1, #));
156
+ }
157
+ example
158
+ {
159
+ "EXAMPLE:";
160
+ echo = 2;
161
+ ring R = 0, (x,y,z), lp;
162
+ ideal I = 3x3y+x3+xy3+y2z2, 2x3z-xy-xz3-y4-z2, 2x2yz-2xy2+xz2-y4;
163
+ ideal J = x10+x9y2, x2y7-y8;
164
+ list commands = list("std", "std");
165
+ list arguments = list(list(I), list(J));
166
+ parallelWaitFirst(commands, arguments);
167
+ }
168
+
169
+ proc parallelWaitAll(alias def commands, alias list args, list #)
170
+ "USAGE: parallelWaitAll(commands, arguments[, timeout]); commands list or
171
+ string, arguments list, timeout int
172
+ RETURN: a list, containing the results of commands[i] applied to
173
+ arguments[i], i = 1, ..., size(arguments).
174
+ @* The command @code{parallelWaitAll(commands, arguments[, timeout])} is
175
+ synonymous to @code{parallelWaitN(commands, arguments,
176
+ size(arguments)[, timeout])}. See @ref{parallelWaitN} for details on
177
+ optional arguments and other remarks.
178
+ NOTE: As a shortcut, @code{commands} can be a string. This is synonymous to
179
+ providing a list of @code{size(arguments)} copies of this string.
180
+ SEE ALSO: parallelWaitFirst, parallelWaitN, tasks_lib
181
+ EXAMPLE: example parallelWaitAll; shows an example"
182
+ {
183
+ if (typeof(commands) != "list" && typeof(commands) != "string") {
184
+ ERROR("invalid type of first argument");
185
+ }
186
+ if (typeof(commands) == "list") {
187
+ return(parallelWaitN(commands, args, size(args), #));
188
+ }
189
+ else {
190
+ list cmds;
191
+ for (int i = size(args); i > 0; i--) {
192
+ cmds[i] = commands;
193
+ }
194
+ return(parallelWaitN(cmds, args, size(args), #));
195
+ }
196
+ }
197
+ example
198
+ {
199
+ "EXAMPLE:";
200
+ echo = 2;
201
+ ring R = 0, (x,y,z), dp;
202
+ ideal I1 = z8+z6+4z5+4z3+4z2+4, -z2+y;
203
+ ideal I2 = x9y2+x10, x2y7-y8;
204
+ ideal I3 = x3-2xy, x2y-2y2+x;
205
+ string command = "std";
206
+ list arguments = list(list(I1), list(I2), list(I3));
207
+ parallelWaitAll(command, arguments);
208
+ }
209
+
210
+ proc parallelTestAND(alias def commands, alias list args, list #)
211
+ "USAGE: parallelTestAND(commands, arguments[, timeout]); commands list or
212
+ string, arguments list, timeout int
213
+ RETURN: 1, if commands[i] applied to arguments[i] is not equal to zero for
214
+ all i = 1, ..., size(arguments);
215
+ 0, otherwise.
216
+ @* An optional timeout in ms can be provided. Default is 0 which
217
+ disables the timeout. In case of timeout, -1 is returned.
218
+ NOTE: The entries of the list commands must be strings. The entries of the
219
+ list arguments must be lists.
220
+ @* commands[i] applied to arguments[i] must evaluate to an integer for
221
+ i = 1, ..., size(arguments).
222
+ @* As a shortcut, @code{commands} can be a string. This is synonymous to
223
+ providing a list of @code{size(arguments)} copies of this string.
224
+ SEE ALSO: parallelTestOR, tasks_lib
225
+ EXAMPLE: example parallelTestAND; shows an example"
226
+ {
227
+ // note: this can be improved
228
+ list results = parallelWaitAll(commands, args, #);
229
+ int i;
230
+ for (i = size(args); i > 0; i--) {
231
+ if (typeof(results[i]) != "int" && typeof(results[i]) != "none") {
232
+ ERROR("result no. "+string(i)+" not of type int");
233
+ }
234
+ }
235
+ for (i = size(args); i > 0; i--) {
236
+ if (typeof(results[i]) == "none") { // timeout
237
+ return(-1);
238
+ }
239
+ }
240
+ for (i = size(results); i > 0; i--) {
241
+ if (!results[i]) {
242
+ return(0);
243
+ }
244
+ }
245
+ return(1);
246
+ }
247
+ example
248
+ {
249
+ "EXAMPLE:";
250
+ echo = 2;
251
+ ring R = 0, (x,y,z), dp;
252
+ ideal I = x, y, z;
253
+ intvec v = 0:3;
254
+ list l = list(I, v);
255
+ module m1 = x*gen(1);
256
+ module m2;
257
+ string command = "size";
258
+ list arguments1 = list(list(I), list(v), list(l), list(m1));
259
+ list arguments2 = list(list(I), list(v), list(l), list(m2));
260
+ // test if all the arguments have non-zero size
261
+ parallelTestAND(command, arguments1);
262
+ parallelTestAND(command, arguments2);
263
+ }
264
+
265
+ proc parallelTestOR(alias def commands, alias list args, list #)
266
+ "USAGE: parallelTestOR(commands, arguments[, timeout]); commands list or
267
+ string, arguments list, timeout int
268
+ RETURN: 1, if commands[i] applied to arguments[i] is not equal to zero for
269
+ any i = 1, ..., size(arguments);
270
+ 0, otherwise.
271
+ @* An optional timeout in ms can be provided. Default is 0 which
272
+ disables the timeout. In case of timeout, -1 is returned.
273
+ NOTE: The entries of the list commands must be strings. The entries of the
274
+ list arguments must be lists.
275
+ @* commands[i] applied to arguments[i] must evaluate to an integer for
276
+ i = 1, ..., size(arguments).
277
+ @* As a shortcut, @code{commands} can be a string. This is synonymous to
278
+ providing a list of @code{size(arguments)} copies of this string.
279
+ SEE ALSO: parallelTestAND, tasks_lib
280
+ EXAMPLE: example parallelTestAND; shows an example"
281
+ {
282
+ // note: this can be improved
283
+ list results = parallelWaitAll(commands, args, #);
284
+ int i;
285
+ for (i = size(args); i > 0; i--) {
286
+ if (typeof(results[i]) != "int" && typeof(results[i]) != "none") {
287
+ ERROR("result no. "+string(i)+" not of type int");
288
+ }
289
+ }
290
+ for (i = size(args); i > 0; i--) {
291
+ if (typeof(results[i]) == "none") { // timeout
292
+ return(-1);
293
+ }
294
+ }
295
+ for (i = size(results); i > 0; i--) {
296
+ if (results[i]) {
297
+ return(1);
298
+ }
299
+ }
300
+ return(0);
301
+ }
302
+ example
303
+ {
304
+ "EXAMPLE:";
305
+ echo = 2;
306
+ ring R = 0, (x,y,z), dp;
307
+ ideal I;
308
+ string s;
309
+ list l;
310
+ module m1 = x*gen(1);
311
+ module m2;
312
+ string command = "size";
313
+ list arguments1 = list(list(I), list(s), list(l), list(m1));
314
+ list arguments2 = list(list(I), list(s), list(l), list(m2));
315
+ // test if any of the arguments has non-zero size
316
+ parallelTestOR(command, arguments1);
317
+ parallelTestOR(command, arguments2);
318
+ }
319
+