{-| module : Data.Number.Flint.Partitions copyright : (c) 2022 Hartmut Monien license : GNU GPL, version 2 or above (see LICENSE) maintainer : hmonien@uni-bonn.de This module implements the asymptotically fast algorithm for evaluating the integer partition function \(p(n)\) described in < [Joh2012]>. The idea is to evaluate a truncation of the Hardy-Ramanujan-Rademacher series using tight precision estimates, and symbolically factoring the occurring exponential sums. An implementation based on floating-point arithmetic can also be found in FLINT. That version relies on some numerical subroutines that have not been proved correct. The implementation provided here uses ball arithmetic throughout to guarantee a correct error bound for the numerical approximation of \(p(n)\). Optionally, hardware double arithmetic can be used for low-precision terms. This gives a significant speedup for small (e.g.\(n < 10^6\) ). -} module Data.Number.Flint.Partitions ( module Data.Number.Flint.Partitions.FFI ) where import Data.Number.Flint.Partitions.FFI