fast-digits: Integer-to-digits conversion.

[ data, gpl, library ] [ Propose Tags ] [ Report a vulnerability ]

Convert an integer to digits and back. This library is both asymptotically (O(n^1.4) vs. O(n^2)) and practically (2x-40x for typical inputs) faster than Data.Digits.


[Skip to Readme]

library fast-digits

library fast-digits:fast-digits-internal

Modules

[Index] [Quick Jump]

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.1.0.0, 0.2.0.0, 0.2.1.0, 0.3.0.0, 0.3.1.0, 0.3.2.0
Change log changelog.md
Dependencies base (>=4.15 && <5), fast-digits, ghc-bignum (<1.4) [details]
Tested with ghc ==9.0.2, ghc ==9.2.8, ghc ==9.4.8, ghc ==9.6.7, ghc ==9.8.4, ghc ==9.10.2, ghc ==9.12.2
License GPL-3.0-only
Author Andrew Lelechenko
Maintainer andrew.lelechenko@gmail.com
Revised Revision 1 made by Bodigrim at 2025-07-15T21:52:11Z
Category Data
Home page https://github.com/Bodigrim/fast-digits
Source repo head: git clone https://github.com/Bodigrim/fast-digits
Uploaded by Bodigrim at 2023-07-29T20:06:59Z
Distributions LTSHaskell:0.3.2.0, Stackage:0.3.2.0
Reverse Dependencies 2 direct, 0 indirect [details]
Downloads 3674 total (10 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2023-07-29 [all 1 reports]

Readme for fast-digits-0.3.2.0

[back to package description]

fast-digits Hackage Stackage LTS Stackage Nightly

The fastest Haskell library to split integers into digits. It is both asymptotically (O(n1.4) vs. O(n2)) and practically (2x-40x for typical inputs) faster than Data.Digits.

Here are benchmarks for GHC 8.10:

> cabal bench -w ghc-8.10.4 All short 2 FastDigits: OK (3.11s) 12.3 ms ± 701 μs Data.Digits: OK (1.41s) 22.2 ms ± 1.8 ms, 1.81x 10 FastDigits: OK (2.11s) 4.16 ms ± 369 μs Data.Digits: OK (3.74s) 7.40 ms ± 235 μs, 1.78x 100000 FastDigits: OK (4.89s) 1.20 ms ± 69 μs Data.Digits: OK (3.96s) 1.95 ms ± 78 μs, 1.63x 1000000000 FastDigits: OK (4.02s) 985 μs ± 62 μs Data.Digits: OK (3.15s) 1.54 ms ± 70 μs, 1.56x medium 2 FastDigits: OK (3.02s) 1.49 ms ± 66 μs Data.Digits: OK (1.42s) 5.62 ms ± 542 μs, 3.77x 10 FastDigits: OK (2.35s) 571 μs ± 42 μs Data.Digits: OK (1.77s) 1.76 ms ± 152 μs, 3.07x 100000 FastDigits: OK (3.87s) 238 μs ± 19 μs Data.Digits: OK (3.44s) 419 μs ± 23 μs, 1.76x 1000000000 FastDigits: OK (3.05s) 186 μs ± 13 μs Data.Digits: OK (4.42s) 268 μs ± 11 μs, 1.44x long 2 FastDigits: OK (3.75s) 3.60 ms ± 215 μs Data.Digits: OK (1.89s) 125 ms ± 9.6 ms, 34.88x 10 FastDigits: OK (2.30s) 2.24 ms ± 125 μs Data.Digits: OK (2.47s) 39.0 ms ± 2.0 ms, 17.40x 100000 FastDigits: OK (1.93s) 1.88 ms ± 139 μs Data.Digits: OK (4.52s) 8.82 ms ± 533 μs, 4.70x 1000000000 FastDigits: OK (1.77s) 1.71 ms ± 149 μs Data.Digits: OK (1.35s) 5.30 ms ± 482 μs, 3.10x