MCPcopy Create free account
hub / github.com/BTCGPU/BTCGPU / SipHashUint256

Function SipHashUint256

src/hash.cpp:168–206  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

166}
167
168uint64_t SipHashUint256(uint64_t k0, uint64_t k1, const uint256& val)
169{
170 /* Specialized implementation for efficiency */
171 uint64_t d = val.GetUint64(0);
172
173 uint64_t v0 = 0x736f6d6570736575ULL ^ k0;
174 uint64_t v1 = 0x646f72616e646f6dULL ^ k1;
175 uint64_t v2 = 0x6c7967656e657261ULL ^ k0;
176 uint64_t v3 = 0x7465646279746573ULL ^ k1 ^ d;
177
178 SIPROUND;
179 SIPROUND;
180 v0 ^= d;
181 d = val.GetUint64(1);
182 v3 ^= d;
183 SIPROUND;
184 SIPROUND;
185 v0 ^= d;
186 d = val.GetUint64(2);
187 v3 ^= d;
188 SIPROUND;
189 SIPROUND;
190 v0 ^= d;
191 d = val.GetUint64(3);
192 v3 ^= d;
193 SIPROUND;
194 SIPROUND;
195 v0 ^= d;
196 v3 ^= ((uint64_t)4) << 59;
197 SIPROUND;
198 SIPROUND;
199 v0 ^= ((uint64_t)4) << 59;
200 v2 ^= 0xFF;
201 SIPROUND;
202 SIPROUND;
203 SIPROUND;
204 SIPROUND;
205 return v0 ^ v1 ^ v2 ^ v3;
206}
207
208uint64_t SipHashUint256Extra(uint64_t k0, uint64_t k1, const uint256& val, uint32_t extra)
209{

Callers 4

operator()Method · 0.85
GetShortIDMethod · 0.85
BOOST_AUTO_TEST_CASEFunction · 0.85
SipHash_32bFunction · 0.85

Calls 1

GetUint64Method · 0.80

Tested by 1

BOOST_AUTO_TEST_CASEFunction · 0.68