passagemath-singular 10.6.31rc3__cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of passagemath-singular might be problematic. Click here for more details.

Files changed (490) hide show
  1. PySingular.cpython-314-aarch64-linux-gnu.so +0 -0
  2. passagemath_singular-10.6.31rc3.dist-info/METADATA +183 -0
  3. passagemath_singular-10.6.31rc3.dist-info/RECORD +490 -0
  4. passagemath_singular-10.6.31rc3.dist-info/WHEEL +6 -0
  5. passagemath_singular-10.6.31rc3.dist-info/top_level.txt +3 -0
  6. passagemath_singular.libs/libSingular-4-6a2a8666.4.1.so +0 -0
  7. passagemath_singular.libs/libcddgmp-ac579979.so.0.1.3 +0 -0
  8. passagemath_singular.libs/libfactory-4-66e33516.4.1.so +0 -0
  9. passagemath_singular.libs/libflint-81de1160.so.21.0.0 +0 -0
  10. passagemath_singular.libs/libgf2x-fbd36f80.so.3.0.0 +0 -0
  11. passagemath_singular.libs/libgfortran-e1b7dfc8.so.5.0.0 +0 -0
  12. passagemath_singular.libs/libgmp-93ebf16a.so.10.5.0 +0 -0
  13. passagemath_singular.libs/libgsl-e3525837.so.28.0.0 +0 -0
  14. passagemath_singular.libs/libmpfr-e0f11cf3.so.6.2.1 +0 -0
  15. passagemath_singular.libs/libntl-0043a3a2.so.44.0.1 +0 -0
  16. passagemath_singular.libs/libomalloc-0-06512335.9.6.so +0 -0
  17. passagemath_singular.libs/libopenblasp-r0-4c5b64b1.3.29.so +0 -0
  18. passagemath_singular.libs/libpolys-4-cb7246b5.4.1.so +0 -0
  19. passagemath_singular.libs/libreadline-28330744.so.8.2 +0 -0
  20. passagemath_singular.libs/libsingular_resources-4-8c425241.4.1.so +0 -0
  21. passagemath_singular.libs/libtinfo-f81c2d16.so.6.3 +0 -0
  22. sage/algebras/all__sagemath_singular.py +3 -0
  23. sage/algebras/fusion_rings/all.py +19 -0
  24. sage/algebras/fusion_rings/f_matrix.py +2448 -0
  25. sage/algebras/fusion_rings/fast_parallel_fmats_methods.cpython-314-aarch64-linux-gnu.so +0 -0
  26. sage/algebras/fusion_rings/fast_parallel_fmats_methods.pxd +5 -0
  27. sage/algebras/fusion_rings/fast_parallel_fmats_methods.pyx +538 -0
  28. sage/algebras/fusion_rings/fast_parallel_fusion_ring_braid_repn.cpython-314-aarch64-linux-gnu.so +0 -0
  29. sage/algebras/fusion_rings/fast_parallel_fusion_ring_braid_repn.pxd +3 -0
  30. sage/algebras/fusion_rings/fast_parallel_fusion_ring_braid_repn.pyx +331 -0
  31. sage/algebras/fusion_rings/fusion_double.py +899 -0
  32. sage/algebras/fusion_rings/fusion_ring.py +1580 -0
  33. sage/algebras/fusion_rings/poly_tup_engine.cpython-314-aarch64-linux-gnu.so +0 -0
  34. sage/algebras/fusion_rings/poly_tup_engine.pxd +24 -0
  35. sage/algebras/fusion_rings/poly_tup_engine.pyx +579 -0
  36. sage/algebras/fusion_rings/shm_managers.cpython-314-aarch64-linux-gnu.so +0 -0
  37. sage/algebras/fusion_rings/shm_managers.pxd +24 -0
  38. sage/algebras/fusion_rings/shm_managers.pyx +780 -0
  39. sage/algebras/letterplace/all.py +1 -0
  40. sage/algebras/letterplace/free_algebra_element_letterplace.cpython-314-aarch64-linux-gnu.so +0 -0
  41. sage/algebras/letterplace/free_algebra_element_letterplace.pxd +18 -0
  42. sage/algebras/letterplace/free_algebra_element_letterplace.pyx +755 -0
  43. sage/algebras/letterplace/free_algebra_letterplace.cpython-314-aarch64-linux-gnu.so +0 -0
  44. sage/algebras/letterplace/free_algebra_letterplace.pxd +35 -0
  45. sage/algebras/letterplace/free_algebra_letterplace.pyx +914 -0
  46. sage/algebras/letterplace/letterplace_ideal.cpython-314-aarch64-linux-gnu.so +0 -0
  47. sage/algebras/letterplace/letterplace_ideal.pyx +408 -0
  48. sage/algebras/quatalg/all.py +2 -0
  49. sage/algebras/quatalg/quaternion_algebra.py +4778 -0
  50. sage/algebras/quatalg/quaternion_algebra_cython.cpython-314-aarch64-linux-gnu.so +0 -0
  51. sage/algebras/quatalg/quaternion_algebra_cython.pyx +261 -0
  52. sage/algebras/quatalg/quaternion_algebra_element.cpython-314-aarch64-linux-gnu.so +0 -0
  53. sage/algebras/quatalg/quaternion_algebra_element.pxd +29 -0
  54. sage/algebras/quatalg/quaternion_algebra_element.pyx +2176 -0
  55. sage/all__sagemath_singular.py +11 -0
  56. sage/ext_data/all__sagemath_singular.py +1 -0
  57. sage/ext_data/singular/function_field/core.lib +98 -0
  58. sage/interfaces/all__sagemath_singular.py +1 -0
  59. sage/interfaces/singular.py +2835 -0
  60. sage/libs/all__sagemath_singular.py +1 -0
  61. sage/libs/singular/__init__.py +1 -0
  62. sage/libs/singular/decl.pxd +1168 -0
  63. sage/libs/singular/function.cpython-314-aarch64-linux-gnu.so +0 -0
  64. sage/libs/singular/function.pxd +87 -0
  65. sage/libs/singular/function.pyx +1901 -0
  66. sage/libs/singular/function_factory.py +61 -0
  67. sage/libs/singular/groebner_strategy.cpython-314-aarch64-linux-gnu.so +0 -0
  68. sage/libs/singular/groebner_strategy.pxd +22 -0
  69. sage/libs/singular/groebner_strategy.pyx +582 -0
  70. sage/libs/singular/option.cpython-314-aarch64-linux-gnu.so +0 -0
  71. sage/libs/singular/option.pyx +671 -0
  72. sage/libs/singular/polynomial.cpython-314-aarch64-linux-gnu.so +0 -0
  73. sage/libs/singular/polynomial.pxd +39 -0
  74. sage/libs/singular/polynomial.pyx +661 -0
  75. sage/libs/singular/ring.cpython-314-aarch64-linux-gnu.so +0 -0
  76. sage/libs/singular/ring.pxd +58 -0
  77. sage/libs/singular/ring.pyx +893 -0
  78. sage/libs/singular/singular.cpython-314-aarch64-linux-gnu.so +0 -0
  79. sage/libs/singular/singular.pxd +72 -0
  80. sage/libs/singular/singular.pyx +1944 -0
  81. sage/libs/singular/standard_options.py +145 -0
  82. sage/matrix/all__sagemath_singular.py +1 -0
  83. sage/matrix/matrix_mpolynomial_dense.cpython-314-aarch64-linux-gnu.so +0 -0
  84. sage/matrix/matrix_mpolynomial_dense.pxd +7 -0
  85. sage/matrix/matrix_mpolynomial_dense.pyx +615 -0
  86. sage/rings/all__sagemath_singular.py +1 -0
  87. sage/rings/function_field/all__sagemath_singular.py +1 -0
  88. sage/rings/function_field/derivations_polymod.py +911 -0
  89. sage/rings/function_field/element_polymod.cpython-314-aarch64-linux-gnu.so +0 -0
  90. sage/rings/function_field/element_polymod.pyx +406 -0
  91. sage/rings/function_field/function_field_polymod.py +2611 -0
  92. sage/rings/function_field/ideal_polymod.py +1775 -0
  93. sage/rings/function_field/order_polymod.py +1475 -0
  94. sage/rings/function_field/place_polymod.py +681 -0
  95. sage/rings/polynomial/all__sagemath_singular.py +1 -0
  96. sage/rings/polynomial/multi_polynomial_ideal_libsingular.cpython-314-aarch64-linux-gnu.so +0 -0
  97. sage/rings/polynomial/multi_polynomial_ideal_libsingular.pxd +5 -0
  98. sage/rings/polynomial/multi_polynomial_ideal_libsingular.pyx +339 -0
  99. sage/rings/polynomial/multi_polynomial_libsingular.cpython-314-aarch64-linux-gnu.so +0 -0
  100. sage/rings/polynomial/multi_polynomial_libsingular.pxd +30 -0
  101. sage/rings/polynomial/multi_polynomial_libsingular.pyx +6277 -0
  102. sage/rings/polynomial/plural.cpython-314-aarch64-linux-gnu.so +0 -0
  103. sage/rings/polynomial/plural.pxd +48 -0
  104. sage/rings/polynomial/plural.pyx +3171 -0
  105. sage/symbolic/all__sagemath_singular.py +1 -0
  106. sage/symbolic/comparison_impl.pxi +428 -0
  107. sage/symbolic/constants_c_impl.pxi +178 -0
  108. sage/symbolic/expression.cpython-314-aarch64-linux-gnu.so +0 -0
  109. sage/symbolic/expression.pxd +7 -0
  110. sage/symbolic/expression.pyx +14200 -0
  111. sage/symbolic/getitem_impl.pxi +202 -0
  112. sage/symbolic/pynac.pxi +572 -0
  113. sage/symbolic/pynac_constant_impl.pxi +133 -0
  114. sage/symbolic/pynac_function_impl.pxi +206 -0
  115. sage/symbolic/pynac_impl.pxi +2576 -0
  116. sage/symbolic/pynac_wrap.h +124 -0
  117. sage/symbolic/series_impl.pxi +272 -0
  118. sage/symbolic/substitution_map_impl.pxi +94 -0
  119. sage_wheels/bin/ESingular +0 -0
  120. sage_wheels/bin/Singular +0 -0
  121. sage_wheels/bin/TSingular +0 -0
  122. sage_wheels/lib/singular/MOD/cohomo.la +41 -0
  123. sage_wheels/lib/singular/MOD/cohomo.so +0 -0
  124. sage_wheels/lib/singular/MOD/customstd.la +41 -0
  125. sage_wheels/lib/singular/MOD/customstd.so +0 -0
  126. sage_wheels/lib/singular/MOD/freealgebra.la +41 -0
  127. sage_wheels/lib/singular/MOD/freealgebra.so +0 -0
  128. sage_wheels/lib/singular/MOD/gfanlib.la +41 -0
  129. sage_wheels/lib/singular/MOD/gfanlib.so +0 -0
  130. sage_wheels/lib/singular/MOD/gitfan.la +41 -0
  131. sage_wheels/lib/singular/MOD/gitfan.so +0 -0
  132. sage_wheels/lib/singular/MOD/interval.la +41 -0
  133. sage_wheels/lib/singular/MOD/interval.so +0 -0
  134. sage_wheels/lib/singular/MOD/loctriv.la +41 -0
  135. sage_wheels/lib/singular/MOD/loctriv.so +0 -0
  136. sage_wheels/lib/singular/MOD/machinelearning.la +41 -0
  137. sage_wheels/lib/singular/MOD/machinelearning.so +0 -0
  138. sage_wheels/lib/singular/MOD/p_Procs_FieldGeneral.la +41 -0
  139. sage_wheels/lib/singular/MOD/p_Procs_FieldGeneral.so +0 -0
  140. sage_wheels/lib/singular/MOD/p_Procs_FieldIndep.la +41 -0
  141. sage_wheels/lib/singular/MOD/p_Procs_FieldIndep.so +0 -0
  142. sage_wheels/lib/singular/MOD/p_Procs_FieldQ.la +41 -0
  143. sage_wheels/lib/singular/MOD/p_Procs_FieldQ.so +0 -0
  144. sage_wheels/lib/singular/MOD/p_Procs_FieldZp.la +41 -0
  145. sage_wheels/lib/singular/MOD/p_Procs_FieldZp.so +0 -0
  146. sage_wheels/lib/singular/MOD/partialgb.la +41 -0
  147. sage_wheels/lib/singular/MOD/partialgb.so +0 -0
  148. sage_wheels/lib/singular/MOD/pyobject.la +41 -0
  149. sage_wheels/lib/singular/MOD/pyobject.so +0 -0
  150. sage_wheels/lib/singular/MOD/singmathic.la +41 -0
  151. sage_wheels/lib/singular/MOD/singmathic.so +0 -0
  152. sage_wheels/lib/singular/MOD/sispasm.la +41 -0
  153. sage_wheels/lib/singular/MOD/sispasm.so +0 -0
  154. sage_wheels/lib/singular/MOD/subsets.la +41 -0
  155. sage_wheels/lib/singular/MOD/subsets.so +0 -0
  156. sage_wheels/lib/singular/MOD/systhreads.la +41 -0
  157. sage_wheels/lib/singular/MOD/systhreads.so +0 -0
  158. sage_wheels/lib/singular/MOD/syzextra.la +41 -0
  159. sage_wheels/lib/singular/MOD/syzextra.so +0 -0
  160. sage_wheels/libexec/singular/MOD/change_cost +0 -0
  161. sage_wheels/libexec/singular/MOD/singularsurf +11 -0
  162. sage_wheels/libexec/singular/MOD/singularsurf_jupyter +9 -0
  163. sage_wheels/libexec/singular/MOD/singularsurf_win +10 -0
  164. sage_wheels/libexec/singular/MOD/solve_IP +0 -0
  165. sage_wheels/libexec/singular/MOD/surfex +16 -0
  166. sage_wheels/libexec/singular/MOD/toric_ideal +0 -0
  167. sage_wheels/share/factory/gftables/10201 +342 -0
  168. sage_wheels/share/factory/gftables/1024 +37 -0
  169. sage_wheels/share/factory/gftables/10609 +356 -0
  170. sage_wheels/share/factory/gftables/11449 +384 -0
  171. sage_wheels/share/factory/gftables/11881 +398 -0
  172. sage_wheels/share/factory/gftables/121 +6 -0
  173. sage_wheels/share/factory/gftables/12167 +408 -0
  174. sage_wheels/share/factory/gftables/125 +7 -0
  175. sage_wheels/share/factory/gftables/12769 +428 -0
  176. sage_wheels/share/factory/gftables/128 +7 -0
  177. sage_wheels/share/factory/gftables/1331 +47 -0
  178. sage_wheels/share/factory/gftables/1369 +48 -0
  179. sage_wheels/share/factory/gftables/14641 +490 -0
  180. sage_wheels/share/factory/gftables/15625 +523 -0
  181. sage_wheels/share/factory/gftables/16 +3 -0
  182. sage_wheels/share/factory/gftables/16129 +540 -0
  183. sage_wheels/share/factory/gftables/16384 +549 -0
  184. sage_wheels/share/factory/gftables/16807 +563 -0
  185. sage_wheels/share/factory/gftables/1681 +58 -0
  186. sage_wheels/share/factory/gftables/169 +8 -0
  187. sage_wheels/share/factory/gftables/17161 +574 -0
  188. sage_wheels/share/factory/gftables/1849 +64 -0
  189. sage_wheels/share/factory/gftables/18769 +628 -0
  190. sage_wheels/share/factory/gftables/19321 +646 -0
  191. sage_wheels/share/factory/gftables/19683 +659 -0
  192. sage_wheels/share/factory/gftables/2048 +71 -0
  193. sage_wheels/share/factory/gftables/2187 +75 -0
  194. sage_wheels/share/factory/gftables/2197 +76 -0
  195. sage_wheels/share/factory/gftables/2209 +76 -0
  196. sage_wheels/share/factory/gftables/22201 +742 -0
  197. sage_wheels/share/factory/gftables/22801 +762 -0
  198. sage_wheels/share/factory/gftables/2401 +82 -0
  199. sage_wheels/share/factory/gftables/243 +11 -0
  200. sage_wheels/share/factory/gftables/24389 +815 -0
  201. sage_wheels/share/factory/gftables/24649 +824 -0
  202. sage_wheels/share/factory/gftables/25 +3 -0
  203. sage_wheels/share/factory/gftables/256 +11 -0
  204. sage_wheels/share/factory/gftables/26569 +888 -0
  205. sage_wheels/share/factory/gftables/27 +3 -0
  206. sage_wheels/share/factory/gftables/27889 +932 -0
  207. sage_wheels/share/factory/gftables/2809 +96 -0
  208. sage_wheels/share/factory/gftables/28561 +954 -0
  209. sage_wheels/share/factory/gftables/289 +12 -0
  210. sage_wheels/share/factory/gftables/29791 +995 -0
  211. sage_wheels/share/factory/gftables/29929 +1000 -0
  212. sage_wheels/share/factory/gftables/3125 +107 -0
  213. sage_wheels/share/factory/gftables/32 +4 -0
  214. sage_wheels/share/factory/gftables/32041 +1070 -0
  215. sage_wheels/share/factory/gftables/32761 +1094 -0
  216. sage_wheels/share/factory/gftables/32768 +1095 -0
  217. sage_wheels/share/factory/gftables/343 +14 -0
  218. sage_wheels/share/factory/gftables/3481 +118 -0
  219. sage_wheels/share/factory/gftables/361 +14 -0
  220. sage_wheels/share/factory/gftables/36481 +1218 -0
  221. sage_wheels/share/factory/gftables/3721 +126 -0
  222. sage_wheels/share/factory/gftables/37249 +1244 -0
  223. sage_wheels/share/factory/gftables/38809 +1296 -0
  224. sage_wheels/share/factory/gftables/39601 +1322 -0
  225. sage_wheels/share/factory/gftables/4 +3 -0
  226. sage_wheels/share/factory/gftables/4096 +139 -0
  227. sage_wheels/share/factory/gftables/44521 +1486 -0
  228. sage_wheels/share/factory/gftables/4489 +152 -0
  229. sage_wheels/share/factory/gftables/49 +4 -0
  230. sage_wheels/share/factory/gftables/4913 +166 -0
  231. sage_wheels/share/factory/gftables/49729 +1660 -0
  232. sage_wheels/share/factory/gftables/5041 +170 -0
  233. sage_wheels/share/factory/gftables/50653 +1691 -0
  234. sage_wheels/share/factory/gftables/512 +20 -0
  235. sage_wheels/share/factory/gftables/51529 +1720 -0
  236. sage_wheels/share/factory/gftables/52441 +1750 -0
  237. sage_wheels/share/factory/gftables/529 +20 -0
  238. sage_wheels/share/factory/gftables/5329 +180 -0
  239. sage_wheels/share/factory/gftables/54289 +1812 -0
  240. sage_wheels/share/factory/gftables/57121 +1906 -0
  241. sage_wheels/share/factory/gftables/58081 +1938 -0
  242. sage_wheels/share/factory/gftables/59049 +1971 -0
  243. sage_wheels/share/factory/gftables/6241 +210 -0
  244. sage_wheels/share/factory/gftables/625 +23 -0
  245. sage_wheels/share/factory/gftables/63001 +2102 -0
  246. sage_wheels/share/factory/gftables/64 +5 -0
  247. sage_wheels/share/factory/gftables/6561 +221 -0
  248. sage_wheels/share/factory/gftables/6859 +231 -0
  249. sage_wheels/share/factory/gftables/6889 +232 -0
  250. sage_wheels/share/factory/gftables/729 +27 -0
  251. sage_wheels/share/factory/gftables/7921 +266 -0
  252. sage_wheels/share/factory/gftables/8 +3 -0
  253. sage_wheels/share/factory/gftables/81 +5 -0
  254. sage_wheels/share/factory/gftables/8192 +276 -0
  255. sage_wheels/share/factory/gftables/841 +30 -0
  256. sage_wheels/share/factory/gftables/9 +3 -0
  257. sage_wheels/share/factory/gftables/9409 +316 -0
  258. sage_wheels/share/factory/gftables/961 +34 -0
  259. sage_wheels/share/info/singular.info +191898 -0
  260. sage_wheels/share/singular/LIB/GND.lib +1359 -0
  261. sage_wheels/share/singular/LIB/JMBTest.lib +976 -0
  262. sage_wheels/share/singular/LIB/JMSConst.lib +1363 -0
  263. sage_wheels/share/singular/LIB/KVequiv.lib +699 -0
  264. sage_wheels/share/singular/LIB/SingularityDBM.lib +491 -0
  265. sage_wheels/share/singular/LIB/VecField.lib +1542 -0
  266. sage_wheels/share/singular/LIB/absfact.lib +959 -0
  267. sage_wheels/share/singular/LIB/ainvar.lib +730 -0
  268. sage_wheels/share/singular/LIB/aksaka.lib +419 -0
  269. sage_wheels/share/singular/LIB/alexpoly.lib +2542 -0
  270. sage_wheels/share/singular/LIB/algebra.lib +1193 -0
  271. sage_wheels/share/singular/LIB/all.lib +136 -0
  272. sage_wheels/share/singular/LIB/arcpoint.lib +514 -0
  273. sage_wheels/share/singular/LIB/arnold.lib +4553 -0
  274. sage_wheels/share/singular/LIB/arnoldclassify.lib +2058 -0
  275. sage_wheels/share/singular/LIB/arr.lib +3486 -0
  276. sage_wheels/share/singular/LIB/assprimeszerodim.lib +755 -0
  277. sage_wheels/share/singular/LIB/autgradalg.lib +3361 -0
  278. sage_wheels/share/singular/LIB/bfun.lib +1964 -0
  279. sage_wheels/share/singular/LIB/bimodules.lib +774 -0
  280. sage_wheels/share/singular/LIB/brillnoether.lib +226 -0
  281. sage_wheels/share/singular/LIB/brnoeth.lib +5017 -0
  282. sage_wheels/share/singular/LIB/central.lib +2169 -0
  283. sage_wheels/share/singular/LIB/chern.lib +4162 -0
  284. sage_wheels/share/singular/LIB/cimonom.lib +571 -0
  285. sage_wheels/share/singular/LIB/cisimplicial.lib +1835 -0
  286. sage_wheels/share/singular/LIB/classify.lib +3239 -0
  287. sage_wheels/share/singular/LIB/classify2.lib +1462 -0
  288. sage_wheels/share/singular/LIB/classifyMapGerms.lib +1515 -0
  289. sage_wheels/share/singular/LIB/classify_aeq.lib +3253 -0
  290. sage_wheels/share/singular/LIB/classifyceq.lib +2092 -0
  291. sage_wheels/share/singular/LIB/classifyci.lib +1133 -0
  292. sage_wheels/share/singular/LIB/combinat.lib +91 -0
  293. sage_wheels/share/singular/LIB/compregb.lib +276 -0
  294. sage_wheels/share/singular/LIB/control.lib +1636 -0
  295. sage_wheels/share/singular/LIB/crypto.lib +3795 -0
  296. sage_wheels/share/singular/LIB/curveInv.lib +667 -0
  297. sage_wheels/share/singular/LIB/curvepar.lib +1817 -0
  298. sage_wheels/share/singular/LIB/customstd.lib +100 -0
  299. sage_wheels/share/singular/LIB/deRham.lib +5979 -0
  300. sage_wheels/share/singular/LIB/decodegb.lib +2134 -0
  301. sage_wheels/share/singular/LIB/decomp.lib +1655 -0
  302. sage_wheels/share/singular/LIB/deflation.lib +872 -0
  303. sage_wheels/share/singular/LIB/deform.lib +925 -0
  304. sage_wheels/share/singular/LIB/difform.lib +3055 -0
  305. sage_wheels/share/singular/LIB/divisors.lib +750 -0
  306. sage_wheels/share/singular/LIB/dmod.lib +5817 -0
  307. sage_wheels/share/singular/LIB/dmodapp.lib +3269 -0
  308. sage_wheels/share/singular/LIB/dmodideal.lib +1211 -0
  309. sage_wheels/share/singular/LIB/dmodloc.lib +2645 -0
  310. sage_wheels/share/singular/LIB/dmodvar.lib +818 -0
  311. sage_wheels/share/singular/LIB/dummy.lib +17 -0
  312. sage_wheels/share/singular/LIB/elim.lib +1009 -0
  313. sage_wheels/share/singular/LIB/ellipticcovers.lib +548 -0
  314. sage_wheels/share/singular/LIB/enumpoints.lib +146 -0
  315. sage_wheels/share/singular/LIB/equising.lib +2127 -0
  316. sage_wheels/share/singular/LIB/ffmodstd.lib +2384 -0
  317. sage_wheels/share/singular/LIB/ffsolve.lib +1289 -0
  318. sage_wheels/share/singular/LIB/findifs.lib +778 -0
  319. sage_wheels/share/singular/LIB/finitediff.lib +1768 -0
  320. sage_wheels/share/singular/LIB/finvar.lib +7989 -0
  321. sage_wheels/share/singular/LIB/fpadim.lib +2429 -0
  322. sage_wheels/share/singular/LIB/fpalgebras.lib +1666 -0
  323. sage_wheels/share/singular/LIB/fpaprops.lib +1462 -0
  324. sage_wheels/share/singular/LIB/freegb.lib +3853 -0
  325. sage_wheels/share/singular/LIB/general.lib +1350 -0
  326. sage_wheels/share/singular/LIB/gfan.lib +1768 -0
  327. sage_wheels/share/singular/LIB/gitfan.lib +3130 -0
  328. sage_wheels/share/singular/LIB/gkdim.lib +99 -0
  329. sage_wheels/share/singular/LIB/gmspoly.lib +589 -0
  330. sage_wheels/share/singular/LIB/gmssing.lib +1739 -0
  331. sage_wheels/share/singular/LIB/goettsche.lib +909 -0
  332. sage_wheels/share/singular/LIB/graal.lib +1366 -0
  333. sage_wheels/share/singular/LIB/gradedModules.lib +2541 -0
  334. sage_wheels/share/singular/LIB/graphics.lib +360 -0
  335. sage_wheels/share/singular/LIB/grobcov.lib +7706 -0
  336. sage_wheels/share/singular/LIB/groups.lib +1123 -0
  337. sage_wheels/share/singular/LIB/grwalk.lib +507 -0
  338. sage_wheels/share/singular/LIB/hdepth.lib +194 -0
  339. sage_wheels/share/singular/LIB/help.cnf +57 -0
  340. sage_wheels/share/singular/LIB/hess.lib +1946 -0
  341. sage_wheels/share/singular/LIB/hnoether.lib +4292 -0
  342. sage_wheels/share/singular/LIB/hodge.lib +400 -0
  343. sage_wheels/share/singular/LIB/homolog.lib +1965 -0
  344. sage_wheels/share/singular/LIB/hyperel.lib +975 -0
  345. sage_wheels/share/singular/LIB/inout.lib +679 -0
  346. sage_wheels/share/singular/LIB/integralbasis.lib +6224 -0
  347. sage_wheels/share/singular/LIB/interval.lib +1418 -0
  348. sage_wheels/share/singular/LIB/intprog.lib +778 -0
  349. sage_wheels/share/singular/LIB/invar.lib +443 -0
  350. sage_wheels/share/singular/LIB/involut.lib +980 -0
  351. sage_wheels/share/singular/LIB/jacobson.lib +1215 -0
  352. sage_wheels/share/singular/LIB/kskernel.lib +534 -0
  353. sage_wheels/share/singular/LIB/latex.lib +3146 -0
  354. sage_wheels/share/singular/LIB/lejeune.lib +651 -0
  355. sage_wheels/share/singular/LIB/linalg.lib +2040 -0
  356. sage_wheels/share/singular/LIB/locnormal.lib +212 -0
  357. sage_wheels/share/singular/LIB/lrcalc.lib +526 -0
  358. sage_wheels/share/singular/LIB/makedbm.lib +294 -0
  359. sage_wheels/share/singular/LIB/mathml.lib +813 -0
  360. sage_wheels/share/singular/LIB/matrix.lib +1372 -0
  361. sage_wheels/share/singular/LIB/maxlike.lib +1132 -0
  362. sage_wheels/share/singular/LIB/methods.lib +212 -0
  363. sage_wheels/share/singular/LIB/moddiq.lib +322 -0
  364. sage_wheels/share/singular/LIB/modfinduni.lib +181 -0
  365. sage_wheels/share/singular/LIB/modnormal.lib +218 -0
  366. sage_wheels/share/singular/LIB/modprimdec.lib +1278 -0
  367. sage_wheels/share/singular/LIB/modquotient.lib +269 -0
  368. sage_wheels/share/singular/LIB/modstd.lib +1024 -0
  369. sage_wheels/share/singular/LIB/modular.lib +545 -0
  370. sage_wheels/share/singular/LIB/modules.lib +2561 -0
  371. sage_wheels/share/singular/LIB/modwalk.lib +609 -0
  372. sage_wheels/share/singular/LIB/mondromy.lib +1016 -0
  373. sage_wheels/share/singular/LIB/monomialideal.lib +3851 -0
  374. sage_wheels/share/singular/LIB/mprimdec.lib +2353 -0
  375. sage_wheels/share/singular/LIB/mregular.lib +1863 -0
  376. sage_wheels/share/singular/LIB/multigrading.lib +5629 -0
  377. sage_wheels/share/singular/LIB/ncHilb.lib +777 -0
  378. sage_wheels/share/singular/LIB/ncModslimgb.lib +791 -0
  379. sage_wheels/share/singular/LIB/ncalg.lib +16311 -0
  380. sage_wheels/share/singular/LIB/ncall.lib +31 -0
  381. sage_wheels/share/singular/LIB/ncdecomp.lib +468 -0
  382. sage_wheels/share/singular/LIB/ncfactor.lib +13371 -0
  383. sage_wheels/share/singular/LIB/ncfrac.lib +1023 -0
  384. sage_wheels/share/singular/LIB/nchilbert.lib +448 -0
  385. sage_wheels/share/singular/LIB/nchomolog.lib +759 -0
  386. sage_wheels/share/singular/LIB/ncloc.lib +361 -0
  387. sage_wheels/share/singular/LIB/ncpreim.lib +795 -0
  388. sage_wheels/share/singular/LIB/ncrat.lib +2849 -0
  389. sage_wheels/share/singular/LIB/nctools.lib +1887 -0
  390. sage_wheels/share/singular/LIB/nets.lib +1456 -0
  391. sage_wheels/share/singular/LIB/nfmodstd.lib +1000 -0
  392. sage_wheels/share/singular/LIB/nfmodsyz.lib +732 -0
  393. sage_wheels/share/singular/LIB/noether.lib +1106 -0
  394. sage_wheels/share/singular/LIB/normal.lib +8700 -0
  395. sage_wheels/share/singular/LIB/normaliz.lib +2226 -0
  396. sage_wheels/share/singular/LIB/ntsolve.lib +362 -0
  397. sage_wheels/share/singular/LIB/numerAlg.lib +560 -0
  398. sage_wheels/share/singular/LIB/numerDecom.lib +2261 -0
  399. sage_wheels/share/singular/LIB/olga.lib +1933 -0
  400. sage_wheels/share/singular/LIB/orbitparam.lib +351 -0
  401. sage_wheels/share/singular/LIB/parallel.lib +319 -0
  402. sage_wheels/share/singular/LIB/paraplanecurves.lib +3110 -0
  403. sage_wheels/share/singular/LIB/perron.lib +202 -0
  404. sage_wheels/share/singular/LIB/pfd.lib +2223 -0
  405. sage_wheels/share/singular/LIB/phindex.lib +642 -0
  406. sage_wheels/share/singular/LIB/pointid.lib +673 -0
  407. sage_wheels/share/singular/LIB/polybori.lib +1430 -0
  408. sage_wheels/share/singular/LIB/polyclass.lib +525 -0
  409. sage_wheels/share/singular/LIB/polylib.lib +1174 -0
  410. sage_wheels/share/singular/LIB/polymake.lib +1902 -0
  411. sage_wheels/share/singular/LIB/presolve.lib +1533 -0
  412. sage_wheels/share/singular/LIB/primdec.lib +9576 -0
  413. sage_wheels/share/singular/LIB/primdecint.lib +1782 -0
  414. sage_wheels/share/singular/LIB/primitiv.lib +401 -0
  415. sage_wheels/share/singular/LIB/puiseuxexpansions.lib +1631 -0
  416. sage_wheels/share/singular/LIB/purityfiltration.lib +960 -0
  417. sage_wheels/share/singular/LIB/qhmoduli.lib +1561 -0
  418. sage_wheels/share/singular/LIB/qmatrix.lib +293 -0
  419. sage_wheels/share/singular/LIB/random.lib +455 -0
  420. sage_wheels/share/singular/LIB/ratgb.lib +489 -0
  421. sage_wheels/share/singular/LIB/realclassify.lib +5759 -0
  422. sage_wheels/share/singular/LIB/realizationMatroids.lib +772 -0
  423. sage_wheels/share/singular/LIB/realrad.lib +1197 -0
  424. sage_wheels/share/singular/LIB/recover.lib +2628 -0
  425. sage_wheels/share/singular/LIB/redcgs.lib +3984 -0
  426. sage_wheels/share/singular/LIB/reesclos.lib +465 -0
  427. sage_wheels/share/singular/LIB/resbinomial.lib +2802 -0
  428. sage_wheels/share/singular/LIB/resgraph.lib +789 -0
  429. sage_wheels/share/singular/LIB/resjung.lib +820 -0
  430. sage_wheels/share/singular/LIB/resolve.lib +5110 -0
  431. sage_wheels/share/singular/LIB/resources.lib +170 -0
  432. sage_wheels/share/singular/LIB/reszeta.lib +5473 -0
  433. sage_wheels/share/singular/LIB/ring.lib +1328 -0
  434. sage_wheels/share/singular/LIB/ringgb.lib +343 -0
  435. sage_wheels/share/singular/LIB/rinvar.lib +1153 -0
  436. sage_wheels/share/singular/LIB/rootisolation.lib +1481 -0
  437. sage_wheels/share/singular/LIB/rootsmr.lib +709 -0
  438. sage_wheels/share/singular/LIB/rootsur.lib +886 -0
  439. sage_wheels/share/singular/LIB/rstandard.lib +607 -0
  440. sage_wheels/share/singular/LIB/rwalk.lib +336 -0
  441. sage_wheels/share/singular/LIB/sagbi.lib +1353 -0
  442. sage_wheels/share/singular/LIB/sagbiNormaliz.lib +1622 -0
  443. sage_wheels/share/singular/LIB/sagbiNormaliz0.lib +1498 -0
  444. sage_wheels/share/singular/LIB/sagbigrob.lib +449 -0
  445. sage_wheels/share/singular/LIB/schreyer.lib +321 -0
  446. sage_wheels/share/singular/LIB/schubert.lib +2551 -0
  447. sage_wheels/share/singular/LIB/sets.lib +524 -0
  448. sage_wheels/share/singular/LIB/sheafcoh.lib +1663 -0
  449. sage_wheels/share/singular/LIB/signcond.lib +437 -0
  450. sage_wheels/share/singular/LIB/sing.lib +1094 -0
  451. sage_wheels/share/singular/LIB/sing4ti2.lib +419 -0
  452. sage_wheels/share/singular/LIB/solve.lib +2243 -0
  453. sage_wheels/share/singular/LIB/spcurve.lib +1077 -0
  454. sage_wheels/share/singular/LIB/spectrum.lib +62 -0
  455. sage_wheels/share/singular/LIB/sresext.lib +757 -0
  456. sage_wheels/share/singular/LIB/ssi.lib +143 -0
  457. sage_wheels/share/singular/LIB/standard.lib +2769 -0
  458. sage_wheels/share/singular/LIB/stanleyreisner.lib +473 -0
  459. sage_wheels/share/singular/LIB/stdmodule.lib +547 -0
  460. sage_wheels/share/singular/LIB/stratify.lib +1070 -0
  461. sage_wheels/share/singular/LIB/surf.lib +506 -0
  462. sage_wheels/share/singular/LIB/surf_jupyter.lib +223 -0
  463. sage_wheels/share/singular/LIB/surfacesignature.lib +522 -0
  464. sage_wheels/share/singular/LIB/surfex.lib +1462 -0
  465. sage_wheels/share/singular/LIB/swalk.lib +877 -0
  466. sage_wheels/share/singular/LIB/symodstd.lib +1570 -0
  467. sage_wheels/share/singular/LIB/systhreads.lib +74 -0
  468. sage_wheels/share/singular/LIB/tasks.lib +1324 -0
  469. sage_wheels/share/singular/LIB/tateProdCplxNegGrad.lib +2412 -0
  470. sage_wheels/share/singular/LIB/teachstd.lib +858 -0
  471. sage_wheels/share/singular/LIB/template.lib +116 -0
  472. sage_wheels/share/singular/LIB/toric.lib +1119 -0
  473. sage_wheels/share/singular/LIB/transformation.lib +116 -0
  474. sage_wheels/share/singular/LIB/triang.lib +1197 -0
  475. sage_wheels/share/singular/LIB/tropical.lib +8741 -0
  476. sage_wheels/share/singular/LIB/tropicalEllipticCovers.lib +2922 -0
  477. sage_wheels/share/singular/LIB/tropicalNewton.lib +1128 -0
  478. sage_wheels/share/singular/LIB/tst.lib +1108 -0
  479. sage_wheels/share/singular/LIB/weierstr.lib +241 -0
  480. sage_wheels/share/singular/LIB/zeroset.lib +1478 -0
  481. sage_wheels/share/singular/emacs/.emacs-general +184 -0
  482. sage_wheels/share/singular/emacs/.emacs-singular +234 -0
  483. sage_wheels/share/singular/emacs/COPYING +44 -0
  484. sage_wheels/share/singular/emacs/cmd-cmpl.el +241 -0
  485. sage_wheels/share/singular/emacs/ex-cmpl.el +1681 -0
  486. sage_wheels/share/singular/emacs/hlp-cmpl.el +4318 -0
  487. sage_wheels/share/singular/emacs/lib-cmpl.el +179 -0
  488. sage_wheels/share/singular/emacs/singular.el +4273 -0
  489. sage_wheels/share/singular/emacs/singular.xpm +39 -0
  490. sage_wheels/share/singular/singular.idx +5002 -0
