h$ r       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTU(c) Edward Kmett 2013BSD3Edward Kmett  experimental non-portableNone 38U approximateA quantity with a lower-bound on its probability mass. This represents a 'probable value' as a V that you can use to calculate progressively less likely consequences.NB: These probabilities are all stored in the log domain. This enables us to retain accuracy despite very long multiplication chains. We never add these probabilities so the additional overhead of working in the log domain is never incurred, except on transitioning in and out.7This is most useful for discrete types, such as small W instances or a X Y like Z.Also note that () and () are able to use knowledge about the function to get better precision on their results than naively using liftA2 ([)let z = Mass 0.875 'z'replicateM 3 zMass 0.669921875 "zzz" approximateCalculate the logical and. of two booleans with confidence lower bounds. approximateCalculate the logical or. of two booleans with confidence lower bounds. approximateCalculate the exclusive or. of two booleans with confidence lower bounds.326(c) Edward Kmett 2013BSD3Edward Kmett  experimental non-portableNoneP$ approximateCalculate an approximate log.' approximateCalculate an approximate exp.* approximateCalculate an approximate pow.- approximateBorchardt@s Algorithm from @Dead Reckoning: Calculating without instruments@./This is a remarkably bad approximate logarithm.$ had better outperform it! It is provided merely for comparison. #$%&'()*+,- #$%&'()*+,-(c) Edward Kmett 2013BSD3Edward Kmett  experimental non-portableNone38> 0 approximateAn approximate number, with a likely interval, an expected value and a lower bound on the log6 of probability that the answer falls in the interval.NB: The probabilities associated with confidence are stored in the log domain. 017<;9:8=>?@A 017<;9:8?@A=>(c) Edward Kmett 2013BSD3Edward Kmett  experimental non-portableNone #,+*)('&$%-0178:9<;=>?@A      !"#$%&'()*+,-./01234456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[Y\]Y^_Y^`abcade(approximate-0.3.3-EmguqbbDOch8t4TukbEDpmData.Approximate.MassData.Approximate.NumericsData.Approximate.TypeData.ApproximateMass&?|?^?$fComonadApplyMass $fComonadMass $fExtendMass $fMonadMass $fBindMass$fSemigroupMass $fMonoidMass$fApplicativeMass$fCopointedMass $fPointedMass $fApplyMass$fTraversableMass $fNFDataMass$fVectorVectorMass$fMVectorMVectorMass$fFoldableMass $fFunctorMass $fSerialMass $fSerial1Mass$fHashable1Mass$fHashableMass$fSafeCopyMass$fSerializeMass $fBinaryMass$fEqMass $fOrdMass $fShowMass $fReadMass $fDataMass $fGenericMassFastflogflog_lbflog_ubfexpfexp_lbfexp_ubfpowfpow_lbfpow_ubblog $fFastDouble $fFastFloat Approximate$fEqApproximate$fShowApproximate$fReadApproximate$fDataApproximate$fGenericApproximateHasApproximate approximate confidenceestimatehilowithMinwithMaxexactzeroone$fApplicativeApproximate$fApplyApproximate$fPointedApproximate$fCopointedApproximate$fTraversableApproximate$fFoldableApproximate$fFunctorApproximate$fNFDataApproximate$fVectorVectorApproximate$fMVectorMVectorApproximate$fUnboxApproximate$fSerial1Approximate$fSerialApproximate$fHashable1Approximate$fHashableApproximate$fSafeCopyApproximate$fSerializeApproximate$fBinaryApproximate$fNumApproximate$fHasApproximateApproximateabaseGHC.BaseMonadGHC.RealIntegralGHC.EnumBoundedEnumghc-prim GHC.TypesBool GHC.Classes&&