6 hours ago
- 作者分叉了 Rust 的 'rand' crate 以创建 'urandom',旨在减少小问题并提高日常操作的可发现性。
- 'urandom' 将高级消费者 API 放在单个 'Random' 包装结构体上,消除了为常见操作(如随机范围、选择和洗牌)导入多个 trait 的需要。
- 'urandom' 封闭了其底层 'Rng' trait,阻止外部生成器,并允许 crate 针对特定输出(如 f32 和 f64)优化算法(例如 Xoshiro),在基准测试中实现了高达 31% 的吞吐量提升。
- 'urandom' 中的均匀采样使用统一、无偏的惰性阈值计算,这比 'rand' 的分开有偏和无偏路径的分拆方法更简单且通常更快。