Skip to content

Commit b6aad07

Browse files
authored
Use T1HAGlobals for big mul in T1HA2_Implementation
Signed-off-by: Xen <lordofxen@deskasoft.com>
1 parent 9cd4342 commit b6aad07

File tree

1 file changed

+3
-22
lines changed

1 file changed

+3
-22
lines changed

HashifyNet/Algorithms/T1HA/T1HA2_Implementation.cs

Lines changed: 3 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// *
1+
// *
22
// *****************************************************************************
33
// *
44
// * Copyright (c) 2025 Deskasoft International
@@ -282,7 +282,7 @@ private void Squash()
282282
static void MixUp64(ref ulong a, ref ulong b, ulong v, ulong prime)
283283
{
284284
// *a ^= mul_64x64_128(*b + v, prime, &h); *b += h;
285-
BigMul128(b + v, prime, out var lo, out var hi);
285+
T1HAGlobals.BigMul128(b + v, prime, out var lo, out var hi);
286286
a ^= lo;
287287
b += hi;
288288
}
@@ -297,29 +297,10 @@ private static ulong Mix64(ulong v, ulong p)
297297
[MethodImpl(MethodImplOptions.AggressiveInlining)]
298298
static ulong Mux64(ulong v, ulong prime)
299299
{
300-
BigMul128(v, prime, out var lo, out var hi);
300+
T1HAGlobals.BigMul128(v, prime, out var lo, out var hi);
301301
return lo ^ hi;
302302
}
303303

304-
static void BigMul128(ulong a, ulong b, out ulong lo, out ulong hi)
305-
{
306-
#if NET8_0_OR_GREATER
307-
hi = Math.BigMul(a, b, out lo);
308-
#else
309-
ulong aLo = (uint)a, aHi = a >> 32;
310-
ulong bLo = (uint)b, bHi = b >> 32;
311-
312-
ulong p0 = aLo * bLo;
313-
ulong p1 = aLo * bHi;
314-
ulong p2 = aHi * bLo;
315-
ulong p3 = aHi * bHi;
316-
317-
ulong mid = (p1 << 32) + (p2 << 32);
318-
lo = p0 + mid;
319-
hi = p3 + (p1 >> 32) + (p2 >> 32) + (lo < p0 ? 1UL : 0UL);
320-
#endif
321-
}
322-
323304
[MethodImpl(MethodImplOptions.AggressiveInlining)]
324305
private static ulong Tail64LE(ReadOnlySpan<byte> data, int offset, int tailLen)
325306
{

0 commit comments

Comments
 (0)