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 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.6, 0.1.0.7, 0.1.1.0, 0.1.1.1, 0.1.1.2, 0.1.1.3, 0.1.1.4, 0.1.1.5, 0.2.0.0, 0.2.0.1, 0.2.1.0, 0.2.2.0, 0.2.2.1, 0.2.2.2, 0.2.2.3, 0.2.3.0, 0.2.3.1, 0.2.3.2, 0.3.0.0, 0.3.0.1, 0.3.0.2, 0.3.0.3, 0.3.1.0, 0.3.2.0, 0.3.2.1, 0.3.2.4, 0.3.2.5, 0.3.2.6, 0.3.3.0, 0.3.3.1, 0.3.3.2, 0.3.3.3, 0.3.3.4, 0.3.3.5, 0.3.3.6, 0.3.3.7, 0.4.0.0, 0.5.0.0, 0.6.0.1, 0.6.0.2, 0.6.0.3, 0.6.0.4, 0.6.0.5, 0.6.0.6, 0.6.0.7
Dependencies base (>=4.10 && <5), composition-prelude, gmpint [details]
License BSD-3-Clause
Copyright Copyright: (c) 2018 Vanessa McHale
Author Vanessa McHale
Maintainer vamchale@gmail.com
Category Numerics, Math, Algorithms, Number Theory, Combinatorics, FFI, ATS
Home page https://github.com/vmchale/fast-arithmetic#readme
Source repo head: git clone git@github.com:vmchale/hs-ats.git
Uploaded by vmchale at Fri Apr 6 23:32:09 UTC 2018
Distributions NixOS:0.6.0.7
Downloads 2429 total (202 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Docs pending
Build status unknown [no reports yet]
Hackage Matrix CI

Modules

  • Numeric
    • Numeric.Combinatorics
    • Numeric.Integer
    • Numeric.NumberTheory
    • Numeric.Pure

Flags

NameDescriptionDefaultType
development

Enable -Werror and don't clean ATS libraries between builds.

DisabledManual

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

Downloads

Maintainer's Corner

For package maintainers and hackage trustees


Readme for fast-arithmetic-0.3.3.6

[back to package description]

fast-arithmetic

Build Status

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.

Benchmarks

| Computation | Version (ATS/Haskell) | Time | | ----------- | --------------------- | ---- | | isPrime 2017 | ATS | 118.9 ns | | isPrime 2017 | Haskell | 497.3 ns | | φ(2016) | ATS | 230.1 ns | | φ(2016) | Haskell | 402.8 ns | | τ(3018) | ATS | 438.5 ns | | τ(3018) | Haskell | 726.4 ns | | σ(115) | ATS | 38.37 ns | | σ(115) | Haskell | 310.0 ns | | ω(91) | ATS | 66.59 ns | | ω(91) | Haskell | 338.6 ns | | 160! | ATS | 4.081 μs | | 160! | Haskell | 6.032 μs | | 79!! | ATS | 813.8 ns ns | | 79!! | Haskell | 1.395 μs | | 322 `choose` 16 | ATS | 629.8 ns | | 322 `choose` 16 | Haskell | 1.046 μs |

Building

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

Documentation

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.