pub fn mat_mul<T: Scalar>(a: &Matrix<T>, b: &Matrix<T>) -> Matrix<T>Expand description
Matrix multiplication: A * B.
Uses BLAS-backed einsum via tenferro for high performance.
§Panics
Panics if a.ncols() != b.nrows().
§Examples
use tensor4all_tcicore::{from_vec2d, matrix::mat_mul};
let a = from_vec2d(vec![vec![1.0_f64, 2.0], vec![3.0, 4.0]]);
let b = from_vec2d(vec![vec![5.0, 6.0], vec![7.0, 8.0]]);
let c = mat_mul(&a, &b);
assert!((c[[0, 0]] - 19.0).abs() < 1e-10);
assert!((c[[0, 1]] - 22.0).abs() < 1e-10);
assert!((c[[1, 0]] - 43.0).abs() < 1e-10);
assert!((c[[1, 1]] - 50.0).abs() < 1e-10);