| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Python extension module wrapping FLINT (Fast Library for Number Theory) and Arb (arbitrary-precision ball arithmetic). Features:
Documentation: http://fredrikj.net/python-flint/
Repository: https://github.com/flintlib/python-flint/
Author: Fredrik Johansson fredrik.johansson@gmail.com
Currently python-flint supports CPython versions 3.9-3.12. For Windows (x86-64) or OSX (x86-64 or arm64) or Linux (x86-64 manylinux_2_17) there are CPython binary wheels for python-flint on PyPI. For these platforms python-flint can be installed simply with pip
pip install python-flint
Alternatively python-flint can be installed using conda
conda install -c conda-forge python-flint
It is also possible to use python-flint with some PyPy versions. Binary wheels are not provided for this on PyPI but can be installed with conda.
For other platforms or architectures installation needs to build from source. First install FLINT 3.0.0. Note that as of python-flint 0.5.0 only this exact version of FLINT will work. In future it is hoped that the version requirement for python-flint will be FLINT >= 3.0.0 but at the time of writing 3.0.0 is the newest version of FLINT that has only been released recently and is the only version that is supported by python-flint.
See here for instructions on building FLINT:
The latest release of Python-FLINT can then be built and installed using:
pip install 'cython>=3' numpy wheel pip install --no-build-isolation python-flint
Python-FLINT can also be installed from a git checkout or a source archive as follows:
pip install 'cython>=3' numpy wheel pip install --no-build-isolation .
A script that builds and installs FLINT and python-flint that is tested on Ubuntu can be found in the git repo here:
See the documentation for further notes on building and installing python-flint:
Import Python-FLINT:
>>> from flint import *
Number-theoretic functions:
>>> fmpz(1000).partitions_p() 24061467864032622473692149727991 >>> fmpq.bernoulli(64) -106783830147866529886385444979142647942017/510
Polynomial arithmetic:
>>> a = fmpz_poly([1,2,3]); b = fmpz_poly([2,3,4]); a.gcd(a * b) 3*x^2 + 2*x + 1 >>> a = fmpz_poly(list(range(10001))); b = fmpz_poly(list(range(10000))); a.gcd(a * b).degree() 10000 >>> x = fmpz_poly([0,1]); ((1-x**2)*(1+x**3)**3*(1+x+2*x)).factor() (-1, [(3*x + 1, 1), (x + (-1), 1), (x^2 + (-1)*x + 1, 3), (x + 1, 4)])
Matrix arithmetic:
>>> fmpz_mat([[1,1],[1,0]]) ** 10 [89, 55] [55, 34] >>> fmpq_mat.hilbert(10,10).det() 1/46206893947914691316295628839036278726983680000000000
Numerical evaluation:
>>> showgood(lambda: (arb.pi() * arb(163).sqrt()).exp() - 640320**3 - 744, dps=25) -7.499274028018143111206461e-13 >>> showgood(lambda: (arb.pi() * 10**100 + arb(1)/1000).sin(), dps=25) 0.0009999998333333416666664683
Numerical integration:
>>> ctx.dps = 30 >>> acb.integral(lambda x, _: (-x**2).exp(), -100, 100) ** 2 [3.141592653589793238462643383 +/- 3.11e-28]
0.5.0
Important compatibility changes:
New features:
Bug fixes:
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
Python-FLINT is licensed MIT. FLINT and Arb are LGPL v2.1+.
| Back | FazBrowse Home | New Git URL |