From 62c702be14e3839c429af79c8aa0ae1c2639517b Mon Sep 17 00:00:00 2001 From: jalvesz Date: Sat, 19 Oct 2024 15:17:04 +0200 Subject: [PATCH] unit test in-place transpose --- test/linalg/test_sparse_spmv.fypp | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/test/linalg/test_sparse_spmv.fypp b/test/linalg/test_sparse_spmv.fypp index 1be0c778b..f1fac9e2c 100644 --- a/test/linalg/test_sparse_spmv.fypp +++ b/test/linalg/test_sparse_spmv.fypp @@ -61,6 +61,12 @@ contains call spmv( COO, vec_x, vec_y2 ) call check(error, all(vec_y1 == vec_y2) ) if (allocated(error)) return + + ! Test in-place transpose + vec_y1 = 1._wp + call spmv( COO, vec_y1, vec_x, op=sparse_op_transpose ) + call check(error, all(vec_x == real([17,15,4,14,-3],kind=wp)) ) + if (allocated(error)) return end block #:endfor end subroutine @@ -114,6 +120,12 @@ contains call check(error, all(vec_y == real([6,11,15,15],kind=wp)) ) if (allocated(error)) return + + ! Test in-place transpose + vec_y = 1._wp + call spmv( CSR, vec_y, vec_x, op=sparse_op_transpose ) + call check(error, all(vec_x == real([17,15,4,14,-3],kind=wp)) ) + if (allocated(error)) return end block #:endfor end subroutine @@ -139,6 +151,12 @@ contains call check(error, all(vec_y == real([6,11,15,15],kind=wp)) ) if (allocated(error)) return + + ! Test in-place transpose + vec_y = 1._wp + call spmv( CSC, vec_y, vec_x, op=sparse_op_transpose ) + call check(error, all(vec_x == real([17,15,4,14,-3],kind=wp)) ) + if (allocated(error)) return end block #:endfor end subroutine @@ -170,6 +188,12 @@ contains call check(error, all(vec_y == real([6,11,15,15],kind=wp)) ) if (allocated(error)) return + + ! Test in-place transpose + vec_y = 1._wp + call spmv( ELL, vec_y, vec_x, op=sparse_op_transpose ) + call check(error, all(vec_x == real([17,15,4,14,-3],kind=wp)) ) + if (allocated(error)) return end block #:endfor