6.13.14. Cholesky Solver Multiple Channels
A is a Hermitian, positive definite matrix (for example covariance matrix) and b is a column vector.
The design uses forward and backward substitution to solve x.
The design decomposes A into L*L', therefore L*L'*x = b, or L*y = b, where y = L'*x. The design solves y with forward substitution and x with backward substitution.
This design uses cycle stealing and command FIFO techniques to enhance performance. Although it targets multiple channels, it also works well with single channels.
To input the lower triangular elements of matrix A and b with the input bus, specify the column, row, and channel index of each element. The design transposes and appends the column vector b to the bottom of A and treats it as an extension of A in terms of column and row addressing.
The output is column vector x with the bottom element output first.
A multiple channel design optimizes performance by prioritizing diagonal element calculation over non-diagonal ones.
The model file is cholseky_solver_mc.mdl.