Skip to documentation
SLOP

tiny.simd.satWidenMulAccumFixedPoint

Reference tiny.simd satWidenMulAccumFixedPoint

Defined in multiply.

Called byCallstest sourcelib.simd.src.multiplytest: Highway saturating widening mul...private sourcelib.simd.src.multiplysourceLaneprivate sourcelib.simd.src.multiplysourceLaneCountmultiplysatWidenMulAccumFixedPoint
Static calls · unresolved targets: 0 · external targets: 0.

Source

Source: lib/simd/src/multiply.zig:147

zig
pub fn satWidenMulAccumFixedPoint(    comptime DW: type,    a: anytype,    b: @TypeOf(a),    sum: DW.Vector,) DW.Vector {    if (comptime DW.Lane != i32 or sourceLane(@TypeOf(a)) != i16 or        sourceLaneCount(@TypeOf(a)) != DW.lane_count)    {        @compileError("satWidenMulAccumFixedPoint requires same-lane-count i16 sources with i32 output");    }    var result: DW.Vector = undefined;    inline for (0..DW.lane_count) |index| {        const value = @as(i64, sum[index]) +            @as(i64, a[index]) * @as(i64, b[index]) * 2;        result[index] = @intCast(std.math.clamp(            value,            @as(i64, std.math.minInt(i32)),            @as(i64, std.math.maxInt(i32)),        ));    }    return result;}

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

zig
pub const satWidenMulAccumFixedPoint = multiply.satWidenMulAccumFixedPoint;

Audit

Definitions1
Public names2
Members0
Version26.7.0
Revisiondaab053ee433