gesvj - 2023.2 English

Vitis Libraries

Release Date
2023-12-20
Version
2023.2 English
#include "MatrixDecomposition/gesvj.hpp"
template <
    typename T,
    int NRMAX,
    int NCMAX,
    int MCU,
    int NCU
    >
void gesvj (
    int m,
    int n,
    T* A,
    T* U,
    T* S,
    T* V
    )

This function implements singular value decomposition of matrix A using one-sided Jacobi algorihtm.

\[\begin{equation*} {A = U \Sigma {V}^T}\end{equation*}\]

where \(A\) is a dense matrix of size \(m \times n\) , \(U\) is \(m \times m\) matrix with orthonormal columns, \(V\) is \(n \times n\) matrix with orthonormal columns, and \(\Sigma\) is diagonal matrix.

The maximum matrix size supported in FPGA is templated by NCMAX, NRMAX.

Parameters:

T  
: the data type of gesvj
NRMAX maximum number of rows of input matrix
NCMAX maximum number of columns of input matrix
MCU number of computation unit of M
NCU number of computation unit of N
m number of rows of matrix A
n number of cols of matrix A
A input matrix of size \(m \times n\)
S decomposed diagonal singular matrix of size n
U left U matrix of SVD of size \(m \times m\)
V right V matrix of SVD \(n \times n\)