Split Pow2 Montgomery GPU kernels by Montgomery conversion
This commit is contained in:
1 parent
b08175dadf
commit
f12919e220
2 files changed
+43
-13
No files matched your search
@@ -6,13 +6,21 @@ namespace PerfectNumbers.Core.Gpu;
|
||||
|
||||
internal static class Pow2MontgomeryKernels
|
||||
{
|
||||
public static void Pow2MontgomeryKernel(
|
||||
public static void Pow2MontgomeryKernelKeepMontgomery(
|
||||
Index1D index,
|
||||
ArrayView1D<ulong, Stride1D.Dense> exponents,
|
||||
MontgomeryDivisorData divisor,
|
||||
byte keepMontgomery,
|
||||
ArrayView1D<ulong, Stride1D.Dense> results)
|
||||
{
|
||||
results[index] = ULongExtensions.Pow2MontgomeryModWindowedGpu(divisor, exponents[index], keepMontgomery != 0);
|
||||
results[index] = ULongExtensions.Pow2MontgomeryModWindowedGpu(divisor, exponents[index], keepMontgomery: true);
|
||||
}
|
||||
|
||||
public static void Pow2MontgomeryKernelConvertToStandard(
|
||||
Index1D index,
|
||||
ArrayView1D<ulong, Stride1D.Dense> exponents,
|
||||
MontgomeryDivisorData divisor,
|
||||
ArrayView1D<ulong, Stride1D.Dense> results)
|
||||
{
|
||||
results[index] = ULongExtensions.Pow2MontgomeryModWindowedGpu(divisor, exponents[index], keepMontgomery: false);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user