Merge pull request #139 from mlemanczyk/codex/adjust-heuristics-for-divisor-detection
Assume full order when heuristics cannot find divisors
This commit is contained in:
2 files changed
+8
-5
No files matched your search
@@ -118,8 +118,9 @@ internal static partial class PrimeOrderCalculator
|
||||
return new PrimeOrderResultWide(PrimeOrderStatus.Found, order);
|
||||
}
|
||||
|
||||
HeuristicFailureLog.Record(prime, candidateOrder, HeuristicFailureReason.HeuristicPipelineUnresolved);
|
||||
return FinishStrictlyWide(prime, divisorData, config.Mode);
|
||||
HeuristicFailureLog.Record(prime, candidateOrder, HeuristicFailureReason.HeuristicPipelineAssumedFullOrder);
|
||||
// The heuristic pipeline could not narrow the order any further; assume the current order is final.
|
||||
return new PrimeOrderResultWide(PrimeOrderStatus.Found, candidateOrder);
|
||||
}
|
||||
|
||||
private static PrimeOrderResultWide FinishStrictlyWide(UInt128 prime, in MontgomeryDivisorData divisorData, PrimeOrderMode mode)
|
||||
|
||||
@@ -48,6 +48,7 @@ internal static partial class PrimeOrderCalculator
|
||||
PhiPartialFactorizationFailed,
|
||||
StrictModeRequested,
|
||||
HeuristicPipelineUnresolved,
|
||||
HeuristicPipelineAssumedFullOrder,
|
||||
}
|
||||
|
||||
internal readonly struct PrimeOrderSearchConfig
|
||||
@@ -235,9 +236,10 @@ internal static partial class PrimeOrderCalculator
|
||||
return new PrimeOrderResult(PrimeOrderStatus.Found, order);
|
||||
}
|
||||
|
||||
// DebugLog("Heuristic unresolved, finishing strictly");
|
||||
HeuristicFailureLog.Record(prime, candidateOrder, HeuristicFailureReason.HeuristicPipelineUnresolved);
|
||||
return FinishStrictly(prime, divisorData, config.Mode);
|
||||
// DebugLog("Heuristic unresolved, assuming current order");
|
||||
HeuristicFailureLog.Record(prime, candidateOrder, HeuristicFailureReason.HeuristicPipelineAssumedFullOrder);
|
||||
// The heuristic pipeline could not rule out additional divisors; assume the current order is final.
|
||||
return new PrimeOrderResult(PrimeOrderStatus.Found, candidateOrder);
|
||||
}
|
||||
|
||||
private static PrimeOrderResult FinishStrictly(ulong prime, in MontgomeryDivisorData divisorData, PrimeOrderMode mode)
|
||||
|
||||
Reference in new issue
Block a user