BitContradiction rules improved.
This commit is contained in:
1 parent
fea95509a7
commit
0eb511aaff
1 file changed
+37
-3
@@ -234,7 +234,7 @@ internal static class BitContradictionSolverWithAMultiplier
|
||||
{
|
||||
Atomic.Add(ref counter, 1UL);
|
||||
_pruneStatsConsoleCounter++;
|
||||
if (_pruneStatsConsoleCounter < PerfectNumberConstants.ConsoleInterval)
|
||||
if (true || _pruneStatsConsoleCounter < PerfectNumberConstants.ConsoleInterval)
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -2470,6 +2470,8 @@ internal static class BitContradictionSolverWithAMultiplier
|
||||
totalTransitionsOver10++;
|
||||
}
|
||||
|
||||
previousCarryOut = carryOut;
|
||||
|
||||
if (carryOut == 6)
|
||||
{
|
||||
totalCarry6Count++;
|
||||
@@ -2683,7 +2685,11 @@ internal static class BitContradictionSolverWithAMultiplier
|
||||
return true;
|
||||
}
|
||||
|
||||
if ((totalCarry8Count & 1) == 0 && (totalCarry9Count & 1) == 0 && (totalCarry10Count & 1) == 0)
|
||||
bool totalCarry8CountIsEven = (totalCarry8Count & 1) == 0;
|
||||
bool totalCarry9CountIsEven = (totalCarry9Count & 1) == 0;
|
||||
if (totalCarry8CountIsEven && totalCarry9CountIsEven &&
|
||||
((totalCarry10Count & 1) == 0 || (totalCarry11Count > totalCarry10Count && totalCarry8Count > 14 && totalCarry11Count > totalCarry9Count && totalCarry11Count > totalCarry8Count))
|
||||
)
|
||||
{
|
||||
pruneReason = CarryDropPruneReason.Dominance10AndMoreDrop;
|
||||
#if WITH_PRUNE_STATS
|
||||
@@ -2692,7 +2698,35 @@ internal static class BitContradictionSolverWithAMultiplier
|
||||
return true;
|
||||
}
|
||||
|
||||
if (totalCarryAbove10 >= 850 && totalCarryBelow10 < 100 && shortestStreakBelow10 <= 3 && longestStreakBelow10 <= 12 && totalCarry11Count < 150 && lastStreakBelow10 < 12)
|
||||
bool totalCarry10CountIsEven = (totalCarry10Count & 1) == 0;
|
||||
bool totalCarry11CountIsEven = (totalCarry11Count & 1) == 0;
|
||||
if ((!totalCarry8CountIsEven && !totalCarry10CountIsEven && totalCarry8Count + totalCarry9Count < totalCarry10Count + totalCarry11Count && totalCarryFirst32Count > 118) ||
|
||||
(totalCarry8CountIsEven && !totalCarry10CountIsEven && totalCarry8Count < 188 && totalCarry8Count + totalCarry9Count > totalCarry10Count + totalCarry11Count) ||
|
||||
(((!totalCarry8CountIsEven && !totalCarry11CountIsEven) || (totalCarry8CountIsEven && totalCarry8Count < 66) || (totalCarry8CountIsEven && totalCarry10CountIsEven && totalCarry11CountIsEven && totalCarry8Count < 72) || (!totalCarry11CountIsEven && (!totalCarry8CountIsEven || !totalCarry10CountIsEven) && totalCarry11Count > 16)) && totalCarry9Count + totalCarry11Count > totalCarry10Count + totalCarry12Count))
|
||||
{
|
||||
pruneReason = CarryDropPruneReason.Dominance10AndMoreDrop;
|
||||
#if WITH_PRUNE_STATS
|
||||
TraceCarryDropHeuristicPrune(pLong, qExact, pruneReason, reached10, reachedBelow5, reached5, zeroCount);
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
|
||||
if (totalCarry7Count + totalCarry8Count > totalCarry9Count + totalCarry10Count && totalCarry11Count > 100)
|
||||
{
|
||||
pruneReason = CarryDropPruneReason.Dominance10AndMoreDrop;
|
||||
#if WITH_PRUNE_STATS
|
||||
TraceCarryDropHeuristicPrune(pLong, qExact, pruneReason, reached10, reachedBelow5, reached5, zeroCount);
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
|
||||
if (totalCarryAbove10 >= 840 && shortestStreakBelow10 <= 3 &&
|
||||
(
|
||||
(lastStreakBelow10 == 0 && first10 > 34) ||
|
||||
(totalCarryBelow10 < 100 && longestStreakBelow10 <= 12 && totalCarry11Count < 150 && lastStreakBelow10 < 12)
|
||||
|
||||
)
|
||||
)
|
||||
{
|
||||
pruneReason = CarryDropPruneReason.HighDensityWithShortLowStreaks;
|
||||
#if WITH_PRUNE_STATS
|
||||
|
||||
Reference in new issue
Block a user