2 个不稳定版本
使用旧的 Rust 2015
0.2.0 | 2018年3月13日 |
---|---|
0.1.0 | 2018年3月11日 |
在 #ndarray 中排名 77
16KB
402 行(不含注释)
stencil
许可证
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