Re: Re: cvs: php4 /ext/bcmath bcmath.c php_bcmath.h

From: Date: Tue, 10 Dec 2002 20:51:22 +0000
Subject: Re: Re: cvs: php4 /ext/bcmath bcmath.c php_bcmath.h
References: 1  Groups: php.dev 
Request: Send a blank email to php-dev+get-92320@lists.php.net to get a copy of this message
At 21:47 10.12.2002, Andi Gutmans wrote:
I think this is one of those exceptions where we should probably not go by our standard and call the function bcpowmod(). It looks a bit funny that all of the BC functions don't have underscores but only one does. It'll probably confuse people more than it helps. What do you guys think? Andi
Perhaps we make all old function names an alias and have all new ones with an underscrore. If we do so for all modules we can add a configure setting to disallow deprecated old function names. If we don't do this i agree to Andi and would favor bcpowmod(). marcus
At 07:04 PM 12/10/2002 +0000, Sara Golemon wrote:
pollita         Tue Dec 10 14:04:29 2002 EDT
Modified files:
    /php4/ext/bcmath    bcmath.c php_bcmath.h
Log: Added support for libbcmath's bc_raisemod function as bc_powmod() Index: php4/ext/bcmath/bcmath.c diff -u php4/ext/bcmath/bcmath.c:1.43 php4/ext/bcmath/bcmath.c:1.44
--- php4/ext/bcmath/bcmath.c:1.43       Thu Dec  5 16:51:45 2002
+++ php4/ext/bcmath/bcmath.c    Tue Dec 10 14:04:27 2002
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
*/ -/* $Id: bcmath.c,v 1.43 2002/12/05 21:51:45 helly Exp $ */ +/* $Id: bcmath.c,v 1.44 2002/12/10 19:04:27 pollita Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -42,6 +42,7 @@
        PHP_FE(bcsqrt,                NULL)
        PHP_FE(bcscale,                NULL)
        PHP_FE(bccomp,                NULL)
+       PHP_FE(bc_powmod,              NULL)
        {NULL, NULL, NULL}
}; @@ -324,6 +325,38 @@
        }
        bc_free_num(&first);
        bc_free_num(&second);
+       bc_free_num(&result);
+       return;
+} +/* }}} */ + +/* {{{ proto string bc_powmod(string x, string y, string mod [, int scale]) + Returns the value of an arbitrary precision number raised to the power of another reduced by a modulous */ +PHP_FUNCTION(bc_powmod) +{
+       char *left, *right, *modulous;
+       int left_len, right_len, modulous_len;
+       bc_num first, second, mod, result;
+       int scale=bc_precision;
+
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_C, "sss|l", &left, &left_len, &right, &right_len, &modulous, &modulous_len, &scale) == FAILURE) {
+               WRONG_PARAM_COUNT;
+       }
+
+       bc_init_num(&first TSRMLS_CC);
+       bc_init_num(&second TSRMLS_CC);
+       bc_init_num(&mod TSRMLS_CC);
+       bc_init_num(&result TSRMLS_CC);
+       bc_str2num(&first, left, scale TSRMLS_CC);
+       bc_str2num(&second, right, scale TSRMLS_CC);
+       bc_str2num(&mod, modulous, scale TSRMLS_CC);
+       bc_raisemod(first, second, mod, &result, scale TSRMLS_CC);
+       Z_STRVAL_P(return_value) = bc_num2str(result);
+       Z_STRLEN_P(return_value) = strlen(Z_STRVAL_P(return_value));
+       Z_TYPE_P(return_value) = IS_STRING;
+       bc_free_num(&first);
+       bc_free_num(&second);
+       bc_free_num(&mod);
        bc_free_num(&result);
        return;
} Index: php4/ext/bcmath/php_bcmath.h diff -u php4/ext/bcmath/php_bcmath.h:1.12 php4/ext/bcmath/php_bcmath.h:1.13 --- php4/ext/bcmath/php_bcmath.h:1.12 Fri Nov 22 04:25:28 2002
+++ php4/ext/bcmath/php_bcmath.h        Tue Dec 10 14:04:27 2002
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
*/ -/* $Id: php_bcmath.h,v 1.12 2002/11/22 09:25:28 sander Exp $ */ +/* $Id: php_bcmath.h,v 1.13 2002/12/10 19:04:27 pollita Exp $ */ #ifndef PHP_BCMATH_H #define PHP_BCMATH_H @@ -60,6 +60,7 @@ PHP_FUNCTION(bcsqrt); PHP_FUNCTION(bccomp); PHP_FUNCTION(bcscale); +PHP_FUNCTION(bc_powmod); #else -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
-- PHP Development Mailing List <http://www.php.net/> To unsubscribe, visit: http://www.php.net/unsub.php


« previous php.dev (#92320) next »