Re: fmod() function
| From: | Yasuo Ohgaki | Date: | Thu, 21 Feb 2002 11:54:55 +0000 |
| Subject: | Re: fmod() function | ||
| References: | 1 2 | Groups: | php.dev |
| Request: | Send a blank email to php-dev+get-80258@lists.php.net to get a copy of this message | ||
Yasuo Ohgaki wrote:
If you could send patch as unified diff, it's much easier to apply :) Anyway, I attached hand edited diff since my CVS source contains other changes now... Someone care to check in?Commited by myself -- Yasuo Ohgaki
Graeme Merrall wrote:I was porting some Python scripts to PHP and came across the fmod() function. Since it's not implemented in PHP so I whipped up an fmod function for inclusion into ext/standard/math.c which I've pasted below. I can create a diff if necessary to include the 2 small changes to basic_functions.c and php_math.h Cheers, Graeme /* {{{ proto double fmod(double x, double y) Returns the remainder of dividing x by y as a double */ PHP_FUNCTION(fmod) {------------------------------------------------------------------------ Index: basic_functions.c =================================================================== RCS file: /repository/php4/ext/standard/basic_functions.c,v retrieving revision 1.442 diff -u -r1.442 basic_functions.c --- basic_functions.c 10 Feb 2002 17:38:15 -0000 1.442 +++ basic_functions.c 21 Feb 2002 07:58:36 -0000 @@ -475,6 +475,7 @@ PHP_FE(dechex, NULL) PHP_FE(base_convert, NULL) PHP_FE(number_format, NULL) + PHP_FE(fmod, NULL) PHP_FE(ip2long, NULL) PHP_FE(long2ip, NULL) Index: math.c =================================================================== RCS file: /repository/php4/ext/standard/math.c,v retrieving revision 1.77 diff -u -r1.77 math.c --- math.c 28 Jan 2002 16:06:27 -0000 1.77 +++ math.c 21 Feb 2002 07:58:37 -0000 @@ -1046,6 +1046,21 @@ } /* }}} */ +/* {{{ proto double fmod(double x, double y) + Returns the remainder of dividing x by y as a double */ +PHP_FUNCTION(fmod) +{ + double num1, num2; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "dd", &num1, &num2) == FAILURE) { + return; + } + + Z_DVAL_P(return_value) = fmod(num1, num2); + Z_TYPE_P(return_value) = IS_DOUBLE; +} +/* }}} */ + /* * Local variables: * tab-width: 4 Index: php_math.h =================================================================== RCS file: /repository/php4/ext/standard/php_math.h,v retrieving revision 1.14 diff -u -r1.14 php_math.h --- php_math.h 9 Jan 2002 23:59:04 -0000 1.14 +++ php_math.h 21 Feb 2002 07:58:37 -0000 @@ -58,6 +58,7 @@ PHP_FUNCTION(octdec); PHP_FUNCTION(base_convert); PHP_FUNCTION(number_format); +PHP_FUNCTION(fmod); PHP_FUNCTION(deg2rad); PHP_FUNCTION(rad2deg);zval **num1, **num2; if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &num1, &num2)== FAILURE) {WRONG_PARAM_COUNT; }convert_to_double_ex(num1); convert_to_double_ex(num2); Z_DVAL_P(return_value) = fmod(Z_DVAL_PP(num1), Z_DVAL_PP(num2)); Z_TYPE_P(return_value) = IS_DOUBLE;} /* }}} */