fast-arithmetic: Fast functions on integers.

[ algorithms, ats, bsd3, combinatorics, ffi, library, math, number-theory, numerics ] [ Propose Tags ]

Fast functions for number theory and combinatorics with a high level of safety guaranteed by ATS.

[Skip to Readme]
Versions [RSS] [faq],,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Change log
Dependencies base (>=4.3 && <5), composition-prelude (>=, gmpint [details]
License BSD-3-Clause
Copyright Copyright: (c) 2018 Vanessa McHale
Author Vanessa McHale
Category Numerics, Math, Algorithms, Number Theory, Combinatorics, FFI, ATS
Bug tracker
Source repo head: git clone
Uploaded by vmchale at 2018-10-04T22:05:41Z
Distributions NixOS:
Downloads 28771 total (1005 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs available [build log]
Last success reported on 2018-10-04 [all 1 reports]


[Index] [Quick Jump]

Manual Flags


Enable `-Werror`.

Automatic Flags

Disable functions relying on GMP


Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainer's Corner

For package maintainers and hackage trustees


Readme for fast-arithmetic-

[back to package description]


Build Status Hackage Dependencies of latest version on Hackage

This is a library for fast arithmetical functions using ATS, with a Haskell wrapper.

It is intended to supplement (but not replace) arithmoi and combinat where speed is important. In particular, this library provides a fast primality check and fast computation of basic combinatorial functions.


Computation Version (ATS/Haskell) Time
isPrime 2017 ATS 117.1 ns
isPrime 2017 Haskell 426.4 ns
φ(2016) ATS 190.9 ns
φ(2016) Haskell 356.9 ns
τ(3018) ATS 340.8 ns
τ(3018) Haskell 659.0 ns
σ(115) ATS 41.27 ns
σ(115) Haskell 314.1 ns
ω(91) ATS 64.67 ns
ω(91) Haskell 332.0 ns
160! ATS 4.303 μs
160! Haskell 5.659 μs
79!! ATS 941.2 ns
79!! Haskell 1.267 μs
322 `choose` 16 ATS 557.5 ns
322 `choose` 16 Haskell 996.3 ns
catalan 300 ATS 18.15 μs
catalan 300 Haskell 29.08 μs
permutations 20 10 ATS 198.6 ns
permutations 20 10 Haskell 392.3 ns


The Haskell library comes with the C bundled, however you will likely want to build from source if you are hacking on the library. To that end, you can install atspkg and build with

atspkg build --pkg-args "./source.dhall"
cabal new-build


You can find documentation for the Haskell library on Hackage. Unfortunately, there is no documentation for the ATS library, however, the bundled source code is commented.