diff options
author | Anatol Belski <ab@php.net> | 2014-09-01 13:51:58 +0200 |
---|---|---|
committer | Anatol Belski <ab@php.net> | 2014-09-01 15:34:40 +0200 |
commit | 3aa5583cab35f94dc6847c01b4e9838e1969faa9 (patch) | |
tree | 0da824ba34cc98985209e7bdcba08278495f8d97 | |
parent | 8a7d434025518d67d060f3d49aa28965c1871a8c (diff) | |
download | php-git-3aa5583cab35f94dc6847c01b4e9838e1969faa9.tar.gz |
fix asinh() on win64 for big negative values
-rw-r--r-- | ext/standard/math.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/ext/standard/math.c b/ext/standard/math.c index a1dda23eda..665822c035 100644 --- a/ext/standard/math.c +++ b/ext/standard/math.c @@ -219,7 +219,16 @@ static double php_asinh(double z) #ifdef HAVE_ASINH return(asinh(z)); #else +# ifdef _WIN64 + if (z > 0) { + return log(z + sqrt(z * z + 1)); + } + else { + return -log(-z + sqrt(z * z + 1)); + } +# else return(log(z + sqrt(1 + pow(z, 2))) / log(M_E)); +# endif #endif } /* }}} */ |