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,1456 @@
1
+ ///////////////////////////////////////////////////////////////////////////////
2
+ version="version nets.lib 4.1.2.0 Feb_2019 "; // $Id: 1447b17a7cc89fb2b9df0506e2b6a7d7cbada460 $
3
+ category="Miscellaneous";
4
+ info="
5
+ LIBRARY: net.lib Net structures for pretty printing
6
+
7
+ AUTHORS: J. Boehm, boehm@mathematik.uni-kl.de
8
+ M. Mueller, mkmuelle@mathematik.uni-kl.de
9
+ H. Rombach, rombach@mathematik.uni-kl.de
10
+ M. Stein, maxstein77@web.de
11
+
12
+ OVERVIEW:
13
+ Nets are arrays of characters, which are printed in a matrix format. They can be
14
+ concatenated horizontally and vertically. When concatenating horizontally, empty
15
+ rows are filled with spaces. All Singular types can be converted to a Net by applying
16
+ the command net.
17
+
18
+ KEYWORDS: net
19
+
20
+ TYPES:
21
+ Net The class of all nets
22
+
23
+ PROCEDURES:
24
+ catNets(Net,Net) horizontal concatenation
25
+ net(def) general procedure to generate a net from a Singular object
26
+ netBigIntMat(bigintmat) procedure to generate a net from a bigintmat
27
+ netBigIntMatShort(bigintmat) procedure to generate a net from a bigintmat
28
+ netCoefficientRing(ring) procedure to generate a net from a Singular coefficient ring
29
+ netIdeal(ideal) procedure to generate a net from an ideal
30
+ netInt(int) procedure to generate a net from a integer
31
+ netBigInt(bigint) procedure to generate a net from a bigint
32
+ netIntMat(intmat) procedure to generate a net from an intmat
33
+ netIntMatShort(intmat) procedure to generate a net from an intmat
34
+ netIntVector(vector) procedure to generate a net from an intvec
35
+ netIntVectorShort(vector) procedure to generate a net from an intvec
36
+ netNumber(number) procedure to generate a net from a number
37
+ netList(list) procedure to generate a net from a list
38
+ netMap(map) procedure to generate a net from a map
39
+ netMap2(map) procedure to generate a net from a map
40
+ netmatrix(matrix) procedure to generate a net from a matrix
41
+ netmatrixShort(matrix) procedure to generate a net from a matrix
42
+ netPoly(poly) procedure to generate a net from a poly
43
+ netPrimePower(int,int) procedure to generate a net from a prime power
44
+ netRing(ring) procedure to generate a net from a polynmial ring
45
+ netString(string) procedure to generate a net from a string
46
+ netvector(vector) procedure to generate a net from a vector
47
+ netvectorShort(vector) procedure to generate a net from a vector
48
+ stackNets(Net,Net) vertical concatenation
49
+ ";
50
+
51
+
52
+ LIB "matrix.lib";
53
+ LIB "qhmoduli.lib";
54
+ LIB "methods.lib";
55
+ LIB "combinat.lib";
56
+
57
+
58
+ /* test rings
59
+ //
60
+ ring r1 = 32003,(x,y,z),dp;
61
+ //
62
+ ring r2 = 32003,(x(1..10)),dp;
63
+ //
64
+ ring r3 = 32003,(x(1..5)(1..8)),dp;
65
+ //
66
+ ring r4 = 0,(a,b,c,d),lp;
67
+ //
68
+ ring r5 = 7,(x,y,z),ds;
69
+ //
70
+ ring r6 = 10,(x,y,z),ds;
71
+ //
72
+ ring r7 = 7,(x(1..6)),(lp(3),dp);
73
+ //
74
+ ring r8 = 0,(x,y,z,a,b,c),(ds(3), dp(3));
75
+ //
76
+ ring r9 = 0,(x,y,z),(c,wp(2,1,3));
77
+ //
78
+ ring r10 = (7,a,b,c),(x,y,z),Dp;
79
+ //
80
+ ring r11 = (7,a),(x,y,z),dp;
81
+ minpoly = a^2+a+3;
82
+ //
83
+ ring r12 = (7^2,a),(x,y,z),dp;
84
+ //
85
+ ring r13 = real,(x,y,z),dp;
86
+ //
87
+ ring r14 = (real,50),(x,y,z),dp;
88
+ //
89
+ ring r15 = (real,10,50),(x,y,z),dp;
90
+ //
91
+ ring r16 = (complex,30,j),(x,y,z),dp;
92
+ //
93
+ ring r17 = complex,(x,y,z),dp;
94
+ //
95
+ ring R = 7,(x,y,z), dp;
96
+ qring r18 = std(maxideal(2));
97
+ //
98
+ ring r19 = integer,(x,y,z), dp;
99
+ //
100
+ ring r20 = (integer, 6, 3),(x,y,z), dp;
101
+ //
102
+ ring r21 = (integer, 100),(x,y,z), dp;
103
+ */
104
+
105
+
106
+ //
107
+ // mod_init
108
+ //
109
+ static proc mod_init()
110
+ {
111
+ LIB "methods.lib";
112
+ newstruct("Net","list rows");
113
+ system("install","Net","print",printNet,1);
114
+ system("install","Net","+",catNets,2);
115
+ HashTable F = hashTable(list(list("ring"),list("matrix"),list("int"),list("string"),list("list"),list("poly"),list("map"),list("number"),list("bigint"),list("vector"),list("ideal"),list("intvec"),list("intmat"),list("bigintmat")),
116
+ list("netRing", "netmatrix", "netInt", "netString", "netList", "netPoly", "netMap", "netNumber", "netBigInt", "netvector", "netIdeal", "netIntVector","netIntMat","netBigIntMat"));
117
+ Method net_ = method(F);
118
+ export(net_);
119
+ installMethod(net_,"net");
120
+ }
121
+
122
+
123
+
124
+ //
125
+ // emptyString
126
+ //
127
+ static proc emptyString(int n)
128
+ {
129
+ string S="";
130
+ for (int j=1; j<=n; j++)
131
+ {
132
+ S=S+" ";
133
+ }
134
+
135
+ return(S);
136
+ }
137
+
138
+
139
+
140
+ //
141
+ // printNet
142
+ //
143
+ static proc printNet(Net N)
144
+ {
145
+ list L = N.rows;
146
+ for (int j=1; j<=size(L); j++)
147
+ {
148
+ print(L[j]);
149
+ }
150
+ }
151
+
152
+
153
+
154
+ //
155
+ // stackNets
156
+ //
157
+ proc stackNets(Net N, Net M)
158
+ "USAGE: stackNets(N,M); N,M Nets@*
159
+ RETURN: vertical concatenation of N and M
160
+ THEORY: The nets are concated vertically with alignment at the left column.
161
+ KEYWORDS: Output
162
+ EXAMPLE: example stackNets; shows an example
163
+ "
164
+ {
165
+ list LN=N.rows;
166
+ list LM=M.rows;
167
+ Net NM;
168
+ NM.rows=LN+LM;
169
+
170
+ return(NM);
171
+ }
172
+ example
173
+ {
174
+ "EXAMPLE:";
175
+ Net A = net("aaa");
176
+ Net B = net("b");
177
+ stackNets(A,B);
178
+ A+B;
179
+ }
180
+
181
+
182
+
183
+ //
184
+ // catNets
185
+ //
186
+ proc catNets(Net N, Net M)
187
+ "USAGE: catNets(N,M); N,M Nets@*
188
+ RETURN: horizontal concatenation of N and M
189
+ THEORY: The nets are concated horizontally with alignment at the top row. Can also be called with +.
190
+ KEYWORDS: Output
191
+ EXAMPLE: example catNets; shows an example
192
+ "
193
+ {
194
+ list L, MAX;
195
+ list LN=N.rows;
196
+ list LM=M.rows;
197
+ int widthN=size(LN[1]);
198
+ int widthM=size(LM[1]);
199
+ MAX[1]=size(LN);
200
+ MAX[2]=size(LM);
201
+ int nm=Max(MAX); /*Eine Funktion max() ist in der Bib qhmoduli.lib und heißt Max(), als Argumente nimmt die Funktion Integer-Vektoren oder -Listen*/
202
+ for (int j=1; j<=nm; j++)
203
+ {
204
+ if (j>size(LN)){LN[j]=emptyString(widthN);}
205
+ if (j>size(LM)){LM[j]=emptyString(widthM);}
206
+ L[j]=LN[j]+LM[j];
207
+ }
208
+ Net NM;
209
+ NM.rows=L;
210
+
211
+ return(NM);
212
+ }
213
+ example
214
+ {
215
+ "EXAMPLE:";
216
+ Net A = net("aaa");
217
+ Net B = net("b");
218
+ catNets(A,B);
219
+ A+B;
220
+ }
221
+
222
+
223
+
224
+ //
225
+ // netList
226
+ //
227
+ proc netList(list L1)
228
+ "USAGE: netList(L); L list@*
229
+ ASSUME: L is a list of elements
230
+ RETURN: visual presentation of L
231
+ THEORY: A Singular object is converted into a character array (a Net) for on screen printing.
232
+ KEYWORDS: Output
233
+ EXAMPLE: example netList; shows an example
234
+ "
235
+ {
236
+ Net N = net("[");
237
+ for (int j=1; j<=size(L1)-1; j++)
238
+ {
239
+ N=N+net(string(L1[j]))+net(", ");
240
+ //N=N+net((L1[j]))+net(", ");
241
+ }
242
+ N=N+net(string(L1[size(L1)]))+net("]");
243
+ //N=N+net((L1[size(L1)]))+net("]");
244
+ return(N);
245
+ }
246
+ example
247
+ {
248
+ "EXAMPLE:";
249
+ ring r1=101,(x,y,z),lp;
250
+ list L=111, x+y, x3y-z, y+3z4;
251
+ print("list L=111, x+y, x3y-z, y+3z4");
252
+ netList(L);
253
+ }
254
+
255
+
256
+ proc netNumber(number a)
257
+ "USAGE: netNumber(R); a number@*
258
+ ASSUME: a is a number
259
+ RETURN: visual presentation of a
260
+ THEORY: A Singular object is converted into a character array (a Net) for on screen printing.
261
+ KEYWORDS: Output
262
+ EXAMPLE: example netNumber; shows an example
263
+ "
264
+ {
265
+ return(netPoly(a));
266
+ }
267
+ example
268
+ {
269
+ "EXAMPLE:";
270
+ ring r1=101,(x,y,z),lp;
271
+ number a = 5;
272
+ netNumber(a);
273
+ }
274
+
275
+
276
+
277
+
278
+ //
279
+ // netCoefficientRing
280
+ // todo: RR,CC
281
+ proc netCoefficientRing(def R)
282
+ "USAGE: netCoefficientRing(R); R ring@*
283
+ ASSUME: R is a ring
284
+ RETURN: visual presentation of the coefficient ring of R
285
+ THEORY: A Singular object is converted into a character array (a Net) for on screen printing.
286
+ KEYWORDS: Output
287
+ EXAMPLE: example netCoefficientRing; shows an example
288
+ "
289
+ {
290
+ list RL = ringlist(R);
291
+ Net field;
292
+ list pf;
293
+ if (typeof(RL[1])=="list")
294
+ {
295
+ if (typeof(RL[1][1])=="string") {return(net("ZZ"));}
296
+ if (RL[1][1]==0){
297
+ field=net("QQ");
298
+ if (minpoly!=0){
299
+ field=field+net("[")+net(string(RL[1][2]))+net("]");
300
+ field=field+net("/")+net(string(minpoly));
301
+ } else {
302
+ field=field+net("(")+net(string(RL[1][2]))+net(")");
303
+ }
304
+ }
305
+ if (RL[1][1]>0){
306
+ pf = primefactors(RL[1][1]);
307
+ if (pf[2][1]>1)
308
+ {
309
+ field=net("FF_")+netPrimePower(pf[1][1],pf[2][1]);
310
+ } else {
311
+ field=net("FF_")+net(RL[1][1]);
312
+ if (minpoly!=0){
313
+ field=field+net("[")+net(string(RL[1][2]))+net("]");
314
+ field=field+net("/")+net(string(minpoly));
315
+ } else {
316
+ field=field+net("(")+net(string(RL[1][2]))+net(")");
317
+ }
318
+ }
319
+ }
320
+ } else {
321
+ if (RL[1]==0){field=net("QQ");}
322
+ if (RL[1]>0){
323
+ field=net("FF_")+net(RL[1]);
324
+ }
325
+ }
326
+ return(field);
327
+ }
328
+ example{
329
+ "EXAMPLE";
330
+ ring r=0,x,lp;
331
+ netCoefficientRing(r);
332
+ }
333
+
334
+
335
+
336
+ //
337
+ // netPrimePower
338
+ //
339
+ proc netPrimePower(int n, int m)
340
+ "USAGE: netPrimePower(n,m); n,m int@*
341
+ RETURN: visual presentation of the prime power n^m
342
+ THEORY: A Singular object is converted into a character array (a Net) for on screen printing.
343
+ KEYWORDS: Output
344
+ EXAMPLE: example netPrimePower; shows an example
345
+ "
346
+ {
347
+ /*
348
+ if (r==1)
349
+ {
350
+ return(string("n"));
351
+ }
352
+ */
353
+ string S=string(n)+string("^")+string(m);
354
+ return(net(/*(n)+net("^")+net(r)*/ S));
355
+ }
356
+ example{
357
+ "EXAMPLE";
358
+ ring r=0,x,lp;
359
+ int n=2;
360
+ int m=5;
361
+ netPrimePower(n,m);
362
+ }
363
+
364
+
365
+
366
+ //
367
+ // netRing
368
+ //
369
+ proc netRing(def R)
370
+ "USAGE: netRing(f); f ring@*
371
+ ASSUME: R is a ring
372
+ RETURN: visual presentation of R
373
+ THEORY: A Singular object is converted into a character array (a Net) for on screen printing.
374
+ KEYWORDS: Output
375
+ EXAMPLE: example netRing; shows an example
376
+ "
377
+ {
378
+ list RL = ringlist(R);
379
+ if (size(RL[4])==0){
380
+ Net N=netCoefficientRing(R)+net("[")+net(string(RL[2]))+net("]");
381
+ } else {
382
+ Net N=netCoefficientRing(R)+net("[")+net(string(RL[2]))+net("] / ")+net(RL[4]);
383
+ }
384
+
385
+ return(N);
386
+ }
387
+ example
388
+ {
389
+ "EXAMPLE:"; // from 3.3.1 Examples of ring declarations
390
+ ring r1 = 32003,(x,y,z),dp;
391
+ netRing(r1);
392
+ //
393
+ ring r2 = 32003,(x(1..10)),dp;
394
+ netRing(r2);
395
+ //
396
+ ring r3 = 32003,(x(1..5)(1..8)),dp;
397
+ netRing(r3);
398
+ //
399
+ ring r4 = 0,(a,b,c,d),lp;
400
+ netRing(r4);
401
+ //
402
+ ring r5 = 7,(x,y,z),ds;
403
+ netRing(r5);
404
+ //
405
+ ring r6 = 10,(x,y,z),ds;
406
+ netRing(r6);
407
+ //
408
+ ring r7 = 7,(x(1..6)),(lp(3),dp);
409
+ netRing(r7);
410
+ //
411
+ ring r8 = 0,(x,y,z,a,b,c),(ds(3), dp(3));
412
+ netRing(r8);
413
+ //
414
+ ring r9 = 0,(x,y,z),(c,wp(2,1,3));
415
+ netRing(r9);
416
+ //
417
+ ring r10 = (7,a,b,c),(x,y,z),Dp;
418
+ netRing(r10);
419
+ //
420
+ ring r11 = (7,a),(x,y,z),dp;
421
+ minpoly = a^2+a+3;
422
+ netRing(r11);
423
+ //
424
+ ring r12 = (7^2,a),(x,y,z),dp;
425
+ netRing(r12);
426
+ //
427
+ ring r13 = real,(x,y,z),dp;
428
+ netRing(r13);
429
+ //
430
+ ring r14 = (real,50),(x,y,z),dp;
431
+ netRing(r14);
432
+ //
433
+ ring r15 = (real,10,50),(x,y,z),dp;
434
+ netRing(r15);
435
+ //
436
+ ring r16 = (complex,30,j),(x,y,z),dp;
437
+ netRing(r16);
438
+ //
439
+ ring r17 = complex,(x,y,z),dp;
440
+ netRing(r17);
441
+ //
442
+ ring R = 7,(x,y,z), dp;
443
+ qring r18 = std(maxideal(2));
444
+ netRing(r18);
445
+ }
446
+
447
+
448
+
449
+
450
+ //
451
+ // netMap
452
+ //
453
+ proc netMap( map f)
454
+ "USAGE: netMap(f); f map@*
455
+ ASSUME: f is a map from a ring to the basering
456
+ RETURN: visual presentation of the map f
457
+ THEORY: A Singular object is converted into a character array (a Net) for on screen printing.
458
+ KEYWORDS: Output
459
+ EXAMPLE: example netMap; shows an example
460
+ "
461
+ {
462
+ // 0
463
+ list Output;
464
+ string Map, Source, Target;
465
+ int i, v, empty;
466
+ Net M;
467
+
468
+ // 1
469
+ Map=string(nameof(f));
470
+ Source=string(nameof(preimage(f)));
471
+ Target=string(nameof(basering));
472
+ Output[1]="Map"+": "+Source+" --> "+Target;
473
+ v=nvars(preimage(f));
474
+ empty=size(Output[1]);
475
+ Output[1]=Output[1]+" , "+string(ringlist(preimage(f))[2][1])+" -> "+string(f[1]);
476
+
477
+ // 2
478
+ for (i=2; i<=v; i++){// +2
479
+ Output[i]=emptyString(empty)+" , "+string(ringlist(preimage(f))[2][i])+" -> "+string(f[i]);
480
+ }// -2
481
+
482
+ // 3
483
+ M.rows=Output;
484
+
485
+ // -
486
+ return(M);
487
+ }
488
+
489
+ example
490
+ {
491
+ "EXAMPLE:";
492
+ ring r1=101,(x,y,z),lp;
493
+ ring r2=103,(a,b,c),lp;
494
+ map f=r1,ab,ac,bc;
495
+ netMap(f);
496
+ }
497
+
498
+
499
+
500
+ //
501
+ // netMap2
502
+ //
503
+ proc netMap2( map f)
504
+ "USAGE: netMap2(f); f map@*
505
+ ASSUME: f is a map from a ring to the basering
506
+ RETURN: visual presentation of the map f, alternative version
507
+ THEORY: A Singular object is converted into a character array (a Net) for on screen printing.
508
+ KEYWORDS: Output
509
+ EXAMPLE: example netMap2; shows an example
510
+ "
511
+ {
512
+ // 0
513
+ list Output;
514
+ string Map, Source, Target;
515
+ int i, v, empty;
516
+ Net M;
517
+
518
+ // 1
519
+ Map=string(nameof(f));
520
+ Source=string(nameof(preimage(f)));
521
+ Target=string(nameof(basering));
522
+ Output[1]=Map+": "+Source+" --> "+Target;
523
+ v=nvars(preimage(f));
524
+ empty=size(Output[1]);
525
+ Output[1]=Output[1]+" , "+string(ringlist(preimage(f))[2][1])+" -> "+string(f[1]);
526
+
527
+ // 2
528
+ for (i=2; i<=v; i++){// +2
529
+ Output[1]=Output[1]+" , "+string(ringlist(preimage(f))[2][i])+" -> "+string(f[i]);
530
+ }// -2
531
+
532
+ // 3
533
+ M.rows=Output;
534
+
535
+ // -
536
+ return(M);
537
+ }
538
+ example
539
+ {
540
+ "EXAMPLE:";
541
+ ring r1=101,(x,y,z),lp;
542
+ ring r2=103,(a,b,c),lp;
543
+ map f=r1,ab,ac,bc;
544
+ netMap2(f);
545
+ }
546
+
547
+
548
+
549
+ //
550
+ // netBigIntMat - Leerzeile
551
+ //
552
+ proc netBigIntMat(bigintmat M, list#)
553
+ "USAGE: netBigIntMat(M); M bigint Matrix@*
554
+ ASSUME: M is a bigintmatrix
555
+ RETURN: visual presentation of M
556
+ THEORY: A Singular object is converted into a character array (a Net) for on screen printing.
557
+ KEYWORDS: Output
558
+ EXAMPLE: example netBigIntMatrix; shows an example
559
+ "
560
+ {
561
+ // 0
562
+ int Length=100; //Length of Output
563
+
564
+ // -
565
+ return(netBigIntMatShort(M,Length));
566
+ }
567
+ example
568
+ {
569
+ "EXAMPLE:";
570
+ ring r1=101,(x,y,z),lp;
571
+ int a=111111;
572
+ int b=22222;
573
+ int c=3333;
574
+ int d=444;
575
+ bigintmat M[2][2]=a,b,c,d;
576
+ netBigIntMat(M);
577
+ }
578
+
579
+
580
+
581
+ //
582
+ // netBigIntMatrixShort - Leerzeile
583
+ //
584
+ proc netBigIntMatShort(bigintmat M, list #)
585
+ "USAGE: netBigIntMatShort(M); M bigint matrix@*
586
+ ASSUME: M is a bigintmatrix
587
+ RETURN: visual presentation of M, only the first digits of each entry
588
+ THEORY: A Singular object is converted into a character array (a Net) for on screen printing.
589
+ KEYWORDS: Output
590
+ EXAMPLE: example netBigIntMatShort; shows an example
591
+ "
592
+ {
593
+ // 0
594
+ int Length=10; // Länge der Ausgabe
595
+ string S;
596
+ list L, SizeCol, SizeColShort;
597
+ int wd,defect;
598
+ int i,j;
599
+
600
+ // 1
601
+ if( size(#)!=0 ){// + 1
602
+ Length=#[1];
603
+ }// - 1
604
+
605
+ // 2
606
+ for (j=1; j <= ncols(M); j++){// +2
607
+ SizeCol[j]=0;
608
+ }// -2
609
+
610
+ // 3
611
+ for (j=1; j <= ncols(M); j++){// +3
612
+ SizeColShort[j]=0;
613
+ }// -3
614
+
615
+ // 4
616
+ for (j=1; j <= ncols(M); j++){// +4
617
+ for (i=1; i <= nrows(M) ; i++){// +4.1
618
+ if ( SizeColShort[j] < size(string(M[i,j])) ){// +4.1.1
619
+ SizeCol[j]=size(string(M[i,j]));
620
+ SizeColShort[j]=size(string(M[i,j]));
621
+ }// -4.1.1
622
+ }// -4.1
623
+ }// -4
624
+
625
+ // 5
626
+ for (j=1; j <= ncols(M); j++){// +5
627
+ if( SizeColShort[j] > Length ){// +5.1
628
+ SizeColShort[j]=Length;
629
+ }// -5.1
630
+ }// -5
631
+
632
+ // 6
633
+ for (i=1; i<=nrows(M); i++ ){// +6
634
+ for (j=1; j<=ncols(M); j++ ){// +6.1
635
+ if ( j!=1 ){// +6.1.1
636
+ S=S+" ";
637
+ }// -6.1.1
638
+ if ( SizeCol[j] > Length ){// -6.1.2
639
+ if ( size(string(M[i,j])) > Length ){// +6.1.2.1
640
+ S=S+string(M[i,j])[1,Length]+"...";
641
+ }// -6.1.2.1
642
+ else{// +6.1.2.2
643
+ defect=SizeColShort[j]+3-size(string(M[i,j]));
644
+ S=S+string(M[i,j])+emptyString(defect);
645
+ }// -6.1.2.2
646
+ }// -6.1.2
647
+ else{// +6.1.3
648
+ defect=SizeColShort[j]-size(string(M[i,j]));
649
+ S=S+string(M[i,j])+emptyString(defect);
650
+ }// -6.1.3
651
+ }// -6.1
652
+ L[i]=S;
653
+ S="";
654
+ }// -6
655
+
656
+ // 7
657
+ for (j=1; j<=nrows(M); j++){// +7
658
+ L[j]="| "+L[j]+" |";
659
+ }// -7
660
+
661
+ // 8
662
+ Net NM;
663
+ NM.rows=L;
664
+
665
+ // -
666
+ return(NM);
667
+ }
668
+ example
669
+ {
670
+ "EXAMPLE:";
671
+ ring r1=101,(x,y,z),lp;
672
+ bigint a=1111111111;
673
+ bigint b=2222222222;
674
+ bigint c=3333333333;
675
+ bigint d=4444444444;
676
+ bigintmat M[2][2]=a,b,c,d;
677
+ netBigIntMatShort(M);
678
+ }
679
+
680
+
681
+
682
+ //
683
+ // netIntMatrix
684
+ //
685
+ proc netIntMat(intmat M)
686
+ "USAGE: netIntMat(M); M int matrix@*
687
+ ASSUME: M is a int matrix
688
+ RETURN: visual presentation of M
689
+ THEORY: A Singular object is converted into a character array (a Net) for on screen printing.
690
+ KEYWORDS: Output
691
+ EXAMPLE: example netBigIntMat; shows an example
692
+ "
693
+ {
694
+ // 0
695
+ int m=nrows(M);
696
+ int n=ncols(M);
697
+
698
+ // 1
699
+ bigintmat B[m][n]=M;
700
+ Net Output=netBigIntMat(B);
701
+
702
+ // -
703
+ return(Output);
704
+ }
705
+ example
706
+ {
707
+ "EXAMPLE:";
708
+ ring r1=101,(x,y,z),lp;
709
+ int a=111111;
710
+ int b=222222;
711
+ int c=333333;
712
+ int d=444444;
713
+ intmat M[2][2]=a,b,c,d;
714
+ netIntMat(M);
715
+ }
716
+
717
+
718
+
719
+ //
720
+ // netIntMatShort - Leerzeile
721
+ //
722
+ proc netIntMatShort(intmat M, list #)
723
+ "USAGE: netIntMatShort(M); M int matrix@*
724
+ ASSUME: M is a int matrix
725
+ RETURN: visual presentation of M, only the first digits of each entry
726
+ THEORY: A Singular object is converted into a character array (a Net) for on screen printing.
727
+ KEYWORDS: Output
728
+ EXAMPLE: example netIntMatShort; shows an example
729
+ "
730
+ {
731
+ // 0
732
+ int m=nrows(M);
733
+ int n=ncols(M);
734
+
735
+ // 1
736
+ bigintmat B[m][n]=bigintmat(M);
737
+
738
+ // 2
739
+ if( size(#)!=0 ){// +2.1
740
+ Net Output=netBigIntMatShort(B, #[1]);
741
+ }// -2.1
742
+ else{// +2.1
743
+ Net Output=netBigIntMatShort(B);
744
+ }// -2.2
745
+
746
+ // -
747
+ return(Output);
748
+ }
749
+ example
750
+ {
751
+ "EXAMPLE:";
752
+ ring r1=101,(x,y,z),lp;
753
+ int a=111111;
754
+ int b=222222;
755
+ int c=333333;
756
+ int d=444444;
757
+ intmat M[2][2]=a,b,c,d;
758
+ print(M);
759
+ netIntMatShort(M);
760
+ //
761
+ print(M);
762
+ netIntMatShort(M,2);
763
+ //
764
+ }
765
+
766
+
767
+
768
+ //
769
+ // netIntVector - Leerzeile
770
+ //
771
+ proc netIntVector(intvec V)
772
+ "USAGE: netIntVector(V); V int vector@*
773
+ ASSUME: V is a int vector
774
+ RETURN: visual presentation of V
775
+ THEORY: A Singular object is converted into a character array (a Net) for on screen printing.
776
+ KEYWORDS: Output
777
+ EXAMPLE: example netIntVector; shows an example
778
+ "
779
+ {
780
+ // 0
781
+ intmat M=intmat(V);
782
+
783
+ // 1
784
+ Net Output;
785
+ Output=netIntMat(M);
786
+
787
+ // -
788
+ return(Output);
789
+ }
790
+ example
791
+ {
792
+ "EXAMPLE:";
793
+ ring r1=101,(x,y,z),lp;
794
+ int a=111111;
795
+ int b=222222;
796
+ int c=333333;
797
+ int d=444444;
798
+ intvec V=a,b,c,d;
799
+ netIntVector(V);
800
+ }
801
+
802
+
803
+
804
+ //
805
+ // netIntVectorShort - Beispiel funktioniert nicht
806
+ //
807
+ proc netIntVectorShort(intvec V, list #)
808
+ "USAGE: netIntVectorShort(V); V int vector@*
809
+ ASSUME: V is a int vector
810
+ RETURN: visual presentation of V, only the first digits of each entry
811
+ THEORY: A Singular object is converted into a character array (a Net) for on screen printing.
812
+ KEYWORDS: Output
813
+ EXAMPLE: example netIntVectorShort; shows an example
814
+ "
815
+ {
816
+ // 0
817
+ intmat M=intmat(V);
818
+
819
+ // 1
820
+ Net Output;
821
+
822
+ // 2
823
+ if( size(#) != 0){// +2.1
824
+ Output=netIntMatShort(M, #[1]);
825
+ }// -2.1
826
+ else{// +2.2
827
+ Output=netIntMatShort(M);
828
+ }// -2.2
829
+
830
+ // -
831
+ return(Output);
832
+ }
833
+ example
834
+ {
835
+ "EXAMPLE:";
836
+ ring r1=101,(x,y,z),lp;
837
+ int a=111111;
838
+ int b=222222;
839
+ int c=333333;
840
+ int d=444444;
841
+ intvec V=a,b,c,d;
842
+ netIntVectorShort(V,4);
843
+ }
844
+
845
+
846
+
847
+ //
848
+ // netmatrix – Leerzeile
849
+ //
850
+ proc netmatrix(matrix M, list #)
851
+ "USAGE: netmatrix(V); M matrix@*
852
+ ASSUME: M is a matrix
853
+ RETURN: visual presentation of M
854
+ THEORY: A Singular object is converted into a character array (a Net) for on screen printing.
855
+ KEYWORDS: Output
856
+ EXAMPLE: example netmatrix; shows an example
857
+ "
858
+ {
859
+ // 0
860
+ int Size=50;
861
+
862
+ // 1
863
+ if( size(#)!=0 ){// +1
864
+ Size=#[1];
865
+ }// -1
866
+
867
+ // -
868
+ return(netmatrixShort(M, Size));
869
+ }
870
+ example
871
+ {
872
+ "EXAMPLE:";
873
+ ring r1=101,(x,y,z),lp;
874
+ poly a=2x3y4+300xy-234z23;
875
+ poly b=2x3y4z;
876
+ poly c=x3y4z5;
877
+ poly d=5x6y7z10;
878
+ poly e=2x3y;
879
+ poly f=4y5z8;
880
+ matrix M[2][3]=a,b,c,d,e,f;
881
+ print(M);
882
+ netmatrix(M);
883
+ }
884
+
885
+
886
+
887
+ //
888
+ // netmatrixShort
889
+ //
890
+ proc netmatrixShort(matrix M, list #)
891
+ "USAGE: netmatrixShort(M); M matrix@*
892
+ ASSUME: M is a matrix
893
+ RETURN: visual presentation of M
894
+ THEORY: A Singular object is converted into a character array (a Net) for on screen printing.
895
+ KEYWORDS: Output
896
+ EXAMPLE: example netmatrixShort; shows an example
897
+ "
898
+ {
899
+ int i, j;
900
+ list breite = list();
901
+ Net Output;
902
+ string Zeile;
903
+
904
+ //maximale Spaltenbreite setzen
905
+ for (i=1; i<=ncols(M); i++){
906
+ breite = breite + list(0);
907
+ for (j=1; j<=nrows(M); j++){
908
+ if (breite[i] < size(string(M[j,i]))){
909
+ breite[i] = size(string(M[j,i]));
910
+ }
911
+ }
912
+ }
913
+
914
+ //einfügen
915
+ for (i=1; i<=nrows(M); i++){
916
+ Zeile = "| ";
917
+ for (j=1; j<=ncols(M); j++){
918
+ Zeile = Zeile + string(M[i,j]) + emptyString( breite[j] - size(string(M[i,j])) + 1);
919
+
920
+ }
921
+ Output.rows[i] = Zeile + "|";
922
+ }
923
+
924
+ return (Output);
925
+ }
926
+ example
927
+ {
928
+ "EXAMPLE:";
929
+ ring r1=101,(x,y,z),lp;
930
+ poly a=2x3y4+300xy-234z23;
931
+ poly b=2x3y4z;
932
+ poly c=x3y4z5;
933
+ poly d=5x6y7z10;
934
+ poly e=2x3y-2x3y4+300xy-234z23;
935
+ poly f=4y5z8;
936
+ matrix M[2][3]=a,b,c,d,e,f;
937
+ netmatrixShort(M, 10);
938
+ }
939
+
940
+
941
+
942
+ //
943
+ // netInt
944
+ //
945
+ proc netInt(int M)
946
+ "USAGE: netInt(M); M integer@*
947
+ ASSUME: M is an integer
948
+ RETURN: visual presentation of M
949
+ THEORY: A Singular object is converted into a character array (a Net) for on screen printing.
950
+ KEYWORDS: Output
951
+ EXAMPLE: example netInt; shows an example
952
+ "
953
+ {
954
+ // 0
955
+ Net N;
956
+ list L;
957
+
958
+ // 1
959
+ L[1]=string(M);
960
+ N.rows=L;
961
+
962
+ // -
963
+ return(N);
964
+ }
965
+ example
966
+ {
967
+ "EXAMPLE:";
968
+ ring r;
969
+ int M=5;
970
+ netInt(M);
971
+ }
972
+
973
+
974
+
975
+ proc netBigInt(bigint M)
976
+ "USAGE: netBigInt(M); M integer@*
977
+ ASSUME: M is a bigint
978
+ RETURN: visual presentation of M
979
+ THEORY: A Singular object is converted into a character array (a Net) for on screen printing.
980
+ KEYWORDS: Output
981
+ EXAMPLE: example netBigInt; shows an example
982
+ "
983
+ {
984
+ // 0
985
+ Net N;
986
+ list L;
987
+
988
+ // 1
989
+ L[1]=string(M);
990
+ N.rows=L;
991
+
992
+ // -
993
+ return(N);
994
+ }
995
+ example
996
+ {
997
+ "EXAMPLE:";
998
+ ring r;
999
+ bigint M=5;
1000
+ netBigInt(M);
1001
+ }
1002
+
1003
+
1004
+ //
1005
+ // netString
1006
+ //
1007
+ proc netString(string M)
1008
+ "USAGE: netString(M); M string@*
1009
+ ASSUME: M is a string
1010
+ RETURN: visual presentation of M
1011
+ THEORY: A Singular object is converted into a character array (a Net) for on screen printing.
1012
+ KEYWORDS: Output
1013
+ EXAMPLE: example netString; shows an example
1014
+ "
1015
+ {
1016
+ // 0
1017
+ Net N;
1018
+ list L;
1019
+
1020
+ // 1
1021
+ L[1]=M;
1022
+ N.rows=L;
1023
+
1024
+ // -
1025
+ return(N);
1026
+ }
1027
+ example
1028
+ {
1029
+ "EXAMPLE:";
1030
+ string M="Hallo";
1031
+ netString(M);
1032
+ }
1033
+
1034
+
1035
+
1036
+ //
1037
+ // netvector - Leerzeile
1038
+ //
1039
+ proc netvector(vector V, list #)
1040
+ "USAGE: netvector(V); V vector@*
1041
+ ASSUME: V is a vector
1042
+ RETURN: visual presentation of V
1043
+ THEORY: A Singular object is converted into a character array (a Net) for on screen printing.
1044
+ KEYWORDS: Output
1045
+ EXAMPLE: example netvector; shows an example
1046
+ "
1047
+ {
1048
+ // 0
1049
+ matrix M=matrix(V);
1050
+ int Size=25;
1051
+
1052
+ // 1
1053
+ if( size(#)!=0 ){// +1
1054
+ Size=#{1};
1055
+ }// -1
1056
+
1057
+ // 2
1058
+ Net Output;
1059
+ Output=netmatrix(M, Size);
1060
+
1061
+ // -
1062
+ return(Output);
1063
+ }
1064
+ example
1065
+ {
1066
+ "EXAMPLE:";
1067
+ ring r1=101,(x,y,z),lp;
1068
+ poly a=2x3y4;
1069
+ poly b=2x3y4z;
1070
+ poly c=x3y4z5;
1071
+ poly d=5x6y7z10;
1072
+ poly e=2x3y;
1073
+ poly f=4y5z8;
1074
+ vector V=[a,b,c,d,e,f];
1075
+ netvector(V);
1076
+ }
1077
+
1078
+
1079
+
1080
+ //
1081
+ // netvectorShort
1082
+ //
1083
+ proc netvectorShort(vector V, list #)
1084
+ "USAGE: netvectorShort(V); V vector@*
1085
+ ASSUME: V is a vector
1086
+ RETURN: visual presentation of V, short version
1087
+ THEORY: A Singular object is converted into a character array (a Net) for on screen printing.
1088
+ KEYWORDS: Output
1089
+ EXAMPLE: example netvectorShort; shows an example
1090
+ "
1091
+ {
1092
+ // 0
1093
+ matrix M=matrix(V);
1094
+ Net Output;
1095
+ int Size=10;
1096
+
1097
+ // 1
1098
+ if( size(#)!=0 ){// +1
1099
+ Size=#[1];
1100
+ }// -1
1101
+
1102
+ // 2
1103
+ Output=netmatrixShort(M, Size);
1104
+
1105
+ // -
1106
+ return(Output);
1107
+ }
1108
+ example
1109
+ {
1110
+ "EXAMPLE:";
1111
+ ring r1=101,(x,y,z),lp;
1112
+ poly a=2x3y4;
1113
+ poly b=2x3y4z-5x6y7z10;
1114
+ poly c=x3y4z5;
1115
+ poly d=5x6y7z10;
1116
+ poly e=2x3y;
1117
+ poly f=4y5z8+5x6y7z10;
1118
+ vector V=[a,b,c,d,e,f];
1119
+ netvectorShort(V);
1120
+ }
1121
+
1122
+
1123
+
1124
+ //
1125
+ // netPoly - Leerzeile
1126
+ //
1127
+ proc netPoly(poly P)
1128
+ "USAGE: netPoly(P); P poly@*
1129
+ ASSUME: P is a poly
1130
+ RETURN: visual presentation of P over two rows
1131
+ THEORY: A Singular object is converted into a character array (a Net) for on screen printing.
1132
+ KEYWORDS: Output
1133
+ EXAMPLE: example netPoly; shows an example
1134
+ "
1135
+ {
1136
+ /*
1137
+ 0. Erstellung der benötigten Datenstrukturen
1138
+ 2. Überprüfung ob P das Nullpolynom ist und dieses gegenfalls ausgeben
1139
+ 3. Entscheidung ob es sich um den ersten Term handelt oder nicht
1140
+ 3.1 Verarbeitung des ersten Term
1141
+ 3.2 Verarbeitung foldender Terme
1142
+ */
1143
+
1144
+ // (0.)
1145
+ poly Q;
1146
+ list Output;
1147
+ Net N;
1148
+ string Up, Down, Test;
1149
+ int S, i;
1150
+
1151
+ if( P == 0 ) { // (1a)
1152
+ Down="0";
1153
+ Up=" ";
1154
+ } // (1a)
1155
+
1156
+ if( P == 1 ) { // (1b)
1157
+ Down="1";
1158
+ Up=" ";
1159
+ P=0;
1160
+ } // (1b)
1161
+
1162
+ if( P == -1 ) { // (1c)
1163
+ Down="-1";
1164
+ Up=" ";
1165
+ P=0;
1166
+ } // (1c)
1167
+
1168
+ // (2.)
1169
+ while ( P != 0 ) { // (2)
1170
+ // (3.)
1171
+ // (3.1.)
1172
+ if ( Down == "" ){ // (2.1)
1173
+ Q=lead(P);
1174
+ P=P-lead(P);
1175
+ if ( leadcoef(Q) == 1 ) { // (2.1.1)
1176
+ } // (2.1.1)
1177
+ else { // (2.1.2)
1178
+ Test=string( leadcoef(Q) );
1179
+ if( Test[1] == "-" ) { // (2.1.2.1))
1180
+ if ( Test[2] == "1" && Test[3] == "" ) { // (2.1.2.1.1)
1181
+ Down=Down+"-";
1182
+ Up=Up+emptyString(1);
1183
+ } // (2.1.2.1.1)
1184
+ else { // (2.1.2.1.2)
1185
+ Down=Down+string( leadcoef(Q) );
1186
+ Up=Up+emptyString( size( string( leadcoef(Q) ) ) ); //size(leadcoef(-1))=1, deshalb size(string ...
1187
+ }// (2.1.2.1.2)
1188
+ } // (2.1.2.1)
1189
+ else { // (2.1.2.2)
1190
+ Down=Down+string( leadcoef(Q) ); // leading coef
1191
+ Up=Up+emptyString( size( string( leadcoef(Q) ) ) );
1192
+ }// (2.1.2.2
1193
+ } // (2.1.2)
1194
+ S=nvars(basering); //variables
1195
+ for ( i=1; i<=S; i++) { // (2.1.1)
1196
+ if ( leadexp(Q)[i] == 0 ) { // (2.1.1.1)
1197
+ }
1198
+ else { // (2.1.1.2))
1199
+ Down=Down+string( ringlist( basering )[2][i] );
1200
+ Up=Up+emptyString( size( ring_list( basering )[2][i] ));
1201
+ if ( leadexp(Q)[i] == 1 ){ // (2.1.1.2.1))
1202
+ } // (2.1.1.2.1)
1203
+ else { // (2.1.1.2.2)
1204
+ Up=Up+string( leadexp(Q)[i] );
1205
+ Down=Down+emptyString( size( string( leadexp(Q)[i]) ) );
1206
+ } // (2.1.1.2.2)
1207
+ } // (2.2.5.2)
1208
+ } // (2.1.1)
1209
+ } // (2.1)
1210
+ // (3.2.)
1211
+ else { // (2.2)
1212
+ Q=lead(P);
1213
+ P=P-lead(P);
1214
+ if ( leadcoef(Q) == 1 ) { // (2.2.1)
1215
+ Down=Down+"+";
1216
+ Up=Up+" ";
1217
+ } // (2.2.1)
1218
+ else { // (2.2.2)
1219
+ Test=string( leadcoef(Q) );
1220
+ if ( Test[1] == "-" ) { // (2.2.2.1)
1221
+ if ( Test[2] == "1" && Test[3] == "" ) { // (2.2.2.1.1))
1222
+ Down=Down+"-";
1223
+ Up=Up+emptyString(1);
1224
+ } // (2.2.2.1.1)
1225
+ else { // ()
1226
+ Down=Down+string( leadcoef(Q) );
1227
+ Up=Up+emptyString( size( string( leadcoef(Q) ) ) ); //size(leadcoef(-1))=1
1228
+ }// (2.2.2.1.2)
1229
+ } // (2.2.2.1)
1230
+ else { // (2.2.2.2)
1231
+ Down=Down+"+";
1232
+ Up=Up+" ";
1233
+ Down=Down+string( leadcoef(Q) ); // leading coef
1234
+ Up=Up+emptyString( size( string( leadcoef(Q) ) ) );
1235
+ } // (2.2.2.2)
1236
+ } // (2.2.2)
1237
+
1238
+ S=nvars(basering); //variables
1239
+ for ( i=1; i<=S; i++) { // (2.2.3)
1240
+ if ( leadexp(Q)[i] == 0 ) { // (2.2.3.1)
1241
+ } // (2.2.3.1)
1242
+ else { // (2.2.3.2)
1243
+ Down=Down+string( ringlist( basering )[2][i] );
1244
+ Up=Up+emptyString( size( ringlist( basering )[2][i] ) );
1245
+ if ( leadexp(Q)[i] == 1 ){ // (2.2.3.2.1)
1246
+ } // (2.2.3.2.1)
1247
+ else { // (2.2.3.2.2)
1248
+ Up=Up+string( leadexp(Q)[i] );
1249
+ Down=Down+emptyString( size( string( leadexp(Q)[i]) ) );
1250
+ } // (2.2.3.2.2)
1251
+ } // (2.2.3.2)
1252
+ } // (2.2.3)
1253
+
1254
+ } // (2.2)
1255
+ } // (2)
1256
+
1257
+ // 4
1258
+ Output=Up,Down;
1259
+ N.rows=Output;
1260
+
1261
+ // -
1262
+ return(N);
1263
+ }
1264
+ example
1265
+ {
1266
+ "EXAMPLE:"; // from 3.3.1 Examples of ring declarations
1267
+ //
1268
+ ring R1 = 32003,(x,y,z),dp;
1269
+ poly q6=1;
1270
+ print(q6);
1271
+ netPoly(q6);
1272
+ poly q7=-1;
1273
+ print(q7);
1274
+ netPoly(q7);
1275
+ poly q8=2;
1276
+ print(q8);
1277
+ netPoly(q8);
1278
+ poly q9=-2;
1279
+ print(q9);
1280
+ netPoly(q9);
1281
+ poly q1=x+y+z;
1282
+ print(q1);
1283
+ netPoly(q1);
1284
+ poly q2=xy+xz+yz;
1285
+ print(q2);
1286
+ netPoly(q2);
1287
+ poly q3=2x3y3z4-3x4y5z6;
1288
+ print(q3);
1289
+ netPoly(q3);
1290
+ poly q4=x3y3z4-x4y5z6;
1291
+ print(q4);
1292
+ netPoly(q4);
1293
+ poly q5=-x3y3z4+x4y5z6;
1294
+ print(q5);
1295
+ netPoly(q5);
1296
+
1297
+ ring R2 = 32003,(x(1..10)),dp;
1298
+
1299
+ poly w6=1;
1300
+ print(w6);
1301
+ netPoly(w6);
1302
+
1303
+ poly w7=-1;
1304
+ print(w7);
1305
+ netPoly(w7);
1306
+
1307
+ poly w2=-x(1)-(2)-x(3);
1308
+ print(w2);
1309
+ netPoly(w2);
1310
+
1311
+ poly w3=x(1)*x(2)+x(1)*x(2)+x(2)*x(3);
1312
+ print(w3);
1313
+ netPoly(w3);
1314
+
1315
+ poly w4=x(1)*x(2)-x(1)*x(2)-x(2)*x(3);
1316
+ print(w4);
1317
+ netPoly(w4);
1318
+
1319
+ poly w5=x(1)^2*x(2)^3*x(3)^4;
1320
+ print(w5);
1321
+ netPoly(w5);
1322
+
1323
+ poly w8=x(1)+x(2)+x(3);
1324
+ print(w8);
1325
+ netPoly(w8);
1326
+
1327
+ poly w9=x(1)+x(2)+x(3);
1328
+ print(w9);
1329
+ netPoly(w9);
1330
+
1331
+ ring R3 = 32003,(x(1..5)(1..8)),dp;
1332
+
1333
+ poly e1=x(1)(1)+x(2)(2)+x(3)(3);
1334
+ print(e1);
1335
+ netPoly(e1);
1336
+
1337
+ poly e2=x(1)(1)*x(2)(2)*x(3)(3);
1338
+ print(e2);
1339
+ netPoly(e2);
1340
+
1341
+ poly e3=x(1)(1)^2*x(2)(2)^3*x(3)(3)^4;
1342
+ print(e3);
1343
+ netPoly(e3);
1344
+
1345
+ poly e4=-x(1)(1)^2*x(2)(2)^3*x(3)(3)^4-x(1)(1)^3*x(2)(2)^3*x(3)(3)^4;
1346
+ print(e4);
1347
+ netPoly(e4);
1348
+
1349
+ ring r=32003,(x,y,z),lp;
1350
+ poly p=x4+4y4+4z4-x3-3y3-3z3+1x2+2y2+z2-x-1y-z1;
1351
+ p;
1352
+ netPoly(p);
1353
+
1354
+ poly p2=x3yz+xy3z+xyz3-2x2yz-2xy2z-2xyz2+1xyz+x1yzxy1z;
1355
+ p2;
1356
+ netPoly(p2);
1357
+
1358
+ poly p3=x+y+z-x2-3y-4z4+xy+xz+2xy-x2y-xz2-y2z2;
1359
+ p3;
1360
+ netPoly(p3);
1361
+
1362
+ ring r2=32003,(x(1..10)),lp;
1363
+ poly p=x(1)*x(2)*x(3)+2*x(1)^2+2*x(1)*x(2);
1364
+ p;
1365
+ netPoly(p);
1366
+
1367
+ poly p2=x(1)^2*x(2)^3*x(3)^4-2*x(1)^1*x(2)^2+2*x(1)*x(2)*x(10);
1368
+ p2;
1369
+ netPoly(p2);
1370
+
1371
+ ring r3=7,(x,y,z),lp;
1372
+ poly p=17x2+24y;
1373
+ p;
1374
+ netPoly(p);
1375
+
1376
+ ring r4=(7,a,b,c),(x,y,z),Dp;
1377
+ poly p=2ax2+by-cz3;
1378
+ p;
1379
+ netPoly(p);
1380
+
1381
+ ring r5=(7,a),(x,y,z),dp;
1382
+ minpoly = a^2+a+3;
1383
+ poly p=2ax2+y-az3;
1384
+ p;
1385
+ netPoly(p);
1386
+
1387
+ ring r6 = (complex,30,j),(x,y,z),dp;
1388
+ poly p=2x2+y-z3+20*j;
1389
+ p;
1390
+ netPoly(p);
1391
+ }
1392
+
1393
+
1394
+ //
1395
+ // netIdeal
1396
+ //
1397
+ proc netIdeal(ideal I)
1398
+ "USAGE: netIdeal(P); P ideal@*
1399
+ ASSUME: P is a poly
1400
+ RETURN: visual presentation of I
1401
+ THEORY: A Singular object is converted into a character array (a Net) for on screen printing.
1402
+ KEYWORDS: Output
1403
+ EXAMPLE: example netIdeal; shows an example
1404
+ "
1405
+ {
1406
+ string N=string("<");
1407
+
1408
+ for (int i=1; i<size(I); i++){ // (1)
1409
+ N=N+string(I[i])+string(", ");
1410
+ } // (1)
1411
+
1412
+ N=N+string(I[size(I)])+string(">");
1413
+ return(net(N));
1414
+ }
1415
+ example
1416
+ {
1417
+ "EXAMPLE:";
1418
+ ring r;
1419
+ ideal I=2x3y4,2x3y4z+x3y4z5,5x6y7z10-2x3y+4y5z8;
1420
+ netIdeal(I);
1421
+ }
1422
+
1423
+
1424
+
1425
+ /*
1426
+ //
1427
+ // netIdeal mit net
1428
+ //
1429
+ proc netIdeal(ideal I)
1430
+ "USAGE: netIdeal(P); I ideal@*
1431
+ ASSUME: I is an ideal
1432
+ RETURN: visual presentation of I
1433
+ THEORY: A Singular object is converted into a character array (a Net) for on screen printing.
1434
+ KEYWORDS: Output
1435
+ EXAMPLE: example netIdeal; shows an example
1436
+ "
1437
+ {
1438
+ Net N=net("<");
1439
+ for (int i=1; i<size(I); i++)
1440
+ {
1441
+ N=N+net(I[i])+net(", ");
1442
+ }
1443
+ N=N+net(I[size(I)])+net(">");
1444
+ return(N);
1445
+ }
1446
+ example
1447
+ {
1448
+ "EXAMPLE:";
1449
+ ring r;
1450
+ ideal I=2x3y4,2x3y4z+x3y4z5,5x6y7z10-2x3y+4y5z8;
1451
+ netIdeal(I);
1452
+ }
1453
+ */
1454
+
1455
+
1456
+