From: Antony Dovgal Date: Tue, 18 Jul 2006 14:54:32 +0000 (+0000) Subject: MFH: add gmp_nextprime() X-Git-Tag: php-5.2.0RC1~70 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9e905c3de77d3004071ad2c202ef86dc52eae892;p=php MFH: add gmp_nextprime() patch by ants dot aasma at gmail dot com --- diff --git a/ext/gmp/gmp.c b/ext/gmp/gmp.c index 3e723e6f4f..e97977a77c 100644 --- a/ext/gmp/gmp.c +++ b/ext/gmp/gmp.c @@ -260,6 +260,11 @@ ZEND_BEGIN_ARG_INFO(arginfo_gmp_scan1, 0) ZEND_ARG_INFO(0, start) ZEND_END_ARG_INFO() +static +ZEND_BEGIN_ARG_INFO(arginfo_gmp_nextprime, 0) + ZEND_ARG_INFO(0, a) +ZEND_END_ARG_INFO() + /* }}} */ ZEND_DECLARE_MODULE_GLOBALS(gmp) @@ -307,6 +312,7 @@ zend_function_entry gmp_functions[] = { ZEND_FE(gmp_scan1, arginfo_gmp_scan1) ZEND_FE(gmp_popcount, arginfo_gmp_popcount) ZEND_FE(gmp_hamdist, arginfo_gmp_hamdist) + ZEND_FE(gmp_nextprime, arginfo_gmp_nextprime) {NULL, NULL, NULL} /* Must be the last line in gmp_functions[] */ }; /* }}} */ @@ -1424,6 +1430,14 @@ ZEND_FUNCTION(gmp_com) } /* }}} */ +/* {{{ proto resource gmp_nextprime(resource a) + Finds next prime of a */ +ZEND_FUNCTION(gmp_nextprime) +{ + gmp_unary_op(mpz_nextprime); +} +/* }}} */ + /* {{{ proto resource gmp_xor(resource a, resource b) Calculates logical exclusive OR of a and b */ ZEND_FUNCTION(gmp_xor) diff --git a/ext/gmp/php_gmp.h b/ext/gmp/php_gmp.h index 7ad54723f1..5af3615973 100644 --- a/ext/gmp/php_gmp.h +++ b/ext/gmp/php_gmp.h @@ -75,6 +75,7 @@ ZEND_FUNCTION(gmp_scan0); ZEND_FUNCTION(gmp_scan1); ZEND_FUNCTION(gmp_popcount); ZEND_FUNCTION(gmp_hamdist); +ZEND_FUNCTION(gmp_nextprime); ZEND_BEGIN_MODULE_GLOBALS(gmp) zend_bool rand_initialized; diff --git a/ext/gmp/tests/gmp_nextprime.phpt b/ext/gmp/tests/gmp_nextprime.phpt new file mode 100644 index 0000000000..84d945b3fc --- /dev/null +++ b/ext/gmp/tests/gmp_nextprime.phpt @@ -0,0 +1,40 @@ +--TEST-- +gmp_nextprime() +--SKIPIF-- + +--FILE-- + +--EXPECTF-- +string(1) "2" +string(1) "2" +string(4) "-997" +string(4) "1009" +string(6) "100003" + +Warning: gmp_nextprime(): Unable to convert variable to GMP - wrong type in %s on line %d +string(1) "0" +string(1) "0" + +Warning: gmp_nextprime(): Unable to convert variable to GMP - wrong type in %s on line %d +string(1) "0" +Done