This class provides methods to search for integers \(m\) that are prime, for which the integer \(r = (m^k-1)/(m-1)\) is also prime for a given \(k\), and possibly for which \((m-1)/2\) is also prime.
More...
#include <latmrg/Primes.h>
|
| | Primes () |
| | Constructor. More...
|
| |
| | ~Primes () |
| | Destructor. More...
|
| |
| void | find (int e, int s, bool facto, std::ostream &fout) |
| | Finds \(s\) prime integers \(m<2^e\) that are closest to \(2^e\). More...
|
| |
| void | find (int k, int e, int s, bool safe, bool facto, std::ostream &fout) |
| | Finds \(s\) prime integers \(m<2^e\) that are closest to \(2^e\), such that \(m\) and \(r = (m^k-1)/(m-1)\) are prime. More...
|
| |
| void | find (int k, int e, long c1, long c2, bool safe, bool facto, std::ostream &fout) |
| | Finds all integers \(m\), in \(2^e + c_1 \le m \le2^e + c_2\), such that \(m\) and \(r = (m^k-1)/(m-1)\) are prime. More...
|
| |
|
| void | find (int k, int e, int s, const Int &S1, const Int &S2, bool safe, bool facto, std::ostream &fout) |
| | This is the general purpose function used by this program. More...
|
| |
| void | nextM (Int &m) |
| |
| void | writeFooter (std::ostream &fout) |
| | Writes the CPU time of the find to the stream fout. More...
|
| |
| void | writeHeader (int k, int e, long c1, long c2, bool safe, bool facto, std::ostream &fout) |
| | Writes the parameters of the find to the stream fout. More...
|
| |
template<typename Int>
class LatMRG::Primes< Int >
This class provides methods to search for integers \(m\) that are prime, for which the integer \(r = (m^k-1)/(m-1)\) is also prime for a given \(k\), and possibly for which \((m-1)/2\) is also prime.
This class solely uses probabilistic primality tests, but does it a lot of times.
- Todo:
- Could probably switch to a deterministic test because it is possible to do everything this class does with efficient deterministic tests for integers < 2^64 see https://math.stackexchange.com/questions/2481148/primality-testing-for-64-bit-numbers
◆ Primes()
◆ ~Primes()
◆ find() [1/4]
template<typename Int >
| void LatMRG::Primes< Int >::find |
( |
int |
e, |
|
|
int |
s, |
|
|
bool |
facto, |
|
|
std::ostream & |
fout |
|
) |
| |
Finds \(s\) prime integers \(m<2^e\) that are closest to \(2^e\).
If facto is true, then \(m-1\) is factorized in its prime factors. The results are printed on stream fout.
◆ find() [2/4]
template<typename Int >
| void LatMRG::Primes< Int >::find |
( |
int |
k, |
|
|
int |
e, |
|
|
int |
s, |
|
|
bool |
safe, |
|
|
bool |
facto, |
|
|
std::ostream & |
fout |
|
) |
| |
Finds \(s\) prime integers \(m<2^e\) that are closest to \(2^e\), such that \(m\) and \(r = (m^k-1)/(m-1)\) are prime.
If safe is true, \((m-1)/2\) is also required to be prime. The results are printed on stream fout. If facto is true, then \(m-1\) is factorized in its prime factors. If \(k=1\), \(r\) is considered to be prime.
◆ find() [3/4]
template<typename Int >
| void LatMRG::Primes< Int >::find |
( |
int |
k, |
|
|
int |
e, |
|
|
long |
c1, |
|
|
long |
c2, |
|
|
bool |
safe, |
|
|
bool |
facto, |
|
|
std::ostream & |
fout |
|
) |
| |
Finds all integers \(m\), in \(2^e + c_1 \le m \le2^e + c_2\), such that \(m\) and \(r = (m^k-1)/(m-1)\) are prime.
If safe is true, \((m-1)/2\) is also required to be prime. The results are printed on stream fout. If facto is true, then \(m-1\) is factorized in prime factors. If \(k=1\), \(r\) is considered to be prime.
◆ find() [4/4]
template<typename Int >
| void LatMRG::Primes< Int >::find |
( |
int |
k, |
|
|
int |
e, |
|
|
int |
s, |
|
|
const Int & |
S1, |
|
|
const Int & |
S2, |
|
|
bool |
safe, |
|
|
bool |
facto, |
|
|
std::ostream & |
fout |
|
) |
| |
|
private |
This is the general purpose function used by this program.
This method searches for s prime integers between S1 and S2.
◆ nextM()
◆ writeFooter()
Writes the CPU time of the find to the stream fout.
◆ writeHeader()
template<typename Int >
| void LatMRG::Primes< Int >::writeHeader |
( |
int |
k, |
|
|
int |
e, |
|
|
long |
c1, |
|
|
long |
c2, |
|
|
bool |
safe, |
|
|
bool |
facto, |
|
|
std::ostream & |
fout |
|
) |
| |
|
private |
Writes the parameters of the find to the stream fout.
◆ print_time
Used by the main executable to compare the examples.
◆ timer
The documentation for this class was generated from the following file: