passagemath-flint 10.6.1rc10__cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_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.
Files changed (361) hide show
  1. passagemath_flint-10.6.1rc10.dist-info/METADATA +122 -0
  2. passagemath_flint-10.6.1rc10.dist-info/RECORD +361 -0
  3. passagemath_flint-10.6.1rc10.dist-info/WHEEL +6 -0
  4. passagemath_flint-10.6.1rc10.dist-info/top_level.txt +2 -0
  5. passagemath_flint.libs/libflint-aecb9cc5.so.21.0.0 +0 -0
  6. passagemath_flint.libs/libgf2x-a4cdec90.so.3.0.0 +0 -0
  7. passagemath_flint.libs/libgfortran-8f1e9814.so.5.0.0 +0 -0
  8. passagemath_flint.libs/libgmp-6e109695.so.10.5.0 +0 -0
  9. passagemath_flint.libs/libgsl-cda90e79.so.28.0.0 +0 -0
  10. passagemath_flint.libs/libmpfi-e3c25853.so.0.0.0 +0 -0
  11. passagemath_flint.libs/libmpfr-82690d50.so.6.2.1 +0 -0
  12. passagemath_flint.libs/libntl-74e7d9a3.so.44.0.1 +0 -0
  13. passagemath_flint.libs/libopenblasp-r0-6dcb67f9.3.29.so +0 -0
  14. passagemath_flint.libs/libquadmath-828275a7.so.0.0.0 +0 -0
  15. sage/all__sagemath_flint.py +29 -0
  16. sage/combinat/all__sagemath_flint.py +1 -0
  17. sage/combinat/posets/all__sagemath_flint.py +1 -0
  18. sage/combinat/posets/hasse_cython_flint.cpython-310-x86_64-linux-gnu.so +0 -0
  19. sage/combinat/posets/hasse_cython_flint.pyx +194 -0
  20. sage/data_structures/all__sagemath_flint.py +1 -0
  21. sage/data_structures/bounded_integer_sequences.cpython-310-x86_64-linux-gnu.so +0 -0
  22. sage/data_structures/bounded_integer_sequences.pxd +62 -0
  23. sage/data_structures/bounded_integer_sequences.pyx +1418 -0
  24. sage/graphs/all__sagemath_flint.py +1 -0
  25. sage/graphs/chrompoly.cpython-310-x86_64-linux-gnu.so +0 -0
  26. sage/graphs/chrompoly.pyx +555 -0
  27. sage/graphs/matchpoly.cpython-310-x86_64-linux-gnu.so +0 -0
  28. sage/graphs/matchpoly.pyx +412 -0
  29. sage/libs/all__sagemath_flint.py +17 -0
  30. sage/libs/arb/__init__.py +1 -0
  31. sage/libs/arb/acb.pxd +154 -0
  32. sage/libs/arb/acb_calc.pxd +9 -0
  33. sage/libs/arb/acb_elliptic.pxd +25 -0
  34. sage/libs/arb/acb_hypgeom.pxd +74 -0
  35. sage/libs/arb/acb_mat.pxd +62 -0
  36. sage/libs/arb/acb_modular.pxd +17 -0
  37. sage/libs/arb/acb_poly.pxd +216 -0
  38. sage/libs/arb/arb.pxd +240 -0
  39. sage/libs/arb/arb_fmpz_poly.pxd +21 -0
  40. sage/libs/arb/arb_hypgeom.pxd +83 -0
  41. sage/libs/arb/arb_wrap.h +34 -0
  42. sage/libs/arb/arf.pxd +131 -0
  43. sage/libs/arb/arith.cpython-310-x86_64-linux-gnu.so +0 -0
  44. sage/libs/arb/arith.pyx +87 -0
  45. sage/libs/arb/bernoulli.pxd +6 -0
  46. sage/libs/arb/mag.pxd +77 -0
  47. sage/libs/arb/types.pxd +37 -0
  48. sage/libs/flint/__init__.py +1 -0
  49. sage/libs/flint/acb.pxd +270 -0
  50. sage/libs/flint/acb_calc.pxd +22 -0
  51. sage/libs/flint/acb_dft.pxd +51 -0
  52. sage/libs/flint/acb_dirichlet.pxd +112 -0
  53. sage/libs/flint/acb_elliptic.pxd +42 -0
  54. sage/libs/flint/acb_hypgeom.pxd +169 -0
  55. sage/libs/flint/acb_macros.pxd +9 -0
  56. sage/libs/flint/acb_mat.pxd +136 -0
  57. sage/libs/flint/acb_mat_macros.pxd +10 -0
  58. sage/libs/flint/acb_modular.pxd +62 -0
  59. sage/libs/flint/acb_poly.pxd +251 -0
  60. sage/libs/flint/acb_poly_macros.pxd +8 -0
  61. sage/libs/flint/acb_theta.pxd +124 -0
  62. sage/libs/flint/acf.pxd +32 -0
  63. sage/libs/flint/aprcl.pxd +84 -0
  64. sage/libs/flint/arb.pxd +382 -0
  65. sage/libs/flint/arb_calc.pxd +31 -0
  66. sage/libs/flint/arb_fmpz_poly.pxd +34 -0
  67. sage/libs/flint/arb_fpwrap.pxd +215 -0
  68. sage/libs/flint/arb_hypgeom.pxd +147 -0
  69. sage/libs/flint/arb_macros.pxd +9 -0
  70. sage/libs/flint/arb_mat.pxd +140 -0
  71. sage/libs/flint/arb_mat_macros.pxd +10 -0
  72. sage/libs/flint/arb_poly.pxd +237 -0
  73. sage/libs/flint/arf.pxd +167 -0
  74. sage/libs/flint/arith.cpython-310-x86_64-linux-gnu.so +0 -0
  75. sage/libs/flint/arith.pxd +76 -0
  76. sage/libs/flint/arith.pyx +77 -0
  77. sage/libs/flint/arith_sage.cpython-310-x86_64-linux-gnu.so +0 -0
  78. sage/libs/flint/arith_sage.pyx +308 -0
  79. sage/libs/flint/bernoulli.pxd +28 -0
  80. sage/libs/flint/bool_mat.pxd +52 -0
  81. sage/libs/flint/ca.pxd +203 -0
  82. sage/libs/flint/ca_ext.pxd +34 -0
  83. sage/libs/flint/ca_field.pxd +32 -0
  84. sage/libs/flint/ca_mat.pxd +117 -0
  85. sage/libs/flint/ca_poly.pxd +104 -0
  86. sage/libs/flint/ca_vec.pxd +46 -0
  87. sage/libs/flint/calcium.pxd +27 -0
  88. sage/libs/flint/d_mat.pxd +39 -0
  89. sage/libs/flint/d_vec.pxd +32 -0
  90. sage/libs/flint/dirichlet.pxd +57 -0
  91. sage/libs/flint/dlog.pxd +53 -0
  92. sage/libs/flint/double_extras.pxd +24 -0
  93. sage/libs/flint/double_interval.pxd +36 -0
  94. sage/libs/flint/fexpr.pxd +104 -0
  95. sage/libs/flint/fexpr_builtin.pxd +20 -0
  96. sage/libs/flint/fft.pxd +66 -0
  97. sage/libs/flint/flint.pxd +36 -0
  98. sage/libs/flint/flint_ntl_wrap.h +35 -0
  99. sage/libs/flint/flint_sage.cpython-310-x86_64-linux-gnu.so +0 -0
  100. sage/libs/flint/flint_sage.pyx +163 -0
  101. sage/libs/flint/flint_wrap.h +190 -0
  102. sage/libs/flint/fmpq.pxd +137 -0
  103. sage/libs/flint/fmpq_mat.pxd +105 -0
  104. sage/libs/flint/fmpq_mat_macros.pxd +10 -0
  105. sage/libs/flint/fmpq_mpoly.pxd +165 -0
  106. sage/libs/flint/fmpq_mpoly_factor.pxd +30 -0
  107. sage/libs/flint/fmpq_poly.pxd +241 -0
  108. sage/libs/flint/fmpq_poly_macros.pxd +9 -0
  109. sage/libs/flint/fmpq_poly_sage.cpython-310-x86_64-linux-gnu.so +0 -0
  110. sage/libs/flint/fmpq_poly_sage.pxd +31 -0
  111. sage/libs/flint/fmpq_poly_sage.pyx +48 -0
  112. sage/libs/flint/fmpq_vec.pxd +27 -0
  113. sage/libs/flint/fmpz.pxd +256 -0
  114. sage/libs/flint/fmpz_extras.pxd +32 -0
  115. sage/libs/flint/fmpz_factor.pxd +42 -0
  116. sage/libs/flint/fmpz_factor_sage.cpython-310-x86_64-linux-gnu.so +0 -0
  117. sage/libs/flint/fmpz_factor_sage.pxd +4 -0
  118. sage/libs/flint/fmpz_factor_sage.pyx +29 -0
  119. sage/libs/flint/fmpz_lll.pxd +49 -0
  120. sage/libs/flint/fmpz_macros.pxd +8 -0
  121. sage/libs/flint/fmpz_mat.pxd +184 -0
  122. sage/libs/flint/fmpz_mat_macros.pxd +10 -0
  123. sage/libs/flint/fmpz_mod.pxd +46 -0
  124. sage/libs/flint/fmpz_mod_mat.pxd +71 -0
  125. sage/libs/flint/fmpz_mod_mpoly.pxd +161 -0
  126. sage/libs/flint/fmpz_mod_mpoly_factor.pxd +28 -0
  127. sage/libs/flint/fmpz_mod_poly.pxd +249 -0
  128. sage/libs/flint/fmpz_mod_poly_factor.pxd +46 -0
  129. sage/libs/flint/fmpz_mod_vec.pxd +27 -0
  130. sage/libs/flint/fmpz_mpoly.pxd +224 -0
  131. sage/libs/flint/fmpz_mpoly_factor.pxd +29 -0
  132. sage/libs/flint/fmpz_mpoly_q.pxd +57 -0
  133. sage/libs/flint/fmpz_poly.cpython-310-x86_64-linux-gnu.so +0 -0
  134. sage/libs/flint/fmpz_poly.pxd +407 -0
  135. sage/libs/flint/fmpz_poly.pyx +19 -0
  136. sage/libs/flint/fmpz_poly_factor.pxd +33 -0
  137. sage/libs/flint/fmpz_poly_macros.pxd +8 -0
  138. sage/libs/flint/fmpz_poly_mat.pxd +71 -0
  139. sage/libs/flint/fmpz_poly_q.pxd +55 -0
  140. sage/libs/flint/fmpz_poly_sage.cpython-310-x86_64-linux-gnu.so +0 -0
  141. sage/libs/flint/fmpz_poly_sage.pxd +20 -0
  142. sage/libs/flint/fmpz_poly_sage.pyx +500 -0
  143. sage/libs/flint/fmpz_vec.pxd +80 -0
  144. sage/libs/flint/fmpzi.pxd +52 -0
  145. sage/libs/flint/fq.pxd +97 -0
  146. sage/libs/flint/fq_default.pxd +84 -0
  147. sage/libs/flint/fq_default_mat.pxd +70 -0
  148. sage/libs/flint/fq_default_poly.pxd +97 -0
  149. sage/libs/flint/fq_default_poly_factor.pxd +39 -0
  150. sage/libs/flint/fq_embed.pxd +28 -0
  151. sage/libs/flint/fq_mat.pxd +83 -0
  152. sage/libs/flint/fq_nmod.pxd +95 -0
  153. sage/libs/flint/fq_nmod_embed.pxd +28 -0
  154. sage/libs/flint/fq_nmod_mat.pxd +83 -0
  155. sage/libs/flint/fq_nmod_mpoly.pxd +130 -0
  156. sage/libs/flint/fq_nmod_mpoly_factor.pxd +28 -0
  157. sage/libs/flint/fq_nmod_poly.pxd +202 -0
  158. sage/libs/flint/fq_nmod_poly_factor.pxd +47 -0
  159. sage/libs/flint/fq_nmod_vec.pxd +33 -0
  160. sage/libs/flint/fq_poly.pxd +204 -0
  161. sage/libs/flint/fq_poly_factor.pxd +47 -0
  162. sage/libs/flint/fq_vec.pxd +33 -0
  163. sage/libs/flint/fq_zech.pxd +99 -0
  164. sage/libs/flint/fq_zech_embed.pxd +28 -0
  165. sage/libs/flint/fq_zech_mat.pxd +78 -0
  166. sage/libs/flint/fq_zech_poly.pxd +198 -0
  167. sage/libs/flint/fq_zech_poly_factor.pxd +47 -0
  168. sage/libs/flint/fq_zech_vec.pxd +33 -0
  169. sage/libs/flint/gr.pxd +174 -0
  170. sage/libs/flint/gr_generic.pxd +215 -0
  171. sage/libs/flint/gr_mat.pxd +161 -0
  172. sage/libs/flint/gr_mpoly.pxd +68 -0
  173. sage/libs/flint/gr_poly.pxd +276 -0
  174. sage/libs/flint/gr_special.pxd +237 -0
  175. sage/libs/flint/gr_vec.pxd +120 -0
  176. sage/libs/flint/hypgeom.pxd +24 -0
  177. sage/libs/flint/long_extras.pxd +23 -0
  178. sage/libs/flint/mag.pxd +131 -0
  179. sage/libs/flint/mag_macros.pxd +8 -0
  180. sage/libs/flint/mpf_mat.pxd +36 -0
  181. sage/libs/flint/mpf_vec.pxd +34 -0
  182. sage/libs/flint/mpfr_mat.pxd +27 -0
  183. sage/libs/flint/mpfr_vec.pxd +25 -0
  184. sage/libs/flint/mpn_extras.pxd +41 -0
  185. sage/libs/flint/mpoly.pxd +72 -0
  186. sage/libs/flint/nf.pxd +19 -0
  187. sage/libs/flint/nf_elem.pxd +74 -0
  188. sage/libs/flint/nmod.pxd +35 -0
  189. sage/libs/flint/nmod_mat.pxd +104 -0
  190. sage/libs/flint/nmod_mpoly.pxd +144 -0
  191. sage/libs/flint/nmod_mpoly_factor.pxd +28 -0
  192. sage/libs/flint/nmod_poly.pxd +339 -0
  193. sage/libs/flint/nmod_poly_factor.pxd +44 -0
  194. sage/libs/flint/nmod_poly_linkage.pxi +710 -0
  195. sage/libs/flint/nmod_poly_mat.pxd +76 -0
  196. sage/libs/flint/nmod_vec.pxd +40 -0
  197. sage/libs/flint/ntl_interface.pxd +17 -0
  198. sage/libs/flint/padic.pxd +93 -0
  199. sage/libs/flint/padic_mat.pxd +64 -0
  200. sage/libs/flint/padic_poly.pxd +88 -0
  201. sage/libs/flint/partitions.pxd +23 -0
  202. sage/libs/flint/perm.pxd +26 -0
  203. sage/libs/flint/profiler.pxd +24 -0
  204. sage/libs/flint/qadic.pxd +77 -0
  205. sage/libs/flint/qfb.pxd +44 -0
  206. sage/libs/flint/qqbar.pxd +172 -0
  207. sage/libs/flint/qsieve.cpython-310-x86_64-linux-gnu.so +0 -0
  208. sage/libs/flint/qsieve.pxd +41 -0
  209. sage/libs/flint/qsieve.pyx +21 -0
  210. sage/libs/flint/qsieve_sage.cpython-310-x86_64-linux-gnu.so +0 -0
  211. sage/libs/flint/qsieve_sage.pyx +67 -0
  212. sage/libs/flint/thread_pool.pxd +25 -0
  213. sage/libs/flint/types.pxd +2076 -0
  214. sage/libs/flint/ulong_extras.cpython-310-x86_64-linux-gnu.so +0 -0
  215. sage/libs/flint/ulong_extras.pxd +141 -0
  216. sage/libs/flint/ulong_extras.pyx +21 -0
  217. sage/libs/flint/ulong_extras_sage.cpython-310-x86_64-linux-gnu.so +0 -0
  218. sage/libs/flint/ulong_extras_sage.pyx +21 -0
  219. sage/matrix/all__sagemath_flint.py +1 -0
  220. sage/matrix/change_ring.cpython-310-x86_64-linux-gnu.so +0 -0
  221. sage/matrix/change_ring.pyx +43 -0
  222. sage/matrix/matrix_complex_ball_dense.cpython-310-x86_64-linux-gnu.so +0 -0
  223. sage/matrix/matrix_complex_ball_dense.pxd +14 -0
  224. sage/matrix/matrix_complex_ball_dense.pyx +973 -0
  225. sage/matrix/matrix_cyclo_dense.cpython-310-x86_64-linux-gnu.so +0 -0
  226. sage/matrix/matrix_cyclo_dense.pxd +16 -0
  227. sage/matrix/matrix_cyclo_dense.pyx +1761 -0
  228. sage/matrix/matrix_integer_dense.cpython-310-x86_64-linux-gnu.so +0 -0
  229. sage/matrix/matrix_integer_dense.pxd +32 -0
  230. sage/matrix/matrix_integer_dense.pyx +5801 -0
  231. sage/matrix/matrix_integer_dense_hnf.py +1294 -0
  232. sage/matrix/matrix_integer_dense_saturation.py +346 -0
  233. sage/matrix/matrix_integer_sparse.cpython-310-x86_64-linux-gnu.so +0 -0
  234. sage/matrix/matrix_integer_sparse.pxd +9 -0
  235. sage/matrix/matrix_integer_sparse.pyx +1090 -0
  236. sage/matrix/matrix_rational_dense.cpython-310-x86_64-linux-gnu.so +0 -0
  237. sage/matrix/matrix_rational_dense.pxd +23 -0
  238. sage/matrix/matrix_rational_dense.pyx +2995 -0
  239. sage/matrix/matrix_rational_sparse.cpython-310-x86_64-linux-gnu.so +0 -0
  240. sage/matrix/matrix_rational_sparse.pxd +11 -0
  241. sage/matrix/matrix_rational_sparse.pyx +789 -0
  242. sage/matrix/misc_flint.cpython-310-x86_64-linux-gnu.so +0 -0
  243. sage/matrix/misc_flint.pyx +109 -0
  244. sage/modular/all__sagemath_flint.py +1 -0
  245. sage/modular/modform/all__sagemath_flint.py +1 -0
  246. sage/modular/modform/eis_series_cython.cpython-310-x86_64-linux-gnu.so +0 -0
  247. sage/modular/modform/eis_series_cython.pyx +226 -0
  248. sage/modular/modsym/all__sagemath_flint.py +1 -0
  249. sage/modular/modsym/apply.cpython-310-x86_64-linux-gnu.so +0 -0
  250. sage/modular/modsym/apply.pxd +6 -0
  251. sage/modular/modsym/apply.pyx +113 -0
  252. sage/modular/modsym/heilbronn.cpython-310-x86_64-linux-gnu.so +0 -0
  253. sage/modular/modsym/heilbronn.pyx +966 -0
  254. sage/modular/pollack_stevens/all__sagemath_flint.py +1 -0
  255. sage/modular/pollack_stevens/dist.cpython-310-x86_64-linux-gnu.so +0 -0
  256. sage/modular/pollack_stevens/dist.pxd +38 -0
  257. sage/modular/pollack_stevens/dist.pyx +1439 -0
  258. sage/quivers/algebra.py +691 -0
  259. sage/quivers/algebra_elements.cpython-310-x86_64-linux-gnu.so +0 -0
  260. sage/quivers/algebra_elements.pxd +97 -0
  261. sage/quivers/algebra_elements.pxi +1324 -0
  262. sage/quivers/algebra_elements.pyx +1424 -0
  263. sage/quivers/all.py +1 -0
  264. sage/quivers/ar_quiver.py +917 -0
  265. sage/quivers/homspace.py +640 -0
  266. sage/quivers/morphism.py +1282 -0
  267. sage/quivers/path_semigroup.py +1155 -0
  268. sage/quivers/paths.cpython-310-x86_64-linux-gnu.so +0 -0
  269. sage/quivers/paths.pxd +13 -0
  270. sage/quivers/paths.pyx +809 -0
  271. sage/quivers/representation.py +2975 -0
  272. sage/rings/all__sagemath_flint.py +37 -0
  273. sage/rings/cif.py +4 -0
  274. sage/rings/complex_arb.cpython-310-x86_64-linux-gnu.so +0 -0
  275. sage/rings/complex_arb.pxd +29 -0
  276. sage/rings/complex_arb.pyx +5176 -0
  277. sage/rings/complex_interval.cpython-310-x86_64-linux-gnu.so +0 -0
  278. sage/rings/complex_interval.pxd +30 -0
  279. sage/rings/complex_interval.pyx +2475 -0
  280. sage/rings/complex_interval_field.py +711 -0
  281. sage/rings/convert/all.py +1 -0
  282. sage/rings/convert/mpfi.cpython-310-x86_64-linux-gnu.so +0 -0
  283. sage/rings/convert/mpfi.pxd +6 -0
  284. sage/rings/convert/mpfi.pyx +576 -0
  285. sage/rings/factorint_flint.cpython-310-x86_64-linux-gnu.so +0 -0
  286. sage/rings/factorint_flint.pyx +99 -0
  287. sage/rings/fraction_field_FpT.cpython-310-x86_64-linux-gnu.so +0 -0
  288. sage/rings/fraction_field_FpT.pxd +28 -0
  289. sage/rings/fraction_field_FpT.pyx +2043 -0
  290. sage/rings/imaginary_unit.py +5 -0
  291. sage/rings/monomials.py +73 -0
  292. sage/rings/number_field/S_unit_solver.py +2870 -0
  293. sage/rings/number_field/all__sagemath_flint.py +7 -0
  294. sage/rings/number_field/bdd_height.py +664 -0
  295. sage/rings/number_field/class_group.py +762 -0
  296. sage/rings/number_field/galois_group.py +1307 -0
  297. sage/rings/number_field/homset.py +612 -0
  298. sage/rings/number_field/maps.py +687 -0
  299. sage/rings/number_field/morphism.py +272 -0
  300. sage/rings/number_field/number_field.py +12820 -0
  301. sage/rings/number_field/number_field_element.cpython-310-x86_64-linux-gnu.so +0 -0
  302. sage/rings/number_field/number_field_element.pxd +59 -0
  303. sage/rings/number_field/number_field_element.pyx +5735 -0
  304. sage/rings/number_field/number_field_element_quadratic.cpython-310-x86_64-linux-gnu.so +0 -0
  305. sage/rings/number_field/number_field_element_quadratic.pxd +34 -0
  306. sage/rings/number_field/number_field_element_quadratic.pyx +3185 -0
  307. sage/rings/number_field/number_field_ideal_rel.py +925 -0
  308. sage/rings/number_field/number_field_morphisms.cpython-310-x86_64-linux-gnu.so +0 -0
  309. sage/rings/number_field/number_field_morphisms.pyx +781 -0
  310. sage/rings/number_field/number_field_rel.py +2734 -0
  311. sage/rings/number_field/order.py +2981 -0
  312. sage/rings/number_field/order_ideal.py +804 -0
  313. sage/rings/number_field/selmer_group.py +715 -0
  314. sage/rings/number_field/small_primes_of_degree_one.py +242 -0
  315. sage/rings/number_field/splitting_field.py +606 -0
  316. sage/rings/number_field/structure.py +380 -0
  317. sage/rings/number_field/unit_group.py +721 -0
  318. sage/rings/padics/all__sagemath_flint.py +3 -0
  319. sage/rings/polynomial/all__sagemath_flint.py +1 -0
  320. sage/rings/polynomial/complex_roots.py +312 -0
  321. sage/rings/polynomial/evaluation_flint.cpython-310-x86_64-linux-gnu.so +0 -0
  322. sage/rings/polynomial/evaluation_flint.pxd +7 -0
  323. sage/rings/polynomial/evaluation_flint.pyx +68 -0
  324. sage/rings/polynomial/hilbert.cpython-310-x86_64-linux-gnu.so +0 -0
  325. sage/rings/polynomial/hilbert.pyx +602 -0
  326. sage/rings/polynomial/polynomial_complex_arb.cpython-310-x86_64-linux-gnu.so +0 -0
  327. sage/rings/polynomial/polynomial_complex_arb.pxd +7 -0
  328. sage/rings/polynomial/polynomial_complex_arb.pyx +963 -0
  329. sage/rings/polynomial/polynomial_integer_dense_flint.cpython-310-x86_64-linux-gnu.so +0 -0
  330. sage/rings/polynomial/polynomial_integer_dense_flint.pxd +13 -0
  331. sage/rings/polynomial/polynomial_integer_dense_flint.pyx +1881 -0
  332. sage/rings/polynomial/polynomial_number_field.cpython-310-x86_64-linux-gnu.so +0 -0
  333. sage/rings/polynomial/polynomial_number_field.pyx +345 -0
  334. sage/rings/polynomial/polynomial_rational_flint.cpython-310-x86_64-linux-gnu.so +0 -0
  335. sage/rings/polynomial/polynomial_rational_flint.pxd +20 -0
  336. sage/rings/polynomial/polynomial_rational_flint.pyx +2598 -0
  337. sage/rings/polynomial/polynomial_zmod_flint.cpython-310-x86_64-linux-gnu.so +0 -0
  338. sage/rings/polynomial/polynomial_zmod_flint.pxd +20 -0
  339. sage/rings/polynomial/polynomial_zmod_flint.pyx +1063 -0
  340. sage/rings/polynomial/real_roots.cpython-310-x86_64-linux-gnu.so +0 -0
  341. sage/rings/polynomial/real_roots.pxd +81 -0
  342. sage/rings/polynomial/real_roots.pyx +4704 -0
  343. sage/rings/polynomial/refine_root.cpython-310-x86_64-linux-gnu.so +0 -0
  344. sage/rings/polynomial/refine_root.pyx +142 -0
  345. sage/rings/polynomial/weil/all.py +4 -0
  346. sage/rings/polynomial/weil/power_sums.h +46 -0
  347. sage/rings/polynomial/weil/weil_polynomials.cpython-310-x86_64-linux-gnu.so +0 -0
  348. sage/rings/polynomial/weil/weil_polynomials.pyx +596 -0
  349. sage/rings/qqbar.py +9025 -0
  350. sage/rings/real_arb.cpython-310-x86_64-linux-gnu.so +0 -0
  351. sage/rings/real_arb.pxd +21 -0
  352. sage/rings/real_arb.pyx +4065 -0
  353. sage/rings/real_interval_absolute.cpython-310-x86_64-linux-gnu.so +0 -0
  354. sage/rings/real_interval_absolute.pyx +1073 -0
  355. sage/rings/real_mpfi.cpython-310-x86_64-linux-gnu.so +0 -0
  356. sage/rings/real_mpfi.pyx +5428 -0
  357. sage/schemes/all__sagemath_flint.py +1 -0
  358. sage/schemes/elliptic_curves/all__sagemath_flint.py +1 -0
  359. sage/schemes/elliptic_curves/descent_two_isogeny.cpython-310-x86_64-linux-gnu.so +0 -0
  360. sage/schemes/elliptic_curves/descent_two_isogeny.pyx +1387 -0
  361. sage/schemes/elliptic_curves/descent_two_isogeny_pari.pxd +5 -0
