fast-arithmetic-0.1.1.3: src/Numeric/Integer.hs
{-# LANGUAGE CPP #-}
{-|
Module : Numeric.Combinatorics
Copyright : Copyright (c) 2017 Vanessa McHale
This module provides a fast primality check.
-}
module Numeric.Integer ( isPrime
) where
import Foreign.C
import Numeric.Common
#if __GLASGOW_HASKELL__ >= 820
foreign import ccall unsafe is_prime_ats :: CInt -> CBool
#else
foreign import ccall unsafe is_prime_ats :: CInt -> CUChar
#endif
-- | O(√n)
isPrime :: Int -> Bool
isPrime = asTest is_prime_ats