Switched to .IsPrime which performed best in benchmarks.
This commit is contained in:
1 parent
6e632ba03a
commit
1ed5afe689
2 files changed
+13
-7
No files matched your search
@@ -4,7 +4,7 @@ namespace PerfectNumbers.Core;
|
||||
|
||||
public static class HeuristicPrimeSieves
|
||||
{
|
||||
private const int SieveLength = PerfectNumberConstants.MaxQForDivisorCycles;
|
||||
private const int SieveLength = PerfectNumberConstants.MaxQForDivisorCycles / 4;
|
||||
private const int Wheel210 = 210;
|
||||
|
||||
private static readonly int[] GroupAConstants = [3, 7, 11, 13];
|
||||
|
||||
@@ -1122,8 +1122,9 @@ internal static partial class PrimeOrderCalculator
|
||||
// continue;
|
||||
// }
|
||||
|
||||
bool isPrime = primeTester.HeuristicIsPrimeGpu(composite);
|
||||
// bool isPrime = primeTester.HeuristicIsPrimeGpu(composite);
|
||||
// bool isPrime = PrimeTester.IsPrimeInternal(composite, CancellationToken.None);
|
||||
bool isPrime = PrimeTester.LegacyIsPrimeInternal(composite, CancellationToken.None);
|
||||
// bool isPrime = Open.Numeric.Primes.Prime.Numbers.IsPrime(composite);
|
||||
|
||||
if (isPrime)
|
||||
@@ -1184,8 +1185,9 @@ internal static partial class PrimeOrderCalculator
|
||||
|
||||
if (!entry.HasKnownPrimality)
|
||||
{
|
||||
bool isPrime = primeTester.HeuristicIsPrimeGpu(composite);
|
||||
// bool isPrime = primeTester.HeuristicIsPrimeGpu(composite);
|
||||
// bool isPrime = PrimeTester.IsPrimeInternal(composite, CancellationToken.None);
|
||||
bool isPrime = PrimeTester.LegacyIsPrimeInternal(composite, CancellationToken.None);
|
||||
// bool isPrime = Open.Numeric.Primes.Prime.Numbers.IsPrime(composite);
|
||||
|
||||
entry = entry.WithPrimality(isPrime);
|
||||
@@ -1216,8 +1218,9 @@ internal static partial class PrimeOrderCalculator
|
||||
}
|
||||
else
|
||||
{
|
||||
cofactorIsPrime = primeTester.HeuristicIsPrimeGpu(cofactor);
|
||||
// cofactorIsPrime = primeTester.HeuristicIsPrimeGpu(cofactor);
|
||||
// cofactorIsPrime = PrimeTester.IsPrimeInternal(cofactor, CancellationToken.None);
|
||||
cofactorIsPrime = PrimeTester.LegacyIsPrimeInternal(cofactor, CancellationToken.None);
|
||||
// cofactorIsPrime = Open.Numeric.Primes.Prime.Numbers.IsPrime(cofactor);
|
||||
}
|
||||
|
||||
@@ -1748,8 +1751,9 @@ internal static partial class PrimeOrderCalculator
|
||||
|
||||
PrimeTester primeTester = PrimeTester.Exclusive;
|
||||
|
||||
bool isPrime = primeTester.HeuristicIsPrimeGpu(value);
|
||||
// bool isPrime = primeTester.HeuristicIsPrimeGpu(value);
|
||||
// bool isPrime = PrimeTester.IsPrimeInternal(value, CancellationToken.None);
|
||||
bool isPrime = PrimeTester.LegacyIsPrimeInternal(value, CancellationToken.None);
|
||||
// bool isPrime = Open.Numeric.Primes.Prime.Numbers.IsPrime(value);
|
||||
if (!knownComposite && isPrime)
|
||||
{
|
||||
@@ -1760,8 +1764,9 @@ internal static partial class PrimeOrderCalculator
|
||||
ulong factor = PollardRhoStrict(value);
|
||||
ulong quotient = value / factor;
|
||||
|
||||
isPrime = primeTester.HeuristicIsPrimeGpu(factor);
|
||||
// isPrime = primeTester.HeuristicIsPrimeGpu(factor);
|
||||
// isPrime = PrimeTester.IsPrimeInternal(factor, CancellationToken.None);
|
||||
isPrime = PrimeTester.LegacyIsPrimeInternal(factor, CancellationToken.None);
|
||||
// isPrime = Open.Numeric.Primes.Prime.Numbers.IsPrime(factor);
|
||||
if (isPrime)
|
||||
{
|
||||
@@ -1791,8 +1796,9 @@ internal static partial class PrimeOrderCalculator
|
||||
}
|
||||
else
|
||||
{
|
||||
isPrime = primeTester.HeuristicIsPrimeGpu(quotient);
|
||||
// isPrime = primeTester.HeuristicIsPrimeGpu(quotient);
|
||||
// isPrime = PrimeTester.IsPrimeInternal(quotient, CancellationToken.None);
|
||||
isPrime = PrimeTester.LegacyIsPrimeInternal(quotient, CancellationToken.None);
|
||||
// isPrime = Open.Numeric.Primes.Prime.Numbers.IsPrime(quotient);
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user