@@ -0,0 +1,172 @@
1
+ # sage_setup: distribution = sagemath-flint
2
+ # distutils: libraries = flint
3
+ # distutils: depends = flint/qqbar.h
4
+
5
+ ################################################################################
6
+ # This file is auto-generated by the script
7
+ # SAGE_ROOT/src/sage_setup/autogen/flint_autogen.py.
8
+ # From the commit 3e2c3a3e091106a25ca9c6fba28e02f2cbcd654a
9
+ # Do not modify by hand! Fix and rerun the script instead.
10
+ ################################################################################
11
+
12
+ from libc.stdio cimport FILE
13
+ from sage.libs.gmp.types cimport *
14
+ from sage.libs.mpfr.types cimport *
15
+ from sage.libs.flint.types cimport *
16
+
17
+ cdef extern from "flint_wrap.h":
18
+ void qqbar_init(qqbar_t res) noexcept
19
+ void qqbar_clear(qqbar_t res) noexcept
20
+ qqbar_ptr _qqbar_vec_init(slong len) noexcept
21
+ void _qqbar_vec_clear(qqbar_ptr vec, slong len) noexcept
22
+ void qqbar_swap(qqbar_t x, qqbar_t y) noexcept
23
+ void qqbar_set(qqbar_t res, const qqbar_t x) noexcept
24
+ void qqbar_set_si(qqbar_t res, slong x) noexcept
25
+ void qqbar_set_ui(qqbar_t res, ulong x) noexcept
26
+ void qqbar_set_fmpz(qqbar_t res, const fmpz_t x) noexcept
27
+ void qqbar_set_fmpq(qqbar_t res, const fmpq_t x) noexcept
28
+ void qqbar_set_re_im(qqbar_t res, const qqbar_t x, const qqbar_t y) noexcept
29
+ int qqbar_set_d(qqbar_t res, double x) noexcept
30
+ int qqbar_set_re_im_d(qqbar_t res, double x, double y) noexcept
31
+ slong qqbar_degree(const qqbar_t x) noexcept
32
+ bint qqbar_is_rational(const qqbar_t x) noexcept
33
+ bint qqbar_is_integer(const qqbar_t x) noexcept
34
+ bint qqbar_is_algebraic_integer(const qqbar_t x) noexcept
35
+ bint qqbar_is_zero(const qqbar_t x) noexcept
36
+ bint qqbar_is_one(const qqbar_t x) noexcept
37
+ bint qqbar_is_neg_one(const qqbar_t x) noexcept
38
+ bint qqbar_is_i(const qqbar_t x) noexcept
39
+ bint qqbar_is_neg_i(const qqbar_t x) noexcept
40
+ bint qqbar_is_real(const qqbar_t x) noexcept
41
+ void qqbar_height(fmpz_t res, const qqbar_t x) noexcept
42
+ slong qqbar_height_bits(const qqbar_t x) noexcept
43
+ int qqbar_within_limits(const qqbar_t x, slong deg_limit, slong bits_limit) noexcept
44
+ int qqbar_binop_within_limits(const qqbar_t x, const qqbar_t y, slong deg_limit, slong bits_limit) noexcept
45
+ void _qqbar_get_fmpq(fmpz_t num, fmpz_t den, const qqbar_t x) noexcept
46
+ void qqbar_get_fmpq(fmpq_t res, const qqbar_t x) noexcept
47
+ void qqbar_get_fmpz(fmpz_t res, const qqbar_t x) noexcept
48
+ void qqbar_zero(qqbar_t res) noexcept
49
+ void qqbar_one(qqbar_t res) noexcept
50
+ void qqbar_i(qqbar_t res) noexcept
51
+ void qqbar_phi(qqbar_t res) noexcept
52
+ void qqbar_print(const qqbar_t x) noexcept
53
+ void qqbar_printn(const qqbar_t x, slong n) noexcept
54
+ void qqbar_printnd(const qqbar_t x, slong n) noexcept
55
+ void qqbar_randtest(qqbar_t res, flint_rand_t state, slong deg, slong bits) noexcept
56
+ void qqbar_randtest_real(qqbar_t res, flint_rand_t state, slong deg, slong bits) noexcept
57
+ void qqbar_randtest_nonreal(qqbar_t res, flint_rand_t state, slong deg, slong bits) noexcept
58
+ bint qqbar_equal(const qqbar_t x, const qqbar_t y) noexcept
59
+ bint qqbar_equal_fmpq_poly_val(const qqbar_t x, const fmpq_poly_t f, const qqbar_t y) noexcept
60
+ int qqbar_cmp_re(const qqbar_t x, const qqbar_t y) noexcept
61
+ int qqbar_cmp_im(const qqbar_t x, const qqbar_t y) noexcept
62
+ int qqbar_cmpabs_re(const qqbar_t x, const qqbar_t y) noexcept
63
+ int qqbar_cmpabs_im(const qqbar_t x, const qqbar_t y) noexcept
64
+ int qqbar_cmpabs(const qqbar_t x, const qqbar_t y) noexcept
65
+ int qqbar_cmp_root_order(const qqbar_t x, const qqbar_t y) noexcept
66
+ ulong qqbar_hash(const qqbar_t x) noexcept
67
+ void qqbar_conj(qqbar_t res, const qqbar_t x) noexcept
68
+ void qqbar_re(qqbar_t res, const qqbar_t x) noexcept
69
+ void qqbar_im(qqbar_t res, const qqbar_t x) noexcept
70
+ void qqbar_re_im(qqbar_t res1, qqbar_t res2, const qqbar_t x) noexcept
71
+ void qqbar_abs(qqbar_t res, const qqbar_t x) noexcept
72
+ void qqbar_abs2(qqbar_t res, const qqbar_t x) noexcept
73
+ void qqbar_sgn(qqbar_t res, const qqbar_t x) noexcept
74
+ int qqbar_sgn_re(const qqbar_t x) noexcept
75
+ int qqbar_sgn_im(const qqbar_t x) noexcept
76
+ int qqbar_csgn(const qqbar_t x) noexcept
77
+ void qqbar_floor(fmpz_t res, const qqbar_t x) noexcept
78
+ void qqbar_ceil(fmpz_t res, const qqbar_t x) noexcept
79
+ void qqbar_neg(qqbar_t res, const qqbar_t x) noexcept
80
+ void qqbar_add(qqbar_t res, const qqbar_t x, const qqbar_t y) noexcept
81
+ void qqbar_add_fmpq(qqbar_t res, const qqbar_t x, const fmpq_t y) noexcept
82
+ void qqbar_add_fmpz(qqbar_t res, const qqbar_t x, const fmpz_t y) noexcept
83
+ void qqbar_add_ui(qqbar_t res, const qqbar_t x, ulong y) noexcept
84
+ void qqbar_add_si(qqbar_t res, const qqbar_t x, slong y) noexcept
85
+ void qqbar_sub(qqbar_t res, const qqbar_t x, const qqbar_t y) noexcept
86
+ void qqbar_sub_fmpq(qqbar_t res, const qqbar_t x, const fmpq_t y) noexcept
87
+ void qqbar_sub_fmpz(qqbar_t res, const qqbar_t x, const fmpz_t y) noexcept
88
+ void qqbar_sub_ui(qqbar_t res, const qqbar_t x, ulong y) noexcept
89
+ void qqbar_sub_si(qqbar_t res, const qqbar_t x, slong y) noexcept
90
+ void qqbar_fmpq_sub(qqbar_t res, const fmpq_t x, const qqbar_t y) noexcept
91
+ void qqbar_fmpz_sub(qqbar_t res, const fmpz_t x, const qqbar_t y) noexcept
92
+ void qqbar_ui_sub(qqbar_t res, ulong x, const qqbar_t y) noexcept
93
+ void qqbar_si_sub(qqbar_t res, slong x, const qqbar_t y) noexcept
94
+ void qqbar_mul(qqbar_t res, const qqbar_t x, const qqbar_t y) noexcept
95
+ void qqbar_mul_fmpq(qqbar_t res, const qqbar_t x, const fmpq_t y) noexcept
96
+ void qqbar_mul_fmpz(qqbar_t res, const qqbar_t x, const fmpz_t y) noexcept
97
+ void qqbar_mul_ui(qqbar_t res, const qqbar_t x, ulong y) noexcept
98
+ void qqbar_mul_si(qqbar_t res, const qqbar_t x, slong y) noexcept
99
+ void qqbar_mul_2exp_si(qqbar_t res, const qqbar_t x, slong e) noexcept
100
+ void qqbar_sqr(qqbar_t res, const qqbar_t x) noexcept
101
+ void qqbar_inv(qqbar_t res, const qqbar_t x) noexcept
102
+ void qqbar_div(qqbar_t res, const qqbar_t x, const qqbar_t y) noexcept
103
+ void qqbar_div_fmpq(qqbar_t res, const qqbar_t x, const fmpq_t y) noexcept
104
+ void qqbar_div_fmpz(qqbar_t res, const qqbar_t x, const fmpz_t y) noexcept
105
+ void qqbar_div_ui(qqbar_t res, const qqbar_t x, ulong y) noexcept
106
+ void qqbar_div_si(qqbar_t res, const qqbar_t x, slong y) noexcept
107
+ void qqbar_fmpq_div(qqbar_t res, const fmpq_t x, const qqbar_t y) noexcept
108
+ void qqbar_fmpz_div(qqbar_t res, const fmpz_t x, const qqbar_t y) noexcept
109
+ void qqbar_ui_div(qqbar_t res, ulong x, const qqbar_t y) noexcept
110
+ void qqbar_si_div(qqbar_t res, slong x, const qqbar_t y) noexcept
111
+ void qqbar_scalar_op(qqbar_t res, const qqbar_t x, const fmpz_t a, const fmpz_t b, const fmpz_t c) noexcept
112
+ void qqbar_sqrt(qqbar_t res, const qqbar_t x) noexcept
113
+ void qqbar_sqrt_ui(qqbar_t res, ulong x) noexcept
114
+ void qqbar_rsqrt(qqbar_t res, const qqbar_t x) noexcept
115
+ void qqbar_pow_ui(qqbar_t res, const qqbar_t x, ulong n) noexcept
116
+ void qqbar_pow_si(qqbar_t res, const qqbar_t x, slong n) noexcept
117
+ void qqbar_pow_fmpz(qqbar_t res, const qqbar_t x, const fmpz_t n) noexcept
118
+ void qqbar_pow_fmpq(qqbar_t res, const qqbar_t x, const fmpq_t n) noexcept
119
+ void qqbar_root_ui(qqbar_t res, const qqbar_t x, ulong n) noexcept
120
+ void qqbar_fmpq_root_ui(qqbar_t res, const fmpq_t x, ulong n) noexcept
121
+ void qqbar_fmpq_pow_si_ui(qqbar_t res, const fmpq_t x, slong m, ulong n) noexcept
122
+ int qqbar_pow(qqbar_t res, const qqbar_t x, const qqbar_t y) noexcept
123
+ void qqbar_get_acb(acb_t res, const qqbar_t x, slong prec) noexcept
124
+ void qqbar_get_arb(arb_t res, const qqbar_t x, slong prec) noexcept
125
+ void qqbar_get_arb_re(arb_t res, const qqbar_t x, slong prec) noexcept
126
+ void qqbar_get_arb_im(arb_t res, const qqbar_t x, slong prec) noexcept
127
+ void qqbar_cache_enclosure(qqbar_t res, slong prec) noexcept
128
+ void qqbar_denominator(fmpz_t res, const qqbar_t y) noexcept
129
+ void qqbar_numerator(qqbar_t res, const qqbar_t y) noexcept
130
+ void qqbar_conjugates(qqbar_ptr res, const qqbar_t x) noexcept
131
+ void _qqbar_evaluate_fmpq_poly(qqbar_t res, const fmpz * poly, const fmpz_t den, slong len, const qqbar_t x) noexcept
132
+ void qqbar_evaluate_fmpq_poly(qqbar_t res, const fmpq_poly_t poly, const qqbar_t x) noexcept
133
+ void _qqbar_evaluate_fmpz_poly(qqbar_t res, const fmpz * poly, slong len, const qqbar_t x) noexcept
134
+ void qqbar_evaluate_fmpz_poly(qqbar_t res, const fmpz_poly_t poly, const qqbar_t x) noexcept
135
+ int qqbar_evaluate_fmpz_mpoly_iter(qqbar_t res, const fmpz_mpoly_t poly, qqbar_srcptr x, slong deg_limit, slong bits_limit, const fmpz_mpoly_ctx_t ctx) noexcept
136
+ int qqbar_evaluate_fmpz_mpoly_horner(qqbar_t res, const fmpz_mpoly_t poly, qqbar_srcptr x, slong deg_limit, slong bits_limit, const fmpz_mpoly_ctx_t ctx) noexcept
137
+ int qqbar_evaluate_fmpz_mpoly(qqbar_t res, const fmpz_mpoly_t poly, qqbar_srcptr x, slong deg_limit, slong bits_limit, const fmpz_mpoly_ctx_t ctx) noexcept
138
+ void qqbar_roots_fmpz_poly(qqbar_ptr res, const fmpz_poly_t poly, int flags) noexcept
139
+ void qqbar_roots_fmpq_poly(qqbar_ptr res, const fmpq_poly_t poly, int flags) noexcept
140
+ void qqbar_eigenvalues_fmpz_mat(qqbar_ptr res, const fmpz_mat_t mat, int flags) noexcept
141
+ void qqbar_eigenvalues_fmpq_mat(qqbar_ptr res, const fmpq_mat_t mat, int flags) noexcept
142
+ void qqbar_root_of_unity(qqbar_t res, slong p, ulong q) noexcept
143
+ bint qqbar_is_root_of_unity(slong * p, ulong * q, const qqbar_t x) noexcept
144
+ void qqbar_exp_pi_i(qqbar_t res, slong p, ulong q) noexcept
145
+ void qqbar_cos_pi(qqbar_t res, slong p, ulong q) noexcept
146
+ void qqbar_sin_pi(qqbar_t res, slong p, ulong q) noexcept
147
+ int qqbar_tan_pi(qqbar_t res, slong p, ulong q) noexcept
148
+ int qqbar_cot_pi(qqbar_t res, slong p, ulong q) noexcept
149
+ int qqbar_sec_pi(qqbar_t res, slong p, ulong q) noexcept
150
+ int qqbar_csc_pi(qqbar_t res, slong p, ulong q) noexcept
151
+ int qqbar_log_pi_i(slong * p, ulong * q, const qqbar_t x) noexcept
152
+ int qqbar_atan_pi(slong * p, ulong * q, const qqbar_t x) noexcept
153
+ int qqbar_asin_pi(slong * p, ulong * q, const qqbar_t x) noexcept
154
+ int qqbar_acos_pi(slong * p, ulong * q, const qqbar_t x) noexcept
155
+ int qqbar_acot_pi(slong * p, ulong * q, const qqbar_t x) noexcept
156
+ int qqbar_asec_pi(slong * p, ulong * q, const qqbar_t x) noexcept
157
+ int qqbar_acsc_pi(slong * p, ulong * q, const qqbar_t x) noexcept
158
+ int qqbar_guess(qqbar_t res, const acb_t z, slong max_deg, slong max_bits, int flags, slong prec) noexcept
159
+ int qqbar_express_in_field(fmpq_poly_t res, const qqbar_t alpha, const qqbar_t x, slong max_bits, int flags, slong prec) noexcept
160
+ void qqbar_get_quadratic(fmpz_t a, fmpz_t b, fmpz_t c, fmpz_t q, const qqbar_t x, int factoring) noexcept
161
+ int qqbar_set_fexpr(qqbar_t res, const fexpr_t expr) noexcept
162
+ void qqbar_get_fexpr_repr(fexpr_t res, const qqbar_t x) noexcept
163
+ void qqbar_get_fexpr_root_nearest(fexpr_t res, const qqbar_t x) noexcept
164
+ void qqbar_get_fexpr_root_indexed(fexpr_t res, const qqbar_t x) noexcept
165
+ int qqbar_get_fexpr_formula(fexpr_t res, const qqbar_t x, ulong flags) noexcept
166
+ void qqbar_fmpz_poly_composed_op(fmpz_poly_t res, const fmpz_poly_t A, const fmpz_poly_t B, int op) noexcept
167
+ void qqbar_binary_op(qqbar_t res, const qqbar_t x, const qqbar_t y, int op) noexcept
168
+ int _qqbar_validate_uniqueness(acb_t res, const fmpz_poly_t poly, const acb_t z, slong max_prec) noexcept
169
+ int _qqbar_validate_existence_uniqueness(acb_t res, const fmpz_poly_t poly, const acb_t z, slong max_prec) noexcept
170
+ void _qqbar_enclosure_raw(acb_t res, const fmpz_poly_t poly, const acb_t z, slong prec) noexcept
171
+ void qqbar_enclosure_raw(acb_t res, const qqbar_t x, slong prec) noexcept
172
+ int _qqbar_acb_lindep(fmpz * rel, acb_srcptr vec, slong len, int check, slong prec) noexcept
@@ -0,0 +1,41 @@
1
+ # sage_setup: distribution = sagemath-flint
2
+ # distutils: libraries = flint
3
+ # distutils: depends = flint/qsieve.h
4
+
5
+ ################################################################################
6
+ # This file is auto-generated by the script
7
+ # SAGE_ROOT/src/sage_setup/autogen/flint_autogen.py.
8
+ # From the commit 3e2c3a3e091106a25ca9c6fba28e02f2cbcd654a
9
+ # Do not modify by hand! Fix and rerun the script instead.
10
+ ################################################################################
11
+
12
+ from libc.stdio cimport FILE
13
+ from sage.libs.gmp.types cimport *
14
+ from sage.libs.mpfr.types cimport *
15
+ from sage.libs.flint.types cimport *
16
+
17
+ cdef extern from "flint_wrap.h":
18
+ mp_limb_t qsieve_knuth_schroeppel(qs_t qs_inf) noexcept
19
+ mp_limb_t qsieve_primes_init(qs_t qs_inf) noexcept
20
+ mp_limb_t qsieve_primes_increment(qs_t qs_inf, mp_limb_t delta) noexcept
21
+ void qsieve_init_A0(qs_t qs_inf) noexcept
22
+ void qsieve_next_A0(qs_t qs_inf) noexcept
23
+ void qsieve_compute_pre_data(qs_t qs_inf) noexcept
24
+ void qsieve_init_poly_first(qs_t qs_inf) noexcept
25
+ void qsieve_init_poly_next(qs_t qs_inf, slong i) noexcept
26
+ void qsieve_compute_C(fmpz_t C, qs_t qs_inf, qs_poly_t poly) noexcept
27
+ void qsieve_do_sieving(qs_t qs_inf, unsigned char * sieve, qs_poly_t poly) noexcept
28
+ void qsieve_do_sieving2(qs_t qs_inf, unsigned char * sieve, qs_poly_t poly) noexcept
29
+ slong qsieve_evaluate_candidate(qs_t qs_inf, ulong i, unsigned char * sieve, qs_poly_t poly) noexcept
30
+ slong qsieve_evaluate_sieve(qs_t qs_inf, unsigned char * sieve, qs_poly_t poly) noexcept
31
+ slong qsieve_collect_relations(qs_t qs_inf, unsigned char * sieve) noexcept
32
+ void qsieve_write_to_file(qs_t qs_inf, mp_limb_t prime, const fmpz_t Y, const qs_poly_t poly) noexcept
33
+ hash_t * qsieve_get_table_entry(qs_t qs_inf, mp_limb_t prime) noexcept
34
+ void qsieve_add_to_hashtable(qs_t qs_inf, mp_limb_t prime) noexcept
35
+ relation_t qsieve_parse_relation(qs_t qs_inf, char * str) noexcept
36
+ relation_t qsieve_merge_relation(qs_t qs_inf, relation_t a, relation_t b) noexcept
37
+ int qsieve_compare_relation(const void * a, const void * b) noexcept
38
+ int qsieve_remove_duplicates(relation_t * rel_list, slong num_relations) noexcept
39
+ void qsieve_insert_relation2(qs_t qs_inf, relation_t * rel_list, slong num_relations) noexcept
40
+ int qsieve_process_relation(qs_t qs_inf) noexcept
41
+ void qsieve_factor(fmpz_factor_t factors, const fmpz_t n) noexcept
@@ -0,0 +1,21 @@
1
+ # sage_setup: distribution = sagemath-flint
2
+ r"""
3
+ Deprecated module.
4
+
5
+ Functions were moved in qsieve_sage.pyx.
6
+
7
+ TESTS::
8
+
9
+ sage: from sage.libs.flint.qsieve import qsieve
10
+ sage: qsieve(1000)
11
+ doctest:warning
12
+ ...
13
+ DeprecationWarning:
14
+ Importing qsieve from here is deprecated; please use "from sage.libs.flint.qsieve_sage import qsieve" instead.
15
+ See https://github.com/sagemath/sage/issues/36449 for details.
16
+ [(2, 3), (5, 3)]
17
+ """
18
+
19
+ from sage.misc.lazy_import import LazyImport
20
+
21
+ qsieve = LazyImport('sage.libs.flint.qsieve_sage', 'qsieve', deprecation=36449)
@@ -0,0 +1,67 @@
1
+ # sage_setup: distribution = sagemath-flint
2
+ """
3
+ Interface to FLINT's ``qsieve_factor()``. This used to interact
4
+ with an external "QuadraticSieve" program, but its functionality has
5
+ been absorbed into flint.
6
+ """
7
+
8
+ from cysignals.signals cimport sig_on, sig_off
9
+ from .types cimport fmpz_t, fmpz_factor_t
10
+ from .fmpz cimport fmpz_init, fmpz_set_mpz
11
+ from .fmpz_factor cimport fmpz_factor_init, fmpz_factor_clear
12
+ from .fmpz_factor_sage cimport fmpz_factor_to_pairlist
13
+ from .qsieve cimport qsieve_factor
14
+ from sage.rings.integer cimport Integer
15
+
16
+
17
+ def qsieve(n):
18
+ r"""
19
+ Factor ``n`` using the quadratic sieve.
20
+
21
+ INPUT:
22
+
23
+ - ``n`` -- integer; neither prime nor a perfect power
24
+
25
+ OUTPUT:
26
+
27
+ A list of the factors of ``n``. There is no guarantee that the
28
+ factors found will be prime, or distinct.
29
+
30
+ EXAMPLES::
31
+
32
+ sage: # needs sage.libs.pari
33
+ sage: k = 19; n = next_prime(10^k)*next_prime(10^(k+1))
34
+ sage: factor(n) # (currently) uses PARI
35
+ 10000000000000000051 * 100000000000000000039
36
+ sage: qsieve(n)
37
+ [(10000000000000000051, 1), (100000000000000000039, 1)]
38
+
39
+ TESTS:
40
+
41
+ The factorization of zero is undefined, to match the behavior of
42
+ ``ZZ.zero().factor()``::
43
+
44
+ sage: qsieve(ZZ.zero())
45
+ Traceback (most recent call last):
46
+ ...
47
+ ArithmeticError: factorization of 0 is not defined
48
+ """
49
+ n = Integer(n)
50
+
51
+ if n.is_zero():
52
+ raise ArithmeticError("factorization of 0 is not defined")
53
+
54
+ cdef fmpz_t p
55
+ fmpz_init(p)
56
+ fmpz_set_mpz(p, (<Integer>n).value)
57
+
58
+ cdef fmpz_factor_t factors
59
+ fmpz_factor_init(factors)
60
+ sig_on()
61
+ qsieve_factor(factors, p)
62
+ sig_off()
63
+
64
+ pairs = fmpz_factor_to_pairlist(factors)
65
+
66
+ fmpz_factor_clear(factors)
67
+ return pairs
@@ -0,0 +1,25 @@
1
+ # sage_setup: distribution = sagemath-flint
2
+ # distutils: libraries = flint
3
+ # distutils: depends = flint/thread_pool.h
4
+
5
+ ################################################################################
6
+ # This file is auto-generated by the script
7
+ # SAGE_ROOT/src/sage_setup/autogen/flint_autogen.py.
8
+ # From the commit 3e2c3a3e091106a25ca9c6fba28e02f2cbcd654a
9
+ # Do not modify by hand! Fix and rerun the script instead.
10
+ ################################################################################
11
+
12
+ from libc.stdio cimport FILE
13
+ from sage.libs.gmp.types cimport *
14
+ from sage.libs.mpfr.types cimport *
15
+ from sage.libs.flint.types cimport *
16
+
17
+ cdef extern from "flint_wrap.h":
18
+ void thread_pool_init(thread_pool_t T, slong size) noexcept
19
+ slong thread_pool_get_size(thread_pool_t T) noexcept
20
+ int thread_pool_set_size(thread_pool_t T, slong new_size) noexcept
21
+ slong thread_pool_request(thread_pool_t T, thread_pool_handle * out, slong requested) noexcept
22
+ void thread_pool_wake(thread_pool_t T, thread_pool_handle i, int max_workers, void (*f)(void*), void * a) noexcept
23
+ void thread_pool_wait(thread_pool_t T, thread_pool_handle i) noexcept
24
+ void thread_pool_give_back(thread_pool_t T, thread_pool_handle i) noexcept
25
+ void thread_pool_clear(thread_pool_t T) noexcept