Haskell bindings for the flint library for number theory.
This library provides access to the functionality of the FLINT. FLINT is a C library for doing number theory, freely available under the GNU LGPL. At its core, FLINT provides arithmetic in standard rings such as the integers, rationals, algebraic, real, complex and p-adic numbers, finite fields, and number fields. It also provides polynomials (univariate and multivariate), power series, and matrices. FLINT has been used for many large scale research computations (e.g. A Trillion Triangles) and has been cited in hundreds of publications. FLINT's authors themselves have published more than 20 papers describing new algorithms first implemented within or on top of FLINT.
Flint2
Flint2 provides a thin Haskell wrapper for Flint C-library.
Installation
Install the C-library available from Flint. There are packages available for various operating systems.
Install the Haskell interface with
cabal install Flint2 --lib
The depencies are minimal. Flint2 relies on just three libraries: QuickCheck, groups, containers.
Quick Start
A simple example for the application of the library is the factorization of $2^{256}-1$:
import Data.Number.Flint
main = print $ factor (2^256 - 1 :: Fmpz)
runnnig main prints
[(3,1),(5,1),(17,1),(257,1),(641,1),(65537,1),(274177,1),(6700417,1),(67280421310721,1),(59649589127497217,1),(5704689200685129054721,1)]
examples can be found soon in Flint2-Examples.