Skip to documentation
SLOP

tiny.simd.tuple

Reference tiny.simd tuple

Defined in tiny.simd.

API (9)

Actions

Public operations.

No direct callersNo direct callstiny.simdtuple
Static calls · unresolved targets: unknown · external targets: unknown.

Source

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

zig
pub const tuple = @import("tuple.zig");

Source: lib/simd/src/tuple.zig

zig
const std = @import("std");pub fn create2(comptime D: type, v0: D.Vector, v1: D.Vector) [2]D.Vector {    return .{ v0, v1 };}pub fn create3(    comptime D: type,    v0: D.Vector,    v1: D.Vector,    v2: D.Vector,) [3]D.Vector {    return .{ v0, v1, v2 };}pub fn create4(    comptime D: type,    v0: D.Vector,    v1: D.Vector,    v2: D.Vector,    v3: D.Vector,) [4]D.Vector {    return .{ v0, v1, v2, v3 };}pub fn get2(comptime index: usize, value: anytype) @TypeOf(value[index]) {    if (comptime index >= 2) @compileError("get2 index must be less than two");    return value[index];}pub fn get3(comptime index: usize, value: anytype) @TypeOf(value[index]) {    if (comptime index >= 3) @compileError("get3 index must be less than three");    return value[index];}pub fn get4(comptime index: usize, value: anytype) @TypeOf(value[index]) {    if (comptime index >= 4) @compileError("get4 index must be less than four");    return value[index];}pub fn set2(comptime index: usize, value: anytype, replacement: @TypeOf(value[index])) @TypeOf(value) {    if (comptime index >= 2) @compileError("set2 index must be less than two");    var result = value;    result[index] = replacement;    return result;}pub fn set3(comptime index: usize, value: anytype, replacement: @TypeOf(value[index])) @TypeOf(value) {    if (comptime index >= 3) @compileError("set3 index must be less than three");    var result = value;    result[index] = replacement;    return result;}pub fn set4(comptime index: usize, value: anytype, replacement: @TypeOf(value[index])) @TypeOf(value) {    if (comptime index >= 4) @compileError("set4 index must be less than four");    var result = value;    result[index] = replacement;    return result;}test "Highway tuples retain ordered vectors and replace one vector" {    const simd = @import("root.zig");    const D = simd.FixedTag(u32, 4);    const a: D.Vector = @splat(1);    const b: D.Vector = @splat(2);    const c: D.Vector = @splat(3);    const d: D.Vector = @splat(4);    const pair = create2(D, a, b);    try std.testing.expect(@reduce(.And, get2(1, pair) == b));    const triple = set3(1, create3(D, a, b, c), d);    try std.testing.expect(@reduce(.And, get3(0, triple) == a));    try std.testing.expect(@reduce(.And, get3(1, triple) == d));    const quad = set4(2, create4(D, a, b, c, d), a);    try std.testing.expect(@reduce(.And, get4(2, quad) == a));    try std.testing.expect(@reduce(.And, get4(3, quad) == d));}

Audit

Definitions1
Public names1
Members0
Version26.7.0
Revisiondaab053ee433