úÎŠÄ non-portable experimentalEdward Kmett <ekmett@gmail.com> TrustworthyLog-domain Float and Double values. This provides log1p and expm11 for working more accurately with small numbers.  Computes  log(1 + x) =This is far enough from 0 that the Taylor series is defined. )The Taylor series for exp(x) is given by   exp(x) = 1 + x + x^2/2! + ... When xB is small, the leading 1 consumes all of the available precision. This computes:   exp(x) - 1 = x + x^2/2! + .. Twhich can afford you a great deal of additional precision if you move things around 0 algebraically to provide the 1 by other means. Negative infinity JEfficiently and accurately compute the sum of a set of log-domain numbers While folding with (+)+ accomplishes the same end, it requires an  additional n-2 logarithms to sum n terms. In addition, < here we introduce fewer opportunities for round-off error. <While for small quantities the naive sum accumulates error, :let xs = Prelude.replicate 40000 (Exp 1e-4) :: [Log Float]Prelude.sum xs40001.3'This sum gives a more accurate result, Numeric.Log.sum xs40004.01NB:- This does require two passes over the data. 6  !"#$%&'()*+,-./012345/   !"#$%&'()*+,-./0123456        !"#$%&'()*+,-./0123456log-domain-0.7.1 Numeric.LogLogExplnPreciselog1pexpm1sumnegInfAccNoneAcc1c_log1pfc_expm1fc_expm1c_log1plogMap$fPreciseComplex$fPreciseFloat$fPreciseDouble $fFloatingLog $fMonoidLog $fRealLog$fVectorVectorLog$fMVectorMVectorLog $fUnboxLog$fFractionalLog$fNumLog $fEnumLog $fMonadLog $fBindLog $fApplyLog$fComonadApplyLog$fApplicativeLog $fComonadLog $fExtendLog$fDistributiveLog$fTraversable1Log$fTraversableLog$fFoldable1Log $fFoldableLog $fNFDataLog $fStorableLog$fHashable1Log $fHashableLog $fFunctorLog $fSerial1Log $fSerialLog$fSerializeLog $fBinaryLog $fReadLog $fShowLog $fSafeCopyLog