Skip to documentation
SLOP

tiny.stabilizer.Marsaglia

Reference tiny.stabilizer Marsaglia

Defined in tiny.stabilizer.

API (8)

Actions

Public operations.

Fields and members

Public fields and members.

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

Source

Source: lib/stabilizer/src/rng.zig:3

zig
pub const Marsaglia = struct {    state: u32,    cached: u32 = 0,    byte_index: u3 = 4,    pub fn init(seed: u64) Marsaglia {        const folded = @as(u32, @truncate(seed)) ^ @as(u32, @truncate(seed >> 32));        return .{ .state = if (folded == 0) 0x6d2b_79f5 else folded };    }    pub fn nextU32(self: *Marsaglia) u32 {        var x = self.state;        x ^= x << 13;        x ^= x >> 17;        x ^= x << 5;        self.state = if (x == 0) 0x6d2b_79f5 else x;        return self.state;    }    pub fn nextU64(self: *Marsaglia) u64 {        return (@as(u64, self.nextU32()) << 32) | self.nextU32();    }    pub fn bounded(self: *Marsaglia, upper: usize) usize {        std.debug.assert(upper > 0);        return @intCast(self.nextU64() % upper);    }    pub fn nextByte(self: *Marsaglia) u8 {        if (self.byte_index >= 4) {            self.cached = self.nextU32();            self.byte_index = 0;        }        const shift: u5 = @intCast(@as(u16, self.byte_index) * 8);        const byte: u8 = @truncate(self.cached >> shift);        self.byte_index += 1;        return byte;    }};

Source: lib/stabilizer/src/root.zig:52

zig
pub const Marsaglia = rng_mod.Marsaglia;
Called byCallsprivate sourcelib.stabilizer.src.code.CodeRandomizerallocateCodeBaseprivate sourcelib.stabilizer.src.heap.ShuffleAllocatorallocprivate sourcelib.stabilizer.src.heap.ShuffleAllocatorfreeMarsaglianextU64Marsagliabounded
Static calls · unresolved targets: 0 · external targets: 0.
Called byCallsNo direct callsCodeRandomizerinitShuffleAllocatorinitprivate sourcelib.stabilizer.src.properties.runtime.StackPa...propertyprivate sourcelib.stabilizer.src.properties.stack.StackProp...propertytest sourcelib.stabilizer.src.properties.stacktest: runtime refills stack pads only...+4 moreMarsagliainit
Static calls · unresolved targets: 0 · external targets: 0.
Called byCallsCodeRandomizerrelocateprivate sourcelib.stabilizer.src.properties.runtime.StackPa...propertytest sourcelib.stabilizer.src.properties.stacktest: runtime refills stack pads only...private sourcelib.stabilizer.src.runtime.RuntimererandomizeStackPadstest sourcelib.stabilizer.src.runtimetest: runtime rerandomizeAt preserves...test sourcelib.stabilizer.src.runtimetest: runtime rerandomizes registered...MarsaglianextU32MarsaglianextByte
Static calls · unresolved targets: 0 · external targets: 0.
Called byCallsNo direct callsMarsaglianextByteMarsaglianextU64MarsaglianextU32
Static calls · unresolved targets: 0 · external targets: 0.
Called byCallsMarsagliaboundedMarsaglianextU32MarsaglianextU64
Static calls · unresolved targets: 0 · external targets: 0.

Complete caller list for Marsaglia.init

9 direct callers.

Audit

Definitions6
Public names6
Members3
Version26.7.0
Revisiondaab053ee433