Skip to main content

mat_mul

Function mat_mul 

Source
pub fn mat_mul<T: BlasMul>(
    a: &Matrix<T>,
    b: &Matrix<T>,
) -> Result<Matrix<T>, MatrixMulError>
Expand description

Matrix multiplication: A * B.

Uses BLAS-backed einsum via tenferro for high performance.

§Errors

Returns an error when the operation fails (a shape or index mismatch, or /// a backend failure).

§Examples

use tensor4all_tensorbackend::{from_vec2d, 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).unwrap();
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);