{-# 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 ()