Currently there may be errors shown on top of a page, because of a missing Wiki update (PHP version and extension DPL3).
Navigation
Topics Help • Register • News • History • How to • Sequences statistics • Template prototypes

Difference between revisions of "Gerbicz error checking"

From Prime-Wiki
Jump to: navigation, search
(Adding more programs)
(Partially import algorithm description from forums)
Line 6: Line 6:
  
 
It is also used by [[LLR]] and [[LLR2]] to ensure validity of [[Proth prime|Proth]] tests and PRP tests on base-2 [[Riesel prime]] candidates, and by those programs and [[PRST]] in an extended version for PRP tests on additional number forms.
 
It is also used by [[LLR]] and [[LLR2]] to ensure validity of [[Proth prime|Proth]] tests and PRP tests on base-2 [[Riesel prime]] candidates, and by those programs and [[PRST]] in an extended version for PRP tests on additional number forms.
 +
 +
==Theory==
 +
The following describes the original formulation of the Gerbicz error check for [[Proth's theorem|Proth tests]], as described in [https://www.mersenneforum.org/showthread.php?t=22510 this MersenneForum thread]:
 +
 +
# Let <math>p</math> be a Proth number, and let <math>k</math>, <math>n</math>, and <math>a</math> be defined as on [[Proth's theorem]].
 +
# Let <math>L</math> be a constant (originally defined as 2000, but described as possibly depending on <math>n</math>).
 +
# We have the following equations:
 +
## <math>u(t) \equiv (a^k)^{2^t} \pmod{p}</math>
 +
## <math>d(t) \equiv \displaystyle\prod_{i=0}^t u(iL) \pmod{p}</math>
 +
## <math>d(t+1) \equiv d(t)*u((t+1)L) \pmod{p}</math>
 +
## <math>d(t+1) \equiv u(0)*d(t)^{2^L} \pmod{p}</math>
 +
# Continue...
  
 
==See also==
 
==See also==

Revision as of 18:45, 28 September 2023

Gerbicz error checking is a technique to verify validity of primality tests. It was proposed by Robert Gerbicz at MersenneForum in August 2017.

Among GIMPS clients, the technique is used to ensure validity of PRP tests for Mersenne numbers:

It is also used by LLR and LLR2 to ensure validity of Proth tests and PRP tests on base-2 Riesel prime candidates, and by those programs and PRST in an extended version for PRP tests on additional number forms.

Theory

The following describes the original formulation of the Gerbicz error check for Proth tests, as described in this MersenneForum thread:

  1. Let [math]\displaystyle{ p }[/math] be a Proth number, and let [math]\displaystyle{ k }[/math], [math]\displaystyle{ n }[/math], and [math]\displaystyle{ a }[/math] be defined as on Proth's theorem.
  2. Let [math]\displaystyle{ L }[/math] be a constant (originally defined as 2000, but described as possibly depending on [math]\displaystyle{ n }[/math]).
  3. We have the following equations:
    1. [math]\displaystyle{ u(t) \equiv (a^k)^{2^t} \pmod{p} }[/math]
    2. [math]\displaystyle{ d(t) \equiv \displaystyle\prod_{i=0}^t u(iL) \pmod{p} }[/math]
    3. [math]\displaystyle{ d(t+1) \equiv d(t)*u((t+1)L) \pmod{p} }[/math]
    4. [math]\displaystyle{ d(t+1) \equiv u(0)*d(t)^{2^L} \pmod{p} }[/math]
  4. Continue...

See also

External links