Pow2MontgomeryModWindowedConvertToStandardCpu usages replaced with a comparison to MontgomeryOne avoiding unnecessary conversions. Results updated.

This commit is contained in:
mlemanczyk committed 2026-01-03 01:37:40 +01:00
1 parent 3f59cdc14b
commit 6b80e31e6c
7 files changed
+57 -34

No files matched your search

@@ -141,6 +141,12 @@ public static class Pow2MontgomeryKernels
return Pow2MontgomeryModWindowedGpuMontgomeryResult(divisor, exponent);
}
[MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
public static ulong Pow2MontgomeryModWindowedGpuKeepMontgomery(this MontgomeryDivisorDataGpu divisor, ulong exponent)
{
return Pow2MontgomeryModWindowedGpuMontgomeryResult(divisor, exponent);
}
[MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
public static ulong Pow2MontgomeryModWindowedGpuConvertToStandard(this MontgomeryDivisorDataGpu divisor, ulong exponent)
{
@@ -39,7 +39,7 @@ internal static partial class PrimeOrderKernels
}
// ulong candidate = order / primeFactor;
if (divisorData.Pow2MontgomeryModWindowedGpuConvertToStandard(candidate) == 1UL)
if (divisorData.Pow2MontgomeryModWindowedGpuKeepMontgomery(candidate) == divisorData.MontgomeryOne)
{
order = candidate;
continue;
@@ -395,7 +395,7 @@ internal static partial class PrimeOrderKernels
}
ulong reduced = phi / factor;
if (divisor.Pow2MontgomeryModWindowedGpuConvertToStandard(reduced) == 1UL)
if (divisor.Pow2MontgomeryModWindowedGpuKeepMontgomery(reduced) == divisor.MontgomeryOne)
{
return false;
}
@@ -1179,7 +1179,7 @@ internal static partial class PrimeOrderKernels
private static bool Pow2EqualsOneKernel(ulong exponent, in MontgomeryDivisorDataGpu divisor)
{
return divisor.Pow2MontgomeryModWindowedGpuConvertToStandard(exponent) == 1UL;
return divisor.Pow2MontgomeryModWindowedGpuKeepMontgomery(exponent) == divisor.MontgomeryOne;
}
[MethodImpl(MethodImplOptions.AggressiveOptimization)]