The hgmp package

[Tags:bsd3, library, test]

Currently, types and instances, and marshalling between Integer and Rational and the corresponding GMP types. That is, enough to allow FFI to GMP code (whether in GMP itself or in third-party code that uses GMP).

Supports only GHC with integer-gmp, this might change if there's any demand.


[Skip to Readme]

Properties

Versions 0.1.0.0, 0.1.0.1
Change log CHANGELOG.md
Dependencies base (>=4.8 && <4.10), ghc-prim (>=0.4 && <0.6), integer-gmp (==1.0.*) [details]
License BSD3
Copyright 2016 Claude Heiland-Allen
Author Claude Heiland-Allen
Maintainer claude@mathr.co.uk
Category Numeric
Home page https://code.mathr.co.uk/hgmp
Source repository head: git clone https://code.mathr.co.uk/hgmp.git
this: git clone https://code.mathr.co.uk/hgmp.git(tag v0.1.0.1)
Uploaded Wed Aug 10 04:39:21 UTC 2016 by ClaudeHeilandAllen
Distributions NixOS:0.1.0.1
Downloads 69 total (3 in the last 30 days)
Votes
0 []
Status Docs available [build log]
Last success reported on 2016-08-10 [all 1 reports]

Modules

[Index]

Downloads

Maintainer's Corner

For package maintainers and hackage trustees

Readme for hgmp

Readme for hgmp-0.1.0.1

hgmp

Haskell interface to GMP. Contains type definitions and marshalling functions, to be able to write FFI bindings using Haskell's Integer and Rational types. Function bindings may come in a future version.

A simple example illustrating binding to GMP's next probable-prime function:

{-# LANGUAGE ForeignFunctionInterface #-}

import Foreign.Ptr (Ptr(..))
import Numeric.GMP.Types (MPZ)
import Numeric.GMP.Utils (withInInteger, withOutInteger_)
import System.IO.Unsafe (unsafePerformIO)

foreign import ccall safe "__gmpz_nextprime"
  mpz_nextprime :: Ptr MPZ -> Ptr MPZ -> IO ()

nextPrime :: Integer -> Integer
nextPrime n =
  unsafePerformIO $
    withOutInteger_ $ \rop ->
      withInInteger n $ \op ->
        mpz_nextprime rop op