Cache capacity initialized for better performance

This commit is contained in:
mlemanczyk committed 2025-10-17 03:51:06 +02:00
1 parent 36a4617efe
commit b76ef0b11a
1 file changed
+11 -10
+11 -10
View File
@@ -329,7 +329,7 @@ internal static partial class PrimeOrderCalculator
bool gpuStackRemainders = false;
GpuPow2ModStatus status = GpuPow2ModStatus.Unavailable;
if (allowGpuBatch && IsGpuPow2Allowed)
// if (allowGpuBatch && IsGpuPow2Allowed)
{
if (batchSize <= StackGpuBatchSize)
{
@@ -650,20 +650,21 @@ internal static partial class PrimeOrderCalculator
private static bool Pow2EqualsOneCpu(ulong exponent, ulong prime, in MontgomeryDivisorData divisorData)
{
if (IsGpuPow2Allowed)
{
GpuPow2ModStatus status = PrimeOrderGpuHeuristics.TryPow2Mod(exponent, prime, out ulong remainder, divisorData);
if (status == GpuPow2ModStatus.Success)
{
// if (IsGpuPow2Allowed)
// {
ulong remainder = exponent.Pow2MontgomeryModWindowedGpu(divisorData, false);
// GpuPow2ModStatus status = PrimeOrderGpuHeuristics.TryPow2Mod(exponent, prime, out ulong remainder, divisorData);
// if (status == GpuPow2ModStatus.Success)
// {
return remainder == 1UL;
}
}
// }
// }
return exponent.Pow2MontgomeryModWindowedCpu(divisorData, keepMontgomery: false) == 1UL;
// return exponent.Pow2MontgomeryModWindowedCpu(divisorData, keepMontgomery: false) == 1UL;
}
// [ThreadStatic]
private static readonly Dictionary<ulong, bool> _primalityCache = [];
private static readonly Dictionary<ulong, bool> _primalityCache = new(16_777_216);
private static readonly ReaderWriterLockSlim _primalityCacheLock = new(LockRecursionPolicy.NoRecursion);
// [ThreadStatic]