passagemath-flint 10.6.1rc10__cp312-cp312-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.
Files changed (360) hide show
  1. passagemath_flint-10.6.1rc10.dist-info/METADATA +122 -0
  2. passagemath_flint-10.6.1rc10.dist-info/RECORD +360 -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-3701249d.so.21.0.0 +0 -0
  6. passagemath_flint.libs/libgf2x-fbd36f80.so.3.0.0 +0 -0
  7. passagemath_flint.libs/libgfortran-8a9a71bc.so.5.0.0 +0 -0
  8. passagemath_flint.libs/libgmp-93ebf16a.so.10.5.0 +0 -0
  9. passagemath_flint.libs/libgsl-e3525837.so.28.0.0 +0 -0
  10. passagemath_flint.libs/libmpfi-ad12a86d.so.0.0.0 +0 -0
  11. passagemath_flint.libs/libmpfr-e0f11cf3.so.6.2.1 +0 -0
  12. passagemath_flint.libs/libntl-1004113e.so.44.0.1 +0 -0
  13. passagemath_flint.libs/libopenblasp-r0-4c5b64b1.3.29.so +0 -0
  14. sage/all__sagemath_flint.py +29 -0
  15. sage/combinat/all__sagemath_flint.py +1 -0
  16. sage/combinat/posets/all__sagemath_flint.py +1 -0
  17. sage/combinat/posets/hasse_cython_flint.cpython-312-aarch64-linux-gnu.so +0 -0
  18. sage/combinat/posets/hasse_cython_flint.pyx +194 -0
  19. sage/data_structures/all__sagemath_flint.py +1 -0
  20. sage/data_structures/bounded_integer_sequences.cpython-312-aarch64-linux-gnu.so +0 -0
  21. sage/data_structures/bounded_integer_sequences.pxd +62 -0
  22. sage/data_structures/bounded_integer_sequences.pyx +1418 -0
  23. sage/graphs/all__sagemath_flint.py +1 -0
  24. sage/graphs/chrompoly.cpython-312-aarch64-linux-gnu.so +0 -0
  25. sage/graphs/chrompoly.pyx +555 -0
  26. sage/graphs/matchpoly.cpython-312-aarch64-linux-gnu.so +0 -0
  27. sage/graphs/matchpoly.pyx +412 -0
  28. sage/libs/all__sagemath_flint.py +17 -0
  29. sage/libs/arb/__init__.py +1 -0
  30. sage/libs/arb/acb.pxd +154 -0
  31. sage/libs/arb/acb_calc.pxd +9 -0
  32. sage/libs/arb/acb_elliptic.pxd +25 -0
  33. sage/libs/arb/acb_hypgeom.pxd +74 -0
  34. sage/libs/arb/acb_mat.pxd +62 -0
  35. sage/libs/arb/acb_modular.pxd +17 -0
  36. sage/libs/arb/acb_poly.pxd +216 -0
  37. sage/libs/arb/arb.pxd +240 -0
  38. sage/libs/arb/arb_fmpz_poly.pxd +21 -0
  39. sage/libs/arb/arb_hypgeom.pxd +83 -0
  40. sage/libs/arb/arb_wrap.h +34 -0
  41. sage/libs/arb/arf.pxd +131 -0
  42. sage/libs/arb/arith.cpython-312-aarch64-linux-gnu.so +0 -0
  43. sage/libs/arb/arith.pyx +87 -0
  44. sage/libs/arb/bernoulli.pxd +6 -0
  45. sage/libs/arb/mag.pxd +77 -0
  46. sage/libs/arb/types.pxd +37 -0
  47. sage/libs/flint/__init__.py +1 -0
  48. sage/libs/flint/acb.pxd +270 -0
  49. sage/libs/flint/acb_calc.pxd +22 -0
  50. sage/libs/flint/acb_dft.pxd +51 -0
  51. sage/libs/flint/acb_dirichlet.pxd +112 -0
  52. sage/libs/flint/acb_elliptic.pxd +42 -0
  53. sage/libs/flint/acb_hypgeom.pxd +169 -0
  54. sage/libs/flint/acb_macros.pxd +9 -0
  55. sage/libs/flint/acb_mat.pxd +136 -0
  56. sage/libs/flint/acb_mat_macros.pxd +10 -0
  57. sage/libs/flint/acb_modular.pxd +62 -0
  58. sage/libs/flint/acb_poly.pxd +251 -0
  59. sage/libs/flint/acb_poly_macros.pxd +8 -0
  60. sage/libs/flint/acb_theta.pxd +124 -0
  61. sage/libs/flint/acf.pxd +32 -0
  62. sage/libs/flint/aprcl.pxd +84 -0
  63. sage/libs/flint/arb.pxd +382 -0
  64. sage/libs/flint/arb_calc.pxd +31 -0
  65. sage/libs/flint/arb_fmpz_poly.pxd +34 -0
  66. sage/libs/flint/arb_fpwrap.pxd +215 -0
  67. sage/libs/flint/arb_hypgeom.pxd +147 -0
  68. sage/libs/flint/arb_macros.pxd +9 -0
  69. sage/libs/flint/arb_mat.pxd +140 -0
  70. sage/libs/flint/arb_mat_macros.pxd +10 -0
  71. sage/libs/flint/arb_poly.pxd +237 -0
  72. sage/libs/flint/arf.pxd +167 -0
  73. sage/libs/flint/arith.cpython-312-aarch64-linux-gnu.so +0 -0
  74. sage/libs/flint/arith.pxd +76 -0
  75. sage/libs/flint/arith.pyx +77 -0
  76. sage/libs/flint/arith_sage.cpython-312-aarch64-linux-gnu.so +0 -0
  77. sage/libs/flint/arith_sage.pyx +308 -0
  78. sage/libs/flint/bernoulli.pxd +28 -0
  79. sage/libs/flint/bool_mat.pxd +52 -0
  80. sage/libs/flint/ca.pxd +203 -0
  81. sage/libs/flint/ca_ext.pxd +34 -0
  82. sage/libs/flint/ca_field.pxd +32 -0
  83. sage/libs/flint/ca_mat.pxd +117 -0
  84. sage/libs/flint/ca_poly.pxd +104 -0
  85. sage/libs/flint/ca_vec.pxd +46 -0
  86. sage/libs/flint/calcium.pxd +27 -0
  87. sage/libs/flint/d_mat.pxd +39 -0
  88. sage/libs/flint/d_vec.pxd +32 -0
  89. sage/libs/flint/dirichlet.pxd +57 -0
  90. sage/libs/flint/dlog.pxd +53 -0
  91. sage/libs/flint/double_extras.pxd +24 -0
  92. sage/libs/flint/double_interval.pxd +36 -0
  93. sage/libs/flint/fexpr.pxd +104 -0
  94. sage/libs/flint/fexpr_builtin.pxd +20 -0
  95. sage/libs/flint/fft.pxd +66 -0
  96. sage/libs/flint/flint.pxd +36 -0
  97. sage/libs/flint/flint_ntl_wrap.h +35 -0
  98. sage/libs/flint/flint_sage.cpython-312-aarch64-linux-gnu.so +0 -0
  99. sage/libs/flint/flint_sage.pyx +163 -0
  100. sage/libs/flint/flint_wrap.h +190 -0
  101. sage/libs/flint/fmpq.pxd +137 -0
  102. sage/libs/flint/fmpq_mat.pxd +105 -0
  103. sage/libs/flint/fmpq_mat_macros.pxd +10 -0
  104. sage/libs/flint/fmpq_mpoly.pxd +165 -0
  105. sage/libs/flint/fmpq_mpoly_factor.pxd +30 -0
  106. sage/libs/flint/fmpq_poly.pxd +241 -0
  107. sage/libs/flint/fmpq_poly_macros.pxd +9 -0
  108. sage/libs/flint/fmpq_poly_sage.cpython-312-aarch64-linux-gnu.so +0 -0
  109. sage/libs/flint/fmpq_poly_sage.pxd +31 -0
  110. sage/libs/flint/fmpq_poly_sage.pyx +48 -0
  111. sage/libs/flint/fmpq_vec.pxd +27 -0
  112. sage/libs/flint/fmpz.pxd +256 -0
  113. sage/libs/flint/fmpz_extras.pxd +32 -0
  114. sage/libs/flint/fmpz_factor.pxd +42 -0
  115. sage/libs/flint/fmpz_factor_sage.cpython-312-aarch64-linux-gnu.so +0 -0
  116. sage/libs/flint/fmpz_factor_sage.pxd +4 -0
  117. sage/libs/flint/fmpz_factor_sage.pyx +29 -0
  118. sage/libs/flint/fmpz_lll.pxd +49 -0
  119. sage/libs/flint/fmpz_macros.pxd +8 -0
  120. sage/libs/flint/fmpz_mat.pxd +184 -0
  121. sage/libs/flint/fmpz_mat_macros.pxd +10 -0
  122. sage/libs/flint/fmpz_mod.pxd +46 -0
  123. sage/libs/flint/fmpz_mod_mat.pxd +71 -0
  124. sage/libs/flint/fmpz_mod_mpoly.pxd +161 -0
  125. sage/libs/flint/fmpz_mod_mpoly_factor.pxd +28 -0
  126. sage/libs/flint/fmpz_mod_poly.pxd +249 -0
  127. sage/libs/flint/fmpz_mod_poly_factor.pxd +46 -0
  128. sage/libs/flint/fmpz_mod_vec.pxd +27 -0
  129. sage/libs/flint/fmpz_mpoly.pxd +224 -0
  130. sage/libs/flint/fmpz_mpoly_factor.pxd +29 -0
  131. sage/libs/flint/fmpz_mpoly_q.pxd +57 -0
  132. sage/libs/flint/fmpz_poly.cpython-312-aarch64-linux-gnu.so +0 -0
  133. sage/libs/flint/fmpz_poly.pxd +407 -0
  134. sage/libs/flint/fmpz_poly.pyx +19 -0
  135. sage/libs/flint/fmpz_poly_factor.pxd +33 -0
  136. sage/libs/flint/fmpz_poly_macros.pxd +8 -0
  137. sage/libs/flint/fmpz_poly_mat.pxd +71 -0
  138. sage/libs/flint/fmpz_poly_q.pxd +55 -0
  139. sage/libs/flint/fmpz_poly_sage.cpython-312-aarch64-linux-gnu.so +0 -0
  140. sage/libs/flint/fmpz_poly_sage.pxd +20 -0
  141. sage/libs/flint/fmpz_poly_sage.pyx +500 -0
  142. sage/libs/flint/fmpz_vec.pxd +80 -0
  143. sage/libs/flint/fmpzi.pxd +52 -0
  144. sage/libs/flint/fq.pxd +97 -0
  145. sage/libs/flint/fq_default.pxd +84 -0
  146. sage/libs/flint/fq_default_mat.pxd +70 -0
  147. sage/libs/flint/fq_default_poly.pxd +97 -0
  148. sage/libs/flint/fq_default_poly_factor.pxd +39 -0
  149. sage/libs/flint/fq_embed.pxd +28 -0
  150. sage/libs/flint/fq_mat.pxd +83 -0
  151. sage/libs/flint/fq_nmod.pxd +95 -0
  152. sage/libs/flint/fq_nmod_embed.pxd +28 -0
  153. sage/libs/flint/fq_nmod_mat.pxd +83 -0
  154. sage/libs/flint/fq_nmod_mpoly.pxd +130 -0
  155. sage/libs/flint/fq_nmod_mpoly_factor.pxd +28 -0
  156. sage/libs/flint/fq_nmod_poly.pxd +202 -0
  157. sage/libs/flint/fq_nmod_poly_factor.pxd +47 -0
  158. sage/libs/flint/fq_nmod_vec.pxd +33 -0
  159. sage/libs/flint/fq_poly.pxd +204 -0
  160. sage/libs/flint/fq_poly_factor.pxd +47 -0
  161. sage/libs/flint/fq_vec.pxd +33 -0
  162. sage/libs/flint/fq_zech.pxd +99 -0
  163. sage/libs/flint/fq_zech_embed.pxd +28 -0
  164. sage/libs/flint/fq_zech_mat.pxd +78 -0
  165. sage/libs/flint/fq_zech_poly.pxd +198 -0
  166. sage/libs/flint/fq_zech_poly_factor.pxd +47 -0
  167. sage/libs/flint/fq_zech_vec.pxd +33 -0
  168. sage/libs/flint/gr.pxd +174 -0
  169. sage/libs/flint/gr_generic.pxd +215 -0
  170. sage/libs/flint/gr_mat.pxd +161 -0
  171. sage/libs/flint/gr_mpoly.pxd +68 -0
  172. sage/libs/flint/gr_poly.pxd +276 -0
  173. sage/libs/flint/gr_special.pxd +237 -0
  174. sage/libs/flint/gr_vec.pxd +120 -0
  175. sage/libs/flint/hypgeom.pxd +24 -0
  176. sage/libs/flint/long_extras.pxd +23 -0
  177. sage/libs/flint/mag.pxd +131 -0
  178. sage/libs/flint/mag_macros.pxd +8 -0
  179. sage/libs/flint/mpf_mat.pxd +36 -0
  180. sage/libs/flint/mpf_vec.pxd +34 -0
  181. sage/libs/flint/mpfr_mat.pxd +27 -0
  182. sage/libs/flint/mpfr_vec.pxd +25 -0
  183. sage/libs/flint/mpn_extras.pxd +41 -0
  184. sage/libs/flint/mpoly.pxd +72 -0
  185. sage/libs/flint/nf.pxd +19 -0
  186. sage/libs/flint/nf_elem.pxd +74 -0
  187. sage/libs/flint/nmod.pxd +35 -0
  188. sage/libs/flint/nmod_mat.pxd +104 -0
  189. sage/libs/flint/nmod_mpoly.pxd +144 -0
  190. sage/libs/flint/nmod_mpoly_factor.pxd +28 -0
  191. sage/libs/flint/nmod_poly.pxd +339 -0
  192. sage/libs/flint/nmod_poly_factor.pxd +44 -0
  193. sage/libs/flint/nmod_poly_linkage.pxi +710 -0
  194. sage/libs/flint/nmod_poly_mat.pxd +76 -0
  195. sage/libs/flint/nmod_vec.pxd +40 -0
  196. sage/libs/flint/ntl_interface.pxd +17 -0
  197. sage/libs/flint/padic.pxd +93 -0
  198. sage/libs/flint/padic_mat.pxd +64 -0
  199. sage/libs/flint/padic_poly.pxd +88 -0
  200. sage/libs/flint/partitions.pxd +23 -0
  201. sage/libs/flint/perm.pxd +26 -0
  202. sage/libs/flint/profiler.pxd +24 -0
  203. sage/libs/flint/qadic.pxd +77 -0
  204. sage/libs/flint/qfb.pxd +44 -0
  205. sage/libs/flint/qqbar.pxd +172 -0
  206. sage/libs/flint/qsieve.cpython-312-aarch64-linux-gnu.so +0 -0
  207. sage/libs/flint/qsieve.pxd +41 -0
  208. sage/libs/flint/qsieve.pyx +21 -0
  209. sage/libs/flint/qsieve_sage.cpython-312-aarch64-linux-gnu.so +0 -0
  210. sage/libs/flint/qsieve_sage.pyx +67 -0
  211. sage/libs/flint/thread_pool.pxd +25 -0
  212. sage/libs/flint/types.pxd +2076 -0
  213. sage/libs/flint/ulong_extras.cpython-312-aarch64-linux-gnu.so +0 -0
  214. sage/libs/flint/ulong_extras.pxd +141 -0
  215. sage/libs/flint/ulong_extras.pyx +21 -0
  216. sage/libs/flint/ulong_extras_sage.cpython-312-aarch64-linux-gnu.so +0 -0
  217. sage/libs/flint/ulong_extras_sage.pyx +21 -0
  218. sage/matrix/all__sagemath_flint.py +1 -0
  219. sage/matrix/change_ring.cpython-312-aarch64-linux-gnu.so +0 -0
  220. sage/matrix/change_ring.pyx +43 -0
  221. sage/matrix/matrix_complex_ball_dense.cpython-312-aarch64-linux-gnu.so +0 -0
  222. sage/matrix/matrix_complex_ball_dense.pxd +14 -0
  223. sage/matrix/matrix_complex_ball_dense.pyx +973 -0
  224. sage/matrix/matrix_cyclo_dense.cpython-312-aarch64-linux-gnu.so +0 -0
  225. sage/matrix/matrix_cyclo_dense.pxd +16 -0
  226. sage/matrix/matrix_cyclo_dense.pyx +1761 -0
  227. sage/matrix/matrix_integer_dense.cpython-312-aarch64-linux-gnu.so +0 -0
  228. sage/matrix/matrix_integer_dense.pxd +32 -0
  229. sage/matrix/matrix_integer_dense.pyx +5801 -0
  230. sage/matrix/matrix_integer_dense_hnf.py +1294 -0
  231. sage/matrix/matrix_integer_dense_saturation.py +346 -0
  232. sage/matrix/matrix_integer_sparse.cpython-312-aarch64-linux-gnu.so +0 -0
  233. sage/matrix/matrix_integer_sparse.pxd +9 -0
  234. sage/matrix/matrix_integer_sparse.pyx +1090 -0
  235. sage/matrix/matrix_rational_dense.cpython-312-aarch64-linux-gnu.so +0 -0
  236. sage/matrix/matrix_rational_dense.pxd +23 -0
  237. sage/matrix/matrix_rational_dense.pyx +2995 -0
  238. sage/matrix/matrix_rational_sparse.cpython-312-aarch64-linux-gnu.so +0 -0
  239. sage/matrix/matrix_rational_sparse.pxd +11 -0
  240. sage/matrix/matrix_rational_sparse.pyx +789 -0
  241. sage/matrix/misc_flint.cpython-312-aarch64-linux-gnu.so +0 -0
  242. sage/matrix/misc_flint.pyx +109 -0
  243. sage/modular/all__sagemath_flint.py +1 -0
  244. sage/modular/modform/all__sagemath_flint.py +1 -0
  245. sage/modular/modform/eis_series_cython.cpython-312-aarch64-linux-gnu.so +0 -0
  246. sage/modular/modform/eis_series_cython.pyx +226 -0
  247. sage/modular/modsym/all__sagemath_flint.py +1 -0
  248. sage/modular/modsym/apply.cpython-312-aarch64-linux-gnu.so +0 -0
  249. sage/modular/modsym/apply.pxd +6 -0
  250. sage/modular/modsym/apply.pyx +113 -0
  251. sage/modular/modsym/heilbronn.cpython-312-aarch64-linux-gnu.so +0 -0
  252. sage/modular/modsym/heilbronn.pyx +966 -0
  253. sage/modular/pollack_stevens/all__sagemath_flint.py +1 -0
  254. sage/modular/pollack_stevens/dist.cpython-312-aarch64-linux-gnu.so +0 -0
  255. sage/modular/pollack_stevens/dist.pxd +38 -0
  256. sage/modular/pollack_stevens/dist.pyx +1439 -0
  257. sage/quivers/algebra.py +691 -0
  258. sage/quivers/algebra_elements.cpython-312-aarch64-linux-gnu.so +0 -0
  259. sage/quivers/algebra_elements.pxd +97 -0
  260. sage/quivers/algebra_elements.pxi +1324 -0
  261. sage/quivers/algebra_elements.pyx +1424 -0
  262. sage/quivers/all.py +1 -0
  263. sage/quivers/ar_quiver.py +917 -0
  264. sage/quivers/homspace.py +640 -0
  265. sage/quivers/morphism.py +1282 -0
  266. sage/quivers/path_semigroup.py +1155 -0
  267. sage/quivers/paths.cpython-312-aarch64-linux-gnu.so +0 -0
  268. sage/quivers/paths.pxd +13 -0
  269. sage/quivers/paths.pyx +809 -0
  270. sage/quivers/representation.py +2975 -0
  271. sage/rings/all__sagemath_flint.py +37 -0
  272. sage/rings/cif.py +4 -0
  273. sage/rings/complex_arb.cpython-312-aarch64-linux-gnu.so +0 -0
  274. sage/rings/complex_arb.pxd +29 -0
  275. sage/rings/complex_arb.pyx +5176 -0
  276. sage/rings/complex_interval.cpython-312-aarch64-linux-gnu.so +0 -0
  277. sage/rings/complex_interval.pxd +30 -0
  278. sage/rings/complex_interval.pyx +2475 -0
  279. sage/rings/complex_interval_field.py +711 -0
  280. sage/rings/convert/all.py +1 -0
  281. sage/rings/convert/mpfi.cpython-312-aarch64-linux-gnu.so +0 -0
  282. sage/rings/convert/mpfi.pxd +6 -0
  283. sage/rings/convert/mpfi.pyx +576 -0
  284. sage/rings/factorint_flint.cpython-312-aarch64-linux-gnu.so +0 -0
  285. sage/rings/factorint_flint.pyx +99 -0
  286. sage/rings/fraction_field_FpT.cpython-312-aarch64-linux-gnu.so +0 -0
  287. sage/rings/fraction_field_FpT.pxd +28 -0
  288. sage/rings/fraction_field_FpT.pyx +2043 -0
  289. sage/rings/imaginary_unit.py +5 -0
  290. sage/rings/monomials.py +73 -0
  291. sage/rings/number_field/S_unit_solver.py +2870 -0
  292. sage/rings/number_field/all__sagemath_flint.py +7 -0
  293. sage/rings/number_field/bdd_height.py +664 -0
  294. sage/rings/number_field/class_group.py +762 -0
  295. sage/rings/number_field/galois_group.py +1307 -0
  296. sage/rings/number_field/homset.py +612 -0
  297. sage/rings/number_field/maps.py +687 -0
  298. sage/rings/number_field/morphism.py +272 -0
  299. sage/rings/number_field/number_field.py +12820 -0
  300. sage/rings/number_field/number_field_element.cpython-312-aarch64-linux-gnu.so +0 -0
  301. sage/rings/number_field/number_field_element.pxd +59 -0
  302. sage/rings/number_field/number_field_element.pyx +5735 -0
  303. sage/rings/number_field/number_field_element_quadratic.cpython-312-aarch64-linux-gnu.so +0 -0
  304. sage/rings/number_field/number_field_element_quadratic.pxd +34 -0
  305. sage/rings/number_field/number_field_element_quadratic.pyx +3185 -0
  306. sage/rings/number_field/number_field_ideal_rel.py +925 -0
  307. sage/rings/number_field/number_field_morphisms.cpython-312-aarch64-linux-gnu.so +0 -0
  308. sage/rings/number_field/number_field_morphisms.pyx +781 -0
  309. sage/rings/number_field/number_field_rel.py +2734 -0
  310. sage/rings/number_field/order.py +2981 -0
  311. sage/rings/number_field/order_ideal.py +804 -0
  312. sage/rings/number_field/selmer_group.py +715 -0
  313. sage/rings/number_field/small_primes_of_degree_one.py +242 -0
  314. sage/rings/number_field/splitting_field.py +606 -0
  315. sage/rings/number_field/structure.py +380 -0
  316. sage/rings/number_field/unit_group.py +721 -0
  317. sage/rings/padics/all__sagemath_flint.py +3 -0
  318. sage/rings/polynomial/all__sagemath_flint.py +1 -0
  319. sage/rings/polynomial/complex_roots.py +312 -0
  320. sage/rings/polynomial/evaluation_flint.cpython-312-aarch64-linux-gnu.so +0 -0
  321. sage/rings/polynomial/evaluation_flint.pxd +7 -0
  322. sage/rings/polynomial/evaluation_flint.pyx +68 -0
  323. sage/rings/polynomial/hilbert.cpython-312-aarch64-linux-gnu.so +0 -0
  324. sage/rings/polynomial/hilbert.pyx +602 -0
  325. sage/rings/polynomial/polynomial_complex_arb.cpython-312-aarch64-linux-gnu.so +0 -0
  326. sage/rings/polynomial/polynomial_complex_arb.pxd +7 -0
  327. sage/rings/polynomial/polynomial_complex_arb.pyx +963 -0
  328. sage/rings/polynomial/polynomial_integer_dense_flint.cpython-312-aarch64-linux-gnu.so +0 -0
  329. sage/rings/polynomial/polynomial_integer_dense_flint.pxd +13 -0
  330. sage/rings/polynomial/polynomial_integer_dense_flint.pyx +1881 -0
  331. sage/rings/polynomial/polynomial_number_field.cpython-312-aarch64-linux-gnu.so +0 -0
  332. sage/rings/polynomial/polynomial_number_field.pyx +345 -0
  333. sage/rings/polynomial/polynomial_rational_flint.cpython-312-aarch64-linux-gnu.so +0 -0
  334. sage/rings/polynomial/polynomial_rational_flint.pxd +20 -0
  335. sage/rings/polynomial/polynomial_rational_flint.pyx +2598 -0
  336. sage/rings/polynomial/polynomial_zmod_flint.cpython-312-aarch64-linux-gnu.so +0 -0
  337. sage/rings/polynomial/polynomial_zmod_flint.pxd +20 -0
  338. sage/rings/polynomial/polynomial_zmod_flint.pyx +1063 -0
  339. sage/rings/polynomial/real_roots.cpython-312-aarch64-linux-gnu.so +0 -0
  340. sage/rings/polynomial/real_roots.pxd +81 -0
  341. sage/rings/polynomial/real_roots.pyx +4704 -0
  342. sage/rings/polynomial/refine_root.cpython-312-aarch64-linux-gnu.so +0 -0
  343. sage/rings/polynomial/refine_root.pyx +142 -0
  344. sage/rings/polynomial/weil/all.py +4 -0
  345. sage/rings/polynomial/weil/power_sums.h +46 -0
  346. sage/rings/polynomial/weil/weil_polynomials.cpython-312-aarch64-linux-gnu.so +0 -0
  347. sage/rings/polynomial/weil/weil_polynomials.pyx +596 -0
  348. sage/rings/qqbar.py +9025 -0
  349. sage/rings/real_arb.cpython-312-aarch64-linux-gnu.so +0 -0
  350. sage/rings/real_arb.pxd +21 -0
  351. sage/rings/real_arb.pyx +4065 -0
  352. sage/rings/real_interval_absolute.cpython-312-aarch64-linux-gnu.so +0 -0
  353. sage/rings/real_interval_absolute.pyx +1073 -0
  354. sage/rings/real_mpfi.cpython-312-aarch64-linux-gnu.so +0 -0
  355. sage/rings/real_mpfi.pyx +5428 -0
  356. sage/schemes/all__sagemath_flint.py +1 -0
  357. sage/schemes/elliptic_curves/all__sagemath_flint.py +1 -0
  358. sage/schemes/elliptic_curves/descent_two_isogeny.cpython-312-aarch64-linux-gnu.so +0 -0
  359. sage/schemes/elliptic_curves/descent_two_isogeny.pyx +1387 -0
  360. sage/schemes/elliptic_curves/descent_two_isogeny_pari.pxd +5 -0
