| ... | ... | @@ -1,14 +1,24 @@ |
| 1 | const builtin = @import("builtin"); |
| 1 | 2 | const std = @import("std"); |
| 2 | 3 | const Random = std.rand.Random; |
| 3 | 4 | |
| 5 | const zeroCaseFn = switch (builtin.zig_backend) { |
| 6 | .stage1 => fn (*Random, f64) f64, |
| 7 | else => *const fn (*Random, f64) f64, |
| 8 | }; |
| 9 | const pdfFn = switch (builtin.zig_backend) { |
| 10 | .stage1 => fn (f64) f64, |
| 11 | else => *const fn (f64) f64, |
| 12 | }; |
| 13 | |
| 4 | 14 | const ZigTable = struct { |
| 5 | 15 | r: f64, |
| 6 | 16 | x: [257]f64, |
| 7 | 17 | f: [257]f64, |
| 8 | 18 | |
| 9 | | pdf: fn (f64) f64, |
| 19 | pdf: pdfFn, |
| 10 | 20 | is_symmetric: bool, |
| 11 | | zero_case: fn (*Random, f64) f64, |
| 21 | zero_case: zeroCaseFn, |
| 12 | 22 | }; |
| 13 | 23 | |
| 14 | 24 | fn ZigTableGen(comptime is_symmetric: bool, comptime r: f64, comptime v: f64, comptime f: fn (f64) f64, comptime f_inv: fn (f64) f64, comptime zero_case: fn (*Random, f64) f64) ZigTable { |
| ... | ... | @@ -56,7 +66,11 @@ const NormalDist = blk: { |
| 56 | 66 | }; |
| 57 | 67 | |
| 58 | 68 | test "bug 920 fixed" { |
| 59 | | if (@import("builtin").zig_backend != .stage1) return error.SkipZigTest; // TODO |
| 69 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO |
| 70 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| 71 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| 72 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 73 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 60 | 74 | |
| 61 | 75 | const NormalDist1 = blk: { |
| 62 | 76 | break :blk ZigTableGen(true, norm_r, norm_v, norm_f, norm_f_inv, norm_zero_case); |