Hi all,

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

   pip install python-flint

There are binary wheels available for CPython 3.9-3.12 for Windows,
OSX (intel and arm) and Linux. I'm not sure when conda will have
python-flint 0.5.0 but for previous releases of python-flint conda has
had packages for other architectures and also for PyPy.

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/

Important compatibility changes in 0.5.0:

- python-flint 0.5.0 requires Flint 3.0.0 which was only released a
few days ago so if building python-flint from source then you will
certainly need to build Flint from source as well (this is not an
issue if you install via pip/conda)
- python-flint 0.5.0 adds support for Python 3.12 (setuptools is
required when building for 3.12).

New features in 0.5.0:

- Flint's fmpz_mod type is added which provides arithmetic for
integers modulo n for large n
- Discrete logarithm calculations for fmpz_mod are added.
- Flint's fmpz_mod_poly type is added which implements univariate
polynomials over fmpz_mod.

Previous releases of python-flint had Flint's nmod and nmod_poly types
which are similar to fmpz_mod and fmpz_mod_poly but are only for "word
size" modulus (n smaller than 2^64). The addition of the fmpz_mod and
fmpz_mod_poly types extends this to arbitrarily large moduli.

There were a few other smaller changes but I will just mention:

- A bug giving wrong results when mixing types in a 3-arg pow like
pow(int, int, fmpz) is fixed.
- Some minor changes are made to the nmod type to make its arithmetic
more complete.

Many thanks to Giacomo (Jack) Pope and David Einstein who have been
working on python-flint during the last few releases and also for
0.5.0. Just to note two big things:

- David has completely refactored the codebase, reorganising
everything into separate modules and developed a semi-automated way
for generating the Cython bindings to Flint by parsing Flint's doc
sources.
- Jack added the fmpz_mod and fmpz_mod_poly types and the discrete log
functionality.

Ongoing work is that Jack is working on adding Flint's finite fields
types (fq etc) to python-flint. Adding fmpz_mod and fmpz_mod_poly was
a prerequisite for finite fields. David is working on adding Flint's
multivariate polynomials, specifically fmpz_mpoly and fmpq_mpoly to
python-flint although that is not quite ready for this release. It is
also very likely that there will be some work soon on supporting
Flint's generic ring types in python-flint.

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

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-devel/CAHVvXxRxCRW%2BMuYwBML4cR%3DbkozkBu4OgYu95HQ6o6fMfa5SuA%40mail.gmail.com.

Reply via email to