@@ -0,0 +1,642 @@
1
+ //////////////////////////////////////////////////////////////////////////
2
+ version="version phindex.lib 4.1.2.0 Feb_2019 "; // $Id: b10b56b964fa1dc38b2209ed80fce52313065cb5 $
3
+ category=" ";
4
+ info="
5
+ LIBRARY : phindex.lib Procedures to compute the index of real analytic vector fields
6
+ AUTHOR: Victor Castellanos
7
+
8
+ NOTE: To compute the Poincare-Hopf index of a real analytic vector field
9
+ with an algebraically isolated singularity at 0 (w. an a. i. s),
10
+ we use the algebraic formula for the degree of the real analytic map
11
+ germ found by Eisenbud-Levine in 1997. This result was also proved by
12
+ Khimshiashvili. If the isolated singularity is non algebraically
13
+ isolated and the vector field has similar reduced complex zeroes of
14
+ codimension 1, we use a formula as the Eisenbud-Levine found by Victor
15
+ Castellanos, in both cases is necessary to use a local order (ds,...).
16
+ To compute the signature of a quadratic form (or symmetric matrix)
17
+ we use the method of Lagrange.
18
+
19
+ PROCEDURES:
20
+ signatureL(M[,n]); signature of symmetric matrix M, method of Lagrange.
21
+ signatureLqf(h[,n]); signature of quadratic form h, method of Lagrange.
22
+ PH_ais(I) P-H index of real analytic vector field I w. an a. i. s.
23
+ PH_nais(I) P-H index of real analytic vector field I w. a non a. i. s
24
+ ";
25
+
26
+ LIB "primdec.lib";
27
+ LIB "zeroset.lib";
28
+
29
+ /////////////////////////////////////////////////////////////////////////////
30
+ proc signatureL(matrix M,int #)
31
+ "USAGE: signatureL(M[,r]); M symmetric matrix, r int (optional).
32
+ RETURN: the signature of M of type int or if r is given and !=0 then
33
+ intvec with (signature, nr. of +, nr. of -) is returned.
34
+ THEORY: Given the matrix M, we construct the quadratic form associated. Afterwards
35
+ we use the method of Lagrange to compute the signature. The law of
36
+ inertia for a real quadratic form A(x,x) says that in a
37
+ representation of A(x,x) as a sum of independent squares
38
+ A(x,x)=sum_{i=1}^r a_iX_i^2.
39
+ The number of positive and the number of negative squares are
40
+ independent of the choice of representation. The signature -s- of
41
+ A(x,x) is the difference between the number -pi- of positive squares
42
+ and the number -nu- of negative squares in the representation of
43
+ A(x,x). The rank -r- of M (or A(x,x)) and the signature -s-
44
+ determine the numbers -pi- and -nu- uniquely, since
45
+ r=pi+nu, s=pi-nu.
46
+ The method of Lagrange is a procedure to reduce any real quadratic
47
+ form to a sum of squares.
48
+ Ref. Gantmacher, The theory of matrices, Vol. I, Chelsea Publishing
49
+ Company, NY 1960, page 299.
50
+ EXAMPLE: example signatureL; shows an example
51
+ "
52
+ {
53
+ if(typeof(M)!="matrix")
54
+ {
55
+ ERROR("** The argument is not a matrix type");
56
+ }
57
+ option(noprot);
58
+ option(noredefine);
59
+ int nv1=ncols(M);
60
+ matrix zero[nv1][nv1]=0;
61
+ if (transpose(M)!=M)
62
+ {
63
+ ERROR("** The matrix is non symmetric");
64
+ }
65
+ if (M==0)
66
+ {
67
+ ERROR("** The matrix is zero");
68
+ }
69
+ option(noprot);
70
+ option(noredefine);
71
+ def h=basering;
72
+ int chr=char(h);
73
+ ring signLagrange=chr,(x(1..nv1)), lp; //ring to compute the quadratic form associated to M
74
+ matrix Ma=fetch(h,M);
75
+ int nv=ncols(Ma);
76
+ matrix X[1][nv]=maxideal(1);
77
+ matrix Ax=X*Ma*transpose(X);
78
+ poly Axx=Ax[1,1]; //quadratic form associated to matrix M
79
+ if (size(#)==0)
80
+ {
81
+ def sal=SigntL(Axx);
82
+ return(sal[1]);
83
+ }
84
+ else
85
+ {
86
+ return(SigntL(Axx));
87
+ }
88
+ }
89
+ example
90
+ { "EXAMPLE:"; echo = 2;
91
+ ring r=0,(x),ds;
92
+ matrix M[5][5]=0,0,0,1,0,0,1,0,0,-1,0,0,1,0,0,1,0,0,3,0,0,-1,0,0,1;
93
+ signatureL(M,1); //The rank of M is 3+1=4
94
+ matrix H[5][5]=0,-7,0,1,0,-7,1,0,0,-1,0,0,1,0,0,1,0,0,-3,5,0,-1,0,5,1;
95
+ signatureL(H);
96
+ }
97
+ ////////////////////////////////////////////////////////////////////////
98
+ proc signatureLqf(poly h,int #)
99
+ "USAGE: signatureLqf(h); h quadratic form (poly type).
100
+ RETURN: the signature of h of type int or if r is given and !=0 then
101
+ intvec with (signature, nr. of +, nr. of -) is returned.
102
+ THEORY: To compute the signature we use the method of Lagrange. The law of
103
+ inertia for a real quadratic form h(x,x) says that in a
104
+ representation of h(x,x) as a sum of independent squares
105
+ h(x,x)=sum_{i=1}^r a_i*X_i^2 the number of positive and the number of negative squares are
106
+ independent of the choice of representation. The signature -s- of
107
+ h(x,x) is the difference between the number -pi- of positive squares
108
+ and the number -nu- of negative squares in the representation of
109
+ h(x,x). The rank -r- of h(x,x) and the signature -s- determine the
110
+ numbers -pi- and -nu- uniquely, since
111
+ r=pi+nu, s=pi-nu.
112
+ The method of Lagrange is a procedure to reduce any real quadratic
113
+ form to a sum of squares.
114
+ Ref. Gantmacher, The theory of matrices, Vol. I, Chelsea Publishing
115
+ Company, NY 1960, page 299.
116
+ EXAMPLE: example signatureLqf; shows an example
117
+ "
118
+ {
119
+ if(typeof(h)!="poly")
120
+ {
121
+ ERROR("** The argument is not a poly type");
122
+ }
123
+ option(noprot);
124
+ option(noredefine);
125
+ poly M=h;
126
+ int nv1=nvars(basering);
127
+ if (M==0)
128
+ {
129
+ ERROR("** The quadratic form is zero");
130
+ }
131
+ poly Axx=M;
132
+ poly Bxx;
133
+ poly bxx1;
134
+ poly bxx2;
135
+ def coe1;
136
+ int i;
137
+ int jb;
138
+ int k;
139
+ int haycuadrados;
140
+ int haycruzados;
141
+ int positivo=0;
142
+ int negativo=0;
143
+ int lAxx;
144
+ while (Axx<>0) //Lagrange method to compute the signature
145
+ {
146
+ haycruzados=1;
147
+ haycuadrados=1;
148
+ lAxx=size(Axx);
149
+ i=1;
150
+ while (i<=lAxx and haycuadrados)
151
+ {
152
+ jb=1;
153
+ while (jb<=nv1 and haycuadrados)
154
+ {
155
+ if (leadmonom(Axx[i])/(x(jb)^2)==1) //there is squares
156
+ {
157
+ Bxx=Axx;
158
+ if (leadcoef(Axx[i])>0)
159
+ {
160
+ positivo=positivo+1;
161
+ }
162
+ else
163
+ {
164
+ negativo=negativo+1;
165
+ }
166
+ coe1=1/(4*leadcoef(Bxx[i]));
167
+ Axx=Bxx-coe1*(diff(Bxx,x(jb)))^2;
168
+ haycuadrados=0;
169
+ }
170
+ jb=jb+1;
171
+ }
172
+ i=i+1;
173
+ }
174
+ if (haycruzados) //there is no squares
175
+ {
176
+ int ia=1;
177
+ int ja=1;
178
+ int ka=1;
179
+ while (ia<=nv1 and haycruzados)
180
+ {
181
+ while (ja<=nv1 and haycruzados)
182
+ {
183
+ ka=ja+1;
184
+ while (ka<=nv1 and haycruzados)
185
+ {
186
+ if (leadmonom(Axx[ia])/leadmonom(x(ja)*x(ka))==1)
187
+ {
188
+ Bxx=Axx;
189
+ bxx1=diff(Bxx,x(ja))+diff(Bxx,x(ka));
190
+ bxx2=diff(Bxx,x(ja))-diff(Bxx,x(ka));
191
+ coe1=1/(4*leadcoef(Bxx[ia]));
192
+ Axx=Bxx-coe1*(bxx1^2-bxx2^2);
193
+ positivo=positivo+1;
194
+ negativo=negativo+1;
195
+ haycruzados=0;
196
+ }
197
+ ka=ka+1;
198
+ }
199
+ ja=ja+1;
200
+ }
201
+ ia=ia+1;
202
+ }
203
+ }
204
+ }
205
+ if (size(#)==0)
206
+ {
207
+ def sal=positivo-negativo;
208
+ return(sal);
209
+ }
210
+ else
211
+ {
212
+ int sig=positivo-negativo;
213
+ intvec dat=sig,positivo,negativo;
214
+ return(dat);
215
+ }
216
+ }
217
+ example
218
+ { "EXAMPLE:"; echo = 2;
219
+ ring r=0,(x(1..4)),ds;
220
+ poly Ax=4*x(1)^2+x(2)^2+x(3)^2+x(4)^2-4*x(1)*x(2)-4*x(1)*x(3)+4*x(1)*x(4)+4*x(2)*x(3)-4*x(2)*x(4);
221
+ signatureLqf(Ax,1); //The rank of Ax is 3+1=4
222
+ poly Bx=2*x(1)*x(4)+x(2)^2+x(3)^2;
223
+ signatureLqf(Bx);
224
+ }
225
+ /////////////////////////////////////////////////////////////////////////////
226
+ proc PH_ais(def I)
227
+ "USAGE: PH_ais(I); I ideal of coordinates of the vector field.
228
+ RETURN: the Poincare-Hopf index of type int.
229
+ NOTE: the isolated singularity must be algebraically isolated.
230
+ THEORY: The Poincare-Hopf index of a real vector field X at the isolated
231
+ singularity 0 is the degree of the map (X/|X|) : S_epsilon ---> S,
232
+ where S is the unit sphere, and the spheres are oriented as
233
+ (n-1)-spheres in R^n. The degree depends only on the germ, X, of X
234
+ at 0. If the vector field X is real analytic, then an invariant of
235
+ the germ is its local ring
236
+ Qx=R[[x1..xn]]/Ix
237
+ where R[[x1,..,xn]] is the ring of germs at 0 of real-valued analytic
238
+ functions on R^n, and Ix is the ideal generated by the components
239
+ of X. The isolated singularity of X is algebraically isolated if the
240
+ algebra Qx is finite dimensional as real vector space, geometrically
241
+ this mean that 0 is also an isolated singularity for the
242
+ complexified vector field. In this case the Poincare-Hopf index is
243
+ the signature of the non degenerate bilinear form <,> obtained by
244
+ composition of the product in the algebra Qx with a linear
245
+ functional map
246
+ <,> : (Qx)x(Qx) ---(.)--> Qx ---(L)--> R
247
+ with L(Jo)>0, where Jo is the residue class of the Jacobian
248
+ determinant in Qx. Here, we use a natural linear functional defined
249
+ as follows. Suppose that E={E_1,..E_r} is a basis of Qx, then Jo can
250
+ be written as
251
+ Jo=a_1E_{j1}+...+a_kE_{jk}, js\in {1...r}, s=1..k, k<=r,
252
+ where a_s are constant. The linear functional L:Qx--->R is defined as
253
+ L(E_{j1})=(a_1)/|a_1|=sign of a_1,
254
+ the other elements of the base are sent to 0.
255
+ Refs. -Eisenbud & Levine, An algebraic formula for the degree of
256
+ a C^\infty map germ, Ann. Math., 106, (1977), 19-38.
257
+ -Khimshiashvili, On a local degree of a smooth map, trudi
258
+ Tbilisi Math. Inst., (1980), 105-124.
259
+ EXAMPLE: example PH_ais; shows an example.
260
+ "
261
+ {
262
+ if(typeof(I)!="ideal")
263
+ {
264
+ ERROR("** The argument is not of ideal type");
265
+ }
266
+ ideal A=I;
267
+ ideal qI=std(A);
268
+ int siono=vdim(qI);
269
+ int l;
270
+ if (siono==-1)
271
+ {
272
+ ERROR("** The vector field does not have an algebraically isolated singularity");
273
+ }
274
+ if (siono!=0)
275
+ {
276
+ option(noredefine);
277
+ option(noprot);
278
+ def oldr=basering;
279
+ def chr1=char(oldr);
280
+ int n=nvars(oldr);
281
+ ideal E=kbase(qI);
282
+ int m=size(E);
283
+ poly Jx=det(jacob(A));
284
+ poly Jo=reduce(Jx,qI);
285
+ ring newr=chr1,(x(1..m)),ds; //ring to compute the quadratic form
286
+ int nv=nvars(basering);
287
+ ideal E=fetch(oldr,E);
288
+ ideal qI=fetch(oldr,qI);
289
+ poly Jo=fetch(oldr,Jo);
290
+ attrib(qI,"isSB",1);
291
+ int scoef=1;
292
+ int multby;
293
+ poly Eik;
294
+ poly Axx=0;
295
+ int tEik;
296
+ int stEik;
297
+ def lcEik;
298
+ if (leadcoef(Jo[1])<0)
299
+ {
300
+ scoef=-1;
301
+ }
302
+ for (int si=1; si<=nv; si++)
303
+ {
304
+ for (int sk=si; sk<=nv; sk++)
305
+ {
306
+ Eik=reduce(E[si]*E[sk],qI);
307
+ tEik=size(Eik);
308
+ for(int stEik=1; stEik<=tEik; stEik++)
309
+ {
310
+ if (leadmonom(Eik[stEik])==leadmonom(Jo[1]))
311
+ {
312
+ if (si==sk)
313
+ {
314
+ multby=1;
315
+ }
316
+ else
317
+ {
318
+ multby=2;
319
+ }
320
+ lcEik=leadcoef(Eik[stEik]);
321
+ if (lcEik<0)
322
+ {
323
+ Axx=Axx-multby*scoef*lcEik*x(si)*x(sk);
324
+ }
325
+ else
326
+ {
327
+ Axx=Axx+multby*scoef*lcEik*x(si)*x(sk);
328
+ }
329
+ }
330
+ }
331
+ }
332
+ }
333
+ l=SignatLalt(Axx); //signature of billinear form
334
+ kill newr;
335
+ }
336
+ else
337
+ {
338
+ l=0;
339
+ }
340
+ return(l);
341
+ }
342
+ example
343
+ { "EXAMPLE"; echo = 2;
344
+ ring r=0,(x,y,z),ds;
345
+ ideal I=x3-3xy2,-y3+3yx2,z3;
346
+ PH_ais(I);
347
+ }
348
+ ///////////////////////////////////////////////////////////////////////////
349
+ proc PH_nais(def I)
350
+ "USAGE: PH_nais(I); I ideal of coordinates of the vector field.
351
+ RETURN: the Poincare-Hopf index of type int.
352
+ NOTE: the vector field must be a non algebraically isolated singularity
353
+ at 0, with reduced complex zeros of codimension 1.
354
+ THEORY: Suppose that 0 is an algebraically isolated singularity of the real
355
+ analytic vector field X, geometrically this corresponds to the fact that the
356
+ complexified vector field has positive dimension singular locus,
357
+ algebraically this mean that the local ring Qx=R[[x1..xn]]/Ix
358
+ where R[[x1,..,xn]] is the ring of germs at 0 of real-valued analytic
359
+ functions on R^n, and Ix is the ideal generated by the components
360
+ of X is infinite dimensional as real vector space. In the case that
361
+ X has a reduced hypersurface as complex zeros we have the next.
362
+ There exist a real analytic function f:R^n-->R, and a real analytic
363
+ vector field Y s. t. X=fY. The function f does not change of sign
364
+ out of 0 and
365
+ Mx=R[[x1..xn]]/(Ix : radical(Ix))
366
+ is a finite dimensional sub-algebra of Qx. The Poincare-Hopf index
367
+ of X at 0 is the sign of f times the signature of the non degenerate
368
+ bilinear form <,> obtained by composition of the product in the
369
+ algebra Mx with a linear functional map
370
+ <,> : (Mx)x(Mx) ---(.)--> Mx ---(L)--> R
371
+ with L(Jp)>0, where Jp is the residue class of the Jacobian
372
+ determinant of X, JX, over f^n, JX/(f^n) in Mx. Here, we use a
373
+ natural linear functional defined as follows. Suppose that
374
+ E={E_1,..E_r} is a basis of Mx, then Jp is writing as
375
+ Jp=a_1E_{j1}+...+a_kE_{jk}, js\in {1...r}, s=1..k, k<=r,
376
+ where a_s are constant. The linear functional L:M--->R is defined as
377
+ L(E_{j1})=(a_1)/|a_1|=sign of a_1,
378
+ the other elements of the base are sent to 0.
379
+ Refs. -Castellanos-Vargas, V., Una formula algebraica del indice de
380
+ Poincare-Hopf para campos vectoriales reales con una variedad
381
+ de ceros complejos, Ph. D. thesis CIMAT (2000), chapther 1,
382
+ Guanajuato Mexico.
383
+ -Castellanos -Vargas, V. The index of non algebraically
384
+ isolated singularity, Bol. Soc. Mat. Mexicana, (3)
385
+ Vol. 8, 2002, 141-147.
386
+
387
+ EXAMPLE: example PH_nais; shows an example.
388
+ "
389
+ {
390
+ if(typeof(I)!="ideal")
391
+ {
392
+ ERROR("** The argument is not of ideal type");
393
+ }
394
+ ideal A=I;
395
+ int siono=vdim(std(A));
396
+ int l;
397
+ if (siono!=0)
398
+ {
399
+ if (siono!=-1)
400
+ {
401
+ ERROR("** The vector field has an algebraically isolated singularity, USE: PH_ais ");
402
+ }
403
+ option(noprot);
404
+ option(noredefine);
405
+ int n=nvars(basering);
406
+ def oldr=basering;
407
+ int chr1=char(oldr);
408
+ ring newring=chr1,(x(1..n)), dp; //ring to compute the radical
409
+ ideal A= fetch(oldr,A);
410
+ ideal rI=radical(A);
411
+ setring oldr;
412
+ ideal rI=fetch(newring,rI);
413
+ if (size(rI)!=1)
414
+ {
415
+ ERROR("** The vector field does not have a non algebraically isolated singularity of codimension 1");
416
+ }
417
+ ideal qI=std(quotient(A,rI));
418
+ ideal E=kbase(qI);
419
+ int m=size(E);
420
+ poly Jx=det(jacob(A));
421
+ poly Jy=Quotient(Jx,rI[1]^n)[1];
422
+ poly Jo=reduce(Jy,qI);
423
+ ring newr=chr1,(x(1..m)),ds; //ring to compute the quadratic form
424
+ int nv=nvars(basering);
425
+ ideal E=fetch(oldr,E);
426
+ ideal qI=fetch(oldr,qI);
427
+ poly Jo=fetch(oldr,Jo);
428
+ attrib(qI,"isSB",1);
429
+ int scoef=1;
430
+ if (leadcoef(Jo[1])<0)
431
+ {
432
+ scoef=-1;
433
+ }
434
+ int multby;
435
+ def lcEik;
436
+ poly Eik;
437
+ poly Axx=0;
438
+ int si=1;
439
+ int sk;
440
+ int tEik;
441
+ int stEik;
442
+ while (si<=nv)
443
+ {
444
+ sk=si;
445
+ while (sk<=nv)
446
+ {
447
+ Eik=reduce(E[si]*E[sk],qI);
448
+ tEik=size(Eik);
449
+ for(int stEik=1; stEik<=tEik; stEik++)
450
+ {
451
+ if (leadmonom(Eik[stEik])==leadmonom(Jo[1]))
452
+ {
453
+ if (si==sk)
454
+ {
455
+ multby=1;
456
+ }
457
+ else
458
+ {
459
+ multby=2;
460
+ }
461
+ lcEik=leadcoef(Eik[stEik]);
462
+ if (lcEik<0)
463
+ {
464
+ Axx=Axx-multby*lcEik*scoef*x(si)*x(sk);
465
+ }
466
+ else
467
+ {
468
+ Axx=Axx+multby*lcEik*scoef*x(si)*x(sk);
469
+ }
470
+ }
471
+ }
472
+ sk=sk+1;
473
+ }
474
+ si=si+1;
475
+ }
476
+ l=SignatLalt(Axx); //signature of bilinear form
477
+ return(l);
478
+ }
479
+ else
480
+ {
481
+ return(0);
482
+ }
483
+ }
484
+ example
485
+ {"EXAMPLE:"; echo = 2;
486
+ ring r=0,(x,y,z),ds;
487
+ ideal I=x5-2x3y2-3xy4+x3z2-3xy2z2,-3x4y-2x2y3+y5-3x2yz2+y3z2,x2z3+y2z3+z5;
488
+ PH_nais(I);
489
+ }
490
+ //////////////////////////////////////////////////////////////////////
491
+ static proc SigntL(poly M) //static procedure to compute the signature of any quadratic form.
492
+ "USAGE: SigntL(M); M is a quadratic form.
493
+ RETURN: The signature of M of type int.
494
+ ASSUME: M is a quadratic form (ply type).
495
+ "
496
+ {
497
+ int nv1=nvars(basering);
498
+ poly Axx=M;
499
+ poly Bxx;
500
+ poly bxx1;
501
+ poly bxx2;
502
+ def coe1;
503
+ int i;
504
+ int jb;
505
+ int k;
506
+ int haycuadrados;
507
+ int haycruzados;
508
+ int positivo=0;
509
+ int negativo=0;
510
+ int lAxx;
511
+ while (Axx<>0)
512
+ {
513
+ haycruzados=1;
514
+ haycuadrados=1;
515
+ lAxx=size(Axx);
516
+ i=1;
517
+ while (i<=lAxx and haycuadrados)
518
+ {
519
+ jb=1;
520
+ while (jb<=nv1 and haycuadrados)
521
+ {
522
+ if (leadmonom(Axx[i])/(x(jb)^2)==1)
523
+ {
524
+ Bxx=Axx;
525
+ if (leadcoef(Axx[i])>0)
526
+ {
527
+ positivo=positivo+1;
528
+ }
529
+ else
530
+ {
531
+ negativo=negativo+1;
532
+ }
533
+ coe1=1/(4*leadcoef(Bxx[i]));
534
+ Axx=Bxx-coe1*(diff(Bxx,x(jb)))^2;
535
+ haycuadrados=0;
536
+ haycruzados=0;
537
+ }
538
+ jb=jb+1;
539
+ }
540
+ i=i+1;
541
+ }
542
+ if (haycruzados)
543
+ {
544
+ int ia=1;
545
+ int ja=1;
546
+ int ka=1;
547
+ while (ia<=nv1 and haycruzados)
548
+ {
549
+ while (ja<=nv1 and haycruzados)
550
+ {
551
+ ka=ja+1;
552
+ while (ka<=nv1 and haycruzados)
553
+ {
554
+ if (leadmonom(Axx[ia])/leadmonom(x(ja)*x(ka))==1)
555
+ {
556
+ Bxx=Axx;
557
+ bxx1=diff(Bxx,x(ja))+diff(Bxx,x(ka));
558
+ bxx2=diff(Bxx,x(ja))-diff(Bxx,x(ka));
559
+ coe1=1/(4*leadcoef(Bxx[ia]));
560
+ Axx=Bxx-coe1*(bxx1^2-bxx2^2);
561
+ positivo=positivo+1;
562
+ negativo=negativo+1;
563
+ haycruzados=0;
564
+ }
565
+ ka=ka+1;
566
+ }
567
+ ja=ja+1;
568
+ }
569
+ ia=ia+1;
570
+ }
571
+ }
572
+ }
573
+ int dat1=positivo-negativo;
574
+ intvec dat=dat1,positivo,negativo;
575
+ return(dat);
576
+ }
577
+ ////////////////////////////////////////////////////////////////////////////
578
+ //NOTE: SignatLalt is a procedure to compute the signature of a special
579
+ // bilinear form that is necessary to compute the Poincare-Hopf index.
580
+ static proc SignatLalt(poly M)
581
+ "USAGE: SignatLalt(M); M is a quadratic form (a polynomial).
582
+ RETURN: The signature of type int.
583
+ "
584
+ {
585
+ int nv1=nvars(basering);
586
+ if (M==0)
587
+ {
588
+ ERROR("** The quadratic form is zero");
589
+ }
590
+ poly Axx=M;
591
+ poly Bxx;
592
+ poly bxx1;
593
+ poly bxx2;
594
+ def coe1;
595
+ int i;
596
+ int jb;
597
+ int k;
598
+ int haycuadrados;
599
+ int sihay=1;
600
+ int positivo=0;
601
+ int negativo=0;
602
+ int variableactual=0;
603
+ int posicion=1;
604
+ int lAxx;
605
+ while (Axx<>0 and sihay)
606
+ {
607
+ haycuadrados=1;
608
+ lAxx=size(Axx);
609
+ i=posicion;
610
+ while (i<=lAxx and haycuadrados)
611
+ {
612
+ jb=variableactual+1;
613
+ while (jb<=nv1 and haycuadrados)
614
+ {
615
+ if (leadmonom(Axx[i])/(x(jb)^2)==1)
616
+ {
617
+ Bxx=Axx;
618
+ if (leadcoef(Axx[i])>0)
619
+ {
620
+ positivo=positivo+1;
621
+ }
622
+ else
623
+ {
624
+ negativo=negativo+1;
625
+ }
626
+ coe1=1/(4*leadcoef(Bxx[i]));
627
+ Axx=Bxx-coe1*(diff(Bxx,x(jb)))^2;
628
+ haycuadrados=0;
629
+ variableactual=jb;
630
+ posicion=i;
631
+ }
632
+ jb=jb+1;
633
+ }
634
+ if (i==lAxx and haycuadrados)
635
+ {
636
+ sihay=0;
637
+ }
638
+ i=i+1;
639
+ }
640
+ }
641
+ return(positivo-negativo);
642
+ }