namespace solver


syevj

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