XLII. GMP

Introdução

Estas funções permitem a você trabalhar com inteiros de tamanho arbritário usando a biblioteca GNU MP.

Estas funções foram adicionadas no PHP 4.0.4.

Nota: A maioria das funções GMP aceitam números GMP comoargumentos, definidos como resource abaixo. Entretanto, a maioria destas funções também aceitam argumentos númericos e strings, dado que é possível converter posteriormente para um número. Também, caso houver uma função mais rápida que possa trabalhar com números inteiros, ela será usada ao invés de uma função mais lenta quando os argumentos forem inteiros. Isto é feito de forma transparente, em resumo, você poderá usar inteiros em qualquer função que espere um número GMP. Veja também a função gmp_init().

Atenção

Se você quiser explicitamente especificar um número inteiro largo, especifique-o como uma string. Se você não fizer isto, o PHP irá interpretar a literal inteira primeiro, possivelmente resultando em perca de precisão, mesmo antes de começar a utilizar o GMP.

Nota: Esta extensão não está disponível na plataforma Windows.

Dependências

Você pode copiar a biblioteca GMP a partir de http://www.swox.com/gmp/. Este site também tem o manual GMP disponível.

Você vai precisar do GMP versão 2 ou posterior para usar estas funções. Algumas destas funções podem querer uma versão mais recente da biblioteca GMP.

Instalação

Para ter estas funções disponíveis, você deve compilar o PHP com suporte a GMP usando a opção de configuração --with-gmp.

Configurações em execução

Esta extensão não define nenhum parâmetro de configuração no php.ini.

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

GMP_ROUND_ZERO (integer)

GMP_ROUND_PLUSINF (integer)

GMP_ROUND_MINUSINF (integer)

Exemplos

Exemplo 1. Função de fatorial usando GMP

<?php
function fact ($x)
{
    if (
$x <= 1) {
        return
1;
     } else {
        return
gmp_mul ($x, fact ($x-1));
     }   
}

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

Esta irá calcular o fatorial de 1000 (um número grande) muito rapidamente.

Veja também

Mais funções matemáticas podem ser encontradas nas seções BCMath Funções Matemáticas de Precisão Arbitrária and Matemática e Trigonometria.

Índice
gmp_abs -- Valor absoluto
gmp_add -- Adiciona números
gmp_and -- Lógico AND
gmp_clrbit -- Limpa bit
gmp_cmp -- Compara números
gmp_com -- Calcula o complemento
gmp_div_q -- Divide números
gmp_div_qr -- Divide números e retorna o quociente e o resto da divisão
gmp_div_r -- Resto da divisão de números
gmp_div -- Apelido para gmp_div_q()
gmp_divexact -- Divisão exata de números
gmp_fact -- Fatorial
gmp_gcd -- Calcula o MDC
gmp_gcdext -- Calculate GCD and multipliers
gmp_hamdist -- Hamming distance
gmp_init -- Cria um número GMP
gmp_intval -- Converte um número GMP para um inteiro
gmp_invert -- Inverse by modulo
gmp_jacobi -- Jacobi symbol
gmp_legendre -- Legendre symbol
gmp_mod -- Modulo operation
gmp_mul -- Multiplica números
gmp_neg -- Nega o número
gmp_or -- Lógico OR
gmp_perfect_square -- Perfect square check
gmp_popcount -- Contagem de população
gmp_pow -- Potenciação
gmp_powm -- Raise number into power with modulo
gmp_prob_prime -- Check if number is "probably prime"
gmp_random -- Número randomico
gmp_scan0 -- Scan for 0
gmp_scan1 -- Scan for 1
gmp_setbit -- Set bit
gmp_sign -- Sinal do número
gmp_sqrt -- Raíz quadrada
gmp_sqrtrem --  Square root with remainder
gmp_strval -- Converte um número GMP para uma string
gmp_sub -- Subtrai números
gmp_xor -- Lógico XOR