]> gitweb.factorcode.org Git - factor.git/blob - basis/math/primes/primes-docs.factor
a78f444b21dbc76b0c159c7fa4f462046f268019
[factor.git] / basis / math / primes / primes-docs.factor
1 USING: help.markup help.syntax math sequences ;
2 IN: math.primes
3
4 { next-prime prime? } related-words
5
6 HELP: next-prime
7 { $values { "n" integer } { "p" "a prime number" } }
8 { $description "Return the next prime number greater than " { $snippet "n" } "." } ;
9
10 HELP: prime?
11 { $values { "n" "an integer" } { "?" "a boolean" } }
12 { $description "Test if an integer is a prime number." } ;
13
14 { nprimes primes-upto primes-between } related-words
15
16 HELP: nprimes
17 { $values { "n" "a non-negative integer" } { "seq" "a sequence" } }
18 { $description "Return a sequence containing the " { $snippet "n" } " first primes numbers." } ;
19
20 HELP: primes-upto
21 { $values { "n" "an integer" } { "seq" "a sequence" } }
22 { $description "Return a sequence containing all the prime numbers smaller or equal to " { $snippet "n" } "." } ;
23
24 HELP: primes-between
25 { $values { "low" "an integer" } { "high" "an integer" } { "seq" "a sequence" } }
26 { $description "Return a sequence containing all the prime numbers between " { $snippet "low" } " and " { $snippet "high" } "." } ;
27
28 HELP: find-relative-prime
29 { $values
30     { "n" integer }
31     { "p" integer }
32 }
33 { $description "Returns a number that is relatively prime to " { $snippet "n" } "." } ;
34
35 HELP: find-relative-prime*
36 { $values
37     { "n" integer } { "guess" integer }
38     { "p" integer }
39 }
40 { $description "Returns a number that is relatively prime to " { $snippet "n" } ", starting by trying " { $snippet "guess" } "." } ;
41
42 HELP: random-prime
43 { $values
44     { "numbits" integer }
45     { "p" integer }
46 }
47 { $description "Returns a prime number exactly " { $snippet "numbits" } " bits in length, with the topmost bit set to one." } ;
48
49 HELP: unique-primes
50 { $values
51     { "n" integer }
52     { "numbits" integer }
53     { "seq" sequence }
54 }
55 { $description "Generates a sequence of " { $snippet "n" } " unique prime numbers with exactly " { $snippet "numbits" } " bits." } ;
56
57 ARTICLE: "math.primes" "Prime numbers"
58 "The " { $vocab-link "math.primes" } " vocabulary implements words related to prime numbers. Serveral useful vocabularies exist for testing primality. The Sieve of Eratosthenes in " { $vocab-link "math.primes.erato" } " is useful for testing primality below five million. For larger integers, " { $vocab-link "math.primes.miller-rabin" } " is a fast probabilstic primality test. The " { $vocab-link "math.primes.lucas-lehmer" } " vocabulary implements an algorithm for finding huge Mersenne prime numbers." $nl
59 "Testing if a number is prime:"
60 { $subsections prime? }
61 "Generating prime numbers:"
62 { $subsections
63     next-prime
64     primes-upto
65     primes-between
66     random-prime
67 }
68 "Generating relative prime numbers:"
69 { $subsections
70     find-relative-prime
71     find-relative-prime*
72 }
73 "Make a sequence of random prime numbers:"
74 { $subsections unique-primes } ;
75
76 ABOUT: "math.primes"