Store Pollard Rho primality on pending entries
This commit is contained in:
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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user