#初始化 #数组 #并行

par-array-init

并行初始化数组的便利函数

2 个版本

0.0.5 2019年6月7日
0.0.4 2019年6月7日

#103 in #初始化

MIT 许可证

10KB
146

par-array-init

par-array-init crate 允许您使用初始化闭包并行初始化数组,该闭包将在填充数组时被调用。

此 crate 与 crate array-init 的 api 相似,但初始化是在并行中执行的。与 array-init 不同的重要之处在于,初始化顺序不是确定的,不应依赖于它。

并行化是通过使用 rayon 和它的 ParallelIterator api 实现的。

示例

extern crate par_array_init;
extern crate rayon;

use par_array_init::{par_array_init, from_par_iter};

// Initialize an array of length 10 containing successive squares
let arr: [usize; 50] = par_array_init(|i| i * i);

// Initialize an array from an iterator producing an array of 34 repeated

let mut iter = rayon::iter::repeat(34u32).take(50);
let arr: Option<[u32; 50]> = from_par_iter(iter);

lib.rs:

par_array_init crate 允许您使用初始化闭包并行初始化数组,该闭包将在填充数组时被调用。

此 crate 与 crate (array-init)https://crates.io/crates/array-init 的 api 相似,但初始化是在并行中执行的。与 array-init 不同的重要之处在于,初始化顺序不是确定的,不应依赖于它。

并行化是通过使用 (rayon)https://https://crates.io/crates/rayon 和它的 ParallelIterator api 实现的。

示例

// Initialize an array of length 10 containing successive squares
let arr: [usize; 50] = par_array_init::par_array_init(|i| i * i);

// Initialize an array from an iterator producing an array filled with 34's
let mut iter = rayon::iter::repeat(34u32).take(50);
let arr: Option<[u32; 50]> = par_array_init::from_par_iter(iter);

依赖项

~1.5MB
~26K SLoC