$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r80884 - trunk/boost/math/special_functions
From: john_at_[hidden]
Date: 2012-10-06 12:53:16
Author: johnmaddock
Date: 2012-10-06 12:53:15 EDT (Sat, 06 Oct 2012)
New Revision: 80884
URL: http://svn.boost.org/trac/boost/changeset/80884
Log:
Fix asinh and acosh to work with very large arguments without overflow.
Text files modified: 
   trunk/boost/math/special_functions/acosh.hpp |     3 ++-                                     
   trunk/boost/math/special_functions/asinh.hpp |     3 ++-                                     
   2 files changed, 4 insertions(+), 2 deletions(-)
Modified: trunk/boost/math/special_functions/acosh.hpp
==============================================================================
--- trunk/boost/math/special_functions/acosh.hpp	(original)
+++ trunk/boost/math/special_functions/acosh.hpp	2012-10-06 12:53:15 EDT (Sat, 06 Oct 2012)
@@ -21,6 +21,7 @@
 #include <boost/math/policies/error_handling.hpp>
 #include <boost/math/special_functions/math_fwd.hpp>
 #include <boost/math/special_functions/log1p.hpp>
+#include <boost/math/constants/constants.hpp>
 
 // This is the inverse of the hyperbolic cosine function.
 
@@ -58,7 +59,7 @@
                 {
                     // http://functions.wolfram.com/ElementaryFunctions/ArcCosh/06/01/06/01/0001/
                     // approximation by laurent series in 1/x at 0+ order from -1 to 0
-                    return( log( x * 2) );
+                    return log(x) + constants::ln_two<T>();
                 }
                 else if(x < 1.5f)
                 {
Modified: trunk/boost/math/special_functions/asinh.hpp
==============================================================================
--- trunk/boost/math/special_functions/asinh.hpp	(original)
+++ trunk/boost/math/special_functions/asinh.hpp	2012-10-06 12:53:15 EDT (Sat, 06 Oct 2012)
@@ -22,6 +22,7 @@
 #include <boost/math/special_functions/math_fwd.hpp>
 #include <boost/math/special_functions/sqrt1pm1.hpp>
 #include <boost/math/special_functions/log1p.hpp>
+#include <boost/math/constants/constants.hpp>
 
 // This is the inverse of the hyperbolic sine function.
 
@@ -52,7 +53,7 @@
                 {
                     // http://functions.wolfram.com/ElementaryFunctions/ArcSinh/06/01/06/01/0001/
                     // approximation by laurent series in 1/x at 0+ order from -1 to 1
-                    return log(x * 2) + 1/ (4 * x * x);
+                    return constants::ln_two<T>() + log(x) + 1/ (4 * x * x);
                 }
                 else if(x < 0.5f)
                 {