Skip to documentation
SLOP

tiny.simd.MaskedWeakTwoMul

Reference tiny.simd MaskedWeakTwoMul

Defined in hash.

Called byCallstest sourcelib.simd.src.hashtest: Highway AVX2 keyed hash oracle ...test sourcelib.simd.src.hashtest: Highway masked hashes remain bi...test sourcelib.simd.src.hashtest: Highway masked hashes retain th...private sourcelib.simd.src.hashassertMaskedprivate sourcelib.simd.src.hashassertMaskedVectorprivate sourcelib.simd.src.hashmaskValueprivate sourcelib.simd.src.hashmaybeMaskprivate sourcelib.simd.src.hashmaybeMaskVector+3 morehashMaskedWeakTwoMul
Static calls · unresolved targets: 0 · external targets: 3.

Source

Source: lib/simd/src/hash.zig:21

zig
pub fn MaskedWeakTwoMul(comptime bits: usize) type {    validateBits(u32, bits);    return struct {        key_value: u32 = 0,        const Self = @This();        pub const Lane: type = u32;        pub const mask: u32 = maskValue(u32, bits);        pub fn init() Self {            return .{};        }        pub fn initKey(key_value: u32) Self {            assertMasked(u32, bits, key_value);            return .{ .key_value = key_value };        }        pub fn initSeed(engine: *const random.AesCtrEngine, seed: u64) Self {            return .{ .key_value = maybeMask(u32, bits, @truncate(engine.generate(seed, 0))) };        }        pub fn hash(self: Self, input: u32) u32 {            assertMasked(u32, bits, input);            var result = input ^ self.key_value;            result ^= result >> 16;            result *%= 0x21f0_aaad;            result = maybeMask(u32, bits, result);            result ^= result >> 15;            result *%= 0xf35a_2d97;            result = maybeMask(u32, bits, result);            result ^= result >> 15;            assertMasked(u32, bits, result);            return result;        }        pub fn oneVec(self: Self, comptime D: type, input: D.Vector) D.Vector {            requireTag(D, u32);            assertMaskedVector(D, bits, input);            var result = input ^ @as(D.Vector, @splat(self.key_value));            result ^= shift.shiftRight(D, 16, result);            result = arithmetic.mul(D, result, @splat(0x21f0_aaad));            result = maybeMaskVector(D, bits, result);            result ^= shift.shiftRight(D, 15, result);            result = arithmetic.mul(D, result, @splat(0xf35a_2d97));            result = maybeMaskVector(D, bits, result);            result ^= shift.shiftRight(D, 15, result);            assertMaskedVector(D, bits, result);            return result;        }        pub fn twoVec(self: Self, comptime D: type, first: *D.Vector, second: *D.Vector) void {            first.* = self.oneVec(D, first.*);            second.* = self.oneVec(D, second.*);        }    };}

Source: lib/simd/src/root.zig:565

zig
pub const MaskedWeakTwoMul = hash.MaskedWeakTwoMul;

Complete call list

8 direct calls.

Audit

Definitions1
Public names2
Members0
Version26.7.0
Revisiondaab053ee433