Aggressive inlining added to simple switch methods.
This commit is contained in:
1 parent
b9ca95bf8c
commit
91894637af
1 file changed
+4
@@ -269,6 +269,7 @@ public sealed class HeuristicCombinedPrimeTester
|
|||||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||||
internal static ulong ComputeHeuristicDivisorSquareLimit(ulong n) => n;
|
internal static ulong ComputeHeuristicDivisorSquareLimit(ulong n) => n;
|
||||||
|
|
||||||
|
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||||
private static ReadOnlySpan<ulong> GetCombinedDivisors(byte nMod10) => nMod10 switch
|
private static ReadOnlySpan<ulong> GetCombinedDivisors(byte nMod10) => nMod10 switch
|
||||||
{
|
{
|
||||||
1 => CombinedDivisorsEnding1,
|
1 => CombinedDivisorsEnding1,
|
||||||
@@ -278,6 +279,7 @@ public sealed class HeuristicCombinedPrimeTester
|
|||||||
_ => throw new InvalidOperationException($"Unsupported combined divisor selector for digit {nMod10}."),
|
_ => throw new InvalidOperationException($"Unsupported combined divisor selector for digit {nMod10}."),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||||
private static ReadOnlySpan<ulong> GetCombinedDivisorSquares(byte nMod10) => nMod10 switch
|
private static ReadOnlySpan<ulong> GetCombinedDivisorSquares(byte nMod10) => nMod10 switch
|
||||||
{
|
{
|
||||||
1 => CombinedDivisorsEnding1Squares,
|
1 => CombinedDivisorsEnding1Squares,
|
||||||
@@ -287,6 +289,7 @@ public sealed class HeuristicCombinedPrimeTester
|
|||||||
_ => throw new InvalidOperationException($"Unsupported combined divisor square selector for digit {nMod10}."),
|
_ => throw new InvalidOperationException($"Unsupported combined divisor square selector for digit {nMod10}."),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||||
internal static ReadOnlySpan<ulong> GetCombinedDivisors(byte nMod10, CombinedDivisorPattern pattern) => pattern switch
|
internal static ReadOnlySpan<ulong> GetCombinedDivisors(byte nMod10, CombinedDivisorPattern pattern) => pattern switch
|
||||||
{
|
{
|
||||||
CombinedDivisorPattern.TwoAOneB => nMod10 switch
|
CombinedDivisorPattern.TwoAOneB => nMod10 switch
|
||||||
@@ -324,6 +327,7 @@ public sealed class HeuristicCombinedPrimeTester
|
|||||||
_ => throw new InvalidOperationException($"Unsupported combined divisor pattern: {pattern}."),
|
_ => throw new InvalidOperationException($"Unsupported combined divisor pattern: {pattern}."),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||||
internal static ReadOnlySpan<ulong> GetCombinedDivisorSquares(byte nMod10, CombinedDivisorPattern pattern) => pattern switch
|
internal static ReadOnlySpan<ulong> GetCombinedDivisorSquares(byte nMod10, CombinedDivisorPattern pattern) => pattern switch
|
||||||
{
|
{
|
||||||
CombinedDivisorPattern.TwoAOneB => nMod10 switch
|
CombinedDivisorPattern.TwoAOneB => nMod10 switch
|
||||||
|
|||||||
Reference in new issue
Block a user