public class InnerTriangularSolver_FDRB
extends java.lang.Object
Contains triangular solvers for inner blocks of a FMatrixRBlock.
for i=1:m
for j=1:i-1
val = 0
for k=j:i-1
val = val - L(i,k) * X(k,j)
end
x(i,j) = val / L(i,i)
end
x(i,i) = 1 / L(i,i)
end
| Constructor and Description |
|---|
InnerTriangularSolver_FDRB() |
| Modifier and Type | Method and Description |
|---|---|
static void |
invertLower(float[] L,
float[] L_inv,
int m,
int offsetL,
int offsetL_inv)
Inverts a square lower triangular matrix: L = L-1
|
static void |
invertLower(float[] L,
int m,
int offsetL)
Inverts a square lower triangular matrix: L = L-1
|
static void |
solveL(float[] L,
float[] b,
int m,
int n,
int strideL,
int offsetL,
int offsetB)
Solves for non-singular lower triangular matrices using forward substitution.
|
static void |
solveLTransB(float[] L,
float[] b,
int m,
int n,
int strideL,
int offsetL,
int offsetB)
Solves for non-singular lower triangular matrices using forward substitution.
|
static void |
solveTransL(float[] L,
float[] b,
int m,
int n,
int strideL,
int offsetL,
int offsetB)
Solves for non-singular transposed lower triangular matrices using backwards substitution:
B = L-TB where B is a (m by n) matrix, L is a lower triangular (m by m) matrix. |
static void |
solveTransU(float[] U,
float[] b,
int m,
int n,
int strideU,
int offsetU,
int offsetB)
Solves for non-singular upper triangular matrices using forward substitution.
|
static void |
solveU(float[] U,
float[] b,
int m,
int n,
int strideU,
int offsetU,
int offsetB)
Solves for non-singular upper triangular matrices using backwards substitution.
|
public static void invertLower(float[] L,
float[] L_inv,
int m,
int offsetL,
int offsetL_inv)
Inverts a square lower triangular matrix: L = L-1
L - Lower triangular matrix being inverted. Not modified.L_inv - Where the inverse is stored. Can be the same as L. Modified.m - The number of rows and columns.offsetL - which index does the L matrix start at.offsetL_inv - which index does the L_inv matrix start at.public static void invertLower(float[] L,
int m,
int offsetL)
Inverts a square lower triangular matrix: L = L-1
L - Lower triangular matrix being inverted. Over written with inverted matrix. Modified.m - The number of rows and columns.offsetL - which index does the L matrix start at.public static void solveL(float[] L,
float[] b,
int m,
int n,
int strideL,
int offsetL,
int offsetB)
Solves for non-singular lower triangular matrices using forward substitution.
B = L-1B
where B is a (m by n) matrix, L is a lower triangular (m by m) matrix.
L - An m by m non-singular lower triangular matrix. Not modified.b - An m by n matrix. Modified.m - size of the L matrixn - number of columns in the B matrix.strideL - number of elements that need to be added to go to the next row in LoffsetL - initial index in L where the matrix startsoffsetB - initial index in B where the matrix startspublic static void solveTransL(float[] L,
float[] b,
int m,
int n,
int strideL,
int offsetL,
int offsetB)
Solves for non-singular transposed lower triangular matrices using backwards substitution:
B = L-TB
where B is a (m by n) matrix, L is a lower triangular (m by m) matrix.
L - An m by m non-singular lower triangular matrix. Not modified.b - An m by n matrix. Modified.m - size of the L matrixn - number of columns in the B matrix.strideL - number of elements that need to be added to go to the next row in LoffsetL - initial index in L where the matrix startsoffsetB - initial index in B where the matrix startspublic static void solveLTransB(float[] L,
float[] b,
int m,
int n,
int strideL,
int offsetL,
int offsetB)
Solves for non-singular lower triangular matrices using forward substitution.
BT = L-1BT
where B is a (n by m) matrix, L is a lower triangular (m by m) matrix.
L - An m by m non-singular lower triangular matrix. Not modified.b - An n by m matrix. Modified.m - size of the L matrixn - number of columns in the B matrix.offsetL - initial index in L where the matrix startsoffsetB - initial index in B where the matrix startspublic static void solveU(float[] U,
float[] b,
int m,
int n,
int strideU,
int offsetU,
int offsetB)
Solves for non-singular upper triangular matrices using backwards substitution.
B = U-1B
where B (m by n) is a matrix, U is a (m by m ) upper triangular matrix.
U - An m by m non-singular upper triangular matrix. Not modified.b - An m by n matrix. Modified.m - size of the L matrixn - number of columns in the B matrix.offsetU - initial index in L where the matrix startsoffsetB - initial index in B where the matrix startspublic static void solveTransU(float[] U,
float[] b,
int m,
int n,
int strideU,
int offsetU,
int offsetB)
Solves for non-singular upper triangular matrices using forward substitution.
B = U-TB
where B (m by n) is a matrix, U is a (m by m ) upper triangular matrix.
U - An m by m non-singular upper triangular matrix. Not modified.b - An m by n matrix. Modified.m - size of the L matrixn - number of columns in the B matrix.offsetU - initial index in L where the matrix startsoffsetB - initial index in B where the matrix starts