procedure Diag(const Vec: TVec; kk: Integer);
Copies the kk-th diagonal of TSparseMtx to the Vec object.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | Vec | TVec | |
| 2 | kk | Integer |
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;