Pow2Mod kernel specific methods moved to Pow2MontgomeryKernels.

This commit is contained in:
mlemanczyk committed 2025-11-24 18:04:07 +01:00
1 parent 070e2a14fd
commit 57a50e2a37
14 files changed
+419 -402

No files matched your search

@@ -14,32 +14,52 @@ public readonly struct HeuristicCombinedGpuViews(
ArrayView1D<ulong, Stride1D.Dense> combinedDivisorSquaresEnding7,
ArrayView1D<ulong, Stride1D.Dense> combinedDivisorSquaresEnding9)
{
public readonly ArrayView1D<ulong, Stride1D.Dense> CombinedDivisorsEnding1 = combinedDivisorsEnding1;
public readonly ArrayView1D<ulong, Stride1D.Dense> CombinedDivisorsEnding3 = combinedDivisorsEnding3;
public readonly ArrayView1D<ulong, Stride1D.Dense> CombinedDivisorsEnding7 = combinedDivisorsEnding7;
public readonly ArrayView1D<ulong, Stride1D.Dense> CombinedDivisorsEnding9 = combinedDivisorsEnding9;
public readonly ArrayView1D<ulong, Stride1D.Dense> CombinedDivisorSquaresEnding1 = combinedDivisorSquaresEnding1;
public readonly ArrayView1D<ulong, Stride1D.Dense> CombinedDivisorSquaresEnding3 = combinedDivisorSquaresEnding3;
public readonly ArrayView1D<ulong, Stride1D.Dense> CombinedDivisorSquaresEnding7 = combinedDivisorSquaresEnding7;
public readonly ArrayView1D<ulong, Stride1D.Dense> CombinedDivisorSquaresEnding9 = combinedDivisorSquaresEnding9;
// public readonly ArrayView1D<ulong, Stride1D.Dense> CombinedDivisorsEnding1 = combinedDivisorsEnding1;
// public readonly ArrayView1D<ulong, Stride1D.Dense> CombinedDivisorsEnding3 = combinedDivisorsEnding3;
// public readonly ArrayView1D<ulong, Stride1D.Dense> CombinedDivisorsEnding7 = combinedDivisorsEnding7;
// public readonly ArrayView1D<ulong, Stride1D.Dense> CombinedDivisorsEnding9 = combinedDivisorsEnding9;
public readonly (ArrayView1D<ulong, Stride1D.Dense>, ArrayView1D<ulong, Stride1D.Dense>) CombinedDivisorsAndSquaresEnding1 = (combinedDivisorsEnding1, combinedDivisorSquaresEnding1);
public readonly (ArrayView1D<ulong, Stride1D.Dense>, ArrayView1D<ulong, Stride1D.Dense>) CombinedDivisorsAndSquaresEnding3 = (combinedDivisorsEnding3, combinedDivisorSquaresEnding3);
public readonly (ArrayView1D<ulong, Stride1D.Dense>, ArrayView1D<ulong, Stride1D.Dense>) CombinedDivisorsAndSquaresEnding7 = (combinedDivisorsEnding7, combinedDivisorSquaresEnding7);
public readonly (ArrayView1D<ulong, Stride1D.Dense>, ArrayView1D<ulong, Stride1D.Dense>) CombinedDivisorsAndSquaresEnding9 = (combinedDivisorsEnding9, combinedDivisorSquaresEnding9);
// public readonly ArrayView1D<ulong, Stride1D.Dense> CombinedDivisorSquaresEnding1 = combinedDivisorSquaresEnding1;
// public readonly ArrayView1D<ulong, Stride1D.Dense> CombinedDivisorSquaresEnding3 = combinedDivisorSquaresEnding3;
// public readonly ArrayView1D<ulong, Stride1D.Dense> CombinedDivisorSquaresEnding7 = combinedDivisorSquaresEnding7;
// public readonly ArrayView1D<ulong, Stride1D.Dense> CombinedDivisorSquaresEnding9 = combinedDivisorSquaresEnding9;
private static readonly (ArrayView1D<ulong, Stride1D.Dense>, ArrayView1D<ulong, Stride1D.Dense>)EmptyCombinedDivisorsAndSquares = (ArrayView1D<ulong, Stride1D.Dense>.Empty, ArrayView1D<ulong, Stride1D.Dense>.Empty);
// [MethodImpl(MethodImplOptions.AggressiveInlining)]
// public ArrayView1D<ulong, Stride1D.Dense> SelectDivisors(byte ending) => ending switch
// {
// 1 => CombinedDivisorsEnding1,
// 3 => CombinedDivisorsEnding3,
// 7 => CombinedDivisorsEnding7,
// 9 => CombinedDivisorsEnding9,
// _ => ArrayView1D<ulong, Stride1D.Dense>.Empty,
// };
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public ArrayView1D<ulong, Stride1D.Dense> SelectDivisors(byte ending) => ending switch
public (ArrayView1D<ulong, Stride1D.Dense>, ArrayView1D<ulong, Stride1D.Dense>) SelectDivisorsAndSquares(byte ending) => ending switch
{
1 => CombinedDivisorsEnding1,
3 => CombinedDivisorsEnding3,
7 => CombinedDivisorsEnding7,
9 => CombinedDivisorsEnding9,
_ => ArrayView1D<ulong, Stride1D.Dense>.Empty,
1 => CombinedDivisorsAndSquaresEnding1,
3 => CombinedDivisorsAndSquaresEnding3,
7 => CombinedDivisorsAndSquaresEnding7,
9 => CombinedDivisorsAndSquaresEnding9,
_ => EmptyCombinedDivisorsAndSquares,
};
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public ArrayView1D<ulong, Stride1D.Dense> SelectDivisorSquares(byte ending) => ending switch
{
1 => CombinedDivisorSquaresEnding1,
3 => CombinedDivisorSquaresEnding3,
7 => CombinedDivisorSquaresEnding7,
9 => CombinedDivisorSquaresEnding9,
_ => ArrayView1D<ulong, Stride1D.Dense>.Empty,
};
// [MethodImpl(MethodImplOptions.AggressiveInlining)]
// public ArrayView1D<ulong, Stride1D.Dense> SelectDivisorSquares(byte ending) => ending switch
// {
// 1 => CombinedDivisorSquaresEnding1,
// 3 => CombinedDivisorSquaresEnding3,
// 7 => CombinedDivisorSquaresEnding7,
// 9 => CombinedDivisorSquaresEnding9,
// _ => ArrayView1D<ulong, Stride1D.Dense>.Empty,
// };
}