python-flint 0.6.0 released

29 views
Skip to first unread message

Oscar Benjamin

unread,
Feb 2, 2024, 10:53:27 AMFeb 2
to flint...@googlegroups.com, sympy, sage-...@googlegroups.com
Hi all,

Yesterday I pushed a new release of python-flint version 0.6.0 to
PyPI. I expect that this release will appear in conda soon as well.
The new release can be installed with

pip install --upgrade python-flint

As in previous releases there are binary wheels available for CPython
3.9-3.12 for Windows, OSX (intel and arm) and Linux. Conda has
packages for other architectures and also for PyPy.

Thanks to Matthias Koeppe python-flint 0.6.0 is now included in the
list of packages available in pyodide so a WASM build of python-flint
can be used in a web browser (I'm not sure if a new pyodide release is
needed before that would actually work though...):

https://pyodide.org/en/latest/usage/packages-in-pyodide.html

After installing python-flint you can run the tests with

python -m flint.test

Please report any issues with python-flint to GitHub:

https://github.com/flintlib/python-flint/issues

The python-flint library is a Cython-based wrapper library providing
Python bindings for Flint. More information here:

https://github.com/flintlib/python-flint

These docs are out of date but I will put up some new docs somewhere
else (maybe readthedocs) soon:

https://fredrikj.net/python-flint/

Changes in 0.6.0:

- After the fmpz_mod and fmpz_mod_poly types were added in 0.5.0 the
fmpz_mod_mat type was added in 0.6.0. This provides matrices of
integers mod n for arbitrarily large n. Various other matrix methods
were made complete/consistent across the different matrix types.

- Division like a / b now means exact division for all non-field types
so e.g. fmpz(4)/fmpz(2) gives fmpz(2) but fmpz(5)/fmpz(2) will raise
DomainError. This applies to dividing fmpz, fmpz_mat/fmpz and all
exact poly types (fmpz_poly, fmpq_poly, nmod_poly, fmpz_mod_poly).
Previously most of these would just give TypeError but one or two
cases would convert to fmpq implicitly. Now there are no such implicit
conversions.

- The version of Flint that is tested and bundled is now Flint 3.0.1
rather than Flint 3.0.0 but either version should work. Earlier
versions of Flint (e.g. 2.9) are not supported.

- python-flint now has a pyproject.toml as expected in modern Python
packaging (thanks to Matthias Koeppe). This means that when building
from source tools like pip can obtain the build dependencies
automatically without needing to use --no-build-isolation.

There are many other features in Flint not yet exposed in
python-flint. Contributions are welcome from anyone who would like to
see more added!

--
Oscar
Reply all
Reply to author
Forward
0 new messages