úÎ!GAC&      !"#$%(c) Levent ErkokBSD3erkokl@gmail.com experimentalSafex crackNum<Complete internal representation for a floating-point numbercrackNumBThe value as represented as a full Integer. Storage purposes only.crackNum FP precision.crackNum0Sign. If True then negative, otherwise positive.crackNumThe exponent as it is stored.crackNum"The implicit bias of the exponent.crackNumThe actual exponent.crackNumBits in the fractional part crackNumLayout representation crackNum!Floating-point kind (i.e., value) crackNumKinds of floating point values crackNum8Zero: 0. If Bool is true, then this is -0; otherwise +0. crackNum>Infinity: oo. If Bool is true, then this is -oo, otherwie +oo.crackNumThe signaling-NaN.crackNumThe quiet-NaN.crackNum/Denormalized number, i.e., leading bit is not 1crackNum Normal value.crackNumInteger/Word precisioncrackNum8-bit unsigned (byte)crackNum 8-bit signedcrackNum16-bit unsigned (word)crackNum 16-bit signedcrackNum32-bit unsigned (double-word)crackNum 32-bit signedcrackNum64-bit unsigned (quad-word)crackNum 64-bit signedcrackNumFloating point precisioncrackNum>Half precision; 16 bits = 1 sign + 5 exponent + 10 mantissacrackNum>Single precision; 32 bits = 1 sign + 8 exponent + 23 mantissacrackNum>Double precision; 64 bits = 1 sign + 11 exponent + 52 mantissa&crackNum Determine if we have a NaN value'crackNum$Show instance for integer-precisions    &(c) Levent ErkokBSD3erkokl@gmail.com experimentalSafe2½!(crackNum"Returns True if all bits are False)crackNum!Returns True if all bits are True*crackNumReturns True if any bit is True+crackNumILay out a sequence of separated bools as a nicely formatted binary number,crackNumBinary to String conversion-crackNumTest whether a digit is binary.crackNum'Convert from binary char digit to value/crackNumRead a number in base 160crackNumRead a number in base 21crackNum&Display a binary number in groups of 42crackNumGroup in chunks of 443crackNum=Display a binary number in groups of 4, in hexadecimal format4crackNum%Cluster a list into given size chunks5crackNumBig-endian num converter6crackNum\Drop unnecessary parts from input. This enables the user to be able to give data more easily7crackNumHalf-precision ruler, line 18crackNumHalf-precision ruler, line 29crackNumHalf-precision ruler, line 3:crackNumSingle-precision ruler, line 1;crackNumSingle-precision ruler, line 2<crackNumSingle-precision ruler, line 3=crackNumDouble-precision ruler, line 1>crackNumDouble-precision ruler, line 2?crackNumDouble-precision ruler, line 3@crackNum=Byte-precision ruler, line 2 (note that no line 1 is needed!)AcrackNumWord-precision ruler, line 1BcrackNumWord-precision ruler, line 2CcrackNum#Double-word-precision ruler, line 1DcrackNum#Double-word-precision ruler, line 2EcrackNum!Quad-word-precision ruler, line 1FcrackNum'QuadDouble-word-precision ruler, line 2GcrackNum@Convert Floating point precision to corresponding number of bitsHcrackNumBConvert Integer precision to whether it's signed and how many bits!()*+,-./0123456789:;<=>?@ABCDEFGH(c) Levent ErkokBSD3erkokl@gmail.com experimentalNone$A× crackNumÇ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.IcrackNum!Use Haskell Float to represent SPJcrackNum"Use Haskell Double to represent DPKcrackNum-Assemble a FP from the given bits and pieces. crackNumiDisplay a Floating-point number in a nicely formatted way. (This function is also available through the L instance for ), but is provided here for symmetry with !.)!crackNumDDisplay a Integer (signed/unsigned) number in a nicely formatted way"crackNumEConvert the given string to a IEEE number with the required precision#crackNum?Turn a Haskell float to the internal detailed FP representation$crackNum@Turn a Haskell double to the internal detailed FP representation%crackNumShow instance for FP%   !"#$%   #$" !M      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQR#crackNum-2.1-8p0CzP2bKa1Inc8re4caUsData.Numbers.CrackNumData.Numbers.CrackNum.DataData.Numbers.CrackNum.UtilsFPintValprecsignstExptbiasexptfracBits bitLayOutkindKindZeroInftySNaNQNaNDenormalNormal IPrecisionW8I8W16I16W32I32W64I64 PrecisionHPSPDP integerToFP displayFP displayWord stringToFP floatToFP doubleToFP$fShowFP isNaNKind$fShowIPrecisionall0all1any1layOutb2s isBinDigitbinDigitreadB16readB2binDispgrpBy4hexDispclusterbvcleanUphpInds1hpInds2hpInds3spInds1spInds2spInds3dpInds1dpInds2dpInds3bInds2wInds1wInds2dInds1dInds2qInds1qInds2fpSzsgSzspValdpValcrackbaseGHC.ShowShow