@@ -0,0 +1,500 @@
1
+ # sage_setup: distribution = sagemath-flint
2
+ # distutils: extra_compile_args = -D_XPG6
3
+ """
4
+ FLINT fmpz_poly class wrapper
5
+
6
+ AUTHORS:
7
+
8
+ - Robert Bradshaw (2007-09-15) Initial version.
9
+ - William Stein (2007-10-02) update for new flint; add arithmetic and creation
10
+ of coefficients of arbitrary size.
11
+ """
12
+
13
+ #*****************************************************************************
14
+ # Copyright (C) 2007 Robert Bradshaw <robertwb@math.washington.edu>
15
+ #
16
+ # This program is free software: you can redistribute it and/or modify
17
+ # it under the terms of the GNU General Public License as published by
18
+ # the Free Software Foundation, either version 2 of the License, or
19
+ # (at your option) any later version.
20
+ # http://www.gnu.org/licenses/
21
+ #*****************************************************************************
22
+
23
+ from cpython.sequence cimport *
24
+
25
+ from cysignals.memory cimport sig_free
26
+
27
+ from sage.arith.long cimport pyobject_to_long
28
+ from sage.cpython.string cimport char_to_str, str_to_bytes
29
+ from sage.libs.flint.fmpz cimport *
30
+ from sage.libs.flint.fmpz_poly cimport *
31
+ from sage.structure.sage_object cimport SageObject
32
+ from sage.rings.integer cimport Integer
33
+
34
+ cdef class Fmpz_poly(SageObject):
35
+
36
+ def __cinit__(self):
37
+ fmpz_poly_init(self.poly)
38
+
39
+ def __init__(self, v):
40
+ """
41
+ Construct a new fmpz_poly from a sequence, constant coefficient,
42
+ or string (in the same format as it prints).
43
+
44
+ EXAMPLES::
45
+
46
+ sage: from sage.libs.flint.fmpz_poly_sage import Fmpz_poly
47
+ sage: Fmpz_poly([1,2,3])
48
+ 3 1 2 3
49
+ sage: Fmpz_poly(5)
50
+ 1 5
51
+ sage: Fmpz_poly(str(Fmpz_poly([3,5,7])))
52
+ 3 3 5 7
53
+ """
54
+ cdef Py_ssize_t i
55
+ cdef long c
56
+ cdef Integer w
57
+ if isinstance(v, str):
58
+ if not fmpz_poly_set_str(self.poly, str_to_bytes(v)):
59
+ return
60
+ else:
61
+ raise ValueError("Unable to create Fmpz_poly from that string.")
62
+ if not PySequence_Check(v):
63
+ v = [v]
64
+ try:
65
+ fmpz_poly_set_coeff_si(self.poly, 0, 1)
66
+ fmpz_poly_set_coeff_si(self.poly, 0, 0)
67
+ for i from 0 <= i < len(v):
68
+ #fmpz_poly_set_coeff_si(self.poly, i, v[i])
69
+ w = Integer(v[i])
70
+ fmpz_poly_set_coeff_mpz(self.poly, i, w.value)
71
+ except OverflowError:
72
+ raise ValueError("No fmpz_poly_set_coeff_mpz() method.")
73
+
74
+ def __dealloc__(self):
75
+ fmpz_poly_clear(self.poly)
76
+
77
+ def __setitem__(self, i, value):
78
+ """
79
+ Set the `i`-th item of self, which is the coefficient of the `x^i` term.
80
+
81
+ EXAMPLES::
82
+
83
+ sage: from sage.libs.flint.fmpz_poly_sage import Fmpz_poly
84
+ sage: f = Fmpz_poly(range(10))
85
+ sage: f[7] = 100; f
86
+ 10 0 1 2 3 4 5 6 100 8 9
87
+ sage: f[2] = 10**100000
88
+ sage: f[2] == 10**100000
89
+ True
90
+ """
91
+ if isinstance(value, Integer):
92
+ fmpz_poly_set_coeff_mpz(self.poly, i, (<Integer>value).value)
93
+ else:
94
+ fmpz_poly_set_coeff_si(self.poly, i, value)
95
+
96
+ def __getitem__(self, i):
97
+ """
98
+ Return the `i`-th item of self, which is the coefficient of the `x^i` term.
99
+
100
+ EXAMPLES::
101
+
102
+ sage: from sage.libs.flint.fmpz_poly_sage import Fmpz_poly
103
+ sage: f = Fmpz_poly(range(100))
104
+ sage: f[13]
105
+ 13
106
+ sage: f[200]
107
+ 0
108
+ """
109
+ cdef Integer res = Integer.__new__(Integer)
110
+ fmpz_poly_get_coeff_mpz(res.value, self.poly, i)
111
+ return res
112
+
113
+ def __repr__(self):
114
+ """
115
+ Print ``self`` according to the native FLINT format.
116
+
117
+ EXAMPLES::
118
+
119
+ sage: from sage.libs.flint.fmpz_poly_sage import Fmpz_poly
120
+ sage: f = Fmpz_poly([0,1]); f^7
121
+ 8 0 0 0 0 0 0 0 1
122
+ """
123
+ cdef char* ss = fmpz_poly_get_str(self.poly)
124
+ cdef object s = char_to_str(ss)
125
+ sig_free(ss)
126
+ return s
127
+
128
+ def degree(self):
129
+ """
130
+ The degree of ``self``.
131
+
132
+ EXAMPLES::
133
+
134
+ sage: from sage.libs.flint.fmpz_poly_sage import Fmpz_poly
135
+ sage: f = Fmpz_poly([1,2,3]); f
136
+ 3 1 2 3
137
+ sage: f.degree()
138
+ 2
139
+ sage: Fmpz_poly(range(1000)).degree()
140
+ 999
141
+ sage: Fmpz_poly([2,0]).degree()
142
+ 0
143
+ """
144
+ return fmpz_poly_degree(self.poly)
145
+
146
+ def list(self):
147
+ """
148
+ Return ``self`` as a list of coefficients, lowest terms first.
149
+
150
+ EXAMPLES::
151
+
152
+ sage: from sage.libs.flint.fmpz_poly_sage import Fmpz_poly
153
+ sage: f = Fmpz_poly([2,1,0,-1])
154
+ sage: f.list()
155
+ [2, 1, 0, -1]
156
+ """
157
+ return [self[i] for i in range(self.degree() + 1)]
158
+
159
+ def __add__(left, right):
160
+ """
161
+ Add together two Flint polynomials.
162
+
163
+ EXAMPLES::
164
+
165
+ sage: from sage.libs.flint.fmpz_poly_sage import Fmpz_poly
166
+ sage: Fmpz_poly([1,2,3]) + Fmpz_poly(range(6))
167
+ 6 1 3 5 3 4 5
168
+ """
169
+ if not isinstance(left, Fmpz_poly) or not isinstance(right, Fmpz_poly):
170
+ raise TypeError
171
+ cdef Fmpz_poly res = <Fmpz_poly>Fmpz_poly.__new__(Fmpz_poly)
172
+ fmpz_poly_add(res.poly, (<Fmpz_poly>left).poly, (<Fmpz_poly>right).poly)
173
+ return res
174
+
175
+ def __sub__(left, right):
176
+ """
177
+ Subtract two Flint polynomials.
178
+
179
+ EXAMPLES::
180
+
181
+ sage: from sage.libs.flint.fmpz_poly_sage import Fmpz_poly
182
+ sage: Fmpz_poly([10,2,3]) - Fmpz_poly([4,-2,1])
183
+ 3 6 4 2
184
+ """
185
+ if not isinstance(left, Fmpz_poly) or not isinstance(right, Fmpz_poly):
186
+ raise TypeError
187
+ cdef Fmpz_poly res = <Fmpz_poly>Fmpz_poly.__new__(Fmpz_poly)
188
+ fmpz_poly_sub(res.poly, (<Fmpz_poly>left).poly, (<Fmpz_poly>right).poly)
189
+ return res
190
+
191
+ def __neg__(self):
192
+ """
193
+ Return the negative of ``self``.
194
+
195
+ EXAMPLES::
196
+
197
+ sage: from sage.libs.flint.fmpz_poly_sage import Fmpz_poly
198
+ sage: -Fmpz_poly([2,10,2,3,18,-5])
199
+ 6 -2 -10 -2 -3 -18 5
200
+ """
201
+ cdef Fmpz_poly res = <Fmpz_poly>Fmpz_poly.__new__(Fmpz_poly)
202
+ fmpz_poly_neg(res.poly, self.poly)
203
+ return res
204
+
205
+ def __mul__(left, right):
206
+ """
207
+ Return the product of left and right.
208
+
209
+ EXAMPLES::
210
+
211
+ sage: from sage.libs.flint.fmpz_poly_sage import Fmpz_poly
212
+ sage: f = Fmpz_poly([0,1]); g = Fmpz_poly([2,3,4])
213
+ sage: f*g
214
+ 4 0 2 3 4
215
+ sage: f = Fmpz_poly([1,0,-1]); g = Fmpz_poly([2,3,4])
216
+ sage: f*g
217
+ 5 2 3 2 -3 -4
218
+
219
+ Scalar multiplication
220
+ sage: f * 3
221
+ 3 3 0 -3
222
+ sage: f * 5r
223
+ 3 5 0 -5
224
+ """
225
+ cdef Fmpz_poly res = <Fmpz_poly>Fmpz_poly.__new__(Fmpz_poly)
226
+ if not isinstance(left, Fmpz_poly) or not isinstance(right, Fmpz_poly):
227
+ if isinstance(left, int):
228
+ fmpz_poly_scalar_mul_si(res.poly, (<Fmpz_poly>right).poly, left)
229
+ elif isinstance(left, Integer):
230
+ fmpz_poly_scalar_mul_mpz(res.poly, (<Fmpz_poly>right).poly, (<Integer>left).value)
231
+ elif isinstance(right, int):
232
+ fmpz_poly_scalar_mul_si(res.poly, (<Fmpz_poly>left).poly, right)
233
+ elif isinstance(right, Integer):
234
+ fmpz_poly_scalar_mul_mpz(res.poly, (<Fmpz_poly>left).poly, (<Integer>right).value)
235
+ else:
236
+ raise TypeError
237
+ else:
238
+ fmpz_poly_mul(res.poly, (<Fmpz_poly>left).poly, (<Fmpz_poly>right).poly)
239
+ return res
240
+
241
+ def __pow__(self, n, dummy):
242
+ """
243
+ Return ``self`` raised to the power of `n`.
244
+
245
+ EXAMPLES::
246
+
247
+ sage: from sage.libs.flint.fmpz_poly_sage import Fmpz_poly
248
+ sage: f = Fmpz_poly([1,1])
249
+ sage: f**6
250
+ 7 1 6 15 20 15 6 1
251
+ sage: f = Fmpz_poly([2])
252
+ sage: f^150
253
+ 1 1427247692705959881058285969449495136382746624
254
+ sage: 2^150
255
+ 1427247692705959881058285969449495136382746624
256
+
257
+ sage: f**(3/2)
258
+ Traceback (most recent call last):
259
+ ...
260
+ TypeError: unable to convert rational 3/2 to an integer
261
+ """
262
+ cdef long nn = pyobject_to_long(n)
263
+ if not isinstance(self, Fmpz_poly):
264
+ raise TypeError
265
+ cdef Fmpz_poly res = <Fmpz_poly>Fmpz_poly.__new__(Fmpz_poly)
266
+ fmpz_poly_pow(res.poly, (<Fmpz_poly>self).poly, nn)
267
+ return res
268
+
269
+ def pow_truncate(self, exp, n):
270
+ """
271
+ Return ``self`` raised to the power of ``exp`` mod `x^n`.
272
+
273
+ EXAMPLES::
274
+
275
+ sage: from sage.libs.flint.fmpz_poly_sage import Fmpz_poly
276
+ sage: f = Fmpz_poly([1,2])
277
+ sage: f.pow_truncate(10,3)
278
+ 3 1 20 180
279
+ sage: f.pow_truncate(1000,3)
280
+ 3 1 2000 1998000
281
+ """
282
+ if exp < 0:
283
+ raise ValueError("Exponent must be at least 0")
284
+ if n < 0:
285
+ raise ValueError("Exponent must be at least 0")
286
+ cdef long exp_c = exp, nn = n
287
+ cdef Fmpz_poly res = <Fmpz_poly>Fmpz_poly.__new__(Fmpz_poly)
288
+ fmpz_poly_pow_trunc(res.poly, (<Fmpz_poly>self).poly, exp_c, nn)
289
+ return res
290
+
291
+ def __floordiv__(left, right):
292
+ """
293
+ Return left // right, truncated.
294
+
295
+ EXAMPLES::
296
+
297
+ sage: from sage.libs.flint.fmpz_poly_sage import Fmpz_poly
298
+ sage: f = Fmpz_poly([3,4,5])
299
+ sage: g = f^5; g
300
+ 11 243 1620 6345 16560 32190 47224 53650 46000 29375 12500 3125
301
+ sage: g // f
302
+ 9 81 432 1404 2928 4486 4880 3900 2000 625
303
+ sage: f^4
304
+ 9 81 432 1404 2928 4486 4880 3900 2000 625
305
+ """
306
+ if not isinstance(left, Fmpz_poly) or not isinstance(right, Fmpz_poly):
307
+ raise TypeError
308
+ cdef Fmpz_poly res = <Fmpz_poly>Fmpz_poly.__new__(Fmpz_poly)
309
+ fmpz_poly_div(res.poly, (<Fmpz_poly>left).poly, (<Fmpz_poly>right).poly)
310
+ return res
311
+
312
+ def div_rem(self, Fmpz_poly other):
313
+ """
314
+ Return ``self / other, self % other``.
315
+
316
+ EXAMPLES::
317
+
318
+ sage: from sage.libs.flint.fmpz_poly_sage import Fmpz_poly
319
+ sage: f = Fmpz_poly([1,3,4,5])
320
+ sage: g = f^23
321
+ sage: g.div_rem(f)[1]
322
+ 0
323
+ sage: g.div_rem(f)[0] - f^22
324
+ 0
325
+ sage: f = Fmpz_poly([1..10])
326
+ sage: g = Fmpz_poly([1,3,5])
327
+ sage: q, r = f.div_rem(g)
328
+ sage: q*f+r
329
+ 17 1 2 3 4 4 4 10 11 17 18 22 26 30 23 26 18 20
330
+ sage: g
331
+ 3 1 3 5
332
+ sage: q*g+r
333
+ 10 1 2 3 4 5 6 7 8 9 10
334
+ """
335
+ cdef Fmpz_poly Q = <Fmpz_poly>Fmpz_poly.__new__(Fmpz_poly)
336
+ cdef Fmpz_poly R = <Fmpz_poly>Fmpz_poly.__new__(Fmpz_poly)
337
+ fmpz_poly_divrem(Q.poly, R.poly, self.poly, other.poly)
338
+ return Q, R
339
+
340
+ def left_shift(self, unsigned long n):
341
+ """
342
+ Left shift ``self`` by `n`.
343
+
344
+ EXAMPLES::
345
+
346
+ sage: from sage.libs.flint.fmpz_poly_sage import Fmpz_poly
347
+ sage: f = Fmpz_poly([1,2])
348
+ sage: f.left_shift(1).list() == [0,1,2]
349
+ True
350
+ """
351
+ cdef Fmpz_poly res = <Fmpz_poly>Fmpz_poly.__new__(Fmpz_poly)
352
+
353
+ fmpz_poly_shift_left(res.poly, self.poly, n)
354
+
355
+ return res
356
+
357
+ def right_shift(self, unsigned long n):
358
+ """
359
+ Right shift ``self`` by `n`.
360
+
361
+ EXAMPLES::
362
+
363
+ sage: from sage.libs.flint.fmpz_poly_sage import Fmpz_poly
364
+ sage: f = Fmpz_poly([1,2])
365
+ sage: f.right_shift(1).list() == [2]
366
+ True
367
+ """
368
+ cdef Fmpz_poly res = <Fmpz_poly>Fmpz_poly.__new__(Fmpz_poly)
369
+
370
+ fmpz_poly_shift_right(res.poly, self.poly, n)
371
+
372
+ return res
373
+
374
+ def pseudo_div(self, Fmpz_poly other):
375
+ cdef ulong d
376
+ cdef Fmpz_poly Q = <Fmpz_poly>Fmpz_poly.__new__(Fmpz_poly)
377
+ fmpz_poly_pseudo_div(Q.poly, &d, self.poly, other.poly)
378
+ return Q, d
379
+
380
+ def pseudo_div_rem(self, Fmpz_poly other):
381
+ cdef ulong d
382
+ cdef Fmpz_poly Q = <Fmpz_poly>Fmpz_poly.__new__(Fmpz_poly)
383
+ cdef Fmpz_poly R = <Fmpz_poly>Fmpz_poly.__new__(Fmpz_poly)
384
+ fmpz_poly_pseudo_divrem(Q.poly, R.poly, &d, self.poly, other.poly)
385
+ return Q, R, d
386
+
387
+ def derivative(self):
388
+ """
389
+ Return the derivative of ``self``.
390
+
391
+ EXAMPLES::
392
+
393
+ sage: from sage.libs.flint.fmpz_poly_sage import Fmpz_poly
394
+ sage: f = Fmpz_poly([1,2,6])
395
+ sage: f.derivative().list() == [2, 12]
396
+ True
397
+ """
398
+ cdef Fmpz_poly res = <Fmpz_poly>Fmpz_poly.__new__(Fmpz_poly)
399
+
400
+ fmpz_poly_derivative(res.poly, self.poly)
401
+
402
+ return res
403
+
404
+ def __copy__(self):
405
+ cdef Fmpz_poly res = <Fmpz_poly>Fmpz_poly.__new__(Fmpz_poly)
406
+ fmpz_poly_set(res.poly, self.poly)
407
+ return res
408
+
409
+ def truncate(self, n):
410
+ """
411
+ Return the truncation of ``self`` at degree `n`.
412
+
413
+ EXAMPLES::
414
+
415
+ sage: from sage.libs.flint.fmpz_poly_sage import Fmpz_poly
416
+ sage: f = Fmpz_poly([1,1])
417
+ sage: g = f**10; g
418
+ 11 1 10 45 120 210 252 210 120 45 10 1
419
+ sage: g.truncate(5)
420
+ 5 1 10 45 120 210
421
+ """
422
+ cdef Fmpz_poly g = self.__copy__()
423
+ fmpz_poly_truncate(g.poly, n)
424
+ return g
425
+
426
+ def _unsafe_mutate_truncate(self, n):
427
+ """
428
+ Return the truncation of ``self`` at degree `n`.
429
+
430
+ Don't do this unless you know there are no other references to
431
+ this polynomial!!!!!
432
+
433
+ EXAMPLES::
434
+
435
+ sage: from sage.libs.flint.fmpz_poly_sage import Fmpz_poly
436
+ sage: f = Fmpz_poly([1,1])
437
+ sage: g = f**10; g
438
+ 11 1 10 45 120 210 252 210 120 45 10 1
439
+ sage: g._unsafe_mutate_truncate(5); g
440
+ 5 1 10 45 120 210
441
+ """
442
+ cdef long nn = n
443
+ fmpz_poly_truncate(self.poly, nn) # mutating!
444
+
445
+ def _sage_(self, var='x'):
446
+ """
447
+ Return ``self`` as an element of the sage ``ZZ[var]``.
448
+
449
+ EXAMPLES::
450
+
451
+ sage: from sage.libs.flint.fmpz_poly_sage import Fmpz_poly
452
+ sage: f = Fmpz_poly([1,1])
453
+ sage: f._sage_('t')
454
+ t + 1
455
+ sage: Fmpz_poly([-1,0,0,1])._sage_()
456
+ x^3 - 1
457
+ """
458
+ from sage.rings.integer_ring import ZZ
459
+ return ZZ[var](self.list())
460
+
461
+
462
+ # Functions removed from flint but still needed in Sage. Code adapted from
463
+ # earlier versions of flint.
464
+
465
+ cdef void fmpz_poly_scalar_mul_mpz(fmpz_poly_t rop, const fmpz_poly_t op, const mpz_t c) noexcept:
466
+ cdef fmpz_t f
467
+ fmpz_init_set_readonly(f, c)
468
+ fmpz_poly_scalar_mul_fmpz(rop, op, f)
469
+ fmpz_clear_readonly(f)
470
+
471
+ cdef void fmpz_poly_scalar_divexact_mpz(fmpz_poly_t rop, const fmpz_poly_t op, const mpz_t c) noexcept:
472
+ cdef fmpz_t f
473
+ fmpz_init_set_readonly(f, c)
474
+ fmpz_poly_scalar_divexact_fmpz(rop, op, f)
475
+ fmpz_clear_readonly(f)
476
+
477
+ cdef void fmpz_poly_scalar_fdiv_mpz(fmpz_poly_t rop, const fmpz_poly_t op, const mpz_t c) noexcept:
478
+ cdef fmpz_t f
479
+ fmpz_init_set_readonly(f, c)
480
+ fmpz_poly_scalar_fdiv_fmpz(rop, op, f)
481
+ fmpz_clear_readonly(f)
482
+
483
+ cdef void fmpz_poly_set_coeff_mpz(fmpz_poly_t poly, slong n, const mpz_t x) noexcept:
484
+ cdef fmpz_t t
485
+ fmpz_init_set_readonly(t, x)
486
+ fmpz_poly_set_coeff_fmpz(poly, n, t)
487
+ fmpz_clear_readonly(t)
488
+
489
+ cdef void fmpz_poly_get_coeff_mpz(mpz_t x, const fmpz_poly_t poly, slong n) noexcept:
490
+ cdef fmpz_t t
491
+ fmpz_init(t)
492
+ fmpz_poly_get_coeff_fmpz(t, poly, n)
493
+ fmpz_get_mpz(x, t)
494
+ fmpz_clear(t)
495
+
496
+ cdef void fmpz_poly_set_mpz(fmpz_poly_t poly, const mpz_t x) noexcept:
497
+ fmpz_poly_fit_length(poly, 1)
498
+ fmpz_set_mpz(poly.coeffs, x)
499
+ _fmpz_poly_set_length(poly, 1)
500
+ _fmpz_poly_normalise(poly)
@@ -0,0 +1,80 @@
1
+ # sage_setup: distribution = sagemath-flint
2
+ # distutils: libraries = flint
3
+ # distutils: depends = flint/fmpz_vec.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
+ fmpz * _fmpz_vec_init(slong len) noexcept
19
+ void _fmpz_vec_clear(fmpz * vec, slong len) noexcept
20
+ void _fmpz_vec_randtest(fmpz * f, flint_rand_t state, slong len, flint_bitcnt_t bits) noexcept
21
+ void _fmpz_vec_randtest_unsigned(fmpz * f, flint_rand_t state, slong len, flint_bitcnt_t bits) noexcept
22
+ slong _fmpz_vec_max_bits(const fmpz * vec, slong len) noexcept
23
+ slong _fmpz_vec_max_bits_ref(const fmpz * vec, slong len) noexcept
24
+ void _fmpz_vec_sum_max_bits(slong * sumabs, slong * maxabs, const fmpz * vec, slong len) noexcept
25
+ mp_size_t _fmpz_vec_max_limbs(const fmpz * vec, slong len) noexcept
26
+ void _fmpz_vec_height(fmpz_t height, const fmpz * vec, slong len) noexcept
27
+ slong _fmpz_vec_height_index(const fmpz * vec, slong len) noexcept
28
+ int _fmpz_vec_fread(FILE * file, fmpz ** vec, slong * len) noexcept
29
+ int _fmpz_vec_read(fmpz ** vec, slong * len) noexcept
30
+ int _fmpz_vec_fprint(FILE * file, const fmpz * vec, slong len) noexcept
31
+ int _fmpz_vec_print(const fmpz * vec, slong len) noexcept
32
+ void _fmpz_vec_get_nmod_vec(mp_ptr res, const fmpz * poly, slong len, nmod_t mod) noexcept
33
+ void _fmpz_vec_set_nmod_vec(fmpz * res, mp_srcptr poly, slong len, nmod_t mod) noexcept
34
+ void _fmpz_vec_get_fft(mp_limb_t ** coeffs_f, const fmpz * coeffs_m, slong l, slong length) noexcept
35
+ void _fmpz_vec_set_fft(fmpz * coeffs_m, slong length, const mp_ptr * coeffs_f, slong limbs, slong sign) noexcept
36
+ slong _fmpz_vec_get_d_vec_2exp(double * appv, const fmpz * vec, slong len) noexcept
37
+ void _fmpz_vec_set(fmpz * vec1, const fmpz * vec2, slong len2) noexcept
38
+ void _fmpz_vec_swap(fmpz * vec1, fmpz * vec2, slong len2) noexcept
39
+ void _fmpz_vec_zero(fmpz * vec, slong len) noexcept
40
+ void _fmpz_vec_neg(fmpz * vec1, const fmpz * vec2, slong len2) noexcept
41
+ void _fmpz_vec_scalar_abs(fmpz * vec1, const fmpz * vec2, slong len2) noexcept
42
+ bint _fmpz_vec_equal(const fmpz * vec1, const fmpz * vec2, slong len) noexcept
43
+ bint _fmpz_vec_is_zero(const fmpz * vec, slong len) noexcept
44
+ void _fmpz_vec_max(fmpz * vec1, const fmpz * vec2, const fmpz * vec3, slong len) noexcept
45
+ void _fmpz_vec_max_inplace(fmpz * vec1, const fmpz * vec2, slong len) noexcept
46
+ void _fmpz_vec_sort(fmpz * vec, slong len) noexcept
47
+ void _fmpz_vec_add(fmpz * res, const fmpz * vec1, const fmpz * vec2, slong len2) noexcept
48
+ void _fmpz_vec_sub(fmpz * res, const fmpz * vec1, const fmpz * vec2, slong len2) noexcept
49
+ void _fmpz_vec_scalar_mul_fmpz(fmpz * vec1, const fmpz * vec2, slong len2, const fmpz_t x) noexcept
50
+ void _fmpz_vec_scalar_mul_si(fmpz * vec1, const fmpz * vec2, slong len2, slong c) noexcept
51
+ void _fmpz_vec_scalar_mul_ui(fmpz * vec1, const fmpz * vec2, slong len2, ulong c) noexcept
52
+ void _fmpz_vec_scalar_mul_2exp(fmpz * vec1, const fmpz * vec2, slong len2, ulong exp) noexcept
53
+ void _fmpz_vec_scalar_divexact_fmpz(fmpz * vec1, const fmpz * vec2, slong len2, const fmpz_t x) noexcept
54
+ void _fmpz_vec_scalar_divexact_si(fmpz * vec1, const fmpz * vec2, slong len2, slong c) noexcept
55
+ void _fmpz_vec_scalar_divexact_ui(fmpz * vec1, const fmpz * vec2, slong len2, ulong c) noexcept
56
+ void _fmpz_vec_scalar_fdiv_q_fmpz(fmpz * vec1, const fmpz * vec2, slong len2, const fmpz_t c) noexcept
57
+ void _fmpz_vec_scalar_fdiv_q_si(fmpz * vec1, const fmpz * vec2, slong len2, slong c) noexcept
58
+ void _fmpz_vec_scalar_fdiv_q_ui(fmpz * vec1, const fmpz * vec2, slong len2, ulong c) noexcept
59
+ void _fmpz_vec_scalar_fdiv_q_2exp(fmpz * vec1, const fmpz * vec2, slong len2, ulong exp) noexcept
60
+ void _fmpz_vec_scalar_fdiv_r_2exp(fmpz * vec1, const fmpz * vec2, slong len2, ulong exp) noexcept
61
+ void _fmpz_vec_scalar_tdiv_q_fmpz(fmpz * vec1, const fmpz * vec2, slong len2, const fmpz_t c) noexcept
62
+ void _fmpz_vec_scalar_tdiv_q_si(fmpz * vec1, const fmpz * vec2, slong len2, slong c) noexcept
63
+ void _fmpz_vec_scalar_tdiv_q_ui(fmpz * vec1, const fmpz * vec2, slong len2, ulong c) noexcept
64
+ void _fmpz_vec_scalar_tdiv_q_2exp(fmpz * vec1, const fmpz * vec2, slong len2, ulong exp) noexcept
65
+ void _fmpz_vec_scalar_addmul_si(fmpz * vec1, const fmpz * vec2, slong len2, slong c) noexcept
66
+ void _fmpz_vec_scalar_addmul_ui(fmpz * vec1, const fmpz * vec2, slong len2, ulong c) noexcept
67
+ void _fmpz_vec_scalar_addmul_fmpz(fmpz * vec1, const fmpz * vec2, slong len2, const fmpz_t c) noexcept
68
+ void _fmpz_vec_scalar_addmul_si_2exp(fmpz * vec1, const fmpz * vec2, slong len2, slong c, ulong exp) noexcept
69
+ void _fmpz_vec_scalar_submul_fmpz(fmpz * vec1, const fmpz * vec2, slong len2, const fmpz_t x) noexcept
70
+ void _fmpz_vec_scalar_submul_si(fmpz * vec1, const fmpz * vec2, slong len2, slong c) noexcept
71
+ void _fmpz_vec_scalar_submul_si_2exp(fmpz * vec1, const fmpz * vec2, slong len2, slong c, ulong e) noexcept
72
+ void _fmpz_vec_sum(fmpz_t res, const fmpz * vec, slong len) noexcept
73
+ void _fmpz_vec_prod(fmpz_t res, const fmpz * vec, slong len) noexcept
74
+ void _fmpz_vec_scalar_mod_fmpz(fmpz * res, const fmpz * vec, slong len, const fmpz_t p) noexcept
75
+ void _fmpz_vec_scalar_smod_fmpz(fmpz * res, const fmpz * vec, slong len, const fmpz_t p) noexcept
76
+ void _fmpz_vec_content(fmpz_t res, const fmpz * vec, slong len) noexcept
77
+ void _fmpz_vec_content_chained(fmpz_t res, const fmpz * vec, slong len, const fmpz_t input) noexcept
78
+ void _fmpz_vec_lcm(fmpz_t res, const fmpz * vec, slong len) noexcept
79
+ void _fmpz_vec_dot(fmpz_t res, const fmpz * vec1, const fmpz * vec2, slong len2) noexcept
80
+ void _fmpz_vec_dot_ptr(fmpz_t res, const fmpz * vec1, fmpz ** const vec2, slong offset, slong len) noexcept
@@ -0,0 +1,52 @@
1
+ # sage_setup: distribution = sagemath-flint
2
+ # distutils: libraries = flint
3
+ # distutils: depends = flint/fmpzi.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 fmpzi_init(fmpzi_t x) noexcept
19
+ void fmpzi_clear(fmpzi_t x) noexcept
20
+ void fmpzi_swap(fmpzi_t x, fmpzi_t y) noexcept
21
+ void fmpzi_zero(fmpzi_t x) noexcept
22
+ void fmpzi_one(fmpzi_t x) noexcept
23
+ void fmpzi_set(fmpzi_t res, const fmpzi_t x) noexcept
24
+ void fmpzi_set_si_si(fmpzi_t res, slong a, slong b) noexcept
25
+ void fmpzi_print(const fmpzi_t x) noexcept
26
+ void fmpzi_randtest(fmpzi_t res, flint_rand_t state, mp_bitcnt_t bits) noexcept
27
+ bint fmpzi_equal(const fmpzi_t x, const fmpzi_t y) noexcept
28
+ bint fmpzi_is_zero(const fmpzi_t x) noexcept
29
+ bint fmpzi_is_one(const fmpzi_t x) noexcept
30
+ bint fmpzi_is_unit(const fmpzi_t x) noexcept
31
+ slong fmpzi_canonical_unit_i_pow(const fmpzi_t x) noexcept
32
+ void fmpzi_canonicalise_unit(fmpzi_t res, const fmpzi_t x) noexcept
33
+ slong fmpzi_bits(const fmpzi_t x) noexcept
34
+ void fmpzi_norm(fmpz_t res, const fmpzi_t x) noexcept
35
+ void fmpzi_conj(fmpzi_t res, const fmpzi_t x) noexcept
36
+ void fmpzi_neg(fmpzi_t res, const fmpzi_t x) noexcept
37
+ void fmpzi_add(fmpzi_t res, const fmpzi_t x, const fmpzi_t y) noexcept
38
+ void fmpzi_sub(fmpzi_t res, const fmpzi_t x, const fmpzi_t y) noexcept
39
+ void fmpzi_sqr(fmpzi_t res, const fmpzi_t x) noexcept
40
+ void fmpzi_mul(fmpzi_t res, const fmpzi_t x, const fmpzi_t y) noexcept
41
+ void fmpzi_pow_ui(fmpzi_t res, const fmpzi_t x, ulong exp) noexcept
42
+ void fmpzi_divexact(fmpzi_t q, const fmpzi_t x, const fmpzi_t y) noexcept
43
+ void fmpzi_divrem(fmpzi_t q, fmpzi_t r, const fmpzi_t x, const fmpzi_t y) noexcept
44
+ void fmpzi_divrem_approx(fmpzi_t q, fmpzi_t r, const fmpzi_t x, const fmpzi_t y) noexcept
45
+ slong fmpzi_remove_one_plus_i(fmpzi_t res, const fmpzi_t x) noexcept
46
+ void fmpzi_gcd_euclidean(fmpzi_t res, const fmpzi_t x, const fmpzi_t y) noexcept
47
+ void fmpzi_gcd_euclidean_improved(fmpzi_t res, const fmpzi_t x, const fmpzi_t y) noexcept
48
+ void fmpzi_gcd_binary(fmpzi_t res, const fmpzi_t x, const fmpzi_t y) noexcept
49
+ void fmpzi_gcd_shortest(fmpzi_t res, const fmpzi_t x, const fmpzi_t y) noexcept
50
+ void fmpzi_gcd(fmpzi_t res, const fmpzi_t x, const fmpzi_t y) noexcept
51
+ bint fmpzi_is_prime(const fmpzi_t n) noexcept
52
+ bint fmpzi_is_probabprime(const fmpzi_t n) noexcept