Store Pollard Rho primality on pending entries

This commit is contained in:
Marek Lemańczyk committed 2025-10-20 00:41:32 +02:00
1 parent 752c07c57e
commit d99610098a
1 file changed
+4 -3
@@ -36,7 +36,8 @@ internal static partial class PrimeOrderCalculator
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
public PendingEntry WithPrimality(bool isPrime) public PendingEntry WithPrimality(bool isPrime)
{ {
return new PendingEntry(Value, KnownComposite, true, isPrime); bool knownComposite = KnownComposite || !isPrime;
return new PendingEntry(Value, knownComposite, true, isPrime);
} }
} }
@@ -857,13 +858,13 @@ internal static partial class PrimeOrderCalculator
if (currentTimestamp > deadlineTimestamp) if (currentTimestamp > deadlineTimestamp)
{ {
pollardRhoDeadlineReached = true; pollardRhoDeadlineReached = true;
pending.Add(new PendingEntry(composite, knownComposite: true)); pending.Add(new PendingEntry(composite, knownComposite: false).WithPrimality(false));
continue; continue;
} }
if (!TryPollardRho(composite, deadlineTimestamp, out ulong factor)) if (!TryPollardRho(composite, deadlineTimestamp, out ulong factor))
{ {
pending.Add(new PendingEntry(composite, knownComposite: true)); pending.Add(new PendingEntry(composite, knownComposite: false).WithPrimality(false));
continue; continue;
} }