feature. See also
. The project being documented here (as the example) is the Zig library itself.
blake3.compressSubtreeToParentNode
fn compressSubtreeToParentNode(input: []const u8, key: [8]u32, chunk_counter: u64, flags: Flags, out: *[2 * Blake3.digest_length]u8) void
File
Code
fn compressSubtreeToParentNode(input: []const u8, key: [8]u32, chunk_counter: u64, flags: Flags, out: *[2 * Blake3.digest_length]u8) void {
var cv_array: [max_simd_degree_or_2 * Blake3.digest_length]u8 = undefined;
var num_cvs = compressSubtreeWide(input, key, chunk_counter, flags, &cv_array);
if (max_simd_degree_or_2 > 2) {
var out_array: [max_simd_degree_or_2 * Blake3.digest_length / 2]u8 = undefined;
while (num_cvs > 2) {
num_cvs = compressParentsParallel(&cv_array, num_cvs, key, flags, &out_array);
@memcpy(cv_array[0 .. num_cvs * Blake3.digest_length], out_array[0 .. num_cvs * Blake3.digest_length]);
}
}
@memcpy(out, cv_array[0 .. 2 * Blake3.digest_length]);
}