TSparseMtx.Diag Method

procedure Diag(const Vec: TVec; kk: Integer);

Copies the kk-th diagonal of TSparseMtx to the Vec object.

#NameTypeDescription
1VecTVec
2kkInteger

Result: stored in self (calling object)

Remarks:

Copies the kk-th diagonal of TSparseMtx to the Vec object. If k = 0 then the main diagonal matrix is obtained, if k < 0 then the k-th subdiagonal matrix is obtained and if k > 0 the then the k-th super diagonal is copied to Vec. The Vec parameters size is set automatically.

Examples
uses MtxExpr, Sparse;

procedure Example;
var asp, bsp: TSparseMtx;
csp, dsp: TSparseMtx;
d: Vector;
begin
    // ...
    // #1 : split asp into lower(bsp), upper(csp) and diagonal(d) sections
    bsp.LowerTriangle(asp);
    csp.UpperTriangle(asp);
    asp.Diag(d);
    // now combine lower(bsp), upper, and diagonal(d) back
    dsp.AddSplit(bsp,d,csp);
    // should be equal
    if not asp.Equal(dsp) then Eraise('Not Equal!');
end;