Function ZigTableGen [src]

Prototype

pub 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

Parameters

is_symmetric: boolr: f64v: f64f: fn (f64) f64f_inv: fn (f64) f64zero_case: fn (Random, f64) f64

Source

pub 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 { var tables: ZigTable = undefined; tables.is_symmetric = is_symmetric; tables.r = r; tables.pdf = f; tables.zero_case = zero_case; tables.x[0] = v / f(r); tables.x[1] = r; for (tables.x[2..256], 0..) |*entry, i| { const last = tables.x[2 + i - 1]; entry.* = f_inv(v / last + f(last)); } tables.x[256] = 0; for (tables.f[0..], 0..) |*entry, i| { entry.* = f(tables.x[i]); } return tables; }