#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) |