Skip to documentation
SLOP

tiny.simd.Xoshiro

Reference tiny.simd Xoshiro

Defined in random.

API (10)

Actions

Public operations.

Fields and members

Public fields and members.

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

Source

Source: lib/simd/src/random.zig:39

zig
pub const Xoshiro = struct {    state: [4]u64,    pub fn init(seed: u64) Xoshiro {        var split = SplitMix64.init(seed);        var state: [4]u64 = undefined;        for (&state) |*value| value.* = split.next();        return .{ .state = state };    }    pub fn initThread(seed: u64, thread_id: u64) Xoshiro {        var result = init(seed);        var stream: u64 = 0;        while (stream < thread_id) : (stream += 1) result.jump();        return result;    }    pub fn next(self: *Xoshiro) u64 {        const result = std.math.rotl(u64, self.state[0] +% self.state[3], 23) +%            self.state[0];        const temporary = self.state[1] << 17;        self.state[2] ^= self.state[0];        self.state[3] ^= self.state[1];        self.state[1] ^= self.state[2];        self.state[0] ^= self.state[3];        self.state[2] ^= temporary;        self.state[3] = std.math.rotl(u64, self.state[3], 45);        return result;    }    pub fn uniform(self: *Xoshiro) f64 {        return @as(f64, @floatFromInt(self.next() >> 11)) * uniform_scale;    }    pub fn getState(self: Xoshiro) [4]u64 {        return self.state;    }    pub fn setState(self: *Xoshiro, state: [4]u64) void {        self.state = state;    }    pub fn stateSize() usize {        return 4;    }    pub fn jump(self: *Xoshiro) void {        self.jumpWith(jump_constants);    }    pub fn longJump(self: *Xoshiro) void {        self.jumpWith(long_jump_constants);    }    fn jumpWith(self: *Xoshiro, constants: [4]u64) void {        var state: [4]u64 = @splat(0);        for (constants) |bits| {            for (0..64) |bit| {                if (bits & (@as(u64, 1) << @intCast(bit)) != 0) {                    inline for (0..4) |index| state[index] ^= self.state[index];                }                _ = self.next();            }        }        self.state = state;    }};

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

zig
pub const Xoshiro = random.Xoshiro;
Called byCallsNo direct callsrandomVectorXoshirotest sourcelib.simd.src.randomtest: Highway AVX2 scalar and vector ...test sourcelib.simd.src.randomtest: Highway scalar xoshiro state re...test sourcelib.simd.src.randomtest: Highway vector xoshiro thread s...XoshirogetState
Static calls · unresolved targets: 0 · external targets: 0.
Called byCallstest sourcelib.simd.src.hashtest: Highway Triple32 avalanche and ...randomVectorXoshirotest sourcelib.simd.src.randomtest: Highway AVX2 scalar and vector ...test sourcelib.simd.src.randomtest: Highway scalar xoshiro state re...test sourcelib.simd.src.randomtest: Highway vector xoshiro interlea...test sourcelib.simd.src.randomtest: Highway vector xoshiro thread s...SplitMix64initSplitMix64nextXoshiroinit
Static calls · unresolved targets: 0 · external targets: 0.
Called byCallsNo direct callsrandomCachedXoshirorandomVectorXoshirotest sourcelib.simd.src.randomtest: Highway scalar xoshiro state re...XoshiroinitThread
Static calls · unresolved targets: 1 · external targets: 1.
Called byCallsrandomVectorXoshirotest sourcelib.simd.src.randomtest: Highway AVX2 scalar and vector ...test sourcelib.simd.src.randomtest: Highway scalar xoshiro state re...test sourcelib.simd.src.randomtest: Highway vector xoshiro thread s...private sourcelib.simd.src.random.XoshirojumpWithXoshirojump
Static calls · unresolved targets: 0 · external targets: 0.
Called byCallsrandomVectorXoshirotest sourcelib.simd.src.randomtest: Highway AVX2 scalar and vector ...test sourcelib.simd.src.randomtest: Highway vector xoshiro thread s...private sourcelib.simd.src.random.XoshirojumpWithXoshirolongJump
Static calls · unresolved targets: 0 · external targets: 0.
Called byCallsNo direct callstest sourcelib.simd.src.hashtest: Highway Triple32 avalanche and ...private sourcelib.simd.src.random.XoshirojumpWithXoshirouniformtest sourcelib.simd.src.randomtest: Highway AVX2 scalar and vector ...test sourcelib.simd.src.randomtest: Highway scalar xoshiro state re...Xoshironext
Static calls · unresolved targets: 0 · external targets: 0.
Called byCallsNo direct callstest sourcelib.simd.src.randomtest: Highway scalar xoshiro state re...XoshirosetState
Static calls · unresolved targets: 0 · external targets: 0.
Called byCallsNo direct callstest sourcelib.simd.src.randomtest: Highway scalar xoshiro state re...XoshirostateSize
Static calls · unresolved targets: 0 · external targets: 0.
Called byCallsNo direct callersXoshironextXoshirouniform
Static calls · unresolved targets: 0 · external targets: 0.

Audit

Definitions10
Public names20
Members1
Version26.7.0
Revisiondaab053ee433