Inline single-use modulo helpers

This commit is contained in:
Marek Lemańczyk committed 2025-09-22 19:54:54 +02:00
1 parent 3598f88aaf
commit 3b8a10a20b
5 files changed
+33 -35

No files matched your search

+18 -12
View File
@@ -97,17 +97,23 @@ public static class PrimesGenerator
}
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
private static bool IsAllowedForLastOne(uint prime)
{
uint mod10 = prime % 10U;
return mod10 == 1U || mod10 == 3U || mod10 == 9U || prime == 7U || prime == 11U;
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
private static bool IsAllowedForLastOne(uint prime)
{
return (prime % 10U) switch
{
1U or 3U or 9U => true,
_ => prime == 7U || prime == 11U,
};
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
private static bool IsAllowedForLastSeven(uint prime)
{
uint mod10 = prime % 10U;
return mod10 == 3U || mod10 == 7U || mod10 == 9U || prime == 11U;
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
private static bool IsAllowedForLastSeven(uint prime)
{
return (prime % 10U) switch
{
3U or 7U or 9U => true,
_ => prime == 11U,
};
}
}