úÎ&»!^      non-portable experimentalEdward Kmett <ekmett@gmail.com>NoneZAn approximate number, with a likely interval, an expected value and a lower bound on the log7 of probability that the answer falls in the interval. NB:@ The probabilities associated with confidence are stored in the log domain. &  !"#$%&'()*+,-./012345      !"#$%&'()*+,-./012345 non-portable experimentalEdward Kmett <ekmett@gmail.com>NoneCalculate an approximate log. Calculate an approximate exp. Calculate an approximate pow. NBorchardt s Algorithm from Dead Reckoning: Calculating without instruments . 0This is a remarkably bad approximate logarithm. A had better outperform it! It is provided merely for comparison.  6789:;<=>?@ABCDEFGHI   6789:;<=>?@ABCDEFGHI non-portable experimentalEdward Kmett <ekmett@gmail.com>NoneGA quantity with a lower-bound on its probability mass. This represents  a 'probable value' as a J- that you can use to calculate progressively  less likely consequences. NB:G These probabilities are all stored in the log domain. This enables us J to retain accuracy despite very long multiplication chains. We never add M these probabilities so the additional overhead of working in the log domain 8 is never incurred, except on transitioning in and out. 0This is most useful for discrete types, such as  small K instances or a L M like  N. Also note that () and ()% are able to use knowledge about the F function to get better precision on their results than naively using  O (P) Calculate the logical and/ of two booleans with confidence lower bounds. Calculate the logical or/ of two booleans with confidence lower bounds. Calculate the exclusive or/ of two booleans with confidence lower bounds. QRSTUVWXYZ[\]^_`abcdefghQRSTUVWXYZ[\]^_`abcdefgh non-portable experimentalEdward Kmett <ekmett@gmail.com>None i      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOMPQMRSMRTUVWMXYUZ[\]^_`abcdefghijklmnopqrstapproximate-0.2Data.Approximate.TypeData.Approximate.NumericsData.Approximate.MassData.Approximate ApproximateHasApproximate approximate confidenceestimatehilowithMinwithMaxexactzerooneFastflogflog_lbflog_ubfexpfexp_lbfexp_ubfpowfpow_lbfpow_ubblogMass&?|?^? _confidence_lo _estimate_hiis$fNumApproximate$fApplicativeApproximate$fApplyApproximate$fPointedApproximate$fCopointedApproximate$fTraversableApproximate$fFoldableApproximate$fFunctorApproximate$fNFDataApproximate$fVectorVectorApproximate$fMVectorMVectorApproximate$fUnboxApproximate$fSerial1Approximate$fSerialApproximate$fHashable1Approximate$fHashableApproximate$fSafeCopyApproximate$fSerializeApproximate$fBinaryApproximate$fHasApproximateApproximatea logf_fast_ub logf_fast_lb logf_fast log_fast_ub log_fast_lblog_fast expf_fast_ub expf_fast_lbbetter_expf_fast exp_fast_ub exp_fast_lbbetter_exp_fastbetter_powf_fast_precise powf_fast_ub powf_fast_lbbetter_pow_fast_precise pow_fast_ub pow_fast_lb $fFastDouble $fFastFloatbaseGHC.BaseMonadGHC.RealIntegralGHC.EnumBoundedEnumghc-prim GHC.TypesBoolControl.ApplicativeliftA2 GHC.Classes&&$fComonadApplyMass $fComonadMass $fExtendMass $fMonadMass $fBindMass$fSemigroupMass $fMonoidMass$fApplicativeMass$fCopointedMass $fPointedMass $fApplyMass$fTraversableMass $fNFDataMass$fVectorVectorMass$fMVectorMVectorMass$fFoldableMass $fFunctorMass $fSerialMass $fSerial1Mass$fHashable1Mass$fHashableMass$fSafeCopyMass$fSerializeMass $fBinaryMass