Function report |
Source Code:lib\xxhash.c |
Create Date:2022-07-28 06:56:18 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| home page | Tree |
| Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:xxh64
Proto:uint64_t xxh64(const void *input, const size_t len, const uint64_t seed)
Type:uint64_t
Parameter:
| Type | Parameter | Name |
|---|---|---|
| const void * | input | |
| const size_t | len | |
| const uint64_t | seed |
| 178 | If len >= 32 Then |
| 185 | Do |
| 186 | v1 = xxh64_round(v1, get_unaligned_le64(p)) |
| 187 | p += 8 |
| 188 | v2 = xxh64_round(v2, get_unaligned_le64(p)) |
| 189 | p += 8 |
| 190 | v3 = xxh64_round(v3, get_unaligned_le64(p)) |
| 191 | p += 8 |
| 192 | v4 = xxh64_round(v4, get_unaligned_le64(p)) |
| 193 | p += 8 |
| 196 | h64 = xxh_rotl64(v1, 1) + xxh_rotl64(v2, 7) + xxh_rotl64(v3, 12) + xxh_rotl64(v4, 18) |
| 198 | h64 = xxh64_merge_round(h64, v1) |
| 199 | h64 = xxh64_merge_round(h64, v2) |
| 200 | h64 = xxh64_merge_round(h64, v3) |
| 201 | h64 = xxh64_merge_round(h64, v4) |
| 203 | Else |
| 210 | k1 = xxh64_round(0, get_unaligned_le64(p)) |
| 213 | h64 = xxh_rotl64(h64, 27) * PRIME64_1 + PRIME64_4 |
| 214 | p += 8 |
| 218 | h64 ^= get_unaligned_le32(p) * PRIME64_1 |
| 219 | h64 = xxh_rotl64(h64, 23) * PRIME64_2 + PRIME64_3 |
| 220 | p += 4 |
| 235 | Return h64 |
| Source code conversion tool public plug-in interface | X |
|---|---|
| Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |