From bf6dbef4ed28f3135eb48ed03ac31a7242f68340 Mon Sep 17 00:00:00 2001 From: Christoph Groth Date: Thu, 24 Oct 2024 12:45:51 +0200 Subject: Official example, before API change https://docs.rs/mdarray/0.6.1/mdarray/#example --- src/main.rs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 src/main.rs (limited to 'src/main.rs') diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..898142c --- /dev/null +++ b/src/main.rs @@ -0,0 +1,22 @@ +use mdarray::{expr, grid, DSpan, Expression}; + +fn matmul(a: &DSpan, b: &DSpan, c: &mut DSpan) { + for (mut cj, bj) in c.cols_mut().zip(b.cols()) { + for (ak, bkj) in a.cols().zip(bj) { + for (cij, aik) in cj.expr_mut().zip(ak) { + *cij = aik.mul_add(*bkj, *cij); + } + } + } +} + +fn main() { + let a = expr![[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]]; + let b = expr![[0.0, 1.0], [1.0, 1.0]]; + + let mut c = grid![[0.0; 3]; 2]; + + matmul(&a, &b, &mut c); + + assert_eq!(c, expr![[4.0, 5.0, 6.0], [5.0, 7.0, 9.0]]); +} -- cgit v1.2.3-74-g4815