-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Fast functions on integers. -- -- Fast functions for number theory and combinatorics with a high level -- of safety guaranteed by ATS. This package also provides a -- Storable instance for GMP's mpz type. @package fast-arithmetic @version 0.1.1.3 -- | This module defines a storable instance for GMP's mpz integer -- type. module Data.GMP -- | The GMP integer type holds information about array size as well as a -- pointer to an array. data GMPInt GMPInt :: Word32 -> Word32 -> Ptr Word64 -> GMPInt -- | Number of limbs allocated. [_mp_alloc] :: GMPInt -> Word32 -- | Number of limbs used. [_mp_size] :: GMPInt -> Word32 -- | Pointer to an array containing the limbs. [_mp_d] :: GMPInt -> Ptr Word64 -- | Convert a GMP mpz to Haskell's Integer type. gmpToInteger :: GMPInt -> IO Integer instance Foreign.Storable.Storable Data.GMP.GMPInt -- | This provides a few facilities for working with common combinatorial -- functions. module Numeric.Combinatorics factorial :: Int -> IO Integer -- | See here. choose :: Int -> Int -> IO Integer -- | This module provides a fast primality check. module Numeric.Integer -- | O(√n) isPrime :: Int -> Bool -- | This module provides fast number theoretic functions when possible. module Numeric.NumberTheory -- | Euler totient function. totient :: Int -> Int -- | Number of distinct divisors. tau :: Int -> Int littleOmega :: Int -> Int -- | See here isPerfect :: Int -> Bool -- | Pure Haskell functions for testing and benchmarking. Specialized for -- Ints. module Numeric.Pure hsIsPrime :: (Integral a) => a -> Bool hsFactorial :: (Integral a) => a -> a hsDoubleFactorial :: (Integral a) => a -> a hsChoose :: (Integral a) => a -> a -> a hsTotient :: (Integral a) => a -> a hsTau :: (Integral a) => a -> Int hsTotientSum :: (Integral a) => a -> a hsLittleOmega :: (Integral a) => a -> Int hsIsPerfect :: (Integral a) => a -> Bool