kalle           Mon May  5 06:28:03 2008 UTC

  Modified files:              
    /php-src/ext/standard       basic_functions.c math.c php_math.h 
    /php-src/ext/standard/tests/math    acosh_basic.phpt acosh_error.phpt 
                                        acosh_variation.phpt 
                                        asinh_basic.phpt asinh_error.phpt 
                                        asinh_variation.phpt 
                                        atanh_basic.phpt atanh_error.phpt 
                                        atanh_variation.phpt 
  Log:
  Implemented Windows support for asinh(), acosh(), atanh(), log1p() and 
expm1() + removed Windows check on tests
  
  [DOC] Windows support for asinh(), acosh(), atanh(), log1p() and expm1()
  
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/basic_functions.c?r1=1.896&r2=1.897&diff_format=u
Index: php-src/ext/standard/basic_functions.c
diff -u php-src/ext/standard/basic_functions.c:1.896 
php-src/ext/standard/basic_functions.c:1.897
--- php-src/ext/standard/basic_functions.c:1.896        Tue Apr 15 09:02:16 2008
+++ php-src/ext/standard/basic_functions.c      Mon May  5 06:28:03 2008
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: basic_functions.c,v 1.896 2008/04/15 09:02:16 jani Exp $ */
+/* $Id: basic_functions.c,v 1.897 2008/05/05 06:28:03 kalle Exp $ */
 
 #include "php.h"
 #include "php_streams.h"
@@ -1923,26 +1923,20 @@
        ZEND_ARG_INFO(0, number)
 ZEND_END_ARG_INFO()
 
-#ifdef HAVE_ASINH
 static
 ZEND_BEGIN_ARG_INFO(arginfo_asinh, 0)
        ZEND_ARG_INFO(0, number)
 ZEND_END_ARG_INFO()
-#endif
 
-#ifdef HAVE_ACOSH
 static
 ZEND_BEGIN_ARG_INFO(arginfo_acosh, 0)
        ZEND_ARG_INFO(0, number)
 ZEND_END_ARG_INFO()
-#endif
 
-#ifdef HAVE_ATANH
 static
 ZEND_BEGIN_ARG_INFO(arginfo_atanh, 0)
        ZEND_ARG_INFO(0, number)
 ZEND_END_ARG_INFO()
-#endif
 
 static
 ZEND_BEGIN_ARG_INFO(arginfo_pi, 0)
@@ -1974,19 +1968,15 @@
        ZEND_ARG_INFO(0, number)
 ZEND_END_ARG_INFO()
 
-#if !defined(PHP_WIN32) && !defined(NETWARE)
 static
 ZEND_BEGIN_ARG_INFO(arginfo_expm1, 0)
        ZEND_ARG_INFO(0, number)
 ZEND_END_ARG_INFO()
 
-# ifdef HAVE_LOG1P
 static
 ZEND_BEGIN_ARG_INFO(arginfo_log1p, 0)
        ZEND_ARG_INFO(0, number)
 ZEND_END_ARG_INFO()
-# endif
-#endif /* !defined(PHP_WIN32) && !defined(NETWARE) */
 
 static
 ZEND_BEGIN_ARG_INFO_EX(arginfo_log, 0, 0, 1)
@@ -3330,23 +3320,11 @@
        PHP_FE(sinh,                                                            
                                                        arginfo_sinh)
        PHP_FE(cosh,                                                            
                                                        arginfo_cosh)
        PHP_FE(tanh,                                                            
                                                        arginfo_tanh)
-
-#ifdef HAVE_ASINH
        PHP_FE(asinh,                                                           
                                                        arginfo_asinh)
-#endif
-#ifdef HAVE_ACOSH
        PHP_FE(acosh,                                                           
                                                        arginfo_acosh)
-#endif
-#ifdef HAVE_ATANH
        PHP_FE(atanh,                                                           
                                                        arginfo_atanh)
-#endif
-#if !defined(PHP_WIN32) && !defined(NETWARE)
        PHP_FE(expm1,                                                           
                                                        arginfo_expm1)
-# ifdef HAVE_LOG1P
        PHP_FE(log1p,                                                           
                                                        arginfo_log1p)
-# endif
-#endif
-
        PHP_FE(pi,                                                              
                                                                arginfo_pi)
        PHP_FE(is_finite,                                                       
                                                        arginfo_is_finite)
        PHP_FE(is_nan,                                                          
                                                        arginfo_is_nan)
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/math.c?r1=1.144&r2=1.145&diff_format=u
Index: php-src/ext/standard/math.c
diff -u php-src/ext/standard/math.c:1.144 php-src/ext/standard/math.c:1.145
--- php-src/ext/standard/math.c:1.144   Mon Dec 31 07:12:16 2007
+++ php-src/ext/standard/math.c Mon May  5 06:28:03 2008
@@ -19,7 +19,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: math.c,v 1.144 2007/12/31 07:12:16 sebastian Exp $ */
+/* $Id: math.c,v 1.145 2008/05/05 06:28:03 kalle Exp $ */
 
 #include "php.h"
 #include "php_math.h"
