{-# 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
(Int -> CMpfrRnd -> ShowS)
-> (CMpfrRnd -> String) -> ([CMpfrRnd] -> ShowS) -> Show CMpfrRnd
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> CMpfrRnd -> ShowS
showsPrec :: Int -> CMpfrRnd -> ShowS
$cshow :: CMpfrRnd -> String
show :: CMpfrRnd -> String
$cshowList :: [CMpfrRnd] -> ShowS
showList :: [CMpfrRnd] -> ShowS
Show, CMpfrRnd -> CMpfrRnd -> Bool
(CMpfrRnd -> CMpfrRnd -> Bool)
-> (CMpfrRnd -> CMpfrRnd -> Bool) -> Eq CMpfrRnd
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: CMpfrRnd -> CMpfrRnd -> Bool
== :: CMpfrRnd -> CMpfrRnd -> Bool
$c/= :: CMpfrRnd -> CMpfrRnd -> Bool
/= :: CMpfrRnd -> CMpfrRnd -> Bool
Eq)
newtype CMpfrPrec = CMpfrPrec {CMpfrPrec -> CInt
_MpfrPrec :: CInt} deriving (Int -> CMpfrPrec -> ShowS
[CMpfrPrec] -> ShowS
CMpfrPrec -> String
(Int -> CMpfrPrec -> ShowS)
-> (CMpfrPrec -> String)
-> ([CMpfrPrec] -> ShowS)
-> Show CMpfrPrec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> CMpfrPrec -> ShowS
showsPrec :: Int -> CMpfrPrec -> ShowS
$cshow :: CMpfrPrec -> String
show :: CMpfrPrec -> String
$cshowList :: [CMpfrPrec] -> ShowS
showList :: [CMpfrPrec] -> ShowS
Show, CMpfrPrec -> CMpfrPrec -> Bool
(CMpfrPrec -> CMpfrPrec -> Bool)
-> (CMpfrPrec -> CMpfrPrec -> Bool) -> Eq CMpfrPrec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: CMpfrPrec -> CMpfrPrec -> Bool
== :: CMpfrPrec -> CMpfrPrec -> Bool
$c/= :: CMpfrPrec -> CMpfrPrec -> Bool
/= :: 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 = Ptr CMpfr -> CMpfr -> IO ()
forall a. HasCallStack => a
undefined