packages feed

chemical-equation-0.0: src/FLINT/Integer.hs

{-# LANGUAGE ForeignFunctionInterface #-}
module FLINT.Integer where

import qualified FLINT.Type as FLINT

import qualified Foreign.C.Types as C
import Foreign.C.String (CString)
import Foreign.C.Types (CInt, CSize)
import Foreign.Ptr (Ptr)


foreign import ccall "flint/fmpz.h fmpz_init"
   init :: Ptr FLINT.Integer -> IO ()

foreign import ccall "flint/fmpz.h fmpz_clear"
   clear :: Ptr FLINT.Integer -> IO ()

foreign import ccall "flint/fmpz.h fmpz_set"
   set :: Ptr FLINT.Integer -> Ptr FLINT.Integer -> IO ()

foreign import ccall "flint/fmpz.h fmpz_set_si"
   set_si :: Ptr FLINT.Integer -> C.CLong -> IO ()

foreign import ccall "flint/fmpz.h fmpz_print"
   print :: Ptr FLINT.Integer -> IO ()

foreign import ccall "flint/fmpz.h fmpz_sizeinbase"
   sizeinbase :: Ptr FLINT.Integer -> CInt -> IO CSize

foreign import ccall "flint/fmpz.h fmpz_get_str"
   get_str :: CString -> CInt -> Ptr FLINT.Integer -> IO CString

foreign import ccall "flint/fmpz.h fmpz_set_str"
   set_str :: Ptr FLINT.Integer -> CString -> CInt -> IO CInt

foreign import ccall "flint/fmpz.h fmpz_sgn"
   sgn :: Ptr FLINT.Integer -> IO CInt

foreign import ccall "flint/fmpz.h fmpz_abs"
   abs :: Ptr FLINT.Integer -> Ptr FLINT.Integer -> IO ()

foreign import ccall "flint/fmpz.h fmpz_add"
   add :: Ptr FLINT.Integer -> Ptr FLINT.Integer -> Ptr FLINT.Integer -> IO ()