#include "EigenSolver/syevj.hpp"
template < typename T, int NMAX, int NCU > void syevj ( int m, T* A, int lda, T* S, T* U, int ldu, int& info )
Symmetric Matrix Jacobi based Eigenvalue Decomposition (SYEVJ) .
\[\begin{equation*} {A U = U \Sigma, }\end{equation*}\]
where \(A\) is a dense symmetric matrix of size \(m \times m\) , \(U\) is a \(m \times m\) matrix with orthonormal columns, each column of U is the eigenvector \(v_{i}\) , and \(\Sigma\) is diagonal matrix, which contains the eigenvalues \(\lambda_{i}\) of matrix A.
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 |
lda | leading dimension of matrix A |
ldu | leading dimension of matrix U |
info | output info (unused) |