New MulMod version added
This commit is contained in:
1 parent
93a82f756f
commit
34817bec21
1 file changed
+10
-4
@@ -40,6 +40,12 @@ public class MulMod64Benchmarks
|
||||
return MulMod64Inline(Input.Left, Input.Right, Input.Modulus);
|
||||
}
|
||||
|
||||
[Benchmark]
|
||||
public ulong InlineUInt128OperandsWithReductionFirst()
|
||||
{
|
||||
return MulMod64InlineWithReductionFirst(Input.Left, Input.Right, Input.Modulus);
|
||||
}
|
||||
|
||||
[Benchmark]
|
||||
public ulong InlineUInt128OperandsWithOperandReduction()
|
||||
{
|
||||
@@ -65,10 +71,10 @@ public class MulMod64Benchmarks
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
private static ulong MulMod64Inline(ulong a, ulong b, ulong modulus)
|
||||
{
|
||||
return (ulong)(((UInt128)a * b) % modulus);
|
||||
}
|
||||
private static ulong MulMod64Inline(ulong a, ulong b, ulong modulus) => (ulong)(((UInt128)a * b) % modulus);
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
private static ulong MulMod64InlineWithReductionFirst(ulong a, ulong b, ulong modulus) => (ulong)(((UInt128)(a % modulus) * (b % modulus)) % modulus);
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
private static ulong MulMod64InlineWithOperandReduction(ulong a, ulong b, ulong modulus)
|
||||
|
||||
Reference in new issue
Block a user