Zig 0.17.0-dev (Split by item) This is an example of documentation generated by
ZigDoc , an alternative to Zig's built-in
Auto Doc feature. See also
examples in other modes/formats . The project being documented here (as the example) is the Zig standard library.
std › hash › xxhash › XxHash3 › avalanche Private Function avalanche Doc Source Private Function std.hash.xxhash.XxHash3.avalanche
inline fn avalanche (mode : union (enum ) Params mode : union (enum ) { h3 , h64 , rrmxmx : u64 } x0 : u64 File hash/xxhash.zig: 452
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469 inline fn avalanche (mode : union (enum ) { h3 , h64 , rrmxmx : u64 }, x0 : u64 ) u64 {
switch (mode ) {
.h3 => {
const x1 = (x0 ^ (x0 >> 37 )) *% prime_mx1 ;
return x1 ^ (x1 >> 32 );
},
.h64 => {
const x1 = (x0 ^ (x0 >> 33 )) *% XxHash64 .prime_2 ;
const x2 = (x1 ^ (x1 >> 29 )) *% XxHash64 .prime_3 ;
return x2 ^ (x2 >> 32 );
},
.rrmxmx => |len | {
const x1 = (x0 ^ rotl (u64 , x0 , 49 ) ^ rotl (u64 , x0 , 24 )) *% prime_mx2 ;
const x2 = (x1 ^ ((x1 >> 35 ) +% len )) *% prime_mx2 ;
return x2 ^ (x2 >> 28 );
},
}
}