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().
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 esta disponível na plataforma Windows desde PHP 5.1.0.
Dependências
Você pode copiar a biblioteca GMP a partir de » https://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
A maioria das funções GPM opera ou retorna recurso de número GMP.
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.
Exemplos
Example#1 Função de fatorial usando GMP
<?php
function fact ($x)
{
$return = 1;
for ($i=2; $i < $x; $i++) {
$return = gmp_mul($return, $i);
}
return $return;
}
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 — Sinônimo de gmp_div_q
- gmp_divexact — Divisão exata de números
- gmp_fact — Fatorial
- gmp_gcd — Calcula o MDC
- gmp_gcdext — Calcula GCD e multiplicadores
- gmp_hamdist — Distância de Hamming
- gmp_init — Cria um número GMP
- gmp_intval — Converte um número GMP para um inteiro
- gmp_invert — Inverse by modulo
- gmp_jacobi — Símbolo de Jacobi
- gmp_legendre — Símbolo de Legendre
- gmp_mod — Operação Módulo
- gmp_mul — Multiplica números
- gmp_neg — Nega o número
- gmp_nextprime — Busca o próximo número primo
- gmp_or — Lógico OR
- gmp_perfect_square — Perfect square check
- gmp_popcount — Contagem de população
- gmp_pow — Potenciação
- gmp_powm — Eleva um número a potência com módulo
- gmp_prob_prime — Verifica se o número é "provavelmente primo"
- 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 — Raíz quadrada com resto
- gmp_strval — Converte um número GMP para uma string
- gmp_sub — Subtrai números
- gmp_testbit — Tests if a bit is set
- gmp_xor — Lógico XOR