MCPcopy Create free account
hub / github.com/DeepRec-AI/DeepRec / Hash64

Function Hash64

tensorflow/core/lib/hash/hash.cc:150–198  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

148}
149
150uint64 Hash64(const char* data, size_t n, uint64 seed) {
151 const uint64 m = 0xc6a4a7935bd1e995;
152 const int r = 47;
153
154 uint64 h = seed ^ (n * m);
155
156 while (n >= 8) {
157 uint64 k = core::DecodeFixed64(data);
158 data += 8;
159 n -= 8;
160
161 k *= m;
162 k ^= k >> r;
163 k *= m;
164
165 h ^= k;
166 h *= m;
167 }
168
169 switch (n) {
170 case 7:
171 h ^= ByteAs64(data[6]) << 48;
172 TF_FALLTHROUGH_INTENDED;
173 case 6:
174 h ^= ByteAs64(data[5]) << 40;
175 TF_FALLTHROUGH_INTENDED;
176 case 5:
177 h ^= ByteAs64(data[4]) << 32;
178 TF_FALLTHROUGH_INTENDED;
179 case 4:
180 h ^= ByteAs64(data[3]) << 24;
181 TF_FALLTHROUGH_INTENDED;
182 case 3:
183 h ^= ByteAs64(data[2]) << 16;
184 TF_FALLTHROUGH_INTENDED;
185 case 2:
186 h ^= ByteAs64(data[1]) << 8;
187 TF_FALLTHROUGH_INTENDED;
188 case 1:
189 h ^= ByteAs64(data[0]);
190 h *= m;
191 }
192
193 h ^= h >> r;
194 h *= m;
195 h ^= h >> r;
196
197 return h;
198}
199
200#if defined(__AVX512F__)
201

Callers 1

Hash64V3Function · 0.70

Calls 2

DecodeFixed64Function · 0.85
ByteAs64Function · 0.85

Tested by

no test coverage detected