syr

@trusted pure @nogc nothrow
void
syr
(
T
SliceKind kindA
SliceKind kindC
)
(
Uplo uplo
,,
Slice!(const(T)*, 1, kindA) a
,
Slice!(T*, 2, kindC) c
)

Examples

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));