MersenneNumberTesterTemplate made dependent on the calculation method to eliminate unnecessary branching.

This commit is contained in:
mlemanczyk committed 2025-12-19 20:01:45 +01:00
1 parent c9a421a1b4
commit c5c42b0c19
5 files changed
+631 -396

No files matched your search

@@ -13,7 +13,7 @@ public class MersenneNumberTesterTests
[InlineData(136_000_005UL)]
public void IsMersennePrime_detects_small_prime_divisors_for_large_exponents(ulong p)
{
var tester = new MersenneNumberTesterCpu();
var tester = new MersenneNumberTesterForIncrementalCalculationMethodForCpu();
var gpu = PrimeOrderCalculatorAccelerator.Rent(1);
try
{
@@ -29,7 +29,7 @@ public class MersenneNumberTesterTests
[InlineData(125UL)]
public void WarmUpOrdersCpu_populates_cache_without_affecting_results(ulong p)
{
var tester = new MersenneNumberTesterCpu(useOrderCache: true, useGpuOrder: true);
var tester = new MersenneNumberTesterForIncrementalCalculationMethodForCpu(useOrderCache: true, useGpuOrder: true);
tester.WarmUpOrders(p, 1_000UL);
var gpu = PrimeOrderCalculatorAccelerator.Rent(1);
try
@@ -46,7 +46,7 @@ public class MersenneNumberTesterTests
[InlineData(125UL)]
public void WarmUpOrdersGpu_populates_cache_without_affecting_results(ulong p)
{
var tester = new MersenneNumberTesterGpu(useOrderCache: true, useGpuOrder: true);
var tester = new MersenneNumberTesterForIncrementalCalculationMethodForGpu(useOrderCache: true, useGpuOrder: true);
tester.WarmUpOrders(p, 1_000UL);
var gpu = PrimeOrderCalculatorAccelerator.Rent(1);
try
@@ -10,9 +10,8 @@ public class MersenneResidueModeTests
[Fact]
public void IsMersennePrime_residue_mode_rejects_composite_exponent()
{
var tester = new MersenneNumberTesterCpu(
useResidue: true,
useIncremental: false,
var tester = new MersenneNumberTesterForResidueCalculationMethodForCpu(
useGpuScan: false,
useGpuOrder: false);
var gpu = PrimeOrderCalculatorAccelerator.Rent(1);
@@ -29,9 +28,8 @@ public class MersenneResidueModeTests
[Fact]
public void IsMersennePrime_residue_mode_accepts_prime_exponent()
{
var tester = new MersenneNumberTesterCpu(
useResidue: true,
useIncremental: true,
var tester = new MersenneNumberTesterForResidueCalculationMethodForCpu(
useGpuScan: false,
useGpuOrder: false,
maxK: 1_000UL);