2 个不稳定版本

使用旧的 Rust 2015

0.2.0 2018年3月13日
0.1.0 2018年3月11日

#ndarray 中排名 77

MIT 许可证

16KB
402 行(不含注释)

stencil

docs.rs CircleCI

许可证

MIT 许可证,见 LICENSE 文件。


lib.rs:

模板计算

一维情况

使用 N1D1 模板和 Torus 计算函数 sin(x) 的中心差分的示例

let mut a = torus::Torus::<f64, Ix1>::zeros(n);
let mut b = a.clone();
a.coordinate_fill(|x| x.sin());
let dx = a.dx();
a.stencil_map(&mut b, |n: N1D1<f64>| (n.r - n.l) / (2.0 * dx));

二维情况

使用 N1D2 模板和 Torus 计算函数 sin(x)cos(y) 的中心差分的示例

let mut a = torus::Torus::<f64, Ix2>::zeros((n, m));
a.coordinate_fill(|(x, y)| x.sin() * y.cos());
let (dx, dy) = a.dx();
let mut ax = a.clone();
let mut ay = a.clone();
a.stencil_map(&mut ax, |n: N1D2<f64>| (n.r - n.l) / (2.0 * dx));
a.stencil_map(&mut ay, |n: N1D2<f64>| (n.t - n.b) / (2.0 * dy));

依赖

约 2MB
约 33K SLoC