@@ -49,6 +49,66 @@
        val = !zend_isnan(tmp_val) ? tmp_val : val;     \
 }                                                      \
 
+/* {{{ php_asinh
+*/
+double php_asinh(double z)
+{
+#ifdef HAVE_ASINH
+       return(asinh(z));
+#else
+       return(log(z + sqrt(1 + pow(z, 2))) / log(M_E));
+#endif
+}
+/* }}} */
+
+/* {{{ php_acosh
+*/
+double php_acosh(double x)
+{
+#ifdef HAVE_ACOSH
+       return(acosh(x));
+#else
+       return(log(x + sqrt(x * x - 1)));
+#endif
+}
+/* }}} */
+
+/* {{{ php_atanh
+*/
+double php_atanh(double z)
+{
+#ifdef HAVE_ATANH
+       return(atanh(z));
+#else
+       return(0.5 * log((1 + z) / (1 - z)));
+#endif
+}
+/* }}} */
+
+/* {{{ php_log1p
+*/
+double php_log1p(double x)
+{
+#ifdef HAVE_LOG1P
+       return(log1p(x));
+#else
+       return(log(1 + x));
+#endif
+}
+/* }}} */
+
+/* {{{ php_expm1
+*/
+double php_expm1(double x)
+{
+#if !defined(PHP_WIN32) && !defined(NETWARE)
+       return(expm1(x));
+#else
+       return(exp(x) - 1);
+#endif
+}
+/* }}}*/
+
 /* {{{ proto int abs(int number) U
    Return the absolute value of the number */
 PHP_FUNCTION(abs) 
@@ -295,8 +355,6 @@
 }
 /* }}} */
 
-#if !defined(PHP_WIN32) && !defined(NETWARE)
-#ifdef HAVE_ASINH
 /* {{{ proto float asinh(float number) U
    Returns the inverse hyperbolic sine of the number, i.e. the value whose 
hyperbolic sine is number */
 PHP_FUNCTION(asinh)
@@ -307,12 +365,10 @@
                return;
        }
 
-       RETURN_DOUBLE(asinh(num));
+       RETURN_DOUBLE(php_asinh(num));
 }
 /* }}} */
-#endif /* HAVE_ASINH */
 
-#ifdef HAVE_ACOSH
 /* {{{ proto float acosh(float number) U
    Returns the inverse hyperbolic cosine of the number, i.e. the value whose 
hyperbolic cosine is number */
 PHP_FUNCTION(acosh)
@@ -323,12 +379,10 @@
                return;
        }
 
-       RETURN_DOUBLE(acosh(num));
+       RETURN_DOUBLE(php_acosh(num));
 }
 /* }}} */
-#endif /* HAVE_ACOSH */
 
-#ifdef HAVE_ATANH
 /* {{{ proto float atanh(float number) U
    Returns the inverse hyperbolic tangent of the number, i.e. the value whose 
hyperbolic tangent is number */
 PHP_FUNCTION(atanh)
@@ -339,11 +393,9 @@
                return;
        }
 
-       RETURN_DOUBLE(atanh(num));
+       RETURN_DOUBLE(php_atanh(num));
 }
 /* }}} */
-#endif /* HAVE_ATANH */
-#endif /* !defined(PHP_WIN32) && !defined(NETWARE) */
 
 /* {{{ proto float pi(void) U
    Returns an approximation of pi */
@@ -458,7 +510,6 @@
 }
 /* }}} */
 
-#if !defined(PHP_WIN32) && !defined(NETWARE)
 /* {{{ proto float expm1(float number) U
    Returns exp(number) - 1, computed in a way that accurate even when the 
value of number is close to zero */
 /*
@@ -473,11 +524,10 @@
                return;
        }
 
-       RETURN_DOUBLE(expm1(num));
+       RETURN_DOUBLE(php_expm1(num));
 }
 /* }}} */
 
-#ifdef HAVE_LOG1P
 /* {{{ proto float log1p(float number) U
    Returns log(1 + number), computed in a way that accurate even when the 
value of number is close to zero */ 
 /*
@@ -492,11 +542,9 @@
                return;
        }
 
-       RETURN_DOUBLE(log1p(num));
+       RETURN_DOUBLE(php_log1p(num));
 }
 /* }}} */
