XLIII. Funciones GMP

Introducción

Estas funciones permiten trabajar con números enteros de cualquier longitud arbitraria empleando la librerí GNUMP.

Estas funciones se añadieron en la versión de PHP 4.0.4.

Nota: La mayoría de funciones GMP aceptan como argumentos números GMP, definidos como resource más adelante. Sin embargo, la mayoría de estas funciones también aceptan argumentos de tipo numérico o cadenas de texto, ya que se pueden convertir fácilmente. Además, si existe una función más rápida que pueda operar con enteros, se empleará esa función en lugar de la otra función más lenta. Este proceso se realiza de forma automática y transparente, por lo que a modo de resumen se puede decir que se pueden emplear números de tipo entero en todas aquellas funciones cuyos parámetros se han definido como números GMP. Vea también la documentación de la función gmp_init().

Aviso

Si se quiere indicar de forma explícita un número entero muy grande, se recomienda hacerlo en forma de cadena. De otra forma, PHP lo interpreta como un entero y podría producirse una pérdida de precisión antes de comenzar a utilizar las funciones GMP.

Nota: Esta extensión está disponible en sistemas Windows desde la versión de PHP 5.1.0.

Requirimientos

La librería GMP de puede descargar desde la dirección http://www.swox.com/gmp/. Además, en ese sitio web también está disponible el manual de GMP.

Para poder utilizar estas funciones se requiere al menos la versión 2 de GMP. Algunas funciones pueden requerir además alguna versión más reciente.

Instalación

Para poder utilizar estas funciones, se debe compilar PHP con soporte de GMP mediante la opción --with-gmp.

Configuración en tiempo de ejecución

Esta extensión no tiene directivas de configuración en php.ini.

Tipos de recursos

Esta extensión no tiene ningún tipo de recurso definido.

Constantes predefinidas

Estas constantes están definidas por esta extensión y estarán disponibles solamente cuando la extensión ha sido o bien compilada dentro de PHP o grabada dinámicamente en tiempo de ejecución.

GMP_ROUND_ZERO (integer)

GMP_ROUND_PLUSINF (integer)

GMP_ROUND_MINUSINF (integer)

Ejemplos

Ejemplo 1. Cálculo del factorial usando GMP

<?php
function fact($x)
{
    
$factorial = 1;
    for (
$i=2; $i < $x; $i++) {
        
$factorial = gmp_mul($factorial, $i);
    }
    return
$factorial;
}

echo
gmp_strval(fact(1000)) . "\n";
?>

En el ejemplo se calcula el factorial de número 1000 (un número bastante grande para calcular su factorial) de forma bastante rápida.

Ver también

Se pueden encontrar muchas otras funciones matemáticas en las secciones Funciones matemáticas de precisión arbitraria BCMath y Funciones Matemáticas.

Tabla de contenidos
gmp_abs -- Valor absoluto
gmp_add -- Suma números
gmp_and -- Realiza una operación de AND lógico
gmp_clrbit -- Borra un bit
gmp_cmp -- Compara números
gmp_com -- Calcula el complementario
gmp_div_q -- Divide números
gmp_div_qr -- Divide números y obtiene el cociente y el resto
gmp_div_r -- Resto de la división de números
gmp_div -- Alias of gmp_div_q()
gmp_divexact -- División exacta de números
gmp_fact -- Factorial
gmp_gcd -- Calcula el MCD (máximo común divisor)
gmp_gcdext -- Calcula el MCD y los coeficientes
gmp_hamdist -- Distancia de Hamming
gmp_init -- Crea un número GMP
gmp_intval -- Convierte números GMP a números enteros
gmp_invert -- Invierte según el módulo
gmp_jacobi -- Calcula el símbolo de Jacobi
gmp_legendre -- Calcula el símbolo de Legendre
gmp_mod -- Operación Módulo
gmp_mul -- Multiplica números
gmp_neg -- Cambia el signo de un número
gmp_or -- Realiza una operación de OR lógico
gmp_perfect_square -- Comprueba si es un cuadrado perfecto
gmp_popcount -- Calcula la población de un número
gmp_pow -- Eleva un número a una potencia
gmp_powm -- Eleva un número a una potencia según el módulo
gmp_prob_prime -- Comprueba si un número tiene probabilidades de ser un número primo
gmp_random -- Genera un número aleatorio
gmp_scan0 -- Busca un 0
gmp_scan1 -- Busca un 1
gmp_setbit -- Establece el valor de un bit
gmp_sign -- Obtiene el signo del número
gmp_sqrt -- Calcula la raíz cuadrada
gmp_sqrtrem --  Calcula la raíz cuadrada con el resto
gmp_strval -- Convierte un número GMP a una cadena de texto
gmp_sub -- Resta números
gmp_xor -- Realiza una operación de XOR lógico

Hosting by: hurra.com
Generated: 2007-01-26 18:00:53