Kaydet (Commit) 82ebc1fd authored tarafından Mark Dickinson's avatar Mark Dickinson

Merged revisions 76982 via svnmerge from

svn+ssh://pythondev@svn.python.org/python/trunk

........
  r76982 | mark.dickinson | 2009-12-21 15:40:33 +0000 (Mon, 21 Dec 2009) | 2 lines

  Inverse hyperbolic trigonometric functions should call m_log1p, not log1p.
........
üst f371859a
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
#include "Python.h" #include "Python.h"
#include <float.h> #include <float.h>
#include "_math.h"
/* The following copyright notice applies to the original /* The following copyright notice applies to the original
implementations of acosh, asinh and atanh. */ implementations of acosh, asinh and atanh. */
...@@ -67,7 +68,7 @@ _Py_acosh(double x) ...@@ -67,7 +68,7 @@ _Py_acosh(double x)
} }
else { /* 1 < x <= 2 */ else { /* 1 < x <= 2 */
double t = x - 1.0; double t = x - 1.0;
return log1p(t + sqrt(2.0*t + t*t)); return m_log1p(t + sqrt(2.0*t + t*t));
} }
} }
...@@ -103,7 +104,7 @@ _Py_asinh(double x) ...@@ -103,7 +104,7 @@ _Py_asinh(double x)
} }
else { /* 2**-28 <= |x| < 2= */ else { /* 2**-28 <= |x| < 2= */
double t = x*x; double t = x*x;
w = log1p(absx + t / (1.0 + sqrt(1.0 + t))); w = m_log1p(absx + t / (1.0 + sqrt(1.0 + t)));
} }
return copysign(w, x); return copysign(w, x);
...@@ -149,10 +150,10 @@ _Py_atanh(double x) ...@@ -149,10 +150,10 @@ _Py_atanh(double x)
} }
if (absx < 0.5) { /* |x| < 0.5 */ if (absx < 0.5) { /* |x| < 0.5 */
t = absx+absx; t = absx+absx;
t = 0.5 * log1p(t + t*absx / (1.0 - absx)); t = 0.5 * m_log1p(t + t*absx / (1.0 - absx));
} }
else { /* 0.5 <= |x| <= 1.0 */ else { /* 0.5 <= |x| <= 1.0 */
t = 0.5 * log1p((absx + absx) / (1.0 - absx)); t = 0.5 * m_log1p((absx + absx) / (1.0 - absx));
} }
return copysign(t, x); return copysign(t, x);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment