crackNum-1.9: Crack various integer, floating-point data formats

Copyright(c) Levent Erkok
LicenseBSD3
Maintainererkokl@gmail.com
Stabilityexperimental
Safe HaskellNone
LanguageHaskell2010

Data.Numbers.CrackNum

Contents

Description

A library for formatting/analyzing FP and Integer values

Synopsis

Internal representation of a Floating-point numbers

data FP Source #

Complete internal representation for a floating-point number

Constructors

FP 

Fields

data Precision Source #

Floating point precision

Constructors

HP

Half precision; 16 bits = 1 sign + 5 exponent + 10 mantissa

SP

Single precision; 32 bits = 1 sign + 8 exponent + 23 mantissa

DP

Double precision; 64 bits = 1 sign + 11 exponent + 52 mantissa

data IPrecision Source #

Integer/Word precision

Constructors

W8

8-bit unsigned (byte)

I8

8-bit signed

W16

16-bit unsigned (word)

I16

16-bit signed

W32

32-bit unsigned (double-word)

I32

32-bit signed

W64

64-bit unsigned (quad-word)

I64

64-bit signed

Instances

Eq IPrecision Source # 
Show IPrecision Source #

Show instance for integer-precisions

data Kind Source #

Kinds of floating point values

Constructors

Zero Bool

Zero: 0. If Bool is true, then this is -0; otherwise +0.

Infty Bool

Infinity: oo. If Bool is true, then this is -oo, otherwie +oo.

SNaN

The signaling-NaN.

QNaN

The quiet-NaN.

Denormal

Denormalized number, i.e., leading bit is not 1

Normal

Normal value.

Creating FP values

floatToFP :: Float -> FP Source #

Turn a Haskell float to the internal detailed FP representation

doubleToFP :: Double -> FP Source #

Turn a Haskell double to the internal detailed FP representation

stringToFP :: Precision -> String -> FP Source #

Convert the given string to a IEEE number with the required precision

integerToFP :: Precision -> Integer -> FP Source #

Crack a Haskell Integer value as the given precision floating value. The Integer should be the value corresponding to the bit-pattern as the float is laid out in memory according to the IEEE rules.

Displaying FP and Int/Word values

displayFP :: FP -> String Source #

Display a Floating-point number in a nicely formatted way. (This function is also available through the Show instance for FP, but is provided here for symmetry with displayWord.)

displayWord :: IPrecision -> Integer -> String Source #

Display a Integer (signed/unsigned) number in a nicely formatted way

Orphan instances

Show FP Source #

Show instance for FP

Methods

showsPrec :: Int -> FP -> ShowS #

show :: FP -> String #

showList :: [FP] -> ShowS #