{-# LINE 1 "src/Data/Number/Flint/Flint/External/Mpfr/FFI.hsc" #-}
{-|
module      :  Data.Number.Flint.Flint.External.Mpfr.FFI
copyright   :  (c) 2022 Hartmut Monien
license     :  GNU GPL, version 2 or above (see LICENSE)
maintainer  :  hmonien@uni-bonn.de
-}
module Data.Number.Flint.Flint.External.Mpfr.FFI where

import Data.Word
import Foreign.C.Types
import Foreign.ForeignPtr
import Foreign.Storable

import Data.Number.Flint.Flint.Internal



-- MPFR ------------------------------------------------------------------------

-- | Data structure containing the CMpfr pointer
data Mpfr = CMpfr {-# UNPACK #-} !(ForeignPtr CMpfr) 
type CMpfr = CFlint Mpfr

newtype CMpfrRnd  = CMpfrRnd  {CMpfrRnd -> CInt
_MpfrRnd  :: CInt} deriving (Int -> CMpfrRnd -> ShowS
[CMpfrRnd] -> ShowS
CMpfrRnd -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CMpfrRnd] -> ShowS
$cshowList :: [CMpfrRnd] -> ShowS
show :: CMpfrRnd -> String
$cshow :: CMpfrRnd -> String
showsPrec :: Int -> CMpfrRnd -> ShowS
$cshowsPrec :: Int -> CMpfrRnd -> ShowS
Show, CMpfrRnd -> CMpfrRnd -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CMpfrRnd -> CMpfrRnd -> Bool
$c/= :: CMpfrRnd -> CMpfrRnd -> Bool
== :: CMpfrRnd -> CMpfrRnd -> Bool
$c== :: CMpfrRnd -> CMpfrRnd -> Bool
Eq)
newtype CMpfrPrec = CMpfrPrec {CMpfrPrec -> CInt
_MpfrPrec :: CInt} deriving (Int -> CMpfrPrec -> ShowS
[CMpfrPrec] -> ShowS
CMpfrPrec -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CMpfrPrec] -> ShowS
$cshowList :: [CMpfrPrec] -> ShowS
show :: CMpfrPrec -> String
$cshow :: CMpfrPrec -> String
showsPrec :: Int -> CMpfrPrec -> ShowS
$cshowsPrec :: Int -> CMpfrPrec -> ShowS
Show, CMpfrPrec -> CMpfrPrec -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CMpfrPrec -> CMpfrPrec -> Bool
$c/= :: CMpfrPrec -> CMpfrPrec -> Bool
== :: CMpfrPrec -> CMpfrPrec -> Bool
$c== :: CMpfrPrec -> CMpfrPrec -> Bool
Eq)

instance Storable CMpfr where
  {-# INLINE sizeOf #-}
  sizeOf :: CMpfr -> Int
sizeOf   CMpfr
_ = (Int
32)
{-# LINE 30 "src/Data/Number/Flint/Flint/External/Mpfr/FFI.hsc" #-}
  {-# INLINE alignment #-}
  alignment :: CMpfr -> Int
alignment CMpfr
_ = Int
8
{-# LINE 32 "src/Data/Number/Flint/Flint/External/Mpfr/FFI.hsc" #-}
  peek = undefined
  poke :: Ptr CMpfr -> CMpfr -> IO ()
poke = forall a. HasCallStack => a
undefined