A SHORT USER'S GUIDE FOR LLR Version 3.7.1
Here are some precisions about optional features of the LLR program.
Most of these features are controlled by option lines added in the llrxxxx.ini file.
All these option lines have the form :
Keyword=
They are case sensitive, and do not support any embedded space character.
First some general options, written here with their default right value :
Verbose=0 // The default is one line per result in the result.txt file
InterimFiles=0 // If the value is nnnn != 0, an intermediate file zxxxx.yyy is saved
// after each nnnn iterations and may be used(after removing the .yyy)
// to restart a test at the corresponding iteration.
InterimResidues=0 // Also, Interim residues may be written in the result.txt file.
// By default, the right value is the same as the InterimFiles one.
The user may choose to abort a test when some gwnums error occur :
Abortonillsum=0 // Abort if an illegal sumout error occurs.
Abortonmismatch=0 // Abort if a sum inputs != sum outputs error occurs.
Abortonroundoff=0 // Abort if a round off too large error occurs.
Now, some precisions about the new Gaussian-Mersenne and associated search feature.
First, some definitions :
The starting point is to write :
M(p) = 4^p+1 = (2^p + 2^((p+1)/2) + 1)(2^p - 2((p+1)/2) + 1) = N(p)*N'(p)
N(p) beeing the norm of the Gaussian-Mersenne number GM(p) = (1+-i)^p - 1
N'/5(p) is the norm of the associated number GQ(p) = ((1+-i)^p + 1)/(2+-i)
The algorithm suggested by Harsh Aggarwal allows to do the Proth
test of the Gaussian-Mersenne norm N and the PRP test of N'/5 at
the same time.
About the input file format :
The input file for these tests must have this ABC format first line :
ABC 4^$a+1
Each following line contains the Gaussian-Mersenne exponent, which must
be prime, as its first argument ; it may optionally contain one or two
32 bits integers as second and third argument.
If there is only the exponent argument, the file is considered as
not beeing prefactored at all.
If there are two arguments, the second is how far prefactored, in bits.
At last, if there are three arguments, the second and third are
the 32 bits factors already found, dividing respectively N and N'
(indeed one of them will be one, otherwhise the candidate should have been dropped!).
This last format is the one of the 32 bits prefactored file
"gmfcandidates.txt" I will make available to the users.
About the trial factoring feature :
When a non-trivial factor of 4^p+1 is found, it may be a divisor of N or of N',
exclusively, because N-N' beeing a power of two, N and N' are co-prime.
So, the program must know if the user is searching for prime N, PRP N'/5, or both!
There are two option to allow this choice :
TestGM=1 // By default, the user is interested by the GM prime search !
TestGQ=0 // But he may choose to search also for the GQ beeing PRP
If TestGM=1 and TestGQ=0 (the default), the prefactoring stops when a factor of
4^p+1 dividing N is found, and the candidate is eliminated (so, a GQ may be lost).
If TestGM=1 and TestGQ=1, the candidate is eliminated only if both a factor of N and
one of N' have been found (then, indeed, the prefactoring stops).
If TestGM=0 and TestGQ=1, the prefactoring stops when a factor of
4^p+1 dividing N' is found, and the candidate is eliminated (so, a GM may be lost).
FacFrom= // Indicates how far the input file is prefactored, overriding,
// (if not zero), the arguments possibly given in the file.
FacTo= // Used for a factoring only job : No prime test is done,
// the survivants candidates beeing copied in the output file,
// withe the value as second argument.
Note that TestGM and TestGQ options have the same effect in this mode.