zptest.3 - libzahl - big integer library | |
git clone git://git.suckless.org/libzahl | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
zptest.3 (1512B) | |
--- | |
1 .TH ZPTEST 3 libzahl | |
2 .SH NAME | |
3 zptest - Test the primality of a big integer | |
4 .SH SYNOPSIS | |
5 .nf | |
6 #include <zahl.h> | |
7 | |
8 enum zprimality zptest(z_t \fIwitness\fP, z_t \fIquestioned\fP, int \fIt… | |
9 .fi | |
10 .SH DESCRIPTION | |
11 .B zptest | |
12 tests whether | |
13 .I questioned | |
14 is a prime number. This is implemented using the | |
15 Miller–Rabin primality test. | |
16 .P | |
17 If | |
18 .I questioned | |
19 is determined to be a composite, the witness if its | |
20 compositeness is stored into | |
21 .I witness | |
22 unless | |
23 .I witness | |
24 is | |
25 .BR 0 . | |
26 .BR zgcd (3) | |
27 can be used on | |
28 .I questioned | |
29 and | |
30 .I witness | |
31 to extract a factor of | |
32 .IR questioned . | |
33 This factor can be either composite, prime, or 1. | |
34 .P | |
35 The risk that a composite number is determined to be | |
36 a probably prime is | |
37 .IR (1-4↑-tries) . | |
38 .P | |
39 It is safe to call | |
40 .B zptest | |
41 with non-unique parameters, and with | |
42 .IR "(witness==0)" . | |
43 .SH RETURN VALUE | |
44 This function will either return: | |
45 .TP | |
46 .B NONPRIME | |
47 .I questioned | |
48 is certainly a nonprime number (composite). | |
49 .TP | |
50 .B PROBABLY_PRIME | |
51 .I questioned | |
52 is probably a prime number. | |
53 .TP | |
54 .B PRIME | |
55 .I questioned | |
56 is certainly a prime number. | |
57 .SH NOTES | |
58 If | |
59 .I questioned | |
60 is less than two | |
61 .I questioned | |
62 is copied into | |
63 .P | |
64 Increasing | |
65 .I tries | |
66 only reduces the chance that | |
67 .B PROBABLY_PRIME | |
68 is returned. It cannot increase | |
69 the chance that | |
70 .B PRIME | |
71 is returned. | |
72 .IR witness . | |
73 .SH RATIONALE | |
74 .B NONPRIME | |
75 is called just that, rather than COMPOSITE, | |
76 because negative integers, zero, and one are | |
77 neither prime nor composite. (One was historically | |
78 a prime, we do not recognise it as such.) | |
79 .SH SEE ALSO | |
80 .BR zgcd (3) |