Triangular matrix inversion, Matrix multiplication, Matrix inversion operation – Altera Floating-Point User Manual
Page 29: Triangular matrix inversion -5, Matrix multiplication -5, Matrix inversion operation -5

Triangular Matrix Inversion
The triangular matrix, L, obtained from the Cholesky decomposition function is computed using the
triangular matrix inversion algorithm to get its inversion. The following MatLab pseudo code shows how
the inversion is carried out:
for j = n:-1:1,
X(j,j) = 1/L(j, j);
for k = j+1:n
for i = j+1:n
X(k, j) = X(k, j) + X(k, i)*L(i, j);
end;
end;
for k = j+1:n
X(k, j) = -X(j, j)*X(k, j);
end;
The pseudo code is converted into an RTL file. The result, L-1 is stored in the input matrix storage in the
Cholesky decomposition function.
Matrix Multiplication
The final stage of the matrix inversion process involves multiplying the transpose of the inverse triangular
matrix with the inverse triangular matrix using the Altera Floating-Point Matrix Multiplier. The original
version of the matrix multiplier is modified for this purpose. As there are memory blocks already available
for the storage of the input matrices in the Cholesky decomposition function, the memory blocks in the
matrix multiplier are redundant and can be removed. Data is instead fed directly from the results stored at
the end stage of the triangular matrix inversion algorithm.
Matrix Inversion Operation
UG-01058
2014.12.19
Triangular Matrix Inversion
2-5
ALTERA_FP_MATRIX_INV IP Core
Altera Corporation