Go to the first, previous, next, last section, table of contents.
- Function: int mpz_probab_prime_p (mpz_t n, int reps)
-
If this function returns 0, n is definitely not prime. If it
returns 1, then n is `probably' prime. If it returns 2, then
n is surely prime. Reasonable values of reps vary from 5 to 10; a
higher value lowers the probability for a non-prime to pass as a
`probable' prime.
The function uses Miller-Rabin's probabilistic test.
- Function: int mpz_nextprime (mpz_t rop, mpz_t op)
-
Set rop to the next prime greater than op.
This function uses a probabilistic algorithm to identify primes, but for for
practical purposes it's adequate, since the chance of a composite passing will
be extremely small.
- Function: void mpz_gcd (mpz_t rop, mpz_t op1, mpz_t op2)
-
Set rop to the greatest common divisor of op1 and op2.
The result is always positive even if either of or both input operands
are negative.
- Function: unsigned long int mpz_gcd_ui (mpz_t rop, mpz_t op1, unsigned long int op2)
-
Compute the greatest common divisor of op1 and op2. If
rop is not
NULL, store the result there.
If the result is small enough to fit in an unsigned long int, it is
returned. If the result does not fit, 0 is returned, and the result is equal
to the argument op1. Note that the result will always fit if op2
is non-zero.
- Function: void mpz_gcdext (mpz_t g, mpz_t s, mpz_t t, mpz_t a, mpz_t b)
-
Compute g, s, and t, such that as +
bt = g =
gcd(a, b). If t is
NULL, that argument is not computed.
- Function: void mpz_lcm (mpz_t rop, mpz_t op1, mpz_t op2)
-
Set rop to the least common multiple of op1 and op2.
- Function: int mpz_invert (mpz_t rop, mpz_t op1, mpz_t op2)
-
Compute the inverse of op1 modulo op2 and put the result in
rop. Return non-zero if an inverse exists, zero otherwise. When the
function returns zero, rop is undefined.
- Function: int mpz_jacobi (mpz_t op1, mpz_t op2)
-
- Function: int mpz_legendre (mpz_t op1, mpz_t op2)
-
Compute the Jacobi and Legendre symbols, respectively. op2 should be
odd and must be positive.
- Function: int mpz_si_kronecker (long a, mpz_t b);
-
- Function: int mpz_ui_kronecker (unsigned long a, mpz_t b);
-
- Function: int mpz_kronecker_si (mpz_t a, long b);
-
- Function: int mpz_kronecker_ui (mpz_t a, unsigned long b);
-
@ifnottex
Calculate the value of the Kronecker/Jacobi symbol (a/b), with the
Kronecker extension (a/2)=(2/a) when a odd, or (a/2)=0 when a even.
All values of a and b give a well-defined result. See Henri
Cohen, section 1.4.2, for more information (see section References). See also the
example program `demos/qcn.c' which uses
mpz_kronecker_ui.
- Function: unsigned long int mpz_remove (mpz_t rop, mpz_t op, mpz_t f)
-
Remove all occurrences of the factor f from op and store the
result in rop. Return the multiplicity of f in op.
- Function: void mpz_fac_ui (mpz_t rop, unsigned long int op)
-
Set rop to op!, the factorial of op.
- Function: void mpz_bin_ui (mpz_t rop, mpz_t n, unsigned long int k)
-
- Function: void mpz_bin_uiui (mpz_t rop, unsigned long int n, unsigned long int k)
-
Compute the binomial coefficient
@ifnottex
n over k
and store the result in rop. Negative values of n are supported
by
mpz_bin_ui, using the identity
@ifnottex
bin(-n,k) = (-1)^k * bin(n+k-1,k)
(see Knuth volume 1 section 1.2.6 part G).
- Function: void mpz_fib_ui (mpz_t rop, unsigned long int n)
-
Compute the nth Fibonacci number and store the result in rop.
Go to the first, previous, next, last section, table of contents.