Skip to documentation
SLOP

tiny.simd.phastPositionPairFromHashesAndSeeds

Reference tiny.simd phastPositionPairFromHashesAndSeeds

Defined in tiny.simd.

Called byCallsprivate sourcelib.simd.src.phast.builder.BuildercomputeBucketPositionsPhasttwoVecmultiplymulHightiny.simdPhastVectorPairprivate sourcelib.simd.src.phast.familyhash16Vectortiny.simdphastPositionPairFromHashesAndSeeds
Static calls · unresolved targets: 1 · external targets: 0.

Source

Source: lib/simd/src/phast/family.zig:200

zig
pub fn positionPairFromHashesAndSeeds(    placement: Placement,    comptime D: type,    first_hashes: D.Vector,    second_hashes: D.Vector,    first_seeds: D.Vector,    second_seeds: D.Vector,) VectorPair(D) {    const D16 = D.repartition(u16);    var combined: D16.Vector = undefined;    inline for (0..D.lane_count) |lane| {        combined[lane] = @as(u16, @truncate(first_hashes[lane] >> 16)) +%            @as(u16, @truncate(first_seeds[lane]));        combined[D.lane_count + lane] =            @as(u16, @truncate(second_hashes[lane] >> 16)) +%            @as(u16, @truncate(second_seeds[lane]));    }    const within = hash16Vector(D16, combined);    const offsets: D.Vector = @splat(placement.num_slice_offsets);    const mask: D.Vector = @splat(placement.slice_mask);    var result: VectorPair(D) = .{        .first = multiply.mulHigh(D, first_hashes, offsets),        .second = multiply.mulHigh(D, second_hashes, offsets),    };    inline for (0..D.lane_count) |lane| {        result.first[lane] += @as(u32, within[lane]) & mask[lane];        result.second[lane] += @as(u32, within[D.lane_count + lane]) & mask[lane];    }    return result;}

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

zig
pub const phastPositionPairFromHashesAndSeeds = phast.phastPositionPairFromHashesAndSeeds;

Also reachable as

phast.phastPositionPairFromHashesAndSeeds.

Audit

Definitions1
Public names2
Members0
Version26.7.0
Revisiondaab053ee433