-#endif /* HAVE_LOG1P */
-#endif /* !defined(PHP_WIN32) && !defined(NETWARE) */
 
 /* {{{ proto float log(float number, [float base]) U
    Returns the natural logarithm of the number, or the base log if base is 
specified */
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/php_math.h?r1=1.33&r2=1.34&diff_format=u
Index: php-src/ext/standard/php_math.h
diff -u php-src/ext/standard/php_math.h:1.33 
php-src/ext/standard/php_math.h:1.34
--- php-src/ext/standard/php_math.h:1.33        Mon Dec 31 07:12:16 2007
+++ php-src/ext/standard/php_math.h     Mon May  5 06:28:03 2008
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: php_math.h,v 1.33 2007/12/31 07:12:16 sebastian Exp $ */
+/* $Id: php_math.h,v 1.34 2008/05/05 06:28:03 kalle Exp $ */
 
 #ifndef PHP_MATH_H
 #define PHP_MATH_H
@@ -69,23 +69,15 @@
    */
 PHP_FUNCTION(hypot);
 PHP_FUNCTION(expm1);
-#ifdef HAVE_LOG1P
 PHP_FUNCTION(log1p);
-#endif
 
 PHP_FUNCTION(sinh);
 PHP_FUNCTION(cosh);
 PHP_FUNCTION(tanh);
 
-#ifdef HAVE_ASINH
 PHP_FUNCTION(asinh);
-#endif
-#ifdef HAVE_ACOSH
 PHP_FUNCTION(acosh);
-#endif
-#ifdef HAVE_ATANH
 PHP_FUNCTION(atanh);
-#endif
 
 #include <math.h>
 
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/math/acosh_basic.phpt?r1=1.2&r2=1.3&diff_format=u
Index: php-src/ext/standard/tests/math/acosh_basic.phpt
diff -u php-src/ext/standard/tests/math/acosh_basic.phpt:1.2 
php-src/ext/standard/tests/math/acosh_basic.phpt:1.3
--- php-src/ext/standard/tests/math/acosh_basic.phpt:1.2        Tue Sep  4 
11:18:35 2007
+++ php-src/ext/standard/tests/math/acosh_basic.phpt    Mon May  5 06:28:03 2008
@@ -1,10 +1,5 @@
 --TEST--
 Test return type and value for expected input acosh()
---SKIPIF--
-<?php
-if(substr(PHP_OS, 0, 3) == "WIN")
-       die ("skip - function not supported on Windows");
-?>
 --INI--
 precision = 14
 --FILE--
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/math/acosh_error.phpt?r1=1.3&r2=1.4&diff_format=u
Index: php-src/ext/standard/tests/math/acosh_error.phpt
diff -u php-src/ext/standard/tests/math/acosh_error.phpt:1.3 
php-src/ext/standard/tests/math/acosh_error.phpt:1.4
--- php-src/ext/standard/tests/math/acosh_error.phpt:1.3        Wed Jan 30 
17:55:12 2008
+++ php-src/ext/standard/tests/math/acosh_error.phpt    Mon May  5 06:28:03 2008
@@ -1,10 +1,5 @@
 --TEST--
 Test wrong number of arguments for acosh()
