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 [faq] 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, 0.6.0.8, 0.6.0.9, 0.6.1.1, 0.6.2.0, 0.6.2.2, 0.6.2.3, 0.6.3.0, 0.6.4.0, 0.6.4.1, 0.6.4.2, 0.6.4.3
Change log CHANGELOG.md
Dependencies base (>=4.10 && <5), hgmp [details]
License BSD-3-Clause
Copyright Copyright: (c) 2018-2019 Vanessa McHale
Author Vanessa McHale
Maintainer vamchale@gmail.com
Category Numerics, Math, Algorithms, Number Theory, Combinatorics, FFI, ATS
Bug tracker https://github.com/vmchale/hs-ats/issues
Source repo head: git clone git@github.com:vmchale/hs-ats.git
Uploaded by vmchale at Sat Oct 12 22:56:39 UTC 2019
Distributions NixOS:0.6.4.3
Downloads 13683 total (630 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs uploaded by user
Build status unknown [no reports yet]

Modules

[Index] [Quick Jump]

  • Numeric
    • Numeric.Combinatorics
    • Numeric.NumberTheory

Flags

NameDescriptionDefaultType
development

Enable -Werror.

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.6.4.3

[back to package description]

fast-arithmetic

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.

Benchmarks

| Computation | Version (ATS/Haskell) | Time | | ----------- | --------------------- | ---- | | isPrime 2017 | ATS | 117.2 ns | | isPrime 2017 | Haskell | 425.0 ns | | φ(2016) | ATS | 191.5 ns | | φ(2016) | Haskell | 384.8 ns | | τ(3018) | ATS | 337.0 ns | | τ(3018) | Haskell | 660.2 ns | | σ(115) | ATS | 45.41 ns | | σ(115) | Haskell | 322.4 ns | | ω(91) | ATS | 65.52 ns | | ω(91) | Haskell | 345.2 ns | | 160! | ATS | 2.363 μs | | 160! | Haskell | 6.134μs | | 79!! | ATS | 556.2 ns | | 79!! | Haskell | 1.355 μs | | 322 `choose` 16 | ATS | 467.6 ns | | 322 `choose` 16 | Haskell | 956.7 ns | | catalan 300 | ATS | 13.74 μs | | catalan 300 | Haskell | 28.76 μs | | permutations 20 10 | ATS | 202.8 ns | | permutations 20 10 | Haskell | 362.6 ns | | maxRegions 45000 | ATS | 624.1 ns | | maxRegions 45000 | Haskell | 1.064 μs | | stirling2 25 8 | ATS | 3.108 μs | | stirling2 25 8 | Haskell | 9.494 μ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 --pkg-args "./source.dhall"
cabal new-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.