]> granicus.if.org Git - php/commitdiff
move math_standard_deviation and math_variance to the stats PECL extension
authorAndrey Hristov <andrey@php.net>
Fri, 13 May 2005 10:11:19 +0000 (10:11 +0000)
committerAndrey Hristov <andrey@php.net>
Fri, 13 May 2005 10:11:19 +0000 (10:11 +0000)
ext/standard/basic_functions.c
ext/standard/math.c
ext/standard/php_math.h
ext/standard/tests/math/math_std_dev.phpt [deleted file]

index dd6893ff6a4ab9f5c50df060504dee7798ab35ce..41c9211369080eb82d8eb2c64fe641f7a8347cfb 100644 (file)
@@ -415,8 +415,6 @@ function_entry basic_functions[] = {
        PHP_FE(base_convert,                                                                                                    NULL)
        PHP_FE(number_format,                                                                                                   NULL)
        PHP_FE(fmod,                                                                                                                    NULL)
-       PHP_FE(math_standard_deviation,                                                                                                 NULL)
-       PHP_FE(math_variance,                                                                                                   NULL)
 #ifdef HAVE_INET_NTOP
        PHP_NAMED_FE(inet_ntop,         php_inet_ntop,                                                                                  NULL)
 #endif
index 62bce3338937351071c17ad3d8fa6d249c25e91e..fdfbeb6d812e536047f2887fb1e5e51034d5524e 100644 (file)
@@ -1137,83 +1137,7 @@ PHP_FUNCTION(fmod)
 }
 /* }}} */
 
-/* {{{ php_population_variance
-*/
-static long double php_population_variance(zval *arr, zend_bool sample)
-{
-       double mean, sum = 0.0, vr = 0.0;
-       zval **entry;
-       HashPosition pos;
-       int elements_num;
-
-       elements_num = zend_hash_num_elements(Z_ARRVAL_P(arr));
-
-       zend_hash_internal_pointer_reset_ex(Z_ARRVAL_P(arr), &pos);
-       while (zend_hash_get_current_data_ex(Z_ARRVAL_P(arr), (void **)&entry, &pos) == SUCCESS) {
-               convert_to_double_ex(entry);
-               sum += Z_DVAL_PP(entry);
-               zend_hash_move_forward_ex(Z_ARRVAL_P(arr), &pos);       
-       }
-       mean = sum / elements_num;
-
-       zend_hash_internal_pointer_reset_ex(Z_ARRVAL_P(arr), &pos);
-       while (zend_hash_get_current_data_ex(Z_ARRVAL_P(arr), (void **)&entry, &pos) == SUCCESS) {
-               double d;
-               convert_to_double_ex(entry);
-               d = Z_DVAL_PP(entry) - mean;
-               vr += d*d;
-               zend_hash_move_forward_ex(Z_ARRVAL_P(arr), &pos);       
-       }
-       if (sample) {
-               --elements_num;
-       }
-       return (vr / elements_num);
-}
-/* }}} */
-
-/* {{{ proto float math_variance(array a [, bool sample])
-   Returns the population variance */
-PHP_FUNCTION(math_variance)
-{
-       zval *arr;
-       zend_bool sample = 0;
 
-       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a|b",  &arr, &sample) == FAILURE) {
-               return;
-       }
-       if (zend_hash_num_elements(Z_ARRVAL_P(arr)) == 0) {
-               php_error_docref(NULL TSRMLS_CC, E_WARNING, "The array has zero elements");
-               RETURN_FALSE;
-       }
-       if (sample && zend_hash_num_elements(Z_ARRVAL_P(arr)) == 1) {
-               php_error_docref(NULL TSRMLS_CC, E_WARNING, "The array has only 1 element");
-               RETURN_FALSE;
-       }
-       RETURN_DOUBLE(php_population_variance(arr, sample));
-}
-/* }}} */
-
-/* {{{ proto float math_standard_deviation(array a[, bool sample = false])
-   Returns the standard deviation */
-PHP_FUNCTION(math_standard_deviation)
-{
-       zval *arr;
-       zend_bool sample = 0;
-
-       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a|b",  &arr, &sample) == FAILURE) {
-               return;
-       }
-       if (zend_hash_num_elements(Z_ARRVAL_P(arr)) == 0) {
-               php_error_docref(NULL TSRMLS_CC, E_WARNING, "The array has zero elements");
-               RETURN_FALSE;
-       }
-       if (sample && zend_hash_num_elements(Z_ARRVAL_P(arr)) == 1) {
-               php_error_docref(NULL TSRMLS_CC, E_WARNING, "The array has only 1 element");
-               RETURN_FALSE;
-       }
-       RETURN_DOUBLE(sqrt(php_population_variance(arr, sample)));
-}
-/* }}} */
 
 /*
  * Local variables:
index 70c30a8a68738f5dd74a25ecffb52a53bf357c3c..adbc9f8cdf1556b6600be2f21218c1ddb5c18886 100644 (file)
@@ -59,8 +59,6 @@ PHP_FUNCTION(octdec);
 PHP_FUNCTION(base_convert);
 PHP_FUNCTION(number_format);
 PHP_FUNCTION(fmod);
-PHP_FUNCTION(math_standard_deviation);
-PHP_FUNCTION(math_variance);
 PHP_FUNCTION(deg2rad);
 PHP_FUNCTION(rad2deg);
 
diff --git a/ext/standard/tests/math/math_std_dev.phpt b/ext/standard/tests/math/math_std_dev.phpt
deleted file mode 100644 (file)
index f7a00ff..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
---TEST--
-math_standard_deviation()/math_variance tests
---FILE--
-<?php
-$a=array(4, 1, 7);
-$dev=math_standard_deviation($a);
-var_dump(sprintf("%2.9f", $dev));
-var_dump(math_standard_deviation(array()));
-$a=array(5,7,8,10,10);
-var_dump(math_standard_deviation($a,1));
-echo "---Variance---\n";
-$a=array(5,7,8,10,10);
-var_dump(math_variance($a));
-var_dump(math_variance($a, true));
-?>
---EXPECTF--
-string(11) "2.449489743"
-
-Warning: math_standard_deviation(): The array has zero elements in %s on line %d
-bool(false)
-float(2.1213203435596)
----Variance---
-float(3.6)
-float(4.5)
\ No newline at end of file