Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 13 additions & 7 deletions bin/rst_to_pxd.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
import re
import sys
import os
import fnmatch
import argparse
from pathlib import Path

"""
This is relatively rudimentary, but works for the purpose intended
Expand Down Expand Up @@ -89,14 +89,20 @@ def fill_import_dict(pyflintlibdir):
"""
Get a map from cython structs to the pxd that defines them
"""
import_dict.clear()
import_dict['fmpq_struct'] = 'types.fmpq'

with os.scandir(pyflintlibdir + '/types') as entry:
for f in entry:
if fnmatch.fnmatch(f.name, "*.pxd"):
with open(f.path) as pxd:
for t in get_cython_struct_types(pxd):
import_dict[t] = 'types.' + f.name.split('.')[0]
type_dir = Path(pyflintlibdir) / 'types'
for f in sorted(type_dir.glob("*.pxd")):
with open(f) as pxd:
for t in get_cython_struct_types(pxd):
module = 'types.' + f.stem
if t in import_dict:
raise RuntimeError(
f"Duplicate Cython type definition for {t}: "
f"{import_dict[t]} and {module}"
)
import_dict[t] = module


def undecorate(str):
Expand Down
3 changes: 1 addition & 2 deletions src/flint/flintlib/functions/fmpz_mod_mat.pxd
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
from flint.flintlib.types.flint cimport flint_rand_t, fmpz_struct, fmpz_t, slong, ulong
from flint.flintlib.types.fmpz cimport fmpz_mat_t
from flint.flintlib.types.fmpz_mod cimport fmpz_mod_ctx_t, fmpz_mod_mat_t
from flint.flintlib.types.fmpz_mod_poly cimport fmpz_mod_poly_t
from flint.flintlib.types.fmpz_mod cimport fmpz_mod_ctx_t, fmpz_mod_mat_t, fmpz_mod_poly_t

# unknown type thread_pool_handle

Expand Down
4 changes: 2 additions & 2 deletions src/flint/flintlib/functions/fmpz_mod_poly.pxd
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from flint.flintlib.types.flint cimport flint_rand_t, fmpz_struct, fmpz_t, slong, ulong
from flint.flintlib.types.fmpz cimport fmpz_mat_t, fmpz_poly_struct, fmpz_poly_t
from flint.flintlib.types.fmpz_mod cimport fmpz_mod_ctx_t
from flint.flintlib.types.fmpz_mod_poly cimport fmpz_mod_berlekamp_massey_t, fmpz_mod_poly_frobenius_powers_2exp_t, fmpz_mod_poly_frobenius_powers_t, fmpz_mod_poly_radix_t, fmpz_mod_poly_struct, fmpz_mod_poly_t
from flint.flintlib.types.fmpz_mod cimport fmpz_mod_ctx_t, fmpz_mod_poly_struct, fmpz_mod_poly_t
from flint.flintlib.types.fmpz_mod_poly cimport fmpz_mod_berlekamp_massey_t, fmpz_mod_poly_frobenius_powers_2exp_t, fmpz_mod_poly_frobenius_powers_t, fmpz_mod_poly_radix_t
from flint.flintlib.types.nmod cimport nmod_poly_t

# unknown type FILE
Expand Down
3 changes: 1 addition & 2 deletions src/flint/flintlib/functions/fmpz_mod_poly_factor.pxd
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
from flint.flintlib.types.flint cimport flint_rand_t, fmpz_struct, fmpz_t, slong
from flint.flintlib.types.fmpz cimport fmpz_factor_t
from flint.flintlib.types.fmpz_mod cimport fmpz_mod_ctx_t, fmpz_mod_poly_factor_t
from flint.flintlib.types.fmpz_mod_poly cimport fmpz_mod_poly_t
from flint.flintlib.types.fmpz_mod cimport fmpz_mod_ctx_t, fmpz_mod_poly_factor_t, fmpz_mod_poly_t



Expand Down
3 changes: 1 addition & 2 deletions src/flint/flintlib/functions/fq.pxd
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
from flint.flintlib.types.flint cimport flint_bitcnt_t, flint_rand_t, fmpz_struct, fmpz_t, slong, ulong
from flint.flintlib.types.fmpz cimport fmpz_poly_t
from flint.flintlib.types.fmpz_mod cimport fmpz_mod_ctx_t, fmpz_mod_mat_t
from flint.flintlib.types.fmpz_mod_poly cimport fmpz_mod_poly_t
from flint.flintlib.types.fmpz_mod cimport fmpz_mod_ctx_t, fmpz_mod_mat_t, fmpz_mod_poly_t
from flint.flintlib.types.fq cimport fq_ctx_t, fq_t

# unknown type
Expand Down
3 changes: 1 addition & 2 deletions src/flint/flintlib/functions/fq_default.pxd
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
from flint.flintlib.types.flint cimport flint_rand_t, fmpz_t, slong, ulong
from flint.flintlib.types.fmpz cimport fmpz_poly_t
from flint.flintlib.types.fmpz_mod cimport fmpz_mod_ctx_t
from flint.flintlib.types.fmpz_mod_poly cimport fmpz_mod_poly_t
from flint.flintlib.types.fmpz_mod cimport fmpz_mod_ctx_t, fmpz_mod_poly_t
from flint.flintlib.types.fq_default cimport fq_default_ctx_t, fq_default_t
from flint.flintlib.types.nmod cimport nmod_poly_t

Expand Down
2 changes: 1 addition & 1 deletion src/flint/flintlib/functions/fq_default_poly.pxd
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from flint.flintlib.types.flint cimport flint_rand_t, fmpz_t, slong, ulong
from flint.flintlib.types.fmpz cimport fmpz_poly_t
from flint.flintlib.types.fmpz_mod_poly cimport fmpz_mod_poly_t
from flint.flintlib.types.fmpz_mod cimport fmpz_mod_poly_t
from flint.flintlib.types.fq_default cimport fq_default_ctx_t, fq_default_poly_t, fq_default_t
from flint.flintlib.types.nmod cimport nmod_poly_t

Expand Down
2 changes: 1 addition & 1 deletion src/flint/flintlib/functions/fq_nmod_poly.pxd
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from flint.flintlib.types.flint cimport flint_rand_t, fmpz_t, slong, ulong
from flint.flintlib.types.fmpz_mod_poly cimport fmpz_mod_poly_t
from flint.flintlib.types.fmpz_mod cimport fmpz_mod_poly_t
from flint.flintlib.types.fq_nmod cimport fq_nmod_ctx_t, fq_nmod_mat_t, fq_nmod_poly_t, fq_nmod_struct, fq_nmod_t
from flint.flintlib.types.nmod cimport nmod_poly_t

Expand Down
2 changes: 1 addition & 1 deletion src/flint/flintlib/functions/fq_poly.pxd
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from flint.flintlib.types.flint cimport flint_rand_t, fmpz_t, slong, ulong
from flint.flintlib.types.fmpz_mod_poly cimport fmpz_mod_poly_t
from flint.flintlib.types.fmpz_mod cimport fmpz_mod_poly_t
from flint.flintlib.types.fq cimport fq_ctx_t, fq_mat_t, fq_poly_t, fq_struct, fq_t
from flint.flintlib.types.nmod cimport nmod_poly_t

Expand Down
2 changes: 1 addition & 1 deletion src/flint/flintlib/functions/fq_zech_poly.pxd
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from flint.flintlib.types.flint cimport flint_rand_t, fmpz_t, slong, ulong
from flint.flintlib.types.fmpz_mod_poly cimport fmpz_mod_poly_t
from flint.flintlib.types.fmpz_mod cimport fmpz_mod_poly_t
from flint.flintlib.types.fq_zech cimport fq_zech_ctx_t, fq_zech_mat_t, fq_zech_poly_t, fq_zech_struct, fq_zech_t
from flint.flintlib.types.nmod cimport nmod_poly_t

Expand Down
9 changes: 1 addition & 8 deletions src/flint/flintlib/types/fmpz_mod_poly.pxd
Original file line number Diff line number Diff line change
@@ -1,18 +1,11 @@
from flint.flintlib.types.flint cimport slong, fmpz_struct, fmpz_t
from flint.flintlib.types.fmpz cimport fmpz_mat_struct
from flint.flintlib.types.fmpz_mod cimport fmpz_mod_ctx_struct
from flint.flintlib.types.fmpz_mod cimport fmpz_mod_ctx_struct, fmpz_mod_poly_struct, fmpz_mod_poly_t


cdef extern from "flint/fmpz_mod_poly.h":

# Type definitions *********************************************************/
ctypedef struct fmpz_mod_poly_struct:
fmpz_struct * coeffs
slong alloc
slong length

ctypedef fmpz_mod_poly_struct fmpz_mod_poly_t[1]

ctypedef struct fmpz_mod_poly_res_struct:
fmpz_t res
fmpz_t lc
Expand Down
Loading