import mir.algorithm.iteration: equal;
import mir.ndslice.allocation: uninitSlice;
import mir.ndslice.slice: sliced;
import mir.ndslice.topology: stairs;
auto result = [8.0, 14, 8].sliced;
auto A = [1.0, 2, 3, 1, 2, 1].stairs!"+"(3);
auto x = [1.0, 2, 3].sliced;
auto output = uninitSlice!double(3);
spmv(1.0, A, x, 0.0, output);
assert(output.equal(result));
import mir.algorithm.iteration: equal;
import mir.ndslice.allocation: uninitSlice;
import mir.ndslice.slice: sliced;
import mir.ndslice.topology: stairs;
auto result = [14.0, 10, 10].sliced;
auto A = [1.0, 2, 3, 1, 2, 1].stairs!"-"(3);
auto x = [1.0, 2, 3].sliced;
auto output = uninitSlice!double(3);
spmv(1.0, A, x, 0.0, output);
assert(output.equal(result));