---SKIPIF--
-<?php
-if(substr(PHP_OS, 0, 3) == "WIN" )
-        die ("skip - function not supported on Windows");
-?>
 --FILE--
 <?php
 /* 
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/math/acosh_variation.phpt?r1=1.2&r2=1.3&diff_format=u
Index: php-src/ext/standard/tests/math/acosh_variation.phpt
diff -u php-src/ext/standard/tests/math/acosh_variation.phpt:1.2 
php-src/ext/standard/tests/math/acosh_variation.phpt:1.3
--- php-src/ext/standard/tests/math/acosh_variation.phpt:1.2    Tue Sep  4 
11:18:35 2007
+++ php-src/ext/standard/tests/math/acosh_variation.phpt        Mon May  5 
06:28:03 2008
@@ -1,10 +1,5 @@
 --TEST--
 Test variations in usage of acosh()
---SKIPIF--
-<?php
-if(substr(PHP_OS, 0, 3) == "WIN" )
-        die ("skip - function not supported on Windows");
-?>
 --INI--
 precision = 10
 --FILE--
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/math/asinh_basic.phpt?r1=1.2&r2=1.3&diff_format=u
Index: php-src/ext/standard/tests/math/asinh_basic.phpt
diff -u php-src/ext/standard/tests/math/asinh_basic.phpt:1.2 
php-src/ext/standard/tests/math/asinh_basic.phpt:1.3
--- php-src/ext/standard/tests/math/asinh_basic.phpt:1.2        Tue Sep  4 
11:18:35 2007
+++ php-src/ext/standard/tests/math/asinh_basic.phpt    Mon May  5 06:28:03 2008
@@ -1,10 +1,5 @@
 --TEST--
 Test return type and value for expected input asinh()
---SKIPIF--
-<?php
-if(substr(PHP_OS, 0, 3) == "WIN")
-       die ("skip - function not supported on Windows");
-?>
 --INI--
 precision = 14
 --FILE--
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/math/asinh_error.phpt?r1=1.3&r2=1.4&diff_format=u
Index: php-src/ext/standard/tests/math/asinh_error.phpt
diff -u php-src/ext/standard/tests/math/asinh_error.phpt:1.3 
php-src/ext/standard/tests/math/asinh_error.phpt:1.4
--- php-src/ext/standard/tests/math/asinh_error.phpt:1.3        Wed Jan 30 
17:55:12 2008
+++ php-src/ext/standard/tests/math/asinh_error.phpt    Mon May  5 06:28:03 2008
@@ -1,10 +1,5 @@
 --TEST--
 Test wrong number of arguments for asinh()
---SKIPIF--
-<?php
-if(substr(PHP_OS, 0, 3) == "WIN" )
-        die ("skip - function not supported on Windows");
-?>
 --FILE--
 <?php
 /* 
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/math/asinh_variation.phpt?r1=1.2&r2=1.3&diff_format=u
Index: php-src/ext/standard/tests/math/asinh_variation.phpt
diff -u php-src/ext/standard/tests/math/asinh_variation.phpt:1.2 
php-src/ext/standard/tests/math/asinh_variation.phpt:1.3
--- php-src/ext/standard/tests/math/asinh_variation.phpt:1.2    Tue Sep  4 
11:18:35 2007
+++ php-src/ext/standard/tests/math/asinh_variation.phpt        Mon May  5 
06:28:03 2008
@@ -1,10 +1,5 @@
 --TEST--
 Test variations in usage of asinh()
---SKIPIF--
-<?php
-if(substr(PHP_OS, 0, 3) == "WIN" )
-        die ("skip - function not supported on Windows");
-?>
 --INI--
 precision = 10
 --FILE--
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/math/atanh_basic.phpt?r1=1.2&r2=1.3&diff_format=u
Index: php-src/ext/standard/tests/math/atanh_basic.phpt
diff -u php-src/ext/standard/tests/math/atanh_basic.phpt:1.2 
php-src/ext/standard/tests/math/atanh_basic.phpt:1.3
--- php-src/ext/standard/tests/math/atanh_basic.phpt:1.2        Tue Sep  4 
11:18:35 2007
+++ php-src/ext/standard/tests/math/atanh_basic.phpt    Mon May  5 06:28:03 2008
@@ -1,10 +1,5 @@
 --TEST--
 Test return type and value for expected input atanh()
---SKIPIF--
-<?php
-if(substr(PHP_OS, 0, 3) == "WIN" )
-       die ("skip - function not supported on Windows");
-?>
 --INI--
 precision = 14
 --FILE--
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/math/atanh_error.phpt?r1=1.3&r2=1.4&diff_format=u
Index: php-src/ext/standard/tests/math/atanh_error.phpt
diff -u php-src/ext/standard/tests/math/atanh_error.phpt:1.3 
php-src/ext/standard/tests/math/atanh_error.phpt:1.4
--- php-src/ext/standard/tests/math/atanh_error.phpt:1.3        Wed Jan 30 
17:55:12 2008
+++ php-src/ext/standard/tests/math/atanh_error.phpt    Mon May  5 06:28:03 2008
@@ -1,10 +1,5 @@
 --TEST--
 Test wrong number of arguments for atanh()
---SKIPIF--
-<?php
-if(substr(PHP_OS, 0, 3) == "WIN" )
-        die ("skip - function not supported on Windows");
-?>
 --FILE--
 <?php
 /* 
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/math/atanh_variation.phpt?r1=1.2&r2=1.3&diff_format=u
Index: php-src/ext/standard/tests/math/atanh_variation.phpt
diff -u php-src/ext/standard/tests/math/atanh_variation.phpt:1.2 
php-src/ext/standard/tests/math/atanh_variation.phpt:1.3
--- php-src/ext/standard/tests/math/atanh_variation.phpt:1.2    Tue Sep  4 
11:18:35 2007
+++ php-src/ext/standard/tests/math/atanh_variation.phpt        Mon May  5 
06:28:03 2008
@@ -1,10 +1,5 @@
 --TEST--
 Test variations in usage of atanh()
---SKIPIF--
-<?php
-if(substr(PHP_OS, 0, 3) == "WIN" )
-        die ("skip - function not supported on Windows");
-?>
 --INI--
 precision = 10
 --FILE--

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to