R      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ portablestableclaude@mathr.co.ukNoneL  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKL  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKL%&$'#(")!* +,-./0123456789:;<= > ? @ A BCDEFGHIJKL  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJK None BangPatternsunstableclaude@mathr.co.uk Safe-InferredL@Special values implemented using basic RealFloat functionality. M@Special values implemented using basic RealFloat functionality. N@Special values implemented using basic RealFloat functionality. O@Special values implemented using basic RealFloat functionality. P@Special values implemented using basic RealFloat functionality. QConvert between generic  types more efficiently than  .. Tries hard to preserve special values like > infinities and negative zero, but any NaN payload is lost. )Uses only basic RealFloat functionality. R)Check if two numbers have the same sign. 5 May give a nonsense result if an argument is NaN. SApproximate equality.   (a =~= b) c7 when adding the difference to the larger in magnitude  changes at most c" least significant mantissa bits. )Uses only basic RealFloat functionality. TBCompute a reciprocal using the Newton-Raphson division algorithm,  as described in   Shttp://en.wikipedia.org/wiki/Division_%28digital%29#Newton.E2.80.93Raphson_division. )Uses only basic RealFloat functionality. U"Compute a square root using Newton' s method. 'Uses basic RealFloat functionality and '(/)'. V+Compute an exponential using power series. $Uses basic RealFloat functionality, '(/)' and . WCompute a logarithm. See Z for algorithmic references. $Uses basic RealFloat functionality,  and . XCompute log 2. See Z for algorithmic references. $Uses basic RealFloat functionality,  and . Y8Compute a logarithm using decomposition and a value for log 2. See Z for algorithmic references. $Uses basic RealFloat functionality, , and . Z@Compute a logarithm for a value in [0.5,1) using the AGM method  as described in section 7 of  The Logarithmic Constant: log 2 2 Xavier Gourdon and Pascal Sebah, May 18, 2010,   9http://numbers.computation.free.fr/Constants/Log2/log2.ps. !The precondition is not checked. $Uses basic RealFloat functionality, , and . [6Compute pi using the method described in section 8 of  \Multiple-precision zero-finding methods and the complexity of elementary function evaluation 1 Richard P Brent, 1975 (revised May 30, 2010),   http://arxiv.org/abs/1004.3412. $Uses basic RealFloat functionality, '(/)', and . \'Lift a function from Double to generic  types. LMNOPQRST accuracy U accuracy V accuracy W accuracy X accuracy Y accuracy log 2 Z accuracy value in [0.5,1) [ accuracy \LMNOPQRSTUVWXYZ[\Q\STUVWYXZ[LMNOPRLMNOPQRSTUVWXYZ[\portableunstableclaude@mathr.co.ukNone ]-A class for types with adjustable precision.  Minimal complete definition: ^. ^?Adjust the precision of a value preserving as much accuracy as  possible. _"A class for types with precision. D The methods must not evaluate their arguments, and their results  must not be evaluated. ( Minimal complete definition: (none). a Much like  combined with `. b Much like  with a restricted type. c Much like  with a restricted type.  Precedence between  and . d An alias for c.  Precedence between  and . e Synonym for ^. f Much like ^ combined with b. g Much like f combined with `.  Precedence between  and . h An alias for g.  Precedence between  and . ]^_`abcdefgh]^_`abcdefgh _`abcd]^efgh ]^_`abcdefgh Rank2Typesunstableclaude@mathr.co.ukNonei2Reify a precision from value-level to type-level. j Much like i combined with f. k An alias for j. ijoriginal value new precision  operation koriginal value new precision  operation ijkijkijk<BangPatterns, DeriveDataTypeable, Rank2Types, MonoLocalBindsunstableclaude@mathr.co.ukNonel=A concrete format suitable for storage or wire transmission. p>A software implementation of fixed point arithmetic, using an   adjusted to p bits after the binary point. q Freeze a p. rThaw a l. Results in  on precision mismatch. sThaw a l to its natural precision. lmnopqrslmnopqrsplmnoqrslmnopqrs,BangPatterns, DeriveDataTypeable, Rank2Typesunstableclaude@mathr.co.ukNone t=A concrete format suitable for storage or wire transmission. }A selection of norms. GA software implementation of floating point arithmetic, using a strict  pair of  and , scaled similarly to , along ( with additional values representing:  positive infinity (1/0),  negative infinity (-1/0),  not a number (0/0). The 1 instance so far only implements algorithms for:  ,  ,  ,  . These  methods transit via  and so have limited  precision:  , , ,  , , ,  , , ,  ,  ,  .  6 is arbitrarily limited to mitigate the problems that C occur when enormous integers might be needed during some number D type conversions (worst case consequence: program abort in gmp). ;A measure of meaningful precision in the difference of two  finite non-zero values. :Values of very different magnitude have little meaningful  difference, because a + b approxEq a when  |a| >> |b|. 5Very close values have little meaningful difference,  because  a + (a - b) approxEq a as |a| >> |a - b|.  attempts to quantify this.  Much like  combined with .  An alias for .  Freeze a . Thaw a t. Results in  on precision mismatch. Thaw a t to its natural precision.  Thaw a t$ without guaranteeing a well-formed  value.  Possibly slightly faster. 3tuvwxyz{|}~ norm   !"#$%&'()tuvwxyz{|}~}~tyxwvuz{|zzzz"t yxwvuz{|zzzz}~   !"#$%&'()DeriveDataTypeable, GeneralizedNewtypeDeriving, StandaloneDeriving, FlexibleInstances, FlexibleContexts, MultiParamTypeClasses, Rank2Types, UndecidableInstancesunstableclaude@mathr.co.ukNone Newtype wrapper around *" so that instances can be written  for _ and ]. Convert  to *. Convert * to . Lift an operation on    to one on .  Much like  mapComplex Q.  Much like   scaleComplex'.  Much like  mapComplex +.  Freeze a 'VComplex VFloat'.  Freeze a 'VComplex VFixed'. Thaw a 'Complex DFloat'. Results in  on precision mismatch. Thaw a 'Complex DFixed'. Results in  on precision mismatch. Thaw a 'Complex DFloat' to its natural precision.  is passed on 8 precision mismatch between real and imaginary parts. Thaw a 'Complex DFixed' to its natural precision.  is passed on 8 precision mismatch between real and imaginary parts. ",-./0123456789:;<=>?@%ABC*DEFGHIJKLMNOPQRSTUVW ,-./0123456789:;<=>?@portableunstableclaude@mathr.co.ukNone,Convert to a Float from the same precision. ,Convert from a Float to the same precision. -Convert to a Double from the same precision. -Convert from a Double to the same precision. ,Convert to a Float from the same precision. ,Convert from a Float to the same precision. -Convert to a Double from the same precision. -Convert from a Double to the same precision. ESXY %&.6>FKEE portableunstableclaude@mathr.co.ukNoneABC*DEFGHIJKLMNOPQRSTUVWXY %&.6>FKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Z  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyyz{|}~        !"#$%&'()*+,-./0123456789:;<=>?@ ABCDEFGHIJKLMNOPQRSTUV?@W?@X?@Y?Z[?Z\?Z]?Z^?Z_?Z`?Za?Zb?Zc?Zd?Ze?Zf?Zg?Zh?Zi?Zj?Zk?Zl?Zm?Znopqvariable-precision-0.3.1$TypeLevel.NaturalNumber.ExtraNumbers$Numeric.VariablePrecision.Algorithms#Numeric.VariablePrecision.Precision)Numeric.VariablePrecision.Precision.ReifyNumeric.VariablePrecision.FixedNumeric.VariablePrecision.Float!Numeric.VariablePrecision.Complex!Numeric.VariablePrecision.Aliases+Numeric.VariablePrecision.Integer.LogarithmXComplexNumeric.VariablePrecisionN53N52N51N50N49N48N47N46N45N44N43N42N41N40N39N38N37N36N35N34N33N32N31N30N29N28N27N26N25N24N23N22N21N20N19N18N17N16n16n17n18n19n20n21n22n23n24n25n26n27n28n29n30n31n32n33n34n35n36n37n38n39n40n41n42n43n44n45n46n47n48n49n50n51n52n53genericPositiveZerogenericNegativeZerogenericPositiveInfinitygenericNegativeInfinitygenericNotANumber recodeFloatsameSign=~= genericRecip genericSqrt genericExp genericLog genericLog2 genericLog' genericLog'' genericPi viaDoubleVariablePrecisionadjustPrecision HasPrecision precisionOf precision atPrecision atPrecisionOf.@auto withPrecisionwithPrecisionOf.@~reifyPrecisionwithReifiedPrecision.@$DFixed dxPrecision dxMantissaVFixedtoDFixed fromDFixed withDFixedDFloat DNotANumberDNegativeInfinityDPositiveInfinityDZero dPrecision dMantissa dExponentNormednorm1norm2 norm2Squared normInfinityVFloateffectivePrecisionWitheffectivePrecision-@?toDFloat fromDFloat withDFloatVComplex toComplex fromComplex withComplex recodeComplex scaleVComplex scaleComplextoComplexDFloattoComplexDFixedfromComplexDFloatfromComplexDFixedwithComplexDFloatwithComplexDFixedCX53CX48CX40CX32CX24CX16CX8CF53CF48CF40CF32CF24CF16CF8X53X48X40X32X24X16X8F53F48F40F32F24F16F8CXCFCFtoFloat fromFloattoDouble fromDoubletoComplexFloatfromComplexFloattoComplexDoublefromComplexDoublef8f16f24f32f40f48f53x8x16x24x32x40x48x53cf8cf16cf24cf32cf40cf48cf53cx8cx16cx24cx32cx40cx48cx53 integerLog2base GHC.Float RealFloatGHC.Real realToFracrecipsqrttype-level-natural-number-1.1TypeLevel.NaturalNumbernaturalNumberAsIntGHC.Baseconstghc-prim GHC.Classes<GHC.Num+ GHC.TypesWord successorTon0Zero SuccessorTo NaturalNumber integer-gmpGHC.Integer.TypeInteger Data.MaybeNothing$fRealFracVFixed $fRealVFixed$fFractionalVFixed $fNumVFixed $fOrdVFixed $fEqVFixed $fReadVFixed $fShowVFixed$fBinDecodeVFixed$fVariablePrecisionVFixed$fHasPrecisionVFixedInt decodeFloatFloatingpiexplogDoublesincostanasinacosatansinhcoshtanhasinhacoshatanh floatRangeunsafeWithDFloatFNaNFNegInfFPosInfFZero encodeVFloatminimumExponentmaximumExponentasTypeIn asTypeOut asTypeOut2shift checkVFloat unreachable$fNormedVFloat$fFloatingVFloat$fRealFloatVFloat$fRealFracVFloat$fFractionalVFloat $fRealVFloat $fNumVFloat $fOrdVFloat $fEqVFloat$fVariablePrecisionVFloat$fHasPrecisionVFloat $fReadVFloat $fShowVFloat $fFShowVFloat$fDispFloatVFloatcomplex-generic-0.1.1Data.Complex.Generic scaleFloat FromComplex$fReadVComplex$fReadVComplex0$fShowVComplex$fShowVComplex0$fNormedVComplex$fVariablePrecisionVComplex$fVariablePrecisionVComplex0$fHasPrecisionVComplex$fHasPrecisionVComplex0$fComplexPolarVComplexVFloat$fComplexRectVComplexVFixed$fComplexRectVComplexVFloat$fComplexPolarComplexVFloat$fComplexRectComplexVFixed$fComplexRectComplexVFloat$fFloatingComplex$fFractionalComplex$fFractionalComplex0 $fNumComplex $fNumComplex0fromDataComplex toDataComplex:+Data.Complex.Generic.Class.+/.*..*sqrmagnitudeSquared conjugateimagPartrealPartrectimagrealmkRect ComplexRectphase magnitudepolarcismkPolar ComplexPolarn8N8