Skip to content

Commit 0102d8e

Browse files
author
Release Manager
committed
sagemathgh-36449: Autogenerate flint headers We - write down a script to auto-generate flint header files (currently at https://github.com/videlec/flint-header-sage-autogen) - replace most of the files in `src/sage/libs/flint` by auto-generated files. Doing so, the custom sage code in `src/sage/libs/flint` is always contained in files suffixed by `_sage.pxd`/`_sage.pyx`. - deprecate the files in `src/sage/libs/arb/` ### 📝 Checklist - [x] The title is concise, informative, and self-explanatory. - [x] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### ⌛ Dependencies sagemath#35848 #### Upstream issues and patches - flintlib/flint#1523 - flintlib/flint#1529 - flintlib/flint#1532 - flintlib/flint#1535 - flintlib/flint#1536 - cython/cython#5779 - flintlib/flint#1653 - flintlib/flint#1655 URL: sagemath#36449 Reported by: Vincent Delecroix Reviewer(s): Marc Mezzarobba, Matthias Köppe, Vincent Delecroix
2 parents 38a2b3c + 9ab34ea commit 0102d8e

File tree

216 files changed

+18924
-4577
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

216 files changed

+18924
-4577
lines changed

src/doc/en/reference/libs/index.rst

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,11 @@ FLINT
4242
.. toctree::
4343
:maxdepth: 1
4444

45-
sage/libs/flint/flint
46-
sage/libs/flint/fmpz_poly
47-
sage/libs/flint/arith
48-
sage/libs/flint/qsieve
45+
sage/libs/flint/fmpz_poly_sage
46+
sage/libs/flint/fmpq_poly_sage
47+
sage/libs/flint/arith_sage
48+
sage/libs/flint/qsieve_sage
49+
sage/libs/flint/ulong_extras_sage
4950

5051
Giac
5152
----

src/sage/algebras/quatalg/quaternion_algebra_element.pyx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ from sage.libs.gmp.mpq cimport *
4646
from sage.libs.ntl.convert cimport mpz_to_ZZ, ZZ_to_mpz
4747
from sage.libs.flint.fmpz cimport *
4848
from sage.libs.flint.fmpz_poly cimport *
49+
from sage.libs.flint.fmpz_poly_sage cimport *
4950
from sage.libs.flint.ntl_interface cimport *
5051

5152
# variables for holding temporary values computed in

src/sage/arith/misc.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -375,7 +375,7 @@ def bernoulli(n, algorithm='default', num_threads=1):
375375
if n >= 100000:
376376
from warnings import warn
377377
warn("flint is known to not be accurate for large Bernoulli numbers")
378-
from sage.libs.flint.arith import bernoulli_number as flint_bernoulli
378+
from sage.libs.flint.arith_sage import bernoulli_number as flint_bernoulli
379379
return flint_bernoulli(n)
380380
elif algorithm == 'pari' or algorithm == 'gp':
381381
from sage.libs.pari.all import pari
@@ -6230,7 +6230,7 @@ def dedekind_sum(p, q, algorithm='default'):
62306230
- :wikipedia:`Dedekind\_sum`
62316231
"""
62326232
if algorithm == 'default' or algorithm == 'flint':
6233-
from sage.libs.flint.arith import dedekind_sum as flint_dedekind_sum
6233+
from sage.libs.flint.arith_sage import dedekind_sum as flint_dedekind_sum
62346234
return flint_dedekind_sum(p, q)
62356235

62366236
if algorithm == 'pari':

src/sage/combinat/combinat.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -407,8 +407,8 @@ def bell_number(n, algorithm='flint', **options) -> Integer:
407407
return ZZ(int(ret_mp))
408408

409409
elif algorithm == 'flint':
410-
import sage.libs.flint.arith
411-
return sage.libs.flint.arith.bell_number(n)
410+
import sage.libs.flint.arith_sage
411+
return sage.libs.flint.arith_sage.bell_number(n)
412412

413413
elif algorithm == 'gap':
414414
from sage.libs.gap.libgap import libgap
@@ -576,8 +576,8 @@ def euler_number(n, algorithm='flint') -> Integer:
576576
if algorithm == 'maxima':
577577
return ZZ(maxima.euler(n)) # type:ignore
578578
elif algorithm == 'flint':
579-
import sage.libs.flint.arith
580-
return sage.libs.flint.arith.euler_number(n)
579+
import sage.libs.flint.arith_sage
580+
return sage.libs.flint.arith_sage.euler_number(n)
581581
else:
582582
raise ValueError("algorithm must be 'flint' or 'maxima'")
583583

@@ -906,8 +906,8 @@ def stirling_number1(n, k, algorithm="gap") -> Integer:
906906
from sage.libs.gap.libgap import libgap
907907
return libgap.Stirling1(n, k).sage()
908908
if algorithm == 'flint':
909-
import sage.libs.flint.arith
910-
return sage.libs.flint.arith.stirling_number_1(n, k)
909+
import sage.libs.flint.arith_sage
910+
return sage.libs.flint.arith_sage.stirling_number_1(n, k)
911911
raise ValueError("unknown algorithm: %s" % algorithm)
912912

913913

@@ -1034,8 +1034,8 @@ def stirling_number2(n, k, algorithm=None) -> Integer:
10341034
from sage.libs.gap.libgap import libgap
10351035
return libgap.Stirling2(n, k).sage()
10361036
if algorithm == 'flint':
1037-
import sage.libs.flint.arith
1038-
return sage.libs.flint.arith.stirling_number_2(n, k)
1037+
import sage.libs.flint.arith_sage
1038+
return sage.libs.flint.arith_sage.stirling_number_2(n, k)
10391039
if algorithm == 'maxima':
10401040
return ZZ(maxima.stirling2(n, k)) # type:ignore
10411041
raise ValueError("unknown algorithm: %s" % algorithm)

src/sage/combinat/partition.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,7 @@
284284

285285
from sage.arith.misc import binomial, factorial, gcd, multinomial
286286
from sage.libs.pari.all import pari
287-
from sage.libs.flint.arith import number_of_partitions as flint_number_of_partitions
287+
from sage.libs.flint.arith_sage import number_of_partitions as flint_number_of_partitions
288288
from sage.structure.global_options import GlobalOptions
289289
from sage.structure.parent import Parent
290290
from sage.structure.unique_representation import UniqueRepresentation

src/sage/features/sagemath.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -380,8 +380,8 @@ def __init__(self):
380380
True
381381
"""
382382
JoinFeature.__init__(self, 'sage.libs.flint',
383-
[PythonModule('sage.libs.flint.flint'),
384-
PythonModule('sage.libs.arb.arith')],
383+
[PythonModule('sage.libs.flint.arith_sage'),
384+
PythonModule('sage.libs.flint.flint_sage')],
385385
spkg='sagemath_flint', type='standard')
386386

387387

src/sage/functions/log.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
lazy_import('sage.symbolic.constants', 'pi', as_='const_pi')
2828
lazy_import('sage.rings.complex_double', 'CDF')
2929

30-
lazy_import('sage.libs.flint.arith', 'harmonic_number', as_='_flint_harmonic_number')
30+
lazy_import('sage.libs.flint.arith_sage', 'harmonic_number', as_='_flint_harmonic_number')
3131

3232
lazy_import('sage.libs.mpmath.utils', 'call', as_='_mpmath_utils_call')
3333
lazy_import('mpmath', 'harmonic', as_='_mpmath_harmonic')

src/sage/graphs/matchpoly.pyx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ from sage.rings.integer cimport Integer
4545

4646
from sage.libs.flint.fmpz cimport *
4747
from sage.libs.flint.fmpz_poly cimport *
48+
from sage.libs.flint.fmpz_poly_sage cimport *
49+
4850

4951
x = polygen(ZZ, 'x')
5052

src/sage/interfaces/qsieve.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
from sage.misc.superseded import deprecated_function_alias
2-
import sage.libs.flint.qsieve
2+
import sage.libs.flint.qsieve_sage
33

4-
qsieve = deprecated_function_alias(1, sage.libs.flint.qsieve.qsieve)
4+
qsieve = deprecated_function_alias(1, sage.libs.flint.qsieve_sage.qsieve)

src/sage/libs/all.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,6 @@
1414
lazy_import('sage.libs.eclib.mwrank', 'set_precision', 'mwrank_set_precision')
1515
lazy_import('sage.libs.eclib.mwrank', 'initprimes', 'mwrank_initprimes')
1616

17-
lazy_import('sage.libs.flint.qsieve', 'qsieve')
17+
lazy_import('sage.libs.flint.qsieve_sage', 'qsieve')
1818

1919
lazy_import('sage.libs.giac.giac', 'libgiac')

0 commit comments

Comments
 (0)