import mir.algorithm.iteration: equal;
import mir.ndslice.allocation: slice;
import mir.ndslice.fuse: fuse;
import mir.ndslice.slice: sliced;
auto result = [
[1.0, 2, 3],
[0.0, 4, 6],
[0.0, 0, 9]
].fuse;
auto x = [1.0, 2, 3].sliced;
auto output = slice!double([3, 3], 0);
syr(Uplo.Upper, 1.0, x, output);
assert(output.equal(result));import mir.algorithm.iteration: equal;
import mir.ndslice.allocation: slice;
import mir.ndslice.fuse: fuse;
import mir.ndslice.slice: sliced;
auto result = [
[1.0, 0, 0],
[2.0, 4, 0],
[3.0, 6, 9]
].fuse;
auto x = [1.0, 2, 3].sliced;
auto output = slice!double([3, 3], 0);
syr(Uplo.Lower, 1.0, x, output);
assert(output.equal(result));