- GMP:
. Export internal structures and accessor helpers for GMP object. (Sara)
. Added gmp_binomial(n, k). (Nikita)
+ . Added gmp_lcm(a, b). (Nikita)
- intl:
. Fixed bug #75317 (UConverter::setDestinationEncoding changes source instead
GMP:
. Added gmp_binomial(n, k) for calculating binomial coefficients.
+ . Added gmp_lcm(a, b) for calculating the least common multiple.
Intl:
. Added void Spoofchecker::setRestrictionLevel(int $level) method, available
ZEND_FE(gmp_prob_prime, arginfo_gmp_prob_prime)
ZEND_FE(gmp_gcd, arginfo_gmp_binary)
ZEND_FE(gmp_gcdext, arginfo_gmp_binary)
+ ZEND_FE(gmp_lcm, arginfo_gmp_binary)
ZEND_FE(gmp_invert, arginfo_gmp_binary)
ZEND_FE(gmp_jacobi, arginfo_gmp_binary)
ZEND_FE(gmp_legendre, arginfo_gmp_binary)
}
/* }}} */
+/* {{{ proto GMP gmp_lcm(mixed a, mixed b)
+ Computes least common multiple (lcm) of a and b */
+ZEND_FUNCTION(gmp_lcm)
+{
+ gmp_binary_ui_op(mpz_lcm, (gmp_binary_ui_op_t) mpz_lcm_ui);
+}
+/* }}} */
+
/* {{{ proto array gmp_gcdext(mixed a, mixed b)
Computes G, S, and T, such that AS + BT = G = `gcd' (A, B) */
ZEND_FUNCTION(gmp_gcdext)
ZEND_FUNCTION(gmp_hamdist);
ZEND_FUNCTION(gmp_nextprime);
ZEND_FUNCTION(gmp_binomial);
+ZEND_FUNCTION(gmp_lcm);
ZEND_BEGIN_MODULE_GLOBALS(gmp)
zend_bool rand_initialized;
--- /dev/null
+--TEST--
+gmp_lcm(): Least common multiple
+--FILE--
+<?php
+
+var_dump(gmp_lcm(100, 77));
+var_dump(gmp_lcm(99, 77));
+var_dump(gmp_lcm(99, -77));
+var_dump(gmp_lcm(-99, -77));
+
+var_dump(gmp_lcm(gmp_init(99), gmp_init(77)));
+
+var_dump(gmp_lcm(93, 0));
+var_dump(gmp_lcm(0, 93));
+
+?>
+--EXPECT--
+object(GMP)#1 (1) {
+ ["num"]=>
+ string(4) "7700"
+}
+object(GMP)#1 (1) {
+ ["num"]=>
+ string(3) "693"
+}
+object(GMP)#1 (1) {
+ ["num"]=>
+ string(3) "693"
+}
+object(GMP)#1 (1) {
+ ["num"]=>
+ string(3) "693"
+}
+object(GMP)#3 (1) {
+ ["num"]=>
+ string(3) "693"
+}
+object(GMP)#3 (1) {
+ ["num"]=>
+ string(1) "0"
+}
+object(GMP)#3 (1) {
+ ["num"]=>
+ string(1) "0"
+}