{-# LINE 1 "lib/Data/Deka/Decnumber.hsc" #-}
{-# LANGUAGE ForeignFunctionInterface #-}
{-# LINE 2 "lib/Data/Deka/Decnumber.hsc" #-}
-- Bindings-dsl sometimes shadows in do notation
-- Bindings-dsl imports unused things

{-# OPTIONS_GHC -fno-warn-name-shadowing -fno-warn-unused-imports #-}


{-# LINE 8 "lib/Data/Deka/Decnumber.hsc" #-}

{-# LINE 9 "lib/Data/Deka/Decnumber.hsc" #-}

{-# LINE 10 "lib/Data/Deka/Decnumber.hsc" #-}

-- | Low-level bindings to the decNumber library.
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

{-# LINE 15 "lib/Data/Deka/Decnumber.hsc" #-}

c'NULL = 0
c'NULL :: (Num a) => a

{-# LINE 17 "lib/Data/Deka/Decnumber.hsc" #-}

type C'rounding = CUInt

{-# LINE 19 "lib/Data/Deka/Decnumber.hsc" #-}
c'DEC_ROUND_CEILING = 0
c'DEC_ROUND_CEILING :: (Num a) => a

{-# LINE 20 "lib/Data/Deka/Decnumber.hsc" #-}
c'DEC_ROUND_UP = 1
c'DEC_ROUND_UP :: (Num a) => a

{-# LINE 21 "lib/Data/Deka/Decnumber.hsc" #-}
c'DEC_ROUND_HALF_UP = 2
c'DEC_ROUND_HALF_UP :: (Num a) => a

{-# LINE 22 "lib/Data/Deka/Decnumber.hsc" #-}
c'DEC_ROUND_HALF_EVEN = 3
c'DEC_ROUND_HALF_EVEN :: (Num a) => a

{-# LINE 23 "lib/Data/Deka/Decnumber.hsc" #-}
c'DEC_ROUND_HALF_DOWN = 4
c'DEC_ROUND_HALF_DOWN :: (Num a) => a

{-# LINE 24 "lib/Data/Deka/Decnumber.hsc" #-}
c'DEC_ROUND_DOWN = 5
c'DEC_ROUND_DOWN :: (Num a) => a

{-# LINE 25 "lib/Data/Deka/Decnumber.hsc" #-}
c'DEC_ROUND_FLOOR = 6
c'DEC_ROUND_FLOOR :: (Num a) => a

{-# LINE 26 "lib/Data/Deka/Decnumber.hsc" #-}
c'DEC_ROUND_05UP = 7
c'DEC_ROUND_05UP :: (Num a) => a

{-# LINE 27 "lib/Data/Deka/Decnumber.hsc" #-}
c'DEC_ROUND_MAX = 8
c'DEC_ROUND_MAX :: (Num a) => a

{-# LINE 28 "lib/Data/Deka/Decnumber.hsc" #-}

type C'int32_t = CInt

{-# LINE 30 "lib/Data/Deka/Decnumber.hsc" #-}
type C'uint8_t = CUChar

{-# LINE 31 "lib/Data/Deka/Decnumber.hsc" #-}
type C'uint16_t = Word16

{-# LINE 32 "lib/Data/Deka/Decnumber.hsc" #-}
type C'uint32_t = CUInt

{-# LINE 33 "lib/Data/Deka/Decnumber.hsc" #-}
type C'uint64_t = Word64

{-# LINE 34 "lib/Data/Deka/Decnumber.hsc" #-}



{-# LINE 37 "lib/Data/Deka/Decnumber.hsc" #-}

{-# LINE 38 "lib/Data/Deka/Decnumber.hsc" #-}

{-# LINE 39 "lib/Data/Deka/Decnumber.hsc" #-}

{-# LINE 40 "lib/Data/Deka/Decnumber.hsc" #-}

{-# LINE 41 "lib/Data/Deka/Decnumber.hsc" #-}

{-# LINE 42 "lib/Data/Deka/Decnumber.hsc" #-}

{-# LINE 43 "lib/Data/Deka/Decnumber.hsc" #-}

{-# LINE 44 "lib/Data/Deka/Decnumber.hsc" #-}
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 ()

{-# LINE 45 "lib/Data/Deka/Decnumber.hsc" #-}

-- decContext
c'DEC_INIT_DECQUAD = 128
c'DEC_INIT_DECQUAD :: (Num a) => a

{-# LINE 48 "lib/Data/Deka/Decnumber.hsc" #-}
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))

{-# LINE 49 "lib/Data/Deka/Decnumber.hsc" #-}

type C'decClass = CUInt

{-# LINE 51 "lib/Data/Deka/Decnumber.hsc" #-}
c'DEC_CLASS_SNAN = 0
c'DEC_CLASS_SNAN :: (Num a) => a

{-# LINE 52 "lib/Data/Deka/Decnumber.hsc" #-}
c'DEC_CLASS_QNAN = 1
c'DEC_CLASS_QNAN :: (Num a) => a

{-# LINE 53 "lib/Data/Deka/Decnumber.hsc" #-}
c'DEC_CLASS_NEG_INF = 2
c'DEC_CLASS_NEG_INF :: (Num a) => a

{-# LINE 54 "lib/Data/Deka/Decnumber.hsc" #-}
c'DEC_CLASS_NEG_NORMAL = 3
c'DEC_CLASS_NEG_NORMAL :: (Num a) => a

{-# LINE 55 "lib/Data/Deka/Decnumber.hsc" #-}
c'DEC_CLASS_NEG_SUBNORMAL = 4
c'DEC_CLASS_NEG_SUBNORMAL :: (Num a) => a

{-# LINE 56 "lib/Data/Deka/Decnumber.hsc" #-}
c'DEC_CLASS_NEG_ZERO = 5
c'DEC_CLASS_NEG_ZERO :: (Num a) => a

{-# LINE 57 "lib/Data/Deka/Decnumber.hsc" #-}
c'DEC_CLASS_POS_ZERO = 6
c'DEC_CLASS_POS_ZERO :: (Num a) => a

{-# LINE 58 "lib/Data/Deka/Decnumber.hsc" #-}
c'DEC_CLASS_POS_SUBNORMAL = 7
c'DEC_CLASS_POS_SUBNORMAL :: (Num a) => a

{-# LINE 59 "lib/Data/Deka/Decnumber.hsc" #-}
c'DEC_CLASS_POS_NORMAL = 8
c'DEC_CLASS_POS_NORMAL :: (Num a) => a

{-# LINE 60 "lib/Data/Deka/Decnumber.hsc" #-}
c'DEC_CLASS_POS_INF = 9
c'DEC_CLASS_POS_INF :: (Num a) => a

{-# LINE 61 "lib/Data/Deka/Decnumber.hsc" #-}

c'DEC_Conversion_syntax = 1
c'DEC_Conversion_syntax :: (Num a) => a

{-# LINE 63 "lib/Data/Deka/Decnumber.hsc" #-}
c'DEC_Division_by_zero = 2
c'DEC_Division_by_zero :: (Num a) => a

{-# LINE 64 "lib/Data/Deka/Decnumber.hsc" #-}
c'DEC_Division_impossible = 4
c'DEC_Division_impossible :: (Num a) => a

{-# LINE 65 "lib/Data/Deka/Decnumber.hsc" #-}
c'DEC_Division_undefined = 8
c'DEC_Division_undefined :: (Num a) => a

{-# LINE 66 "lib/Data/Deka/Decnumber.hsc" #-}
c'DEC_Insufficient_storage = 16
c'DEC_Insufficient_storage :: (Num a) => a

{-# LINE 67 "lib/Data/Deka/Decnumber.hsc" #-}
c'DEC_Inexact = 32
c'DEC_Inexact :: (Num a) => a

{-# LINE 68 "lib/Data/Deka/Decnumber.hsc" #-}
c'DEC_Invalid_context = 64
c'DEC_Invalid_context :: (Num a) => a

{-# LINE 69 "lib/Data/Deka/Decnumber.hsc" #-}
c'DEC_Invalid_operation = 128
c'DEC_Invalid_operation :: (Num a) => a

{-# LINE 70 "lib/Data/Deka/Decnumber.hsc" #-}
c'DEC_Overflow = 512
c'DEC_Overflow :: (Num a) => a

{-# LINE 71 "lib/Data/Deka/Decnumber.hsc" #-}
c'DEC_Clamped = 1024
c'DEC_Clamped :: (Num a) => a

{-# LINE 72 "lib/Data/Deka/Decnumber.hsc" #-}
c'DEC_Rounded = 2048
c'DEC_Rounded :: (Num a) => a

{-# LINE 73 "lib/Data/Deka/Decnumber.hsc" #-}
c'DEC_Subnormal = 4096
c'DEC_Subnormal :: (Num a) => a

{-# LINE 74 "lib/Data/Deka/Decnumber.hsc" #-}
c'DEC_Underflow = 8192
c'DEC_Underflow :: (Num a) => a

{-# LINE 75 "lib/Data/Deka/Decnumber.hsc" #-}

c'DEC_IEEE_754_Division_by_zero = 2
c'DEC_IEEE_754_Division_by_zero :: (Num a) => a

{-# LINE 77 "lib/Data/Deka/Decnumber.hsc" #-}
c'DEC_IEEE_754_Inexact = 32
c'DEC_IEEE_754_Inexact :: (Num a) => a

{-# LINE 78 "lib/Data/Deka/Decnumber.hsc" #-}
c'DEC_IEEE_754_Invalid_operation = 221
c'DEC_IEEE_754_Invalid_operation :: (Num a) => a

{-# LINE 79 "lib/Data/Deka/Decnumber.hsc" #-}
c'DEC_IEEE_754_Overflow = 512
c'DEC_IEEE_754_Overflow :: (Num a) => a

{-# LINE 80 "lib/Data/Deka/Decnumber.hsc" #-}
c'DEC_IEEE_754_Underflow = 8192
c'DEC_IEEE_754_Underflow :: (Num a) => a

{-# LINE 81 "lib/Data/Deka/Decnumber.hsc" #-}
c'DEC_Errors = 8927
c'DEC_Errors :: (Num a) => a

{-# LINE 82 "lib/Data/Deka/Decnumber.hsc" #-}
c'DEC_NaNs = 221
c'DEC_NaNs :: (Num a) => a

{-# LINE 83 "lib/Data/Deka/Decnumber.hsc" #-}

c'DEC_Condition_Length = 21
c'DEC_Condition_Length :: (Num a) => a

{-# LINE 85 "lib/Data/Deka/Decnumber.hsc" #-}

c'DEC_INIT_BASE = 0
c'DEC_INIT_BASE :: (Num a) => a

{-# LINE 87 "lib/Data/Deka/Decnumber.hsc" #-}
c'DEC_INIT_DECIMAL32 = 32
c'DEC_INIT_DECIMAL32 :: (Num a) => a

{-# LINE 88 "lib/Data/Deka/Decnumber.hsc" #-}
c'DEC_INIT_DECIMAL64 = 64
c'DEC_INIT_DECIMAL64 :: (Num a) => a

{-# LINE 89 "lib/Data/Deka/Decnumber.hsc" #-}
c'DEC_INIT_DECIMAL128 = 128
c'DEC_INIT_DECIMAL128 :: (Num a) => a

{-# LINE 90 "lib/Data/Deka/Decnumber.hsc" #-}


c'DECQUAD_Bytes = 16
c'DECQUAD_Bytes :: (Num a) => a

{-# LINE 93 "lib/Data/Deka/Decnumber.hsc" #-}
c'DECQUAD_Pmax = 34
c'DECQUAD_Pmax :: (Num a) => a

{-# LINE 94 "lib/Data/Deka/Decnumber.hsc" #-}
c'DECQUAD_Emin = -6143
c'DECQUAD_Emin :: (Num a) => a

{-# LINE 95 "lib/Data/Deka/Decnumber.hsc" #-}
c'DECQUAD_Emax = 6144
c'DECQUAD_Emax :: (Num a) => a

{-# LINE 96 "lib/Data/Deka/Decnumber.hsc" #-}
c'DECQUAD_EmaxD = 4
c'DECQUAD_EmaxD :: (Num a) => a

{-# LINE 97 "lib/Data/Deka/Decnumber.hsc" #-}
c'DECQUAD_Bias = 6176
c'DECQUAD_Bias :: (Num a) => a

{-# LINE 98 "lib/Data/Deka/Decnumber.hsc" #-}
c'DECQUAD_String = 43
c'DECQUAD_String :: (Num a) => a

{-# LINE 99 "lib/Data/Deka/Decnumber.hsc" #-}
c'DECQUAD_EconL = 12
c'DECQUAD_EconL :: (Num a) => a

{-# LINE 100 "lib/Data/Deka/Decnumber.hsc" #-}
c'DECQUAD_Declets = 11
c'DECQUAD_Declets :: (Num a) => a

{-# LINE 101 "lib/Data/Deka/Decnumber.hsc" #-}
c'DECQUAD_Ehigh = 12287
c'DECQUAD_Ehigh :: (Num a) => a

{-# LINE 102 "lib/Data/Deka/Decnumber.hsc" #-}


{-# LINE 104 "lib/Data/Deka/Decnumber.hsc" #-}

{-# LINE 105 "lib/Data/Deka/Decnumber.hsc" #-}

{-# LINE 106 "lib/Data/Deka/Decnumber.hsc" #-}

{-# LINE 107 "lib/Data/Deka/Decnumber.hsc" #-}
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 ()

{-# LINE 108 "lib/Data/Deka/Decnumber.hsc" #-}


c'DECFLOAT_Sign = 2147483648
c'DECFLOAT_Sign :: (Num a) => a

{-# LINE 111 "lib/Data/Deka/Decnumber.hsc" #-}
c'DECFLOAT_NaN = 2080374784
c'DECFLOAT_NaN :: (Num a) => a

{-# LINE 112 "lib/Data/Deka/Decnumber.hsc" #-}
c'DECFLOAT_qNaN = 2080374784
c'DECFLOAT_qNaN :: (Num a) => a

{-# LINE 113 "lib/Data/Deka/Decnumber.hsc" #-}
c'DECFLOAT_sNaN = 2113929216
c'DECFLOAT_sNaN :: (Num a) => a

{-# LINE 114 "lib/Data/Deka/Decnumber.hsc" #-}
c'DECFLOAT_Inf = 2013265920
c'DECFLOAT_Inf :: (Num a) => a

{-# LINE 115 "lib/Data/Deka/Decnumber.hsc" #-}
c'DECFLOAT_MinSp = 2013265920
c'DECFLOAT_MinSp :: (Num a) => a

{-# LINE 116 "lib/Data/Deka/Decnumber.hsc" #-}

c'DECPPLUSALT = 10
c'DECPPLUSALT :: (Num a) => a

{-# LINE 118 "lib/Data/Deka/Decnumber.hsc" #-}
c'DECPMINUSALT = 11
c'DECPMINUSALT :: (Num a) => a

{-# LINE 119 "lib/Data/Deka/Decnumber.hsc" #-}
c'DECPPLUS = 12
c'DECPPLUS :: (Num a) => a

{-# LINE 120 "lib/Data/Deka/Decnumber.hsc" #-}
c'DECPMINUS = 13
c'DECPMINUS :: (Num a) => a

{-# LINE 121 "lib/Data/Deka/Decnumber.hsc" #-}
c'DECPPLUSALT2 = 14
c'DECPPLUSALT2 :: (Num a) => a

{-# LINE 122 "lib/Data/Deka/Decnumber.hsc" #-}
c'DECPUNSIGNED = 15
c'DECPUNSIGNED :: (Num a) => a

{-# LINE 123 "lib/Data/Deka/Decnumber.hsc" #-}

-- Utilities

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)

{-# LINE 127 "lib/Data/Deka/Decnumber.hsc" #-}
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)

{-# LINE 128 "lib/Data/Deka/Decnumber.hsc" #-}

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))

{-# LINE 130 "lib/Data/Deka/Decnumber.hsc" #-}
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))

{-# LINE 131 "lib/Data/Deka/Decnumber.hsc" #-}
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))

{-# LINE 132 "lib/Data/Deka/Decnumber.hsc" #-}
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))

{-# LINE 133 "lib/Data/Deka/Decnumber.hsc" #-}
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))

{-# LINE 134 "lib/Data/Deka/Decnumber.hsc" #-}
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)

{-# LINE 135 "lib/Data/Deka/Decnumber.hsc" #-}
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)

{-# LINE 136 "lib/Data/Deka/Decnumber.hsc" #-}
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))

{-# LINE 137 "lib/Data/Deka/Decnumber.hsc" #-}
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))

{-# LINE 138 "lib/Data/Deka/Decnumber.hsc" #-}
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 ())

{-# LINE 139 "lib/Data/Deka/Decnumber.hsc" #-}
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)

{-# LINE 140 "lib/Data/Deka/Decnumber.hsc" #-}
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)

{-# LINE 141 "lib/Data/Deka/Decnumber.hsc" #-}
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)

{-# LINE 142 "lib/Data/Deka/Decnumber.hsc" #-}
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)

{-# LINE 143 "lib/Data/Deka/Decnumber.hsc" #-}
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))

{-# LINE 144 "lib/Data/Deka/Decnumber.hsc" #-}
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))

{-# LINE 145 "lib/Data/Deka/Decnumber.hsc" #-}
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))

{-# LINE 146 "lib/Data/Deka/Decnumber.hsc" #-}
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))

{-# LINE 147 "lib/Data/Deka/Decnumber.hsc" #-}
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))

{-# LINE 148 "lib/Data/Deka/Decnumber.hsc" #-}
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))

{-# LINE 149 "lib/Data/Deka/Decnumber.hsc" #-}
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))

{-# LINE 150 "lib/Data/Deka/Decnumber.hsc" #-}
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))

{-# LINE 151 "lib/Data/Deka/Decnumber.hsc" #-}
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))

{-# LINE 152 "lib/Data/Deka/Decnumber.hsc" #-}
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))

{-# LINE 153 "lib/Data/Deka/Decnumber.hsc" #-}
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))

{-# LINE 154 "lib/Data/Deka/Decnumber.hsc" #-}
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))

{-# LINE 155 "lib/Data/Deka/Decnumber.hsc" #-}
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))

{-# LINE 156 "lib/Data/Deka/Decnumber.hsc" #-}
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))

{-# LINE 157 "lib/Data/Deka/Decnumber.hsc" #-}
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))

{-# LINE 158 "lib/Data/Deka/Decnumber.hsc" #-}
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))

{-# LINE 159 "lib/Data/Deka/Decnumber.hsc" #-}
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))

{-# LINE 160 "lib/Data/Deka/Decnumber.hsc" #-}
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))

{-# LINE 161 "lib/Data/Deka/Decnumber.hsc" #-}
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))

{-# LINE 162 "lib/Data/Deka/Decnumber.hsc" #-}
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))

{-# LINE 163 "lib/Data/Deka/Decnumber.hsc" #-}
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))

{-# LINE 164 "lib/Data/Deka/Decnumber.hsc" #-}
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))

{-# LINE 165 "lib/Data/Deka/Decnumber.hsc" #-}
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))

{-# LINE 166 "lib/Data/Deka/Decnumber.hsc" #-}
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))

{-# LINE 167 "lib/Data/Deka/Decnumber.hsc" #-}
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))

{-# LINE 168 "lib/Data/Deka/Decnumber.hsc" #-}
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))

{-# LINE 169 "lib/Data/Deka/Decnumber.hsc" #-}
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))

{-# LINE 170 "lib/Data/Deka/Decnumber.hsc" #-}
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))

{-# LINE 171 "lib/Data/Deka/Decnumber.hsc" #-}
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))

{-# LINE 172 "lib/Data/Deka/Decnumber.hsc" #-}
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)

{-# LINE 173 "lib/Data/Deka/Decnumber.hsc" #-}
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))

{-# LINE 174 "lib/Data/Deka/Decnumber.hsc" #-}
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))

{-# LINE 175 "lib/Data/Deka/Decnumber.hsc" #-}
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))

{-# LINE 176 "lib/Data/Deka/Decnumber.hsc" #-}

-- Comparisons

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))

{-# LINE 180 "lib/Data/Deka/Decnumber.hsc" #-}
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))

{-# LINE 181 "lib/Data/Deka/Decnumber.hsc" #-}
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))

{-# LINE 182 "lib/Data/Deka/Decnumber.hsc" #-}
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))

{-# LINE 183 "lib/Data/Deka/Decnumber.hsc" #-}

-- Copies
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))

{-# LINE 186 "lib/Data/Deka/Decnumber.hsc" #-}
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))

{-# LINE 187 "lib/Data/Deka/Decnumber.hsc" #-}
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))

{-# LINE 188 "lib/Data/Deka/Decnumber.hsc" #-}
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))

{-# LINE 189 "lib/Data/Deka/Decnumber.hsc" #-}
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))

{-# LINE 190 "lib/Data/Deka/Decnumber.hsc" #-}

-- Non-computational

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)

{-# LINE 194 "lib/Data/Deka/Decnumber.hsc" #-}
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)

{-# LINE 195 "lib/Data/Deka/Decnumber.hsc" #-}
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)

{-# LINE 196 "lib/Data/Deka/Decnumber.hsc" #-}
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)

{-# LINE 197 "lib/Data/Deka/Decnumber.hsc" #-}
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)

{-# LINE 198 "lib/Data/Deka/Decnumber.hsc" #-}
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)

{-# LINE 199 "lib/Data/Deka/Decnumber.hsc" #-}
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)

{-# LINE 200 "lib/Data/Deka/Decnumber.hsc" #-}
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)

{-# LINE 201 "lib/Data/Deka/Decnumber.hsc" #-}
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)

{-# LINE 202 "lib/Data/Deka/Decnumber.hsc" #-}
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)

{-# LINE 203 "lib/Data/Deka/Decnumber.hsc" #-}
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)

{-# LINE 204 "lib/Data/Deka/Decnumber.hsc" #-}
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)

{-# LINE 205 "lib/Data/Deka/Decnumber.hsc" #-}
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)

{-# LINE 206 "lib/Data/Deka/Decnumber.hsc" #-}
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)

{-# LINE 207 "lib/Data/Deka/Decnumber.hsc" #-}
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)

{-# LINE 208 "lib/Data/Deka/Decnumber.hsc" #-}
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)

{-# LINE 209 "lib/Data/Deka/Decnumber.hsc" #-}
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)

{-# LINE 210 "lib/Data/Deka/Decnumber.hsc" #-}
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)

{-# LINE 211 "lib/Data/Deka/Decnumber.hsc" #-}
foreign import ccall unsafe "decQuadVersion" unsafe'c'decQuadVersion
  :: IO CString
foreign import ccall unsafe "&decQuadVersion" unsafe'p'decQuadVersion
  :: FunPtr (IO CString)

{-# LINE 212 "lib/Data/Deka/Decnumber.hsc" #-}