Flint2: Haskell bindings for the flint library for number theory

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain] [Publish]

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.


[Skip to Readme]

Properties

Versions 0.1.0.0, 0.1.0.1, 0.1.0.2, 0.1.0.3, 0.1.0.4, 0.1.0.5, 0.1.0.5
Change log ChangeLog.md
Dependencies base (>=4.7 && <5), containers (>=0.6.5 && <0.7), groups (>=0.5.3 && <0.6), QuickCheck (>=2.14.3 && <2.15) [details]
License GPL-2.0-only
Copyright Copyright (c) 2023 Hartmut Monien
Author Hartmut Monien
Maintainer hmonien@uni-bonn.de
Category Math
Home page https://github.com/monien/Flint2#readme
Bug tracker https://github.com/monien/Flint2/issues
Source repo head: git clone https://github.com/monien/Flint2
Uploaded by monien at 2024-01-19T13:35:31Z

Modules

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Readme for Flint2-0.1.0.5

[back to package description]

examples of complex_plot in Flint2-examples

Flint2

Flint2 provides a thin Haskell wrapper for Flint C-library.

Installation

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