module Data.Deka.Decnumber where
import Foreign.Ptr (Ptr,FunPtr,plusPtr)
import Foreign.Ptr (wordPtrToPtr,castPtrToFunPtr)
import Foreign.Storable
import Foreign.C.Types
import Foreign.C.String (CString,CStringLen,CWString,CWStringLen)
import Foreign.Marshal.Alloc (alloca)
import Foreign.Marshal.Array (peekArray,pokeArray)
import Data.Int
import Data.Word
c'NULL = 0
c'NULL :: (Num a) => a
type C'rounding = CUInt
c'DEC_ROUND_CEILING = 0
c'DEC_ROUND_CEILING :: (Num a) => a
c'DEC_ROUND_UP = 1
c'DEC_ROUND_UP :: (Num a) => a
c'DEC_ROUND_HALF_UP = 2
c'DEC_ROUND_HALF_UP :: (Num a) => a
c'DEC_ROUND_HALF_EVEN = 3
c'DEC_ROUND_HALF_EVEN :: (Num a) => a
c'DEC_ROUND_HALF_DOWN = 4
c'DEC_ROUND_HALF_DOWN :: (Num a) => a
c'DEC_ROUND_DOWN = 5
c'DEC_ROUND_DOWN :: (Num a) => a
c'DEC_ROUND_FLOOR = 6
c'DEC_ROUND_FLOOR :: (Num a) => a
c'DEC_ROUND_05UP = 7
c'DEC_ROUND_05UP :: (Num a) => a
c'DEC_ROUND_MAX = 8
c'DEC_ROUND_MAX :: (Num a) => a
type C'int32_t = CInt
type C'uint8_t = CUChar
type C'uint16_t = Word16
type C'uint32_t = CUInt
type C'uint64_t = Word64
data C'decContext = C'decContext{
c'decContext'digits :: C'int32_t,
c'decContext'emax :: C'int32_t,
c'decContext'emin :: C'int32_t,
c'decContext'round :: C'rounding,
c'decContext'traps :: C'uint32_t,
c'decContext'status :: C'uint32_t,
c'decContext'clamp :: C'uint8_t
} deriving (Eq,Show)
p'decContext'digits p = plusPtr p 0
p'decContext'digits :: Ptr (C'decContext) -> Ptr (C'int32_t)
p'decContext'emax p = plusPtr p 4
p'decContext'emax :: Ptr (C'decContext) -> Ptr (C'int32_t)
p'decContext'emin p = plusPtr p 8
p'decContext'emin :: Ptr (C'decContext) -> Ptr (C'int32_t)
p'decContext'round p = plusPtr p 12
p'decContext'round :: Ptr (C'decContext) -> Ptr (C'rounding)
p'decContext'traps p = plusPtr p 16
p'decContext'traps :: Ptr (C'decContext) -> Ptr (C'uint32_t)
p'decContext'status p = plusPtr p 20
p'decContext'status :: Ptr (C'decContext) -> Ptr (C'uint32_t)
p'decContext'clamp p = plusPtr p 24
p'decContext'clamp :: Ptr (C'decContext) -> Ptr (C'uint8_t)
instance Storable C'decContext where
sizeOf _ = 28
alignment _ = 4
peek p = do
v0 <- peekByteOff p 0
v1 <- peekByteOff p 4
v2 <- peekByteOff p 8
v3 <- peekByteOff p 12
v4 <- peekByteOff p 16
v5 <- peekByteOff p 20
v6 <- peekByteOff p 24
return $ C'decContext v0 v1 v2 v3 v4 v5 v6
poke p (C'decContext v0 v1 v2 v3 v4 v5 v6) = do
pokeByteOff p 0 v0
pokeByteOff p 4 v1
pokeByteOff p 8 v2
pokeByteOff p 12 v3
pokeByteOff p 16 v4
pokeByteOff p 20 v5
pokeByteOff p 24 v6
return ()
c'DEC_INIT_DECQUAD = 128
c'DEC_INIT_DECQUAD :: (Num a) => a
foreign import ccall unsafe "decContextDefault" unsafe'c'decContextDefault
:: Ptr C'decContext -> C'int32_t -> IO (Ptr C'decContext)
foreign import ccall unsafe "&decContextDefault" unsafe'p'decContextDefault
:: FunPtr (Ptr C'decContext -> C'int32_t -> IO (Ptr C'decContext))
type C'decClass = CUInt
c'DEC_CLASS_SNAN = 0
c'DEC_CLASS_SNAN :: (Num a) => a
c'DEC_CLASS_QNAN = 1
c'DEC_CLASS_QNAN :: (Num a) => a
c'DEC_CLASS_NEG_INF = 2
c'DEC_CLASS_NEG_INF :: (Num a) => a
c'DEC_CLASS_NEG_NORMAL = 3
c'DEC_CLASS_NEG_NORMAL :: (Num a) => a
c'DEC_CLASS_NEG_SUBNORMAL = 4
c'DEC_CLASS_NEG_SUBNORMAL :: (Num a) => a
c'DEC_CLASS_NEG_ZERO = 5
c'DEC_CLASS_NEG_ZERO :: (Num a) => a
c'DEC_CLASS_POS_ZERO = 6
c'DEC_CLASS_POS_ZERO :: (Num a) => a
c'DEC_CLASS_POS_SUBNORMAL = 7
c'DEC_CLASS_POS_SUBNORMAL :: (Num a) => a
c'DEC_CLASS_POS_NORMAL = 8
c'DEC_CLASS_POS_NORMAL :: (Num a) => a
c'DEC_CLASS_POS_INF = 9
c'DEC_CLASS_POS_INF :: (Num a) => a
c'DEC_Conversion_syntax = 1
c'DEC_Conversion_syntax :: (Num a) => a
c'DEC_Division_by_zero = 2
c'DEC_Division_by_zero :: (Num a) => a
c'DEC_Division_impossible = 4
c'DEC_Division_impossible :: (Num a) => a
c'DEC_Division_undefined = 8
c'DEC_Division_undefined :: (Num a) => a
c'DEC_Insufficient_storage = 16
c'DEC_Insufficient_storage :: (Num a) => a
c'DEC_Inexact = 32
c'DEC_Inexact :: (Num a) => a
c'DEC_Invalid_context = 64
c'DEC_Invalid_context :: (Num a) => a
c'DEC_Invalid_operation = 128
c'DEC_Invalid_operation :: (Num a) => a
c'DEC_Overflow = 512
c'DEC_Overflow :: (Num a) => a
c'DEC_Clamped = 1024
c'DEC_Clamped :: (Num a) => a
c'DEC_Rounded = 2048
c'DEC_Rounded :: (Num a) => a
c'DEC_Subnormal = 4096
c'DEC_Subnormal :: (Num a) => a
c'DEC_Underflow = 8192
c'DEC_Underflow :: (Num a) => a
c'DEC_IEEE_754_Division_by_zero = 2
c'DEC_IEEE_754_Division_by_zero :: (Num a) => a
c'DEC_IEEE_754_Inexact = 32
c'DEC_IEEE_754_Inexact :: (Num a) => a
c'DEC_IEEE_754_Invalid_operation = 221
c'DEC_IEEE_754_Invalid_operation :: (Num a) => a
c'DEC_IEEE_754_Overflow = 512
c'DEC_IEEE_754_Overflow :: (Num a) => a
c'DEC_IEEE_754_Underflow = 8192
c'DEC_IEEE_754_Underflow :: (Num a) => a
c'DEC_Errors = 8927
c'DEC_Errors :: (Num a) => a
c'DEC_NaNs = 221
c'DEC_NaNs :: (Num a) => a
c'DEC_Condition_Length = 21
c'DEC_Condition_Length :: (Num a) => a
c'DEC_INIT_BASE = 0
c'DEC_INIT_BASE :: (Num a) => a
c'DEC_INIT_DECIMAL32 = 32
c'DEC_INIT_DECIMAL32 :: (Num a) => a
c'DEC_INIT_DECIMAL64 = 64
c'DEC_INIT_DECIMAL64 :: (Num a) => a
c'DEC_INIT_DECIMAL128 = 128
c'DEC_INIT_DECIMAL128 :: (Num a) => a
c'DECQUAD_Bytes = 16
c'DECQUAD_Bytes :: (Num a) => a
c'DECQUAD_Pmax = 34
c'DECQUAD_Pmax :: (Num a) => a
c'DECQUAD_Emin = 6143
c'DECQUAD_Emin :: (Num a) => a
c'DECQUAD_Emax = 6144
c'DECQUAD_Emax :: (Num a) => a
c'DECQUAD_EmaxD = 4
c'DECQUAD_EmaxD :: (Num a) => a
c'DECQUAD_Bias = 6176
c'DECQUAD_Bias :: (Num a) => a
c'DECQUAD_String = 43
c'DECQUAD_String :: (Num a) => a
c'DECQUAD_EconL = 12
c'DECQUAD_EconL :: (Num a) => a
c'DECQUAD_Declets = 11
c'DECQUAD_Declets :: (Num a) => a
c'DECQUAD_Ehigh = 12287
c'DECQUAD_Ehigh :: (Num a) => a
data C'decQuad = C'decQuad{
c'decQuad'bytes :: [C'uint8_t],
c'decQuad'shorts :: [C'uint16_t],
c'decQuad'words :: [C'uint32_t]
} deriving (Eq,Show)
p'decQuad'bytes p = plusPtr p 0
p'decQuad'bytes :: Ptr (C'decQuad) -> Ptr (C'uint8_t)
p'decQuad'shorts p = plusPtr p 0
p'decQuad'shorts :: Ptr (C'decQuad) -> Ptr (C'uint16_t)
p'decQuad'words p = plusPtr p 0
p'decQuad'words :: Ptr (C'decQuad) -> Ptr (C'uint32_t)
instance Storable C'decQuad where
sizeOf _ = 16
alignment _ = 4
peek p = do
v0 <- let s = div 16 $ sizeOf $ (undefined :: C'uint8_t) in peekArray s (plusPtr p 0)
v1 <- let s = div 16 $ sizeOf $ (undefined :: C'uint16_t) in peekArray s (plusPtr p 0)
v2 <- let s = div 16 $ sizeOf $ (undefined :: C'uint32_t) in peekArray s (plusPtr p 0)
return $ C'decQuad v0 v1 v2
poke p (C'decQuad v0 v1 v2) = do
let s = div 16 $ sizeOf $ (undefined :: C'uint8_t)
pokeArray (plusPtr p 0) (take s v0)
let s = div 16 $ sizeOf $ (undefined :: C'uint16_t)
pokeArray (plusPtr p 0) (take s v1)
let s = div 16 $ sizeOf $ (undefined :: C'uint32_t)
pokeArray (plusPtr p 0) (take s v2)
return ()
c'DECFLOAT_Sign = 2147483648
c'DECFLOAT_Sign :: (Num a) => a
c'DECFLOAT_NaN = 2080374784
c'DECFLOAT_NaN :: (Num a) => a
c'DECFLOAT_qNaN = 2080374784
c'DECFLOAT_qNaN :: (Num a) => a
c'DECFLOAT_sNaN = 2113929216
c'DECFLOAT_sNaN :: (Num a) => a
c'DECFLOAT_Inf = 2013265920
c'DECFLOAT_Inf :: (Num a) => a
c'DECFLOAT_MinSp = 2013265920
c'DECFLOAT_MinSp :: (Num a) => a
c'DECPPLUSALT = 10
c'DECPPLUSALT :: (Num a) => a
c'DECPMINUSALT = 11
c'DECPMINUSALT :: (Num a) => a
c'DECPPLUS = 12
c'DECPPLUS :: (Num a) => a
c'DECPMINUS = 13
c'DECPMINUS :: (Num a) => a
c'DECPPLUSALT2 = 14
c'DECPPLUSALT2 :: (Num a) => a
c'DECPUNSIGNED = 15
c'DECPUNSIGNED :: (Num a) => a
foreign import ccall unsafe "decQuadToInt32" unsafe'c'decQuadToInt32
:: Ptr C'decQuad -> Ptr C'decContext -> C'rounding -> IO C'int32_t
foreign import ccall unsafe "&decQuadToInt32" unsafe'p'decQuadToInt32
:: FunPtr (Ptr C'decQuad -> Ptr C'decContext -> C'rounding -> IO C'int32_t)
foreign import ccall unsafe "decQuadToInt32Exact" unsafe'c'decQuadToInt32Exact
:: Ptr C'decQuad -> Ptr C'decContext -> C'rounding -> IO C'int32_t
foreign import ccall unsafe "&decQuadToInt32Exact" unsafe'p'decQuadToInt32Exact
:: FunPtr (Ptr C'decQuad -> Ptr C'decContext -> C'rounding -> IO C'int32_t)
foreign import ccall unsafe "decQuadFromInt32" unsafe'c'decQuadFromInt32
:: Ptr C'decQuad -> C'int32_t -> IO (Ptr C'decQuad)
foreign import ccall unsafe "&decQuadFromInt32" unsafe'p'decQuadFromInt32
:: FunPtr (Ptr C'decQuad -> C'int32_t -> IO (Ptr C'decQuad))
foreign import ccall unsafe "decQuadFromPacked" unsafe'c'decQuadFromPacked
:: Ptr C'decQuad -> C'int32_t -> Ptr C'uint8_t -> IO (Ptr C'decQuad)
foreign import ccall unsafe "&decQuadFromPacked" unsafe'p'decQuadFromPacked
:: FunPtr (Ptr C'decQuad -> C'int32_t -> Ptr C'uint8_t -> IO (Ptr C'decQuad))
foreign import ccall unsafe "decQuadFromPackedChecked" unsafe'c'decQuadFromPackedChecked
:: Ptr C'decQuad -> C'int32_t -> Ptr C'uint8_t -> IO (Ptr C'decQuad)
foreign import ccall unsafe "&decQuadFromPackedChecked" unsafe'p'decQuadFromPackedChecked
:: FunPtr (Ptr C'decQuad -> C'int32_t -> Ptr C'uint8_t -> IO (Ptr C'decQuad))
foreign import ccall unsafe "decQuadFromUInt32" unsafe'c'decQuadFromUInt32
:: Ptr C'decQuad -> C'uint32_t -> IO (Ptr C'decQuad)
foreign import ccall unsafe "&decQuadFromUInt32" unsafe'p'decQuadFromUInt32
:: FunPtr (Ptr C'decQuad -> C'uint32_t -> IO (Ptr C'decQuad))
foreign import ccall unsafe "decQuadFromString" unsafe'c'decQuadFromString
:: Ptr C'decQuad -> CString -> Ptr C'decContext -> IO (Ptr C'decQuad)
foreign import ccall unsafe "&decQuadFromString" unsafe'p'decQuadFromString
:: FunPtr (Ptr C'decQuad -> CString -> Ptr C'decContext -> IO (Ptr C'decQuad))
foreign import ccall unsafe "decQuadGetCoefficient" unsafe'c'decQuadGetCoefficient
:: Ptr C'decQuad -> Ptr C'uint8_t -> IO C'int32_t
foreign import ccall unsafe "&decQuadGetCoefficient" unsafe'p'decQuadGetCoefficient
:: FunPtr (Ptr C'decQuad -> Ptr C'uint8_t -> IO C'int32_t)
foreign import ccall unsafe "decQuadGetExponent" unsafe'c'decQuadGetExponent
:: Ptr C'decQuad -> IO C'int32_t
foreign import ccall unsafe "&decQuadGetExponent" unsafe'p'decQuadGetExponent
:: FunPtr (Ptr C'decQuad -> IO C'int32_t)
foreign import ccall unsafe "decQuadSetCoefficient" unsafe'c'decQuadSetCoefficient
:: Ptr C'decQuad -> Ptr C'uint8_t -> C'int32_t -> IO (Ptr C'decQuad)
foreign import ccall unsafe "&decQuadSetCoefficient" unsafe'p'decQuadSetCoefficient
:: FunPtr (Ptr C'decQuad -> Ptr C'uint8_t -> C'int32_t -> IO (Ptr C'decQuad))
foreign import ccall unsafe "decQuadSetExponent" unsafe'c'decQuadSetExponent
:: Ptr C'decQuad -> Ptr C'decContext -> C'int32_t -> IO (Ptr C'decQuad)
foreign import ccall unsafe "&decQuadSetExponent" unsafe'p'decQuadSetExponent
:: FunPtr (Ptr C'decQuad -> Ptr C'decContext -> C'int32_t -> IO (Ptr C'decQuad))
foreign import ccall unsafe "decQuadShow" unsafe'c'decQuadShow
:: Ptr C'decQuad -> CString -> IO ()
foreign import ccall unsafe "&decQuadShow" unsafe'p'decQuadShow
:: FunPtr (Ptr C'decQuad -> CString -> IO ())
foreign import ccall unsafe "decQuadToEngString" unsafe'c'decQuadToEngString
:: Ptr C'decQuad -> CString -> IO CString
foreign import ccall unsafe "&decQuadToEngString" unsafe'p'decQuadToEngString
:: FunPtr (Ptr C'decQuad -> CString -> IO CString)
foreign import ccall unsafe "decQuadToString" unsafe'c'decQuadToString
:: Ptr C'decQuad -> CString -> IO CString
foreign import ccall unsafe "&decQuadToString" unsafe'p'decQuadToString
:: FunPtr (Ptr C'decQuad -> CString -> IO CString)
foreign import ccall unsafe "decQuadToUInt32" unsafe'c'decQuadToUInt32
:: Ptr C'decQuad -> Ptr C'decContext -> C'rounding -> IO C'uint32_t
foreign import ccall unsafe "&decQuadToUInt32" unsafe'p'decQuadToUInt32
:: FunPtr (Ptr C'decQuad -> Ptr C'decContext -> C'rounding -> IO C'uint32_t)
foreign import ccall unsafe "decQuadToUInt32Exact" unsafe'c'decQuadToUInt32Exact
:: Ptr C'decQuad -> Ptr C'decContext -> C'rounding -> IO C'uint32_t
foreign import ccall unsafe "&decQuadToUInt32Exact" unsafe'p'decQuadToUInt32Exact
:: FunPtr (Ptr C'decQuad -> Ptr C'decContext -> C'rounding -> IO C'uint32_t)
foreign import ccall unsafe "decQuadZero" unsafe'c'decQuadZero
:: Ptr C'decQuad -> IO (Ptr C'decQuad)
foreign import ccall unsafe "&decQuadZero" unsafe'p'decQuadZero
:: FunPtr (Ptr C'decQuad -> IO (Ptr C'decQuad))
foreign import ccall unsafe "decQuadAbs" unsafe'c'decQuadAbs
:: Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad)
foreign import ccall unsafe "&decQuadAbs" unsafe'p'decQuadAbs
:: FunPtr (Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad))
foreign import ccall unsafe "decQuadAdd" unsafe'c'decQuadAdd
:: Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad)
foreign import ccall unsafe "&decQuadAdd" unsafe'p'decQuadAdd
:: FunPtr (Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad))
foreign import ccall unsafe "decQuadAnd" unsafe'c'decQuadAnd
:: Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad)
foreign import ccall unsafe "&decQuadAnd" unsafe'p'decQuadAnd
:: FunPtr (Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad))
foreign import ccall unsafe "decQuadDivide" unsafe'c'decQuadDivide
:: Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad)
foreign import ccall unsafe "&decQuadDivide" unsafe'p'decQuadDivide
:: FunPtr (Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad))
foreign import ccall unsafe "decQuadDivideInteger" unsafe'c'decQuadDivideInteger
:: Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad)
foreign import ccall unsafe "&decQuadDivideInteger" unsafe'p'decQuadDivideInteger
:: FunPtr (Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad))
foreign import ccall unsafe "decQuadFMA" unsafe'c'decQuadFMA
:: Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad)
foreign import ccall unsafe "&decQuadFMA" unsafe'p'decQuadFMA
:: FunPtr (Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad))
foreign import ccall unsafe "decQuadFromBCD" unsafe'c'decQuadFromBCD
:: Ptr C'decQuad -> C'int32_t -> Ptr C'uint8_t -> C'int32_t -> IO (Ptr C'decQuad)
foreign import ccall unsafe "&decQuadFromBCD" unsafe'p'decQuadFromBCD
:: FunPtr (Ptr C'decQuad -> C'int32_t -> Ptr C'uint8_t -> C'int32_t -> IO (Ptr C'decQuad))
foreign import ccall unsafe "decQuadInvert" unsafe'c'decQuadInvert
:: Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad)
foreign import ccall unsafe "&decQuadInvert" unsafe'p'decQuadInvert
:: FunPtr (Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad))
foreign import ccall unsafe "decQuadLogB" unsafe'c'decQuadLogB
:: Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad)
foreign import ccall unsafe "&decQuadLogB" unsafe'p'decQuadLogB
:: FunPtr (Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad))
foreign import ccall unsafe "decQuadMax" unsafe'c'decQuadMax
:: Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad)
foreign import ccall unsafe "&decQuadMax" unsafe'p'decQuadMax
:: FunPtr (Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad))
foreign import ccall unsafe "decQuadMaxMag" unsafe'c'decQuadMaxMag
:: Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad)
foreign import ccall unsafe "&decQuadMaxMag" unsafe'p'decQuadMaxMag
:: FunPtr (Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad))
foreign import ccall unsafe "decQuadMin" unsafe'c'decQuadMin
:: Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad)
foreign import ccall unsafe "&decQuadMin" unsafe'p'decQuadMin
:: FunPtr (Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad))
foreign import ccall unsafe "decQuadMinMag" unsafe'c'decQuadMinMag
:: Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad)
foreign import ccall unsafe "&decQuadMinMag" unsafe'p'decQuadMinMag
:: FunPtr (Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad))
foreign import ccall unsafe "decQuadMinus" unsafe'c'decQuadMinus
:: Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad)
foreign import ccall unsafe "&decQuadMinus" unsafe'p'decQuadMinus
:: FunPtr (Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad))
foreign import ccall unsafe "decQuadMultiply" unsafe'c'decQuadMultiply
:: Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad)
foreign import ccall unsafe "&decQuadMultiply" unsafe'p'decQuadMultiply
:: FunPtr (Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad))
foreign import ccall unsafe "decQuadNextMinus" unsafe'c'decQuadNextMinus
:: Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad)
foreign import ccall unsafe "&decQuadNextMinus" unsafe'p'decQuadNextMinus
:: FunPtr (Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad))
foreign import ccall unsafe "decQuadNextPlus" unsafe'c'decQuadNextPlus
:: Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad)
foreign import ccall unsafe "&decQuadNextPlus" unsafe'p'decQuadNextPlus
:: FunPtr (Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad))
foreign import ccall unsafe "decQuadNextToward" unsafe'c'decQuadNextToward
:: Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad)
foreign import ccall unsafe "&decQuadNextToward" unsafe'p'decQuadNextToward
:: FunPtr (Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad))
foreign import ccall unsafe "decQuadOr" unsafe'c'decQuadOr
:: Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad)
foreign import ccall unsafe "&decQuadOr" unsafe'p'decQuadOr
:: FunPtr (Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad))
foreign import ccall unsafe "decQuadPlus" unsafe'c'decQuadPlus
:: Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad)
foreign import ccall unsafe "&decQuadPlus" unsafe'p'decQuadPlus
:: FunPtr (Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad))
foreign import ccall unsafe "decQuadQuantize" unsafe'c'decQuadQuantize
:: Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad)
foreign import ccall unsafe "&decQuadQuantize" unsafe'p'decQuadQuantize
:: FunPtr (Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad))
foreign import ccall unsafe "decQuadReduce" unsafe'c'decQuadReduce
:: Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad)
foreign import ccall unsafe "&decQuadReduce" unsafe'p'decQuadReduce
:: FunPtr (Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad))
foreign import ccall unsafe "decQuadRemainder" unsafe'c'decQuadRemainder
:: Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad)
foreign import ccall unsafe "&decQuadRemainder" unsafe'p'decQuadRemainder
:: FunPtr (Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad))
foreign import ccall unsafe "decQuadRemainderNear" unsafe'c'decQuadRemainderNear
:: Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad)
foreign import ccall unsafe "&decQuadRemainderNear" unsafe'p'decQuadRemainderNear
:: FunPtr (Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad))
foreign import ccall unsafe "decQuadRotate" unsafe'c'decQuadRotate
:: Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad)
foreign import ccall unsafe "&decQuadRotate" unsafe'p'decQuadRotate
:: FunPtr (Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad))
foreign import ccall unsafe "decQuadScaleB" unsafe'c'decQuadScaleB
:: Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad)
foreign import ccall unsafe "&decQuadScaleB" unsafe'p'decQuadScaleB
:: FunPtr (Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad))
foreign import ccall unsafe "decQuadShift" unsafe'c'decQuadShift
:: Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad)
foreign import ccall unsafe "&decQuadShift" unsafe'p'decQuadShift
:: FunPtr (Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad))
foreign import ccall unsafe "decQuadSubtract" unsafe'c'decQuadSubtract
:: Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad)
foreign import ccall unsafe "&decQuadSubtract" unsafe'p'decQuadSubtract
:: FunPtr (Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad))
foreign import ccall unsafe "decQuadToBCD" unsafe'c'decQuadToBCD
:: Ptr C'decQuad -> Ptr C'int32_t -> Ptr C'uint8_t -> IO C'int32_t
foreign import ccall unsafe "&decQuadToBCD" unsafe'p'decQuadToBCD
:: FunPtr (Ptr C'decQuad -> Ptr C'int32_t -> Ptr C'uint8_t -> IO C'int32_t)
foreign import ccall unsafe "decQuadToIntegralValue" unsafe'c'decQuadToIntegralValue
:: Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> C'rounding -> IO (Ptr C'decQuad)
foreign import ccall unsafe "&decQuadToIntegralValue" unsafe'p'decQuadToIntegralValue
:: FunPtr (Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> C'rounding -> IO (Ptr C'decQuad))
foreign import ccall unsafe "decQuadToIntegralExact" unsafe'c'decQuadToIntegralExact
:: Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad)
foreign import ccall unsafe "&decQuadToIntegralExact" unsafe'p'decQuadToIntegralExact
:: FunPtr (Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad))
foreign import ccall unsafe "decQuadXor" unsafe'c'decQuadXor
:: Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad)
foreign import ccall unsafe "&decQuadXor" unsafe'p'decQuadXor
:: FunPtr (Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad))
foreign import ccall unsafe "decQuadCompare" unsafe'c'decQuadCompare
:: Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad)
foreign import ccall unsafe "&decQuadCompare" unsafe'p'decQuadCompare
:: FunPtr (Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad))
foreign import ccall unsafe "decQuadCompareSignal" unsafe'c'decQuadCompareSignal
:: Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad)
foreign import ccall unsafe "&decQuadCompareSignal" unsafe'p'decQuadCompareSignal
:: FunPtr (Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decContext -> IO (Ptr C'decQuad))
foreign import ccall unsafe "decQuadCompareTotal" unsafe'c'decQuadCompareTotal
:: Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decQuad -> IO (Ptr C'decQuad)
foreign import ccall unsafe "&decQuadCompareTotal" unsafe'p'decQuadCompareTotal
:: FunPtr (Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decQuad -> IO (Ptr C'decQuad))
foreign import ccall unsafe "decQuadCompareTotalMag" unsafe'c'decQuadCompareTotalMag
:: Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decQuad -> IO (Ptr C'decQuad)
foreign import ccall unsafe "&decQuadCompareTotalMag" unsafe'p'decQuadCompareTotalMag
:: FunPtr (Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decQuad -> IO (Ptr C'decQuad))
foreign import ccall unsafe "decQuadCanonical" unsafe'c'decQuadCanonical
:: Ptr C'decQuad -> Ptr C'decQuad -> IO (Ptr C'decQuad)
foreign import ccall unsafe "&decQuadCanonical" unsafe'p'decQuadCanonical
:: FunPtr (Ptr C'decQuad -> Ptr C'decQuad -> IO (Ptr C'decQuad))
foreign import ccall unsafe "decQuadCopyAbs" unsafe'c'decQuadCopyAbs
:: Ptr C'decQuad -> Ptr C'decQuad -> IO (Ptr C'decQuad)
foreign import ccall unsafe "&decQuadCopyAbs" unsafe'p'decQuadCopyAbs
:: FunPtr (Ptr C'decQuad -> Ptr C'decQuad -> IO (Ptr C'decQuad))
foreign import ccall unsafe "decQuadCopyNegate" unsafe'c'decQuadCopyNegate
:: Ptr C'decQuad -> Ptr C'decQuad -> IO (Ptr C'decQuad)
foreign import ccall unsafe "&decQuadCopyNegate" unsafe'p'decQuadCopyNegate
:: FunPtr (Ptr C'decQuad -> Ptr C'decQuad -> IO (Ptr C'decQuad))
foreign import ccall unsafe "decQuadCopySign" unsafe'c'decQuadCopySign
:: Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decQuad -> IO (Ptr C'decQuad)
foreign import ccall unsafe "&decQuadCopySign" unsafe'p'decQuadCopySign
:: FunPtr (Ptr C'decQuad -> Ptr C'decQuad -> Ptr C'decQuad -> IO (Ptr C'decQuad))
foreign import ccall unsafe "decQuadCopy" unsafe'c'decQuadCopy
:: Ptr C'decQuad -> Ptr C'decQuad -> IO (Ptr C'decQuad)
foreign import ccall unsafe "&decQuadCopy" unsafe'p'decQuadCopy
:: FunPtr (Ptr C'decQuad -> Ptr C'decQuad -> IO (Ptr C'decQuad))
foreign import ccall unsafe "decQuadClass" unsafe'c'decQuadClass
:: Ptr C'decQuad -> IO C'decClass
foreign import ccall unsafe "&decQuadClass" unsafe'p'decQuadClass
:: FunPtr (Ptr C'decQuad -> IO C'decClass)
foreign import ccall unsafe "decQuadClassString" unsafe'c'decQuadClassString
:: Ptr C'decQuad -> IO CString
foreign import ccall unsafe "&decQuadClassString" unsafe'p'decQuadClassString
:: FunPtr (Ptr C'decQuad -> IO CString)
foreign import ccall unsafe "decQuadDigits" unsafe'c'decQuadDigits
:: Ptr C'decQuad -> IO C'uint32_t
foreign import ccall unsafe "&decQuadDigits" unsafe'p'decQuadDigits
:: FunPtr (Ptr C'decQuad -> IO C'uint32_t)
foreign import ccall unsafe "decQuadIsCanonical" unsafe'c'decQuadIsCanonical
:: Ptr C'decQuad -> IO C'uint32_t
foreign import ccall unsafe "&decQuadIsCanonical" unsafe'p'decQuadIsCanonical
:: FunPtr (Ptr C'decQuad -> IO C'uint32_t)
foreign import ccall unsafe "decQuadIsFinite" unsafe'c'decQuadIsFinite
:: Ptr C'decQuad -> IO C'uint32_t
foreign import ccall unsafe "&decQuadIsFinite" unsafe'p'decQuadIsFinite
:: FunPtr (Ptr C'decQuad -> IO C'uint32_t)
foreign import ccall unsafe "decQuadIsInteger" unsafe'c'decQuadIsInteger
:: Ptr C'decQuad -> IO C'uint32_t
foreign import ccall unsafe "&decQuadIsInteger" unsafe'p'decQuadIsInteger
:: FunPtr (Ptr C'decQuad -> IO C'uint32_t)
foreign import ccall unsafe "decQuadIsLogical" unsafe'c'decQuadIsLogical
:: Ptr C'decQuad -> IO C'uint32_t
foreign import ccall unsafe "&decQuadIsLogical" unsafe'p'decQuadIsLogical
:: FunPtr (Ptr C'decQuad -> IO C'uint32_t)
foreign import ccall unsafe "decQuadIsInfinite" unsafe'c'decQuadIsInfinite
:: Ptr C'decQuad -> IO C'uint32_t
foreign import ccall unsafe "&decQuadIsInfinite" unsafe'p'decQuadIsInfinite
:: FunPtr (Ptr C'decQuad -> IO C'uint32_t)
foreign import ccall unsafe "decQuadIsNaN" unsafe'c'decQuadIsNaN
:: Ptr C'decQuad -> IO C'uint32_t
foreign import ccall unsafe "&decQuadIsNaN" unsafe'p'decQuadIsNaN
:: FunPtr (Ptr C'decQuad -> IO C'uint32_t)
foreign import ccall unsafe "decQuadIsNegative" unsafe'c'decQuadIsNegative
:: Ptr C'decQuad -> IO C'uint32_t
foreign import ccall unsafe "&decQuadIsNegative" unsafe'p'decQuadIsNegative
:: FunPtr (Ptr C'decQuad -> IO C'uint32_t)
foreign import ccall unsafe "decQuadIsNormal" unsafe'c'decQuadIsNormal
:: Ptr C'decQuad -> IO C'uint32_t
foreign import ccall unsafe "&decQuadIsNormal" unsafe'p'decQuadIsNormal
:: FunPtr (Ptr C'decQuad -> IO C'uint32_t)
foreign import ccall unsafe "decQuadIsPositive" unsafe'c'decQuadIsPositive
:: Ptr C'decQuad -> IO C'uint32_t
foreign import ccall unsafe "&decQuadIsPositive" unsafe'p'decQuadIsPositive
:: FunPtr (Ptr C'decQuad -> IO C'uint32_t)
foreign import ccall unsafe "decQuadIsSignaling" unsafe'c'decQuadIsSignaling
:: Ptr C'decQuad -> IO C'uint32_t
foreign import ccall unsafe "&decQuadIsSignaling" unsafe'p'decQuadIsSignaling
:: FunPtr (Ptr C'decQuad -> IO C'uint32_t)
foreign import ccall unsafe "decQuadIsSigned" unsafe'c'decQuadIsSigned
:: Ptr C'decQuad -> IO C'uint32_t
foreign import ccall unsafe "&decQuadIsSigned" unsafe'p'decQuadIsSigned
:: FunPtr (Ptr C'decQuad -> IO C'uint32_t)
foreign import ccall unsafe "decQuadIsSubnormal" unsafe'c'decQuadIsSubnormal
:: Ptr C'decQuad -> IO C'uint32_t
foreign import ccall unsafe "&decQuadIsSubnormal" unsafe'p'decQuadIsSubnormal
:: FunPtr (Ptr C'decQuad -> IO C'uint32_t)
foreign import ccall unsafe "decQuadIsZero" unsafe'c'decQuadIsZero
:: Ptr C'decQuad -> IO C'uint32_t
foreign import ccall unsafe "&decQuadIsZero" unsafe'p'decQuadIsZero
:: FunPtr (Ptr C'decQuad -> IO C'uint32_t)
foreign import ccall unsafe "decQuadRadix" unsafe'c'decQuadRadix
:: Ptr C'decQuad -> IO C'uint32_t
foreign import ccall unsafe "&decQuadRadix" unsafe'p'decQuadRadix
:: FunPtr (Ptr C'decQuad -> IO C'uint32_t)
foreign import ccall unsafe "decQuadSameQuantum" unsafe'c'decQuadSameQuantum
:: Ptr C'decQuad -> Ptr C'decQuad -> IO C'uint32_t
foreign import ccall unsafe "&decQuadSameQuantum" unsafe'p'decQuadSameQuantum
:: FunPtr (Ptr C'decQuad -> Ptr C'decQuad -> IO C'uint32_t)
foreign import ccall unsafe "decQuadVersion" unsafe'c'decQuadVersion
:: IO CString
foreign import ccall unsafe "&decQuadVersion" unsafe'p'decQuadVersion
:: FunPtr (IO CString)