BitContradiction improvements.
This commit is contained in:
1 parent
b453d46c5f
commit
22cc8f368f
7 files changed
+5299
-4230
No files matched your search
@@ -1,4 +1,4 @@
|
||||
// #define DivisorSet_BitContradiction
|
||||
// #define DivisorSet_BitContradiction
|
||||
// #define DivisorSet_BitTree
|
||||
// #define DEVICE_GPU
|
||||
|
||||
@@ -5108,8 +5108,10 @@ public struct MersenneNumberDivisorByDivisorCpuTesterWithTemplate() : IMersenneN
|
||||
while (true)
|
||||
{
|
||||
int remainder8 = (stepMod8 * kRem8 + 1) & 7;
|
||||
#if DETAILED_LOG
|
||||
if (prime == 138000001UL && divisor == 1209708008767)
|
||||
Console.WriteLine("[HIT] enumerated target q before remainder8 check");
|
||||
#endif
|
||||
|
||||
if (remainder8 != 1 && remainder8 != 7)
|
||||
{
|
||||
@@ -5152,17 +5154,20 @@ public struct MersenneNumberDivisorByDivisorCpuTesterWithTemplate() : IMersenneN
|
||||
}
|
||||
}
|
||||
|
||||
#if DETAILED_LOG
|
||||
if (prime == 138000001UL && divisor == 1209708008767)
|
||||
{
|
||||
Console.WriteLine("[HIT] processed target q. Stopping.");
|
||||
Environment.Exit(1);
|
||||
}
|
||||
#endif
|
||||
|
||||
RecordState(currentK);
|
||||
MOVE_NEXT:
|
||||
ContinueOuter:
|
||||
RecordState(currentK);
|
||||
if (hasLimit && currentK >= maxK)
|
||||
{
|
||||
RecordState(currentK);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -5357,9 +5362,9 @@ public struct MersenneNumberDivisorByDivisorCpuTesterWithTemplate() : IMersenneN
|
||||
ReadOnlySpan<int> oneOffsetsSlice = oneOffsets[..oneCount];
|
||||
// BitContradictionSolverWithQMultiplier.SetDebugEnabled(true);
|
||||
#if DETAILED_LOG
|
||||
bool decided = BitContradictionSolverWithAMultiplier.TryCheckDivisibilityFromOneOffsets(oneOffsetsSlice, prime, currentK, isPowerOfTwo, out divides, out var reason);
|
||||
bool decided = BitContradictionSolverWithAMultiplier.TryCheckDivisibilityFromOneOffsets(oneOffsetsSlice, prime, divisor, currentK, isPowerOfTwo, out divides, out var reason);
|
||||
#else
|
||||
bool decided = BitContradictionSolverWithAMultiplier.TryCheckDivisibilityFromOneOffsets(oneOffsetsSlice, prime, currentK, isPowerOfTwo, out divides);
|
||||
bool decided = BitContradictionSolverWithAMultiplier.TryCheckDivisibilityFromOneOffsets(oneOffsetsSlice, prime, divisor, currentK, isPowerOfTwo, out divides);
|
||||
#endif
|
||||
// BitContradictionSolverWithQMultiplier.SetDebugEnabled(false);
|
||||
if (decided && divides)
|
||||
|
||||
Reference in new issue
Block a user