aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--std/rand/index.zig4
-rw-r--r--std/rand/ziggurat.zig8
2 files changed, 8 insertions, 4 deletions
diff --git a/std/rand/index.zig b/std/rand/index.zig
index 13694f4c09..7daa558f13 100644
--- a/std/rand/index.zig
+++ b/std/rand/index.zig
@@ -116,7 +116,7 @@ pub const Random = struct {
pub fn floatNorm(r: *Random, comptime T: type) T {
const value = ziggurat.next_f64(r, ziggurat.NormDist);
switch (T) {
- f32 => return f32(value),
+ f32 => return @floatCast(f32, value),
f64 => return value,
else => @compileError("unknown floating point type"),
}
@@ -128,7 +128,7 @@ pub const Random = struct {
pub fn floatExp(r: *Random, comptime T: type) T {
const value = ziggurat.next_f64(r, ziggurat.ExpDist);
switch (T) {
- f32 => return f32(value),
+ f32 => return @floatCast(f32, value),
f64 => return value,
else => @compileError("unknown floating point type"),
}
diff --git a/std/rand/ziggurat.zig b/std/rand/ziggurat.zig
index 774d3bd52a..f7a1359f17 100644
--- a/std/rand/ziggurat.zig
+++ b/std/rand/ziggurat.zig
@@ -84,12 +84,12 @@ fn ZigTableGen(
for (tables.x[2..256]) |*entry, i| {
const last = tables.x[2 + i - 1];
- *entry = f_inv(v / last + f(last));
+ entry.* = f_inv(v / last + f(last));
}
tables.x[256] = 0;
for (tables.f[0..]) |*entry, i| {
- *entry = f(tables.x[i]);
+ entry.* = f(tables.x[i]);
}
return tables;
@@ -160,3 +160,7 @@ test "ziggurant exp dist sanity" {
_ = prng.random.floatExp(f64);
}
}
+
+test "ziggurat table gen" {
+ const table = NormDist;
+}