Click or drag to resize
gmp_libmpz_millerrabin Method
An implementation of the probabilistic primality test found in Knuth's Seminumerical Algorithms book.

Namespace:  Math.Gmp.Native
Assembly:  Math.Gmp.Native (in Math.Gmp.Native.dll) Version: 1.0.0.0 (1.0.0.0)
Syntax
public static int mpz_millerrabin(
	mpz_t n,
	int reps
)

Parameters

n
Type: Math.Gmp.Nativempz_t
The operand integer.
reps
Type: SystemInt32
The number of internal passes of the probabilistic algorithm.

Return Value

Type: Int32
If the function mpz_millerrabin returns 0 then n is not prime. If it returns 1, then n is 'probably' prime.
Remarks

The probability of a false positive is (1/4)^reps, where reps is the number of internal passes of the probabilistic algorithm. Knuth indicates that 25 passes are reasonable.

Examples
// Create, initialize, and set the value of n to 12.
mpz_t n = new mpz_t();
gmp_lib.mpz_init_set_ui(n, 12U);

// Assert that n is a composite number.
Assert.IsTrue(gmp_lib.mpz_millerrabin(n, 25) == 0);

// Release unmanaged memory allocated for n.
gmp_lib.mpz_clear(n);
See Also