namespace internal

// unions

union double_cast_new
union double_casting

// classes

template <typename T>
class Trait

template <>
class Trait <double>

template <>
class Trait <float>

calc_converge

#include "MatrixDecomposition/gesvj.hpp"
template <typename T>
void calc_converge (
    T alpha,
    T beta,
    T gamma,
    hls::stream <T>& conv_strm
    )

calc the converge of next sweep

read_and_gen_2x2

#include "MatrixDecomposition/gesvj.hpp"
template <
    typename T,
    int NRMAX,
    int NCMAX,
    int MCU,
    int ACUM
    >
void read_and_gen_2x2 (
    T matA [MCU][ACUM][NCMAX],
    T A_i [MCU][ACUM],
    T A_j [MCU][ACUM],
    int m,
    int n,
    int col_i,
    int col_j,
    hls::stream <T>& alpha_strm,
    hls::stream <T>& beta_strm,
    hls::stream <T>& gamma_strm
    )

Read two columns of A into two seperate Bram.

read_V_2cols

#include "MatrixDecomposition/gesvj.hpp"
template <
    typename T,
    int NCMAX,
    int NCU,
    int ACUN
    >
void read_V_2cols (
    T matV [NCU][ACUN][NCMAX],
    T V_i [NCU][ACUN],
    T V_j [NCU][ACUN],
    int n,
    int col_i,
    int col_j
    )

Read two columns (i and j) of V into two seperate Bram V_i[N] and V_j[N].

read_to_2cols

#include "MatrixDecomposition/gesvj.hpp"
template <
    typename T,
    int NRMAX,
    int NCMAX,
    int MCU,
    int ACUM,
    int NCU,
    int ACUN
    >
void read_to_2cols (
    T matA [MCU][ACUM][NCMAX],
    T matV [NCU][ACUN][NCMAX],
    T A_i [MCU][ACUM],
    T A_j [MCU][ACUM],
    T V_i [NCU][ACUN],
    T V_j [NCU][ACUN],
    int m,
    int n,
    int col_i,
    int col_j,
    hls::stream <T>& alpha_strm,
    hls::stream <T>& beta_strm,
    hls::stream <T>& gamma_strm
    )

read 2 columns(i and j) of data from A matrix and V matrix