@@ -61,6 +61,12 @@ contains
61
61
call spmv( COO, vec_x, vec_y2 )
62
62
call check(error, all(vec_y1 == vec_y2) )
63
63
if (allocated(error)) return
64
+
65
+ ! Test in-place transpose
66
+ vec_y1 = 1._wp
67
+ call spmv( COO, vec_y1, vec_x, op=sparse_op_transpose )
68
+ call check(error, all(vec_x == real([17,15,4,14,-3],kind=wp)) )
69
+ if (allocated(error)) return
64
70
end block
65
71
#:endfor
66
72
end subroutine
@@ -114,6 +120,12 @@ contains
114
120
115
121
call check(error, all(vec_y == real([6,11,15,15],kind=wp)) )
116
122
if (allocated(error)) return
123
+
124
+ ! Test in-place transpose
125
+ vec_y = 1._wp
126
+ call spmv( CSR, vec_y, vec_x, op=sparse_op_transpose )
127
+ call check(error, all(vec_x == real([17,15,4,14,-3],kind=wp)) )
128
+ if (allocated(error)) return
117
129
end block
118
130
#:endfor
119
131
end subroutine
@@ -139,6 +151,12 @@ contains
139
151
140
152
call check(error, all(vec_y == real([6,11,15,15],kind=wp)) )
141
153
if (allocated(error)) return
154
+
155
+ ! Test in-place transpose
156
+ vec_y = 1._wp
157
+ call spmv( CSC, vec_y, vec_x, op=sparse_op_transpose )
158
+ call check(error, all(vec_x == real([17,15,4,14,-3],kind=wp)) )
159
+ if (allocated(error)) return
142
160
end block
143
161
#:endfor
144
162
end subroutine
@@ -170,6 +188,12 @@ contains
170
188
171
189
call check(error, all(vec_y == real([6,11,15,15],kind=wp)) )
172
190
if (allocated(error)) return
191
+
192
+ ! Test in-place transpose
193
+ vec_y = 1._wp
194
+ call spmv( ELL, vec_y, vec_x, op=sparse_op_transpose )
195
+ call check(error, all(vec_x == real([17,15,4,14,-3],kind=wp)) )
196
+ if (allocated(error)) return
173
197
end block
174
198
#:endfor
175
199
0 commit comments