Various factors can cause errors (or false answers) to occur:
- hardware failure (overheated CPUs, bad memory chips, or even faulty hardware design like the Pentium Bug)
- software failure (bad algorithm, mistakes in program writing, corrupt files, etc.)
- human error (entering wrong number to test, misreading data, etc.)
- random bit error (This is separate from hardware errors, cosmic rays can change a single bit on occasion.)
- other outside factors (power loss when writing data, malicious acts, lying, etc.)
To guard against such factors it is important to perform a double check on all critcal data. PrimeNet does a verfication on all factors reported. (It is easy to check a number for a single factor.) For all Lucas-Lehmer test (LL) results, Prime95 reports any error codes. Any 'bad' or 'fatal' errors causes the exponent to be put back in the queue for first time testing. Also reported is the last few digits of the residue (the end result of the LL test, zero if a number is prime). For a number to be verified as composite (or prime) (by the LL test), a second run of the test must have a matching residue. Other than a different random offset, a first time test and a double check are identical.
When a new Mersenne prime is found, Prime95 saves the last save file. This can be used to do a quick, partial double check. This is not an independent check. To verify that the number is prime, it must be tested by a different program on a different CPU architecture. As a matter of course, recently, this has typically involved 2 independent double checks. Mlucas and Glucas are used and 2 different processor types are used. Landon Curt Noll's mprime and Richard Crandall's software have also been used. Future discoveries will also likely be checked by maclucas.cuda on a GPU. Various other individuals, such as Chris Caldwell, have written their own software or used a commercial math package and verified (double checked) every Mersenne prime that has been reported.