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

Function SipHashUint256Extra

src/hash.cpp:208–247  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

206}
207
208uint64_t SipHashUint256Extra(uint64_t k0, uint64_t k1, const uint256& val, uint32_t extra)
209{
210 /* Specialized implementation for efficiency */
211 uint64_t d = val.GetUint64(0);
212
213 uint64_t v0 = 0x736f6d6570736575ULL ^ k0;
214 uint64_t v1 = 0x646f72616e646f6dULL ^ k1;
215 uint64_t v2 = 0x6c7967656e657261ULL ^ k0;
216 uint64_t v3 = 0x7465646279746573ULL ^ k1 ^ d;
217
218 SIPROUND;
219 SIPROUND;
220 v0 ^= d;
221 d = val.GetUint64(1);
222 v3 ^= d;
223 SIPROUND;
224 SIPROUND;
225 v0 ^= d;
226 d = val.GetUint64(2);
227 v3 ^= d;
228 SIPROUND;
229 SIPROUND;
230 v0 ^= d;
231 d = val.GetUint64(3);
232 v3 ^= d;
233 SIPROUND;
234 SIPROUND;
235 v0 ^= d;
236 d = (((uint64_t)36) << 56) | extra;
237 v3 ^= d;
238 SIPROUND;
239 SIPROUND;
240 v0 ^= d;
241 v2 ^= 0xFF;
242 SIPROUND;
243 SIPROUND;
244 SIPROUND;
245 SIPROUND;
246 return v0 ^ v1 ^ v2 ^ v3;
247}

Callers 2

operator()Method · 0.85
BOOST_AUTO_TEST_CASEFunction · 0.85

Calls 1

GetUint64Method · 0.80

Tested by 1

BOOST_AUTO_TEST_CASEFunction · 0.68