{-# LANGUAGE ForeignFunctionInterface #-} -- Bindings-dsl sometimes shadows in do notation -- Bindings-dsl imports unused things {-# OPTIONS_GHC -fno-warn-name-shadowing -fno-warn-unused-imports #-} #include #include #include -- | Low-level bindings to the decNumber library. module Data.Deka.Decnumber where #strict_import #num NULL #integral_t enum rounding #num DEC_ROUND_CEILING #num DEC_ROUND_UP #num DEC_ROUND_HALF_UP #num DEC_ROUND_HALF_EVEN #num DEC_ROUND_HALF_DOWN #num DEC_ROUND_DOWN #num DEC_ROUND_FLOOR #num DEC_ROUND_05UP #num DEC_ROUND_MAX #integral_t int32_t #integral_t uint8_t #integral_t uint16_t #integral_t uint32_t #integral_t uint64_t #starttype decContext #field digits , #field emax , #field emin , #field round , #field traps , #field status , #field clamp , #stoptype -- decContext #num DEC_INIT_DECQUAD #ccall_unsafe decContextDefault , Ptr -> -> IO (Ptr ) #integral_t enum decClass #num DEC_CLASS_SNAN #num DEC_CLASS_QNAN #num DEC_CLASS_NEG_INF #num DEC_CLASS_NEG_NORMAL #num DEC_CLASS_NEG_SUBNORMAL #num DEC_CLASS_NEG_ZERO #num DEC_CLASS_POS_ZERO #num DEC_CLASS_POS_SUBNORMAL #num DEC_CLASS_POS_NORMAL #num DEC_CLASS_POS_INF #num DEC_Conversion_syntax #num DEC_Division_by_zero #num DEC_Division_impossible #num DEC_Division_undefined #num DEC_Insufficient_storage #num DEC_Inexact #num DEC_Invalid_context #num DEC_Invalid_operation #num DEC_Overflow #num DEC_Clamped #num DEC_Rounded #num DEC_Subnormal #num DEC_Underflow #num DEC_IEEE_754_Division_by_zero #num DEC_IEEE_754_Inexact #num DEC_IEEE_754_Invalid_operation #num DEC_IEEE_754_Overflow #num DEC_IEEE_754_Underflow #num DEC_Errors #num DEC_NaNs #num DEC_Condition_Length #num DEC_INIT_BASE #num DEC_INIT_DECIMAL32 #num DEC_INIT_DECIMAL64 #num DEC_INIT_DECIMAL128 #num DECQUAD_Bytes #num DECQUAD_Pmax #num DECQUAD_Emin #num DECQUAD_Emax #num DECQUAD_EmaxD #num DECQUAD_Bias #num DECQUAD_String #num DECQUAD_EconL #num DECQUAD_Declets #num DECQUAD_Ehigh #starttype decQuad #array_field bytes , #array_field shorts , #array_field words , #stoptype #num DECFLOAT_Sign #num DECFLOAT_NaN #num DECFLOAT_qNaN #num DECFLOAT_sNaN #num DECFLOAT_Inf #num DECFLOAT_MinSp #num DECPPLUSALT #num DECPMINUSALT #num DECPPLUS #num DECPMINUS #num DECPPLUSALT2 #num DECPUNSIGNED -- Utilities #ccall_unsafe decQuadToInt32 , Ptr -> Ptr -> -> IO #ccall_unsafe decQuadToInt32Exact , Ptr -> Ptr -> -> IO #ccall_unsafe decQuadFromInt32 , Ptr -> -> IO (Ptr ) #ccall_unsafe decQuadFromPacked , Ptr -> -> Ptr -> IO (Ptr ) #ccall_unsafe decQuadFromPackedChecked , Ptr -> -> Ptr -> IO (Ptr ) #ccall_unsafe decQuadFromUInt32 , Ptr -> -> IO (Ptr ) #ccall_unsafe decQuadFromString , Ptr -> CString -> Ptr -> IO (Ptr ) #ccall_unsafe decQuadGetCoefficient , Ptr -> Ptr -> IO #ccall_unsafe decQuadGetExponent , Ptr -> IO #ccall_unsafe decQuadSetCoefficient , Ptr -> Ptr -> -> IO (Ptr ) #ccall_unsafe decQuadSetExponent , Ptr -> Ptr -> -> IO (Ptr ) #ccall_unsafe decQuadShow , Ptr -> CString -> IO () #ccall_unsafe decQuadToEngString , Ptr -> CString -> IO CString #ccall_unsafe decQuadToString , Ptr -> CString -> IO CString #ccall_unsafe decQuadToUInt32 , Ptr -> Ptr -> -> IO #ccall_unsafe decQuadToUInt32Exact , Ptr -> Ptr -> -> IO #ccall_unsafe decQuadZero , Ptr -> IO (Ptr ) #ccall_unsafe decQuadAbs , Ptr -> Ptr -> Ptr -> IO (Ptr ) #ccall_unsafe decQuadAdd , Ptr -> Ptr -> Ptr -> Ptr -> IO (Ptr ) #ccall_unsafe decQuadAnd , Ptr -> Ptr -> Ptr -> Ptr -> IO (Ptr ) #ccall_unsafe decQuadDivide , Ptr -> Ptr -> Ptr -> Ptr -> IO (Ptr ) #ccall_unsafe decQuadDivideInteger , Ptr -> Ptr -> Ptr -> Ptr -> IO (Ptr ) #ccall_unsafe decQuadFMA , Ptr -> Ptr -> Ptr -> Ptr -> Ptr -> IO (Ptr ) #ccall_unsafe decQuadFromBCD , Ptr -> -> Ptr -> -> IO (Ptr ) #ccall_unsafe decQuadInvert , Ptr -> Ptr -> Ptr -> IO (Ptr ) #ccall_unsafe decQuadLogB , Ptr -> Ptr -> Ptr -> IO (Ptr ) #ccall_unsafe decQuadMax , Ptr -> Ptr -> Ptr -> Ptr -> IO (Ptr ) #ccall_unsafe decQuadMaxMag , Ptr -> Ptr -> Ptr -> Ptr -> IO (Ptr ) #ccall_unsafe decQuadMin , Ptr -> Ptr -> Ptr -> Ptr -> IO (Ptr ) #ccall_unsafe decQuadMinMag , Ptr -> Ptr -> Ptr -> Ptr -> IO (Ptr ) #ccall_unsafe decQuadMinus , Ptr -> Ptr -> Ptr -> IO (Ptr ) #ccall_unsafe decQuadMultiply , Ptr -> Ptr -> Ptr -> Ptr -> IO (Ptr ) #ccall_unsafe decQuadNextMinus , Ptr -> Ptr -> Ptr -> IO (Ptr ) #ccall_unsafe decQuadNextPlus , Ptr -> Ptr -> Ptr -> IO (Ptr ) #ccall_unsafe decQuadNextToward , Ptr -> Ptr -> Ptr -> Ptr -> IO (Ptr ) #ccall_unsafe decQuadOr , Ptr -> Ptr -> Ptr -> Ptr -> IO (Ptr ) #ccall_unsafe decQuadPlus , Ptr -> Ptr -> Ptr -> IO (Ptr ) #ccall_unsafe decQuadQuantize , Ptr -> Ptr -> Ptr -> Ptr -> IO (Ptr ) #ccall_unsafe decQuadReduce , Ptr -> Ptr -> Ptr -> IO (Ptr ) #ccall_unsafe decQuadRemainder , Ptr -> Ptr -> Ptr -> Ptr -> IO (Ptr ) #ccall_unsafe decQuadRemainderNear , Ptr -> Ptr -> Ptr -> Ptr -> IO (Ptr ) #ccall_unsafe decQuadRotate , Ptr -> Ptr -> Ptr -> Ptr -> IO (Ptr ) #ccall_unsafe decQuadScaleB , Ptr -> Ptr -> Ptr -> Ptr -> IO (Ptr ) #ccall_unsafe decQuadShift , Ptr -> Ptr -> Ptr -> Ptr -> IO (Ptr ) #ccall_unsafe decQuadSubtract , Ptr -> Ptr -> Ptr -> Ptr -> IO (Ptr ) #ccall_unsafe decQuadToBCD , Ptr -> Ptr -> Ptr -> IO #ccall_unsafe decQuadToIntegralValue , Ptr -> Ptr -> Ptr -> -> IO (Ptr ) #ccall_unsafe decQuadToIntegralExact , Ptr -> Ptr -> Ptr -> IO (Ptr ) #ccall_unsafe decQuadXor , Ptr -> Ptr -> Ptr -> Ptr -> IO (Ptr ) -- Comparisons #ccall_unsafe decQuadCompare , Ptr -> Ptr -> Ptr -> Ptr -> IO (Ptr ) #ccall_unsafe decQuadCompareSignal , Ptr -> Ptr -> Ptr -> Ptr -> IO (Ptr ) #ccall_unsafe decQuadCompareTotal , Ptr -> Ptr -> Ptr -> IO (Ptr ) #ccall_unsafe decQuadCompareTotalMag , Ptr -> Ptr -> Ptr -> IO (Ptr ) -- Copies #ccall_unsafe decQuadCanonical , Ptr -> Ptr -> IO (Ptr ) #ccall_unsafe decQuadCopyAbs , Ptr -> Ptr -> IO (Ptr ) #ccall_unsafe decQuadCopyNegate , Ptr -> Ptr -> IO (Ptr ) #ccall_unsafe decQuadCopySign , Ptr -> Ptr -> Ptr -> IO (Ptr ) #ccall_unsafe decQuadCopy , Ptr -> Ptr -> IO (Ptr ) -- Non-computational #ccall_unsafe decQuadClass , Ptr -> IO #ccall_unsafe decQuadClassString , Ptr -> IO CString #ccall_unsafe decQuadDigits , Ptr -> IO #ccall_unsafe decQuadIsCanonical , Ptr -> IO #ccall_unsafe decQuadIsFinite , Ptr -> IO #ccall_unsafe decQuadIsInteger , Ptr -> IO #ccall_unsafe decQuadIsLogical , Ptr -> IO #ccall_unsafe decQuadIsInfinite , Ptr -> IO #ccall_unsafe decQuadIsNaN , Ptr -> IO #ccall_unsafe decQuadIsNegative , Ptr -> IO #ccall_unsafe decQuadIsNormal , Ptr -> IO #ccall_unsafe decQuadIsPositive , Ptr -> IO #ccall_unsafe decQuadIsSignaling , Ptr -> IO #ccall_unsafe decQuadIsSigned , Ptr -> IO #ccall_unsafe decQuadIsSubnormal , Ptr -> IO #ccall_unsafe decQuadIsZero , Ptr -> IO #ccall_unsafe decQuadRadix , Ptr -> IO #ccall_unsafe decQuadSameQuantum , Ptr -> Ptr -> IO #ccall_unsafe decQuadVersion , IO CString