Prime testing using divisor tables depending on the last digit separated to its own class. PrimeTester switched back to standard endings.

This commit is contained in:
mlemanczyk committed 2025-11-27 16:45:02 +01:00
1 parent a296e62d4d
commit c311b27dcc
12 files changed
+526 -215

No files matched your search

@@ -26,6 +26,8 @@ public class PrimeTesterBenchmarks
return;
}
PerfectNumberConstants.RollingAccelerators = 1;
PrimeOrderCalculatorAccelerator.WarmUp();
// HeuristicGroupABPrimeTesterAccelerator.WarmUp();
var gpu = PrimeOrderCalculatorAccelerator.Rent(1);
@@ -53,7 +55,7 @@ public class PrimeTesterBenchmarks
return primeCount;
}
[Benchmark]
// [Benchmark]
public int HeuristicGpu()
{
ulong[] values = _candidates;
@@ -72,7 +74,7 @@ public class PrimeTesterBenchmarks
return primeCount;
}
[Benchmark]
// [Benchmark]
public int HeuristicCombinedGpu()
{
ulong[] values = _candidates;
@@ -90,7 +92,7 @@ public class PrimeTesterBenchmarks
return primeCount;
}
[Benchmark]
// [Benchmark]
public int HeuristicCombinedCpu()
{
ulong[] values = _candidates;
@@ -107,7 +109,7 @@ public class PrimeTesterBenchmarks
return primeCount;
}
[Benchmark]
// [Benchmark]
public int NonHeuristicGpu()
{
ulong[] values = _candidates;
@@ -143,6 +145,23 @@ public class PrimeTesterBenchmarks
return primeCount;
}
[Benchmark]
public int ByLastDigitCpu()
{
ulong[] values = _candidates;
int primeCount = 0;
for (int i = 0; i < values.Length; i++)
{
if (PrimeTester.IsPrime(values[i]))
{
primeCount++;
}
}
return primeCount;
}
// [Benchmark]
public int OpenNumericPrimes()
{