Pow2MontgomeryModWindowedConvertToStandardCpu usages replaced with a comparison to MontgomeryOne avoiding unnecessary conversions. Results updated.
This commit is contained in:
1 parent
3f59cdc14b
commit
6b80e31e6c
7 files changed
+57
-34
No files matched your search
@@ -938,7 +938,7 @@ public static partial class PrimeOrderCalculatorTemplate
|
||||
ulong candidate = order - primeFactor * remainder;
|
||||
// ulong candidate = order / primeFactor;
|
||||
|
||||
if (candidate.Pow2MontgomeryModWindowedConvertToStandardCpu(divisorData) == 1UL)
|
||||
if (candidate.Pow2MontgomeryModWindowedKeepMontgomeryCpu(divisorData) == divisorData.MontgomeryOne)
|
||||
{
|
||||
order = candidate;
|
||||
continue;
|
||||
@@ -1674,7 +1674,7 @@ public static partial class PrimeOrderCalculatorTemplate
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
|
||||
private static bool Pow2EqualsOne(ulong exponent, in MontgomeryDivisorData divisorData)
|
||||
{
|
||||
return exponent.Pow2MontgomeryModWindowedConvertToStandardCpu(divisorData) == 1UL;
|
||||
return exponent.Pow2MontgomeryModWindowedKeepMontgomeryCpu(divisorData) == divisorData.MontgomeryOne;
|
||||
}
|
||||
|
||||
#if DEVICE_HYBRID || DEVICE_GPU
|
||||
@@ -1685,7 +1685,7 @@ public static partial class PrimeOrderCalculatorTemplate
|
||||
in MontgomeryDivisorData divisorData)
|
||||
{
|
||||
// TODO: swap to GPU pow2 when available; fallback to CPU for now.
|
||||
return exponent.Pow2MontgomeryModWindowedConvertToStandardCpu(divisorData) == 1UL;
|
||||
return exponent.Pow2MontgomeryModWindowedKeepMontgomeryCpu(divisorData) == divisorData.MontgomeryOne;
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
|
||||
@@ -1695,7 +1695,7 @@ public static partial class PrimeOrderCalculatorTemplate
|
||||
ulong prime,
|
||||
in MontgomeryDivisorData divisorData)
|
||||
{
|
||||
return exponent.Pow2MontgomeryModWindowedConvertToStandardCpu(divisorData) == 1UL;
|
||||
return exponent.Pow2MontgomeryModWindowedKeepMontgomeryCpu(divisorData) == divisorData.MontgomeryOne;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
Reference in new issue
Block a user