From c89ae5782edd4b7d53dc6f20d0c9ee1821aa1df7 Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Fri, 12 Dec 2025 17:45:18 -0500 Subject: [PATCH] small refactoring --- .../nip01Core/hints/bloom/MurmurHash3.kt | 48 ++++++++++--------- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip01Core/hints/bloom/MurmurHash3.kt b/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip01Core/hints/bloom/MurmurHash3.kt index 1761a3314..208d0d183 100644 --- a/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip01Core/hints/bloom/MurmurHash3.kt +++ b/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip01Core/hints/bloom/MurmurHash3.kt @@ -50,7 +50,7 @@ class MurmurHash3 { val roundedEnd = data.size and ROUND_DOWN_32 // Round down to 4-byte blocks var i = 0 - var k1 = 0 + var k1: Int while (i < roundedEnd) { k1 = ( @@ -110,7 +110,7 @@ class MurmurHash3 { return h1 } - public fun hash128x64( + fun hash128x64( data: ByteArray, seed: Long, ): Pair { @@ -119,8 +119,10 @@ class MurmurHash3 { val roundedEnd = data.size and ROUND_DOWN_128 var i = 0 + var k1: Long + var k2: Long while (i < roundedEnd) { - val k1 = + k1 = ( data[i++].long() or (data[i++].long() shl 8) or @@ -132,7 +134,7 @@ class MurmurHash3 { (data[i++].long() shl 56) ) * C1_128_X64 - val k2 = + k2 = ( data[i++].long() or (data[i++].long() shl 8) or @@ -151,56 +153,56 @@ class MurmurHash3 { h2 = (h2.rotateLeft(R1_128_X64) + h1) * 5 + 0x38495ab5 } - val index = roundedEnd - val rem = data.size - index - var k1 = 0L - var k2 = 0L + val rem = data.size - roundedEnd + + k1 = 0L + k2 = 0L if (rem == 15) { - k2 = k2 xor (data[index + 14].long() shl 48) + k2 = k2 xor (data[roundedEnd + 14].long() shl 48) } if (rem >= 14) { - k2 = k2 xor (data[index + 13].long() shl 40) + k2 = k2 xor (data[roundedEnd + 13].long() shl 40) } if (rem >= 13) { - k2 = k2 xor (data[index + 12].long() shl 32) + k2 = k2 xor (data[roundedEnd + 12].long() shl 32) } if (rem >= 12) { - k2 = k2 xor (data[index + 11].long() shl 24) + k2 = k2 xor (data[roundedEnd + 11].long() shl 24) } if (rem >= 11) { - k2 = k2 xor (data[index + 10].long() shl 16) + k2 = k2 xor (data[roundedEnd + 10].long() shl 16) } if (rem >= 10) { - k2 = k2 xor (data[index + 9].long() shl 8) + k2 = k2 xor (data[roundedEnd + 9].long() shl 8) } if (rem >= 9) { - k2 = k2 xor data[index + 8].long() + k2 = k2 xor data[roundedEnd + 8].long() h2 = h2 xor (k2 * C2_128_X64).rotateLeft(R3_128_X64) * C1_128_X64 } if (rem >= 8) { - k1 = k1 xor (data[index + 7].long() shl 56) + k1 = k1 xor (data[roundedEnd + 7].long() shl 56) } if (rem >= 7) { - k1 = k1 xor (data[index + 6].long() shl 48) + k1 = k1 xor (data[roundedEnd + 6].long() shl 48) } if (rem >= 6) { - k1 = k1 xor (data[index + 5].long() shl 40) + k1 = k1 xor (data[roundedEnd + 5].long() shl 40) } if (rem >= 5) { - k1 = k1 xor (data[index + 4].long() shl 32) + k1 = k1 xor (data[roundedEnd + 4].long() shl 32) } if (rem >= 4) { - k1 = k1 xor (data[index + 3].long() shl 24) + k1 = k1 xor (data[roundedEnd + 3].long() shl 24) } if (rem >= 3) { - k1 = k1 xor (data[index + 2].long() shl 16) + k1 = k1 xor (data[roundedEnd + 2].long() shl 16) } if (rem >= 2) { - k1 = k1 xor (data[index + 1].long() shl 8) + k1 = k1 xor (data[roundedEnd + 1].long() shl 8) } if (rem >= 1) { - k1 = k1 xor data[index].long() + k1 = k1 xor data[roundedEnd].long() h1 = h1 xor (k1 * C1_128_X64).rotateLeft(R1_128_X64) * C2_128_X64 }