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 › hash240 Private Function hash240 Doc Source Private Function std.hash.xxhash.XxHash3.hash240
fn hash240 (seed : u64 , input : anytype , noalias secret : *const [192 ]u8 ) u64 Params seed : u64 input secret : *const [192 ]u8 File hash/xxhash.zig: 666
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683 fn hash240 (seed : u64 , input : anytype , noalias secret : *const [192 ]u8 ) u64 {
@branchHint (.unlikely );
std .debug .assert (input .len > 128 and input .len <= 240 );
var acc = XxHash64 .prime_1 *% @as (u64 , input .len );
inline for (0 ..8 ) |i | {
acc +%= mix16 (seed , input [i * 16 ..], secret [i * 16 ..]);
}
var acc_end = mix16 (seed , input [input .len - 16 ..], secret [136 - 17 ..]);
for (8 ..(input .len / 16 )) |i | {
acc_end +%= mix16 (seed , input [i * 16 ..], secret [((i - 8 ) * 16 ) + 3 ..]);
disableAutoVectorization (i );
}
acc = avalanche (.h3 , acc ) +% acc_end ;
return avalanche (.h3 , acc );
}