nSolvedMultiplier optimizations (thanks to gatra on bitcointalk).

master
mikaelh 2013-07-30 10:57:02 +03:00
parent 79987140ce
commit 6ab59b40d9
1 changed files with 9 additions and 3 deletions

View File

@ -1016,10 +1016,16 @@ bool CSieveOfEratosthenes::Weave()
for (unsigned int nBiTwinSeq = 0; nBiTwinSeq < 2 * nChainLength; nBiTwinSeq++)
{
// Find the first number that's divisible by this prime
int nDelta = ((nBiTwinSeq % 2 == 0)? (-1) : 1);
unsigned int nSolvedMultiplier = (uint64)nFixedInverse * (nPrime - nDelta) % nPrime;
if (nBiTwinSeq % 2 == 1)
unsigned int nSolvedMultiplier;
if (nBiTwinSeq % 2 == 0)
{
nSolvedMultiplier = nFixedInverse;
}
else
{
nSolvedMultiplier = nPrime - nFixedInverse;
nFixedInverse = (uint64)nFixedInverse * nTwoInverse % nPrime;
}
if (nBiTwinSeq < nChainLength)
{