From db5f26fb038a61975c7fffd506d7738864b7a3ea Mon Sep 17 00:00:00 2001 From: sebasv Date: Thu, 24 Jan 2019 11:56:31 +0100 Subject: [PATCH 1/3] fix following parameter specification --- src/linalg/impl_linalg.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/linalg/impl_linalg.rs b/src/linalg/impl_linalg.rs index 6e8bbca44..6c63eb576 100644 --- a/src/linalg/impl_linalg.rs +++ b/src/linalg/impl_linalg.rs @@ -588,8 +588,8 @@ pub fn general_mat_vec_mul(alpha: A, { let a_trans = CblasNoTrans; let a_stride = match layout { - CBLAS_LAYOUT::CblasRowMajor => a.strides()[0] as blas_index, - CBLAS_LAYOUT::CblasColMajor => a.strides()[1] as blas_index, + CBLAS_LAYOUT::CblasRowMajor => a.strides()[0].max(k as isize) as blas_index, + CBLAS_LAYOUT::CblasColMajor => a.strides()[1].max(m as isize) as blas_index, }; let x_stride = x.strides()[0] as blas_index; From b101a2714b1200ffe84ae2b012d46e33b943ef78 Mon Sep 17 00:00:00 2001 From: sebasv Date: Thu, 24 Jan 2019 12:07:12 +0100 Subject: [PATCH 2/3] TEST: Add test for blas mat-vec product of column/row matrices --- blas-tests/tests/oper.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/blas-tests/tests/oper.rs b/blas-tests/tests/oper.rs index 80526e4d8..48f563898 100644 --- a/blas-tests/tests/oper.rs +++ b/blas-tests/tests/oper.rs @@ -87,6 +87,14 @@ fn dot_product() { assert_eq!(a.dot(&b), dot as i32); } +#[test] +fn mat_vec_product_1d() { + let a = arr2(&[[1.], [2.]]); + let b = arr1(&[1., 2.]); + let ans = arr1(&[5.]); + assert_eq!(a.t().dot(&b), ans); +} + // test that we can dot product with a broadcast array #[test] fn dot_product_0() { From a5fe62405682477f1e01ebb070ba79536dff7fe6 Mon Sep 17 00:00:00 2001 From: bluss Date: Tue, 3 Sep 2019 23:08:24 +0200 Subject: [PATCH 3/3] FIX: Code formatting for gemv --- src/linalg/impl_linalg.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/linalg/impl_linalg.rs b/src/linalg/impl_linalg.rs index 6c63eb576..d61d3e69a 100644 --- a/src/linalg/impl_linalg.rs +++ b/src/linalg/impl_linalg.rs @@ -588,8 +588,12 @@ pub fn general_mat_vec_mul(alpha: A, { let a_trans = CblasNoTrans; let a_stride = match layout { - CBLAS_LAYOUT::CblasRowMajor => a.strides()[0].max(k as isize) as blas_index, - CBLAS_LAYOUT::CblasColMajor => a.strides()[1].max(m as isize) as blas_index, + CBLAS_LAYOUT::CblasRowMajor => { + a.strides()[0].max(k as isize) as blas_index + } + CBLAS_LAYOUT::CblasColMajor => { + a.strides()[1].max(m as isize) as blas_index + } }; let x_stride = x.strides()[0] as blas_index;