Flint2-0.1.0.2: package.yaml
name: Flint2
version: 0.1.0.2
github: "monien/Flint2"
license: GPL-2
author: "Hartmut Monien"
maintainer: "hmonien@uni-bonn.de"
copyright: "Copyright (c) 2023 Hartmut Monien"
category: Math
synopsis: "Haskell bindings for the flint library for number theory"
extra-source-files:
- README.md
- ChangeLog.md
- package.yaml
- stack.yaml
- gpl-2.0.txt
extra-doc-files: docs/*.png
description:
A Haskell Wrapper for Flint
This library provides access to the functionality of the FLINT.
So what is it?
FLINT is a C library for doing number theory, freely
available under the GNU LGPL at
[https://flintlib.org](https://flintlib.org)
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.
At the research frontier
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.
dependencies:
- base >= 4.7 && < 5
library:
source-dirs: src
default-extensions:
- CApiFFI
- ForeignFunctionInterface
- FlexibleInstances
- TupleSections
- RankNTypes
- ScopedTypeVariables
- GADTs
- DataKinds
- TypeFamilies
- TypeOperators
- TypeSynonymInstances
- TypeFamilies
- KindSignatures
- MultiParamTypeClasses
- FunctionalDependencies
exposed-modules:
- Data.Number.Flint
- Data.Number.Flint.Flint
- Data.Number.Flint.Flint.External
- Data.Number.Flint.Flint.Internal
- Data.Number.Flint.MPoly
- Data.Number.Flint.UFD
- Data.Number.Flint.Quotient
# Fmpz
- Data.Number.Flint.Fmpz
- Data.Number.Flint.Fmpz.Instances
- Data.Number.Flint.Fmpz.Arith
- Data.Number.Flint.Fmpz.Factor
- Data.Number.Flint.Fmpz.Mat
- Data.Number.Flint.Fmpz.Mat.Instances
- Data.Number.Flint.Fmpz.Vec
- Data.Number.Flint.Fmpz.Poly
- Data.Number.Flint.Fmpz.Poly.Instances
- Data.Number.Flint.Fmpz.Poly.Factor
- Data.Number.Flint.Fmpz.Poly.Mat
- Data.Number.Flint.Fmpz.Poly.Q
- Data.Number.Flint.Fmpz.Poly.Q.Instances
- Data.Number.Flint.Fmpz.MPoly
- Data.Number.Flint.Fmpz.MPoly.Factor
- Data.Number.Flint.Fmpz.MPoly.Q
- Data.Number.Flint.Fmpz.LLL
- Data.Number.Flint.Fmpz.Mod
- Data.Number.Flint.Fmpz.Mod.Poly
- Data.Number.Flint.Fmpz.Mod.Poly.Factor
- Data.Number.Flint.Fmpz.Mod.MPoly
- Data.Number.Flint.Fmpz.Mod.MPoly.Factor
- Data.Number.Flint.Fmpz.Mod.Mat
- Data.Number.Flint.Fmpz.Mod.Vec
# Fmpq
- Data.Number.Flint.Fmpq
- Data.Number.Flint.Fmpq.Instances
- Data.Number.Flint.Fmpq.Mat
- Data.Number.Flint.Fmpq.Mat.Instances
- Data.Number.Flint.Fmpq.Vec
- Data.Number.Flint.Fmpq.Poly
- Data.Number.Flint.Fmpq.Poly.Instances
- Data.Number.Flint.Fmpq.MPoly
- Data.Number.Flint.Fmpq.MPoly.Factor
# NMod
- Data.Number.Flint.NMod.Types
- Data.Number.Flint.NMod
- Data.Number.Flint.NMod.Poly
- Data.Number.Flint.NMod.Poly.Instances
- Data.Number.Flint.NMod.Poly.Factor
- Data.Number.Flint.NMod.Poly.Mat
- Data.Number.Flint.NMod.MPoly
- Data.Number.Flint.NMod.MPoly.Factor
- Data.Number.Flint.NMod.Mat
- Data.Number.Flint.NMod.Vec
# Groups
- Data.Number.Flint.Groups.Perm
- Data.Number.Flint.Groups.Qfb
- Data.Number.Flint.Groups.Qfb.Instances
- Data.Number.Flint.Groups.Dirichlet
- Data.Number.Flint.Groups.DLog
- Data.Number.Flint.Groups.Bool.Mat
- Data.Number.Flint.Groups.Bool.Mat.Instances
# APRCL
- Data.Number.Flint.APRCL
# FFT
- Data.Number.Flint.FFT
# - Data.Number.Flint.FFT.Small
# QSieve
- Data.Number.Flint.QSieve
# Fq
- Data.Number.Flint.Fq.Types
- Data.Number.Flint.Fq
- Data.Number.Flint.Fq.Embed
- Data.Number.Flint.Fq.Poly
- Data.Number.Flint.Fq.Poly.Factor
- Data.Number.Flint.Fq.Mat
- Data.Number.Flint.Fq.Vec
# Fq NMod
- Data.Number.Flint.Fq.NMod.Types
- Data.Number.Flint.Fq.NMod
- Data.Number.Flint.Fq.NMod.Embed
- Data.Number.Flint.Fq.NMod.Poly
- Data.Number.Flint.Fq.NMod.Poly.Factor
- Data.Number.Flint.Fq.NMod.MPoly
- Data.Number.Flint.Fq.NMod.MPoly.Factor
- Data.Number.Flint.Fq.NMod.Mat
- Data.Number.Flint.Fq.NMod.Vec
# Fq Zech
- Data.Number.Flint.Fq.Zech.Types
- Data.Number.Flint.Fq.Zech
- Data.Number.Flint.Fq.Zech.Embed
- Data.Number.Flint.Fq.Zech.Poly
- Data.Number.Flint.Fq.Zech.Poly.Factor
- Data.Number.Flint.Fq.Zech.Vec
- Data.Number.Flint.Fq.Zech.Mat
# Padic
- Data.Number.Flint.Padic
- Data.Number.Flint.Padic.Poly
- Data.Number.Flint.Padic.Mat
- Data.Number.Flint.Qadic
# Support
- Data.Number.Flint.Support.ULong.Extras
- Data.Number.Flint.Support.D.Extras
- Data.Number.Flint.Support.D.Interval
- Data.Number.Flint.Support.D.Mat
- Data.Number.Flint.Support.D.Mat.Instances
- Data.Number.Flint.Support.D.Vec
- Data.Number.Flint.Support.Mpf.Mat
- Data.Number.Flint.Support.Mpf.Vec
- Data.Number.Flint.Support.Mpfr.Mat
- Data.Number.Flint.Support.Mpfr.Vec
- Data.Number.Flint.ThreadPool
# Arb
- Data.Number.Flint.Arb.Types
- Data.Number.Flint.Arb
- Data.Number.Flint.Arb.Instances
- Data.Number.Flint.Arb.Mag
- Data.Number.Flint.Arb.Mag.Instances
- Data.Number.Flint.Arb.Arf
- Data.Number.Flint.Arb.Poly
- Data.Number.Flint.Arb.Poly.Instances
- Data.Number.Flint.Arb.Fmpz.Poly
- Data.Number.Flint.Arb.Mat
- Data.Number.Flint.Arb.Mat.Instances
- Data.Number.Flint.Arb.Hypgeom
- Data.Number.Flint.Arb.RealField
- Data.Number.Flint.Arb.Calc
- Data.Number.Flint.Arb.FpWrap
# Acb
- Data.Number.Flint.Acb.Types
- Data.Number.Flint.Acb
- Data.Number.Flint.Acb.Instances
- Data.Number.Flint.Acb.Acf
- Data.Number.Flint.Acb.Poly
- Data.Number.Flint.Acb.Poly.Instances
- Data.Number.Flint.Acb.Mat
- Data.Number.Flint.Acb.Mat.Instances
- Data.Number.Flint.Acb.Hypgeom
- Data.Number.Flint.Acb.Elliptic
- Data.Number.Flint.Acb.Modular
- Data.Number.Flint.Acb.Modular.Instances
- Data.Number.Flint.Acb.Dirichlet
- Data.Number.Flint.Acb.DFT
- Data.Number.Flint.Acb.ComplexField
- Data.Number.Flint.Acb.Calc
# Exact real and complex numbers
- Data.Number.Flint.Calcium
- Data.Number.Flint.Calcium.Ca
- Data.Number.Flint.Calcium.Ca.Types
- Data.Number.Flint.Calcium.Ca.Poly
- Data.Number.Flint.Calcium.Ca.Vec
- Data.Number.Flint.Calcium.Ca.Mat
- Data.Number.Flint.Calcium.Ca.Field
- Data.Number.Flint.Calcium.Ca.Ext
- Data.Number.Flint.Calcium.Fexpr
- Data.Number.Flint.Calcium.Fexpr.Instances
- Data.Number.Flint.Calcium.Fexpr.Builtin
# Other
- Data.Number.Flint.Bernoulli
- Data.Number.Flint.Partitions
- Data.Number.Flint.Hypgeom
# NF
- Data.Number.Flint.NF
- Data.Number.Flint.NF.Elem
- Data.Number.Flint.NF.Fmpzi
- Data.Number.Flint.NF.Fmpzi.Instances
- Data.Number.Flint.NF.QQbar
- Data.Number.Flint.NF.QQbar.Instances
other-modules:
- Data.Number.Flint.Flint.FFI
- Data.Number.Flint.Flint.External.GMP.FFI
- Data.Number.Flint.Flint.External.Mpfr.FFI
- Data.Number.Flint.Flint.Internal.FFI
- Data.Number.Flint.MPoly.FFI
# Fmpz
- Data.Number.Flint.Fmpz.FFI
- Data.Number.Flint.Fmpz.Arith.FFI
- Data.Number.Flint.Fmpz.Factor.FFI
- Data.Number.Flint.Fmpz.Mat.FFI
- Data.Number.Flint.Fmpz.Vec.FFI
- Data.Number.Flint.Fmpz.Poly.FFI
- Data.Number.Flint.Fmpz.Poly.Factor.FFI
- Data.Number.Flint.Fmpz.Poly.Mat.FFI
- Data.Number.Flint.Fmpz.Poly.Q.FFI
- Data.Number.Flint.Fmpz.MPoly.FFI
- Data.Number.Flint.Fmpz.MPoly.Factor.FFI
- Data.Number.Flint.Fmpz.MPoly.Q.FFI
- Data.Number.Flint.Fmpz.LLL.FFI
- Data.Number.Flint.Fmpz.Mod.FFI
- Data.Number.Flint.Fmpz.Mod.Poly.FFI
- Data.Number.Flint.Fmpz.Mod.Poly.Factor.FFI
- Data.Number.Flint.Fmpz.Mod.MPoly.FFI
- Data.Number.Flint.Fmpz.Mod.MPoly.Factor.FFI
- Data.Number.Flint.Fmpz.Mod.Mat.FFI
- Data.Number.Flint.Fmpz.Mod.Vec.FFI
# Fmpq
- Data.Number.Flint.Fmpq.FFI
- Data.Number.Flint.Fmpq.Mat.FFI
- Data.Number.Flint.Fmpq.Vec.FFI
- Data.Number.Flint.Fmpq.Poly.FFI
- Data.Number.Flint.Fmpq.MPoly.FFI
- Data.Number.Flint.Fmpq.MPoly.Factor.FFI
# NMod
- Data.Number.Flint.NMod.Types.FFI
- Data.Number.Flint.NMod.FFI
- Data.Number.Flint.NMod.Poly.FFI
- Data.Number.Flint.NMod.Poly.Factor.FFI
- Data.Number.Flint.NMod.Poly.Mat.FFI
- Data.Number.Flint.NMod.MPoly.FFI
- Data.Number.Flint.NMod.MPoly.Factor.FFI
- Data.Number.Flint.NMod.Mat.FFI
- Data.Number.Flint.NMod.Vec.FFI
# Groups
- Data.Number.Flint.Groups.Perm.FFI
- Data.Number.Flint.Groups.Qfb.FFI
- Data.Number.Flint.Groups.Dirichlet.FFI
- Data.Number.Flint.Groups.DLog.FFI
- Data.Number.Flint.Groups.Bool.Mat.FFI
# APRCL
- Data.Number.Flint.APRCL.FFI
# FFT
- Data.Number.Flint.FFT.FFI
# - Data.Number.Flint.FFT.Small.FFI
# Qs
- Data.Number.Flint.QSieve.FFI
# Fq
- Data.Number.Flint.Fq.FFI
- Data.Number.Flint.Fq.Types.FFI
- Data.Number.Flint.Fq.Embed.FFI
- Data.Number.Flint.Fq.Poly.FFI
- Data.Number.Flint.Fq.Poly.Factor.FFI
- Data.Number.Flint.Fq.Mat.FFI
- Data.Number.Flint.Fq.Vec.FFI
# Fq NMod
- Data.Number.Flint.Fq.NMod.FFI
- Data.Number.Flint.Fq.NMod.Embed.FFI
- Data.Number.Flint.Fq.NMod.Types.FFI
- Data.Number.Flint.Fq.NMod.Poly.FFI
- Data.Number.Flint.Fq.NMod.Poly.Factor.FFI
- Data.Number.Flint.Fq.NMod.MPoly.FFI
- Data.Number.Flint.Fq.NMod.MPoly.Factor.FFI
- Data.Number.Flint.Fq.NMod.Mat.FFI
- Data.Number.Flint.Fq.NMod.Vec.FFI
# Fq Zech
- Data.Number.Flint.Fq.Zech.FFI
- Data.Number.Flint.Fq.Zech.Embed.FFI
- Data.Number.Flint.Fq.Zech.Types.FFI
- Data.Number.Flint.Fq.Zech.Poly.FFI
- Data.Number.Flint.Fq.Zech.Poly.Factor.FFI
- Data.Number.Flint.Fq.Zech.Vec.FFI
- Data.Number.Flint.Fq.Zech.Mat.FFI
# Padic
- Data.Number.Flint.Padic.FFI
- Data.Number.Flint.Padic.Poly.FFI
- Data.Number.Flint.Padic.Mat.FFI
- Data.Number.Flint.Qadic.FFI
# Floating-point support code
- Data.Number.Flint.Support.ULong.Extras.FFI
- Data.Number.Flint.Support.D.Extras.FFI
- Data.Number.Flint.Support.D.Interval.FFI
- Data.Number.Flint.Support.D.Mat.FFI
- Data.Number.Flint.Support.D.Vec.FFI
- Data.Number.Flint.Support.Mpf.Mat.FFI
- Data.Number.Flint.Support.Mpf.Vec.FFI
- Data.Number.Flint.Support.Mpfr.Mat.FFI
- Data.Number.Flint.Support.Mpfr.Vec.FFI
# ThreadPool
- Data.Number.Flint.ThreadPool.FFI
# Arb
- Data.Number.Flint.Arb.Types.FFI
- Data.Number.Flint.Arb.FFI
- Data.Number.Flint.Arb.Mag.FFI
- Data.Number.Flint.Arb.Arf.FFI
- Data.Number.Flint.Arb.Poly.FFI
- Data.Number.Flint.Arb.Fmpz.Poly.FFI
- Data.Number.Flint.Arb.Mat.FFI
- Data.Number.Flint.Arb.Hypgeom.FFI
- Data.Number.Flint.Arb.Calc.FFI
- Data.Number.Flint.Arb.FpWrap.FFI
# Acb
- Data.Number.Flint.Acb.Types.FFI
- Data.Number.Flint.Acb.FFI
- Data.Number.Flint.Acb.Acf.FFI
- Data.Number.Flint.Acb.Poly.FFI
- Data.Number.Flint.Acb.Mat.FFI
- Data.Number.Flint.Acb.Hypgeom.FFI
- Data.Number.Flint.Acb.Elliptic.FFI
- Data.Number.Flint.Acb.Modular.FFI
- Data.Number.Flint.Acb.Dirichlet.FFI
- Data.Number.Flint.Acb.DFT.FFI
- Data.Number.Flint.Acb.Calc.FFI
# Calcium
- Data.Number.Flint.Calcium.FFI
- Data.Number.Flint.Calcium.Ca.FFI
- Data.Number.Flint.Calcium.Ca.Types.FFI
- Data.Number.Flint.Calcium.Ca.Poly.FFI
- Data.Number.Flint.Calcium.Ca.Vec.FFI
- Data.Number.Flint.Calcium.Ca.Mat.FFI
- Data.Number.Flint.Calcium.Ca.Field.FFI
- Data.Number.Flint.Calcium.Ca.Ext.FFI
- Data.Number.Flint.Calcium.Fexpr.FFI
# Other
- Data.Number.Flint.Bernoulli.FFI
- Data.Number.Flint.Partitions.FFI
- Data.Number.Flint.Hypgeom.FFI
# NF
- Data.Number.Flint.NF.FFI
- Data.Number.Flint.NF.Elem.FFI
- Data.Number.Flint.NF.Fmpzi.FFI
- Data.Number.Flint.NF.QQbar.FFI
include-dirs: csrc
install-includes:
- acb.h
- acb_mat.h
- acb_modular.h
- acb_poly.h
- aprcl.h
- arb.h
- arb_calc.h
- arb_fpwrap.h
- arb_mat.h
- arb_poly.h
- arf.h
- bool_mat.h
- d_mat.h
- dirichlet.h
- double_interval.h
- fmpq.h
- fmpq_mat.h
- fmpq_poly.h
- fmpq_vec.h
- fmpz.h
- fmpz_factor.h
- fmpz_mat.h
- fmpz_mod_poly_factor.h
- fmpz_mpoly_factor.h
- fmpz_mpoly_q.h
- fmpz_poly_mat.h
- fmpz_vec.h
- fmpzi.h
- fq.h
- fq_mat.h
- fq_nmod.h
- fq_nmod_mat.h
- fq_zech.h
- fq_zech_mat.h
- mag.h
- mpfr_mat.h
- nmod_poly_factor.h
- nmod_poly_mat.h
- padic_mat.h
- padic_poly.h
- perm.h
- psl2z.h
- qadic.h
- qfb.h
- qqbar.h
c-sources:
# Fmpz
- csrc/fmpz/init.c
- csrc/fmpz/clear.c
- csrc/fmpz_factor/init.c
- csrc/fmpz_factor/clear.c
- csrc/fmpz_factor/fprint.c
- csrc/fmpz_poly_mat/fprint.c
- csrc/fmpz_poly_mat/get_str.c
- csrc/fmpz_factor/get_str.c
- csrc/fmpz_mpoly_factor/io.c
- csrc/fmpz_mpoly_q/fprint.c
- csrc/fmpz_mpoly_q/get_str_pretty.c
- csrc/fmpz_vec/get_str.c
- csrc/fmpz_mat/get_str.c
- csrc/fmpz_mat/get_str_pretty.c
- csrc/fmpz_mod_poly_factor/fprint.c
- csrc/fmpz_mod_poly_factor/fprint_pretty.c
- csrc/fmpz_mod_poly_factor/get_str.c
- csrc/fmpz_mod_poly_factor/get_str_pretty.c
# Fmpq
- csrc/fmpq/mediant.c
- csrc/fmpq/get_fmpz_frac.c
- csrc/fmpq/cfrac_st.c
- csrc/fmpq_mat/get_str.c
- csrc/fmpq_mat/fprint.c
- csrc/fmpq_vec/get_str.c
- csrc/fmpq_poly/io_as_series.c
- csrc/fmpq_poly/monien.c
# NMod
- csrc/nmod_poly_factor/get_str.c
- csrc/nmod_poly_factor/get_str_pretty.c
- csrc/nmod_poly_factor/fprint.c
- csrc/nmod_poly_factor/fprint_pretty.c
- csrc/nmod_poly_mat/fprint.c
- csrc/nmod_poly_mat/get_str.c
# APRCL
- csrc/aprcl/fprint.c
- csrc/aprcl/get_str.c
# Groups
- csrc/bool_mat/get_str.c
- csrc/dirichlet/io.c
- csrc/qfb/get_str.c
- csrc/qfb/fprint.c
- csrc/qqbar/fprint.c
- csrc/qqbar/fprintn.c
- csrc/qqbar/get_str.c
- csrc/qqbar/get_strn.c
- csrc/dlog/inlines.c
# Fmpzi
- csrc/fmpzi/fprint.c
- csrc/fmpzi/get_str.c
# Fq
- csrc/fq/ctx_get_str.c
- csrc/fq_mat/get_str.c
- csrc/fq_mat/get_str_pretty.c
# FqNMod
- csrc/fq_nmod/ctx_get_str.c
- csrc/fq_nmod_mat/get_str.c
- csrc/fq_nmod_mat/get_str_pretty.c
# FqZech
- csrc/fq_zech/ctx_get_str.c
- csrc/fq_zech_mat/get_str.c
- csrc/fq_zech_mat/get_str_pretty.c
# Padic
- csrc/padic_poly/get_str.c
- csrc/padic_poly/get_str_pretty.c
- csrc/padic_mat/get_str.c
- csrc/padic_mat/get_str_pretty.c
- csrc/qadic/get_str_pretty.c
# Support
- csrc/double_interval/fprint.c
- csrc/double_interval/get_str.c
- csrc/d_mat/entry.c
- csrc/d_mat/io.c
# arb
- csrc/arb/midref.c
- csrc/arb/radref.c
- csrc/arf/inlines.c
- csrc/mag/get_str.c
- csrc/arb/get_strd.c
- csrc/arb/get_strn.c
- csrc/arb/get_str_.c
- csrc/arb_mat/get_strd.c
- csrc/arb_mat/get_strn.c
- csrc/arb_mat/fprintn.c
- csrc/arb_mat/entry.c
- csrc/arb_poly/get_strd.c
- csrc/arb_calc/get_strd.c
- csrc/arb_calc/inlines.c
- csrc/arb_fpwrap/fpwrap.c
# acb
- csrc/acb/get_str.c
- csrc/acb/get_strd.c
- csrc/acb/get_strn.c
- csrc/acb_poly/get_strd.c
- csrc/acb_mat/get_strd.c
- csrc/acb_mat/get_strn.c
- csrc/acb_mat/fprintn.c
- csrc/acb_mat/entry.c
- csrc/acb_modular/inlines.c
- csrc/acb_modular/get_str.c
- csrc/mpfr_mat/swap_entrywise.c
# calcium
- csrc/ca_poly/io.c
- csrc/ca_mat/io.c
- csrc/ca_ext/io.c
# word problem
- csrc/psl2z/word_problem.c
# perm
- csrc/perm/order.c
- csrc/perm/print_pretty.c
- csrc/perm/power.c
- csrc/perm/mat.c
build-tools: hsc2hs
extra-libraries: flint
pkgconfig-depends: flint >= 2.9, gmp
dependencies:
- QuickCheck >= 2.14.3 && < 2.15
- groups >= 0.5.3 && < 0.6
- containers >= 0.6.5 && < 0.7
tests:
Flint2-test:
main: Spec.hs
source-dirs: test
ghc-options:
- -threaded
- -rtsopts
- -with-rtsopts=-N
dependencies:
- Flint2