#include "MatrixDecomposition/gesvdj.hpp"
template < typename T, int NMAX, int NCU > void gesvdj ( int m, T* A, int lda, T* S, T* U, int ldu, T* V, int ldv, int& info )
Symmetric Matrix Jacobi based Singular Value Decomposition (GESVDJ) .
\[\begin{equation*} {A = U \Sigma {V}^T}\end{equation*}\]
where \(A\) is a dense symmetric matrix of size \(m \times m\) , \(U\) and \(V\) are \(m \times m\) matrix with orthonormal columns, and \(\Sigma\) is diagonal matrix.
The maximum matrix size supported in FPGA is templated by NMAX.
Parameters:
T | data type (support float and double). |
NMAX | maximum number of rows/columns of input matrix |
NCU | number of computation unit |
m | number of rows/cols of matrix A |
A | input matrix of size \(m \times m\) |
S | decomposed diagonal singular matrix of size \(m \times m\) |
U | left U matrix of SVD |
V | right V matrix of SVD |
lda | leading dimension of matrix A |
ldu | leading dimension of matrix U |
ldv | leading dimension of matrix V |
info | output info (unused) |