Skip to content
Snippets Groups Projects
Commit 04bc7c6d authored by Steffen Müthing's avatar Steffen Müthing
Browse files

[Kernels] Only clear out target vector once in ELL mv kernel

parent 03450a71
No related branches found
No related tags found
No related merge requests found
......@@ -51,10 +51,14 @@ namespace Dune {
for (size_type block = 0; block < n; ++block)
{
size_type cols = (mat_block_offset[block+1] - mat_block_offset[block]) >> Memory::block_size_log2<kernel_block_size>::value;
// zero out existing values
for (int i = 0; i < kernel_block_size; ++i)
y[block*kernel_block_size + i] = 0;
// accumulate matrix-vector product
for (int j = 0; j < cols; ++j)
{
for (int i = 0; i < kernel_block_size; ++i)
y[block*kernel_block_size + i] = 0;
for (int i = 0; i < kernel_block_size; ++i)
y[block*kernel_block_size + i] += mat_data[offset*kernel_block_size + kernel_block_size*j+i] * x[mat_col[offset*kernel_block_size + kernel_block_size*j+i]];
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment