Function russell_lab::matrix::mat_t_mat_mul
source · pub fn mat_t_mat_mul(
c: &mut Matrix,
alpha: f64,
a: &Matrix,
b: &Matrix,
beta: f64
) -> Result<(), StrError>
Expand description
(dgemm) Performs the transpose(matrix)-matrix multiplication
c := α aᵀ ⋅ b + β c
(m,n) (m,k) (k,n) (m,n)
a:(k,m)
See also: https://www.netlib.org/lapack/explore-html/d7/d2b/dgemm_8f.html
§Examples
use russell_lab::{mat_t_mat_mul, Matrix, StrError};
fn main() -> Result<(), StrError> {
let a = Matrix::from(&[
[1.0, 3.0, 5.0],
[2.0, 4.0, 6.0],
]);
let b = Matrix::from(&[
[-1.0, -2.0, -3.0],
[-4.0, -5.0, -6.0],
]);
let mut c = Matrix::new(3, 3);
mat_t_mat_mul(&mut c, 1.0, &a, &b, 0.0)?;
let correct = "┌ ┐\n\
│ -9 -12 -15 │\n\
│ -19 -26 -33 │\n\
│ -29 -40 -51 │\n\
└ ┘";
assert_eq!(format!("{}", c), correct);
Ok(())
}