-
Notifications
You must be signed in to change notification settings - Fork 27
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
A lower-level interface to Flint #54
Comments
Some others (eg Arblib.jl) have done this by scraping the documentation rather than the header files. |
Thanks for the info. Tell Tims Survey |
If we build a dictionary
might work |
I was imagining a script that would parse all of the docs and generate thousands of functions that are just wrappers around a call to each individual documented Flint function. |
A first step for this is just to have all of the .pxd files generated fully automatically, proving that we are able to automatically parse all of the functions from the docs. In gh-215 I have set this up for all of the |
Currently the python-flint interface to Flint is sort of somewhere between a high-level interface and a lower-level interface. In #53 I mention some ideas related to fleshing out what a more complete higher-level interface might look like. It will take a long time though to design high-level interfaces to all parts of Flint though and those interfaces will always lag behind the features that exist in Flint itself.
Another idea would be to try to add a lower-level interface within python-flint that just directly wraps each individual C type and public C function. There could be Cython types for e.g.
ulong
,slong
,fmpz_t
etc and then Cython functions likefmpz_add
that take these types. The code to use this sort of low-level interface would look exactly like the corresponding C code using Flint's C API with the possible exception that Python's reference counting could be used instead of needing explicit*_free
calls.The advantages of having a low-level interface like this are that:
The text was updated successfully, but these errors were encountered: