To allow for maximum performance, module prime_lgc provides unsafe
public (not exported) predicates that user code can call directly instead
of calling the safe predicates exported by module prime.
For info on the implementation, see library(nan_numerics_prime).
NOTE: Predicates in this module are unsafe, i.e. do not validate input
arguments and are not steadfast.
- author
- - Julio P. Di Egidio
- version
- - 1.2.5-beta
- See also
- -
library(nan_numerics_prime)
- copyright
- - 2016 Julio P. Di Egidio
- license
- - GNU GPLv3
- To be done
- - Integrate
isqrt function from GMP?
- test_(+N:posint) is semidet
- True if N is a prime number.
- div_(+N:posint, -P:prime) is semidet
- True if N is a composite number with P its smallest prime divisor.
- div_rev_(+N:posint, -P:prime) is semidet
- True if N is a composite number with P its greatest prime divisor.
- fact_(+N:posint, -PFs:list(pfact)) is det
- PFs is the list of all prime factors of N in ascending order of the
prime divisors.
Elements of PFs are of the form P^F with P the prime divisor and
F the corresponding power.
If N is equal to 1 or if N is a prime number, PFs is [N^1].
- gen_(+Inf:posint, -P:prime) is multi
- gen_(+Inf:posint, +Sup:posint, -P:prime) is nondet
- Generates in ascending order all prime numbers P greater than or
equal to Inf, and less than or equal to Sup in the variant with arity
3. Fails if the prime to the left of Sup is less than the prime to
the right of Inf.
- gen_p_(+L:prime, -P:prime) is multi
- gen_p_(+L:prime, +H:prime, -P:prime) is nondet
- Generates in ascending order all prime numbers P starting from L, and
up to H in the variant with arity
3. Fails if H is less than L.
- gen_rev_(+Sup:prime, -P:prime) is nondet
- gen_rev_(+Inf:posint, +Sup:posint, -P:prime) is nondet
- Generates in descending order all prime numbers P less than or equal
to Sup, and greater than or equal to Inf in the variant with arity
3.
Fails if Sup is equal to 1 or if the prime to the left of Sup is less
than the prime to the right of Inf.
- gen_rev_p_(+H:prime, -P:prime) is multi
- gen_rev_p_(+L:prime, +H:prime, -P:prime) is nondet
- Generates in descending order all prime numbers P starting from H,
and down to L in the variant with arity
3. Fails if H is less than
L.
- next_(+N:posint, -P:prime) is det
- P is the smallest prime number greater than N.
- next_p_(+P0:prime, -P:prime) is det
- P is the smallest prime number greater than P0.
- prev_(+N:posint, -P:prime) is semidet
- P is the greatest prime number less than N. Fails if N is less than or
equal to
2.
- prev_p_(+P0:prime, -P:prime) is semidet
- P is the greatest prime number less than P0. Fails if P is equal to
2.
- right_(+N:posint, -P:prime) is det
- P is the smallest prime number greater than or equal to N.
- left_(+N:posint, -P:prime) is semidet
- P is the greatest prime number less than or equal to N. Fails if N is
equal to
1.