diff --git a/compensated.cabal b/compensated.cabal
--- a/compensated.cabal
+++ b/compensated.cabal
@@ -1,6 +1,6 @@
 name:          compensated
 category:      Numeric
-version:       0.6
+version:       0.6.1
 license:       BSD3
 cabal-version: >= 1.8
 license-file:  LICENSE
@@ -52,7 +52,7 @@
     generic-deriving          >= 1.4      && < 1.7,
     hashable                  >= 1.1.2.3  && < 1.3,
     lens                      >= 4        && < 5,
-    log-domain                >= 0.8      && < 1,
+    log-domain                >= 0.9      && < 1,
     semigroupoids             >= 4        && < 5,
     semigroups                >= 0.8.4    && < 1,
     safecopy                  >= 0.8.1    && < 0.9,
diff --git a/src/Numeric/Compensated.hs b/src/Numeric/Compensated.hs
--- a/src/Numeric/Compensated.hs
+++ b/src/Numeric/Compensated.hs
@@ -675,3 +675,11 @@
   {-# INLINE log1p #-}
   expm1 a = exp a - 1
   {-# INLINE expm1 #-}
+  log1mexp a | a <= log 2 = log (negate (expm1 (negate a)))
+             | otherwise  = log1p (negate (exp (negate a)))
+  {-# INLINE log1mexp #-}
+  log1pexp a
+    | a <= 18   = log1p (exp a)
+    | a <= 100  = a + exp (negate a)
+    | otherwise = a
+  {-# INLINE log1pexp #-}
