Construct sparse matrxix by summing lower, upper triangluar part and the diagonal.
Sums up the sparse matrix from its three parts: The lower triangle (LowerTriang), main diagonal (Diag) and upper triangle (UpperTriang).
Example 1
var asp, bsp,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;
#include "MtxVecCpp.h"
#include "Sparse.hpp"
void __fastcall Example()
{
Vector d;
TSparseMtx *asp = new TSparseMtx();
TSparseMtx *bsp = new TSparseMtx();
TSparseMtx *csp = new TSparseMtx();
TSparseMtx *dsp = new TSparseMtx();
// ...
// #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 (!asp->Equal(dsp)) ERaise("Not Equal!");
delete asp;
delete bsp;
delete csp;
delete dsp;
}
TSparseMtx asp = new TSparseMtx();
TSparseMtx bsp = new TSparseMtx();
TSparseMtx csp = new TSparseMtx();
TSparseMtx dsp = new TSparseMtx();
// ...
// #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);
Declaration
Procedure AddSplit(LowerTriang, UpperTriang: TSparseMtx);
Description
Sums up the sparse matrix from its lower (LoweTriang) and upper triangle (UpperTriang).