Cholesky decomposition function, Cholesky decomposition function -3 – Altera Floating-Point User Manual
Page 27
= (LT)-1 × L-1
= (L-1)T × L-1
where a Cholesky decomposition function is needed to obtain L, a triangular matrix inversion is needed to
obtain L-1, and a matrix multiplication is needed for (L-1)T × L-1.
Figure 2-1: Matrix Inversion Flow Diagram
A
A
L
L
-1
L
A
(L )
Matrix A
Storage 1
Storage 2
Cholesky
Decomposition
Triangular Matrix
Inversion
Matrix
Multiplication
-f
X
=
T
-1
L
-1
Cholesky Decomposition Function
The functions consists of two memory and two processing blocks. One of the memory blocks is the input
matrix memory block and is loaded with the input matrix in a row order, one element at a time. However,
during processing, this block is read in a column order, one element at a time when required.
The other memory block is the processing matrix block which consists of multiple column memories to
enable an entire row to be read at once. During the loading of the input memory, the FPC datapath
preprocesses the input elements to generate the first column of the resulting triangular matrix. The top
element of the first column, l00, is the square root of the input matrix value
a00
. The rest of the first
column,
li0
is the input value
ai0
divided by l00. This preprocessing step introduces latency into the
load, during which the
INIT_BUSY
signal is asserted. The
CALCULATE
signal initiates and starts processing
after the
INIT_BUSY
signal is deasserted.
This figure shows the top-level architecture of the Cholesky decomposition function, where the
monolithic input memory and the column-wise processing memory, also known as the vector matrix, are
shown. The gray block is the FPC datapath section.
UG-01058
2014.12.19
Cholesky Decomposition Function
2-3
ALTERA_FP_MATRIX_INV IP Core
Altera Corporation