# ocmath_ex_svbksb

## Description

Solves linear system using singular value backsubstitution.

## Syntax

int ocmath_ex_svbksb( double ** ppu, double * pw, double ** ppv, int m, int n, double * pb, double * px )


## Parameters

ppu
[input]the pointer to the m by n matrix U in the standard "pointer-to-rows" form,
obtained by singular value decomposition from the LHS of a linear system.
pw
[input]the pointer to the vector W of size n,
obtained by singular value decomposition from the LHS of a linear system.
ppv
[input]the pointer to the n by n matrix V in the standard "pointer-to-rows" form,
obtained by singular value decomposition from the LHS of a linear system.
m
[input]number of rows in the original matrix
n
[input]number of columns in the original matrix.
pb
[input]pointer to a vector of size m holding the RHS of the linear system.
px
[output]pointer to a vector of size n which will on return receive the solution.

## Return

Returns 0 if OK, 1 if any error, for example, the values of the vector W

are so small (by absolute value) that they cannot be divided with.

## Examples

EX1

void ocmath_ex_svbksb_ex1()
{
double dArray1={2,3,5,7};
double dArray2={11,13,17,19};
double dArray3={23,29,31,37};
double *dArrayTest1;
int m = 3;
int n = 4;
dArrayTest1= dArray1;
dArrayTest1= dArray2;
dArrayTest1= dArray3;
double dArray4={2,3,5,7};
double dArray5={11,13,17,19};
double dArray6={23,29,31,37};
double dArray7={41,43,47,49};
double *dArrayTest2;
dArrayTest2=dArray4;
dArrayTest2=dArray5;
dArrayTest2=dArray6;
dArrayTest2=dArray7;
vector vW={1,2,3,4};
vector vb={1,2,3};
vector vx;
vx.SetSize(n);
int iRet = ocmath_ex_svbksb(dArrayTest1,vW,dArrayTest2,m,n,vb,vx);
}