úÎ)˜#Ó     (c) Edward Kmett 2013BSD3Edward Kmett <ekmett@gmail.com> experimental non-portableNone +02468=KZAn 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.* !" #$%&'()*+,-./0123456789      #$%&'()*+,-./!0"123456789(c) Edward Kmett 2013BSD3Edward Kmett <ekmett@gmail.com> experimental non-portableNone Calculate an approximate log.Calculate an approximate exp.Calculate an approximate pow.MBorchardt 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. :;<=>?@ABCDEFGHIJKLM   :;<=>?@ABCDEFGHIJKLM(c) Edward Kmett 2013BSD3Edward Kmett <ekmett@gmail.com> experimental non-portableNone+06=K`A quantity with a lower-bound on its probability mass. This represents a 'probable value' as a NG 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 O instances or a P Q like R.Also note that () and ()l are able to use knowledge about the function to get better precision on their results than naively using S (T)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.!UVWXYZ[\]^_`abcdefghijklmnopWXYZ[\]^_`abcdefUgVhijklmnop(c) Edward Kmett 2013BSD3Edward Kmett <ekmett@gmail.com> experimental non-portableNone q      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSQTUQVWQVXYZ[Q\]Y^_`abcdefghijklmnopqrstuvwxyz{|approximate-0.2.2Data.Approximate.TypeData.Approximate.NumericsData.Approximate.MassData.Approximate ApproximateHasApproximate approximate confidenceestimatehilowithMinwithMaxexactzerooneFastflogflog_lbflog_ubfexpfexp_lbfexp_ubfpowfpow_lbfpow_ubblogMass&?|?^? _confidence_lo _estimate_hi V_ApproximateMV_Approximateis$fNumApproximate$fApplicativeApproximate$fApplyApproximate$fPointedApproximate$fCopointedApproximate$fTraversableApproximate$fFoldableApproximate$fFunctorApproximate$fNFDataApproximate$fVectorVectorApproximate$fMVectorMVectorApproximateTFCo:R:VectorApproximateTFCo:R:MVectorsApproximate$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&&V_MassMV_Mass$fComonadApplyMass $fComonadMass $fExtendMass $fMonadMass $fBindMass$fSemigroupMass $fMonoidMass$fApplicativeMass$fCopointedMass $fPointedMass $fApplyMass$fTraversableMass $fNFDataMass$fVectorVectorMass$fMVectorMVectorMassTFCo:R:VectorMassTFCo:R:MVectorsMass$fFoldableMass $fFunctorMass $fSerialMass $fSerial1Mass$fHashable1Mass$fHashableMass$fSafeCopyMass$fSerializeMass $fBinaryMass