úÎ?š;©%      !"#$(c) Levent ErkokBSD3erkokl@gmail.com experimentalSafe <Complete internal representation for a floating-point numberBThe value as represented as a full Integer. Storage purposes only. FP precision.0Sign. If True then negative, otherwise positive.The exponent as it is stored."The implicit bias of the exponent.The actual exponent.Bits in the fractional part Layout representation !Floating-point kind (i.e., value) Kinds of floating point values 8Zero: 0. If Bool is true, then this is -0; otherwise +0. >Infinity: oo. If Bool is true, then this is -oo, otherwie +oo.The signaling-NaN.The quiet-NaN./Denormalized number, i.e., leading bit is not 1 Normal value.Integer/Word precision8-bit unsigned (byte) 8-bit signed16-bit unsigned (word) 16-bit signed32-bit unsigned (double-word) 32-bit signed64-bit unsigned (quad-word) 64-bit signedFloating point precision>Half precision; 16 bits = 1 sign + 5 exponent + 10 mantissa>Single precision; 32 bits = 1 sign + 8 exponent + 23 mantissa>Double precision; 64 bits = 1 sign + 11 exponent + 52 mantissa% Determine if we have a NaN value&$Show instance for integer-precisions! %&  %   %&(c) Levent ErkokBSD3erkokl@gmail.com experimentalSafe!'"Returns True if all bits are False(!Returns True if all bits are True)Returns True if any bit is True*ILay out a sequence of separated bools as a nicely formatted binary number+Binary to String conversion,Test whether a digit is binary-'Convert from binary char digit to value.Read a number in base 16/Read a number in base 20&Display a binary number in groups of 41Group in chunks of 442=Display a binary number in groups of 4, in hexadecimal format3%Cluster a list into given size chunks4Big-endian num converter5\Drop unnecessary parts from input. This enables the user to be able to give data more easily6Half-precision ruler, line 17Half-precision ruler, line 28Half-precision ruler, line 39Single-precision ruler, line 1:Single-precision ruler, line 2;Single-precision ruler, line 3<Double-precision ruler, line 1=Double-precision ruler, line 2>Double-precision ruler, line 3?=Byte-precision ruler, line 2 (note that no line 1 is needed!)@Word-precision ruler, line 1AWord-precision ruler, line 2B#Double-word-precision ruler, line 1C#Double-word-precision ruler, line 2D!Quad-word-precision ruler, line 1E'QuadDouble-word-precision ruler, line 2F@Convert Floating point precision to corresponding number of bitsGBConvert Integer precision to whether it's signed and how many bits!'()*+,-./0123456789:;<=>?@ABCDEFG!'()*+,-./0123456789:;<=>?@ABCDEFG!'()*+,-./0123456789:;<=>?@ABCDEFG(c) Levent ErkokBSD3erkokl@gmail.com experimentalNone Ç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.H!Use Haskell Float to represent SPI"Use Haskell Double to represent DPJ-Assemble a FP from the given bits and pieces. iDisplay a Floating-point number in a nicely formatted way. (This function is also available through the K instance for ), but is provided here for symmetry with !.)!DDisplay a Integer (signed/unsigned) number in a nicely formatted way"EConvert the given string to a IEEE number with the required precision#?Turn a Haskell float to the internal detailed FP representation$@Turn a Haskell double to the internal detailed FP representationLShow instance for FP HIJ !"#$L%  !"#$%  #$" ! HIJ !"#$LM      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRcrack_AkdejlcT3N59FXBH0pvixnData.Numbers.CrackNumData.Numbers.CrackNum.DataData.Numbers.CrackNum.UtilsFPintValprecsignstExptbiasexptfracBits bitLayOutkindKindZeroInftySNaNQNaNDenormalNormal IPrecisionW8I8W16I16W32I32W64I64 PrecisionHPSPDP integerToFP displayFP displayWord stringToFP floatToFP doubleToFP isNaNKind$fShowIPrecisionall0all1any1layOutb2s isBinDigitbinDigitreadB16readB2binDispgrpBy4hexDispclusterbvcleanUphpInds1hpInds2hpInds3spInds1spInds2spInds3dpInds1dpInds2dpInds3bInds2wInds1wInds2dInds1dInds2qInds1qInds2fpSzsgSzspValdpValcrackbaseGHC.ShowShow$fShowFP