namespace xf::blas¶
Overview¶
namespace blas { // global functions template <typename t_DataType, unsigned int t_ParEntries, int t_LastRowIdx = 0> void processUpSbMatStream(unsigned int p_n, unsigned int p_k, hls::stream<WideType<t_DataType, t_ParEntries>>& p_in, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out); template <typename t_DataType, unsigned int t_ParEntries> void processLoSbMatStream(unsigned int p_n, unsigned int p_k, hls::stream<WideType<t_DataType, t_ParEntries>>& p_in, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out); template <typename t_DataType, unsigned int t_ParEntries> void forwardSbMatStream(unsigned int p_n, unsigned int p_k, hls::stream<WideType<t_DataType, t_ParEntries>>& p_in, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out); template <typename t_DataType, unsigned int t_ParEntries> void mergeGbMatStream(unsigned int p_n, unsigned int p_ku, unsigned int p_kl, hls::stream<WideType<t_DataType, t_ParEntries>>& p_inUp, hls::stream<WideType<t_DataType, t_ParEntries>>& p_inLo, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out); template <typename t_DataType, unsigned int t_ParEntries> void readUpSbMat2Stream(unsigned int p_n, unsigned int p_k, t_DataType* p_a, hls::stream<WideType<t_DataType, t_ParEntries>>& p_outUp, hls::stream<WideType<t_DataType, t_ParEntries>>& p_outLo); template <typename t_DataType, unsigned int t_ParEntries> void readLoSbMat2Stream(unsigned int p_n, unsigned int p_k, t_DataType* p_a, hls::stream<WideType<t_DataType, t_ParEntries>>& p_outUp, hls::stream<WideType<t_DataType, t_ParEntries>>& p_outLo); template <typename t_DataType, unsigned int t_ParEntries> void readVec2GbStream(unsigned int p_n, unsigned int p_ku, unsigned int p_kl, t_DataType* p_x, hls::stream<WideType<t_DataType, t_ParEntries>>& p_outUp, hls::stream<WideType<t_DataType, t_ParEntries>>& p_outLo); template <typename t_DataType, unsigned int t_ParEntries> void readGbMat2Stream(unsigned int p_n, unsigned int p_ku, unsigned int p_kl, t_DataType* p_a, hls::stream<WideType<t_DataType, t_ParEntries>>& p_outUp, hls::stream<WideType<t_DataType, t_ParEntries>>& p_outLo); template <typename t_DataType, unsigned int t_ParEntries, unsigned int t_ParBlocks = 1> void sbmSuper2Stream(unsigned int p_n, unsigned int p_k, t_DataType* p_a, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out); template <typename t_DataType, unsigned int t_ParEntries, unsigned int t_ParBlocks = 1> void sbmSub2Stream(unsigned int p_n, unsigned int p_k, t_DataType* p_a, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out); template <typename t_DataType, unsigned int t_ParEntries, unsigned int t_ParBlocks = 1> void gbm2Stream(unsigned int p_n, unsigned int p_kl, unsigned int p_ku, t_DataType* p_a, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out); template <typename t_DataType, unsigned int t_ParEntries> void vec2GbMatStream(unsigned int p_n, unsigned int p_kl, unsigned int p_ku, t_DataType* p_x, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out); template <typename t_DataType, unsigned int t_ParEntries> void readTbMat2Stream(unsigned int p_n, unsigned int p_k, t_DataType* p_a, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out); template <typename t_DataType, unsigned int t_ParEntries> void readVec2TbStream(unsigned int p_n, unsigned int p_k, t_DataType* p_x, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out); template <typename t_DataType, unsigned int t_ParEntries, unsigned int t_ParBlocks = 1> void tbmSuper2Stream(unsigned int p_n, unsigned int p_k, t_DataType* p_a, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out); template <typename t_DataType, unsigned int t_ParEntries, unsigned int t_ParBlocks = 1> void tbmSub2Stream(unsigned int p_n, unsigned int p_k, t_DataType* p_a, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out); template <typename t_DataType, unsigned int t_ParEntries> void vec2TbUpMatStream(unsigned int p_n, unsigned int p_k, t_DataType* p_x, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out); template <typename t_DataType, unsigned int t_ParEntries> void vec2TbLoMatStream(unsigned int p_n, unsigned int p_k, t_DataType* p_x, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out); template <typename t_DataType, unsigned int t_ParEntries> void gem2Stream(unsigned int p_m, unsigned int p_n, t_DataType* p_in, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out); template <typename t_DataType, unsigned int t_ParEntries> void vec2GemStream(unsigned int p_m, unsigned int p_n, t_DataType* p_in, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out); template <typename t_DataType, unsigned int t_ParEntries> void readSymUp2Stream(unsigned int p_n, t_DataType* p_a, hls::stream<WideType<t_DataType, t_ParEntries>>& p_outSymUpTransp, hls::stream<WideType<t_DataType, t_ParEntries>>& p_outTransp, hls::stream<WideType<t_DataType, t_ParEntries>>& p_outForward); template <typename t_DataType, unsigned int t_ParEntries> void mergeSymUpMat(unsigned int p_n, hls::stream<WideType<t_DataType, t_ParEntries>>& p_inSymUpTransp, hls::stream<WideType<t_DataType, t_ParEntries>>& p_inTransp, hls::stream<WideType<t_DataType, t_ParEntries>>& p_inForward, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out); template <typename t_DataType, unsigned int t_ParEntries> void readSymLo2Stream(unsigned int p_n, t_DataType* p_a, hls::stream<WideType<t_DataType, t_ParEntries>>& p_outSymUpTransp, hls::stream<WideType<t_DataType, t_ParEntries>>& p_outTransp, hls::stream<WideType<t_DataType, t_ParEntries>>& p_outForward); template <typename t_DataType, unsigned int t_ParEntries> void mergeSymLoMat(unsigned int p_n, hls::stream<WideType<t_DataType, t_ParEntries>>& p_inSymUpTransp, hls::stream<WideType<t_DataType, t_ParEntries>>& p_inTransp, hls::stream<WideType<t_DataType, t_ParEntries>>& p_inForward, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out); template <typename t_DataType, unsigned int t_ParEntries> void readSpmUp2Stream(unsigned int p_n, t_DataType* p_a, hls::stream<WideType<t_DataType, t_ParEntries>>& p_outSymUpTransp, hls::stream<WideType<t_DataType, t_ParEntries>>& p_outTransp, hls::stream<WideType<t_DataType, t_ParEntries>>& p_outForward); template <typename t_DataType, unsigned int t_ParEntries> void readSpmLo2Stream(unsigned int p_n, t_DataType* p_a, hls::stream<WideType<t_DataType, t_ParEntries>>& p_outSymUpTransp, hls::stream<WideType<t_DataType, t_ParEntries>>& p_outTransp, hls::stream<WideType<t_DataType, t_ParEntries>>& p_outForward); template <typename t_DataType, unsigned int t_ParEntries> void symUp2Stream(unsigned int p_n, t_DataType* p_a, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out); template <typename t_DataType, unsigned int t_ParEntries> void symLo2Stream(unsigned int p_n, t_DataType* p_a, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out); template <typename t_DataType, unsigned int t_ParEntries> void spmUp2Stream(unsigned int p_n, t_DataType* p_a, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out); template <typename t_DataType, unsigned int t_ParEntries> void spmLo2Stream(unsigned int p_n, t_DataType* p_a, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out); template <typename t_DataType, unsigned int t_ParEntries> void vec2SymStream(unsigned int p_n, t_DataType* p_x, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out); template <typename t_DataType, unsigned int t_ParEntries> void transpSymUpMatBlocks(unsigned int p_blocks, hls::stream<WideType<t_DataType, t_ParEntries>>& p_in, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out); template <typename t_DataType, unsigned int t_ParEntries> void transpSymLoMatBlocks(unsigned int p_blocks, hls::stream<WideType<t_DataType, t_ParEntries>>& p_in, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out); template <typename t_DataType, unsigned int t_ParEntries> void transpMatBlocks(unsigned int p_blocks, hls::stream<WideType<t_DataType, t_ParEntries>>& p_in, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out); template <typename t_DataType, unsigned int t_ParEntries> void fwdMatBlocks(unsigned int p_blocks, hls::stream<WideType<t_DataType, t_ParEntries>>& p_in, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out); template <typename t_DataType, unsigned int t_MemWidth, unsigned int t_Rows, unsigned int t_Cols> void transpMemWordBlocks(unsigned int p_blocks, hls::stream<WideType<t_DataType, t_MemWidth>>& p_in, hls::stream<WideType<t_DataType, t_MemWidth>>& p_out); template <typename t_DataType, unsigned int t_MemWidth, unsigned int t_Rows, unsigned int t_Cols> void transpMemBlocks(unsigned int p_blocks, hls::stream<WideType<t_DataType, t_MemWidth>>& p_in, hls::stream<WideType<t_DataType, t_MemWidth>>& p_out); template <typename t_DataType, unsigned int t_ParEntries> void trmUp2Stream(unsigned int p_n, t_DataType* p_a, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out); template <typename t_DataType, unsigned int t_ParEntries> void trmLo2Stream(unsigned int p_n, t_DataType* p_a, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out); template <typename t_DataType, unsigned int t_ParEntries> void tpmUp2Stream(unsigned int p_n, t_DataType* p_a, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out); template <typename t_DataType, unsigned int t_ParEntries> void tpmLo2Stream(unsigned int p_n, t_DataType* p_a, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out); template <typename t_DataType, unsigned int t_ParEntries> void vec2TrmUpStream(unsigned int p_n, t_DataType* p_x, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out); template <typename t_DataType, unsigned int t_ParEntries> void vec2TrmLoStream(unsigned int p_n, t_DataType* p_x, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out); template <unsigned int t_NumStreams, typename t_DataType> void duplicateStream(unsigned int p_n, hls::stream<t_DataType>& p_inputStream, hls::stream<t_DataType> p_streams [t_NumStreams]); template <unsigned int t_NumStreams, typename t_DataType> void splitStream(unsigned int p_n, hls::stream<WideType<t_DataType, t_NumStreams>>& p_wideStream, hls::stream<WideType<t_DataType, 1>> p_stream [t_NumStreams]); template <unsigned int t_NumStreams, typename t_DataType> void combineStream(unsigned int p_n, hls::stream<WideType<t_DataType, 1>> p_stream [t_NumStreams], hls::stream<WideType<t_DataType, t_NumStreams>>& p_wideStream); template <typename t_DataType, typename t_DesDataType = t_DataType> void mem2stream(unsigned int p_n, t_DataType* p_in, hls::stream<t_DesDataType>& p_out); template <typename t_DataType, typename t_DesDataType = t_DataType> void stream2mem(unsigned int p_n, hls::stream<t_DataType>& p_in, t_DesDataType* p_out); template <typename t_DataType, unsigned int t_ParEntries> void readVec2Stream(t_DataType* p_in, unsigned int p_n, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out); template <typename t_DataType, unsigned int t_ParEntries> void writeStream2Vec(hls::stream<WideType<t_DataType, t_ParEntries>>& p_in, unsigned int p_n, t_DataType* p_out); } // namespace blas
Detailed Documentation¶
Global Functions¶
sbmSuper2Stream¶
template <typename t_DataType, unsigned int t_ParEntries, unsigned int t_ParBlocks = 1> void sbmSuper2Stream(unsigned int p_n, unsigned int p_k, t_DataType* p_a, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out)
sbmSuper2Stream function that moves symmetric banded matrix with super diagonals from memory to stream
Parameters:
t_DataType | the data type of the matrix entries |
t_ParEntries | number of parallelly processed entries in the matrix |
t_ParBlocks | number of t_ParEntries, p_n must be multiple t_ParEntries * t_ParBlocks |
p_n | number of rows/cols in a square matrix |
p_k | number of superdiagonals |
p_a | a p_n x p_n symmetric banded matrix with on-chip column-major storage and corresponding 0 paddings |
p_out | output stream, which is row-aligned with 0 paddings along subdiagonals |
sbmSub2Stream¶
template <typename t_DataType, unsigned int t_ParEntries, unsigned int t_ParBlocks = 1> void sbmSub2Stream(unsigned int p_n, unsigned int p_k, t_DataType* p_a, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out)
sbmSub2Stream function that moves symmetric banded matrix with sub diagonals from memory to stream
Parameters:
t_DataType | the data type of the matrix entries |
t_ParEntries | number of parallelly processed entries in the matrix |
t_ParBlocks | number of t_ParEntries, p_n must be multiple t_ParEntries * t_ParBlocks |
p_n | number of rows/cols in a square matrix |
p_k | number of subdiagonals |
p_a | a p_n x p_n symmetric banded matrix with on-chip column-major storage and corresponding 0 paddings |
p_out | output stream, which is row-aligned with 0 paddings along subdiagonals |
gbm2Stream¶
template <typename t_DataType, unsigned int t_ParEntries, unsigned int t_ParBlocks = 1> void gbm2Stream(unsigned int p_n, unsigned int p_kl, unsigned int p_ku, t_DataType* p_a, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out)
gbm2Stream function that moves symmetric banded matrix with from memory to stream
Parameters:
t_DataType | the data type of the matrix entries |
t_ParEntries | number of parallelly processed entries in the matrix |
t_ParBlocks | number of t_ParEntries, p_n must be multiple t_ParEntries * t_ParBlocks |
p_n | number of rows/cols in a square matrix |
p_kl | number of subdiagonals |
p_ku | number of superdiagonals |
p_a | a p_m x p_n symmetric banded matrix with on-chip column-major storage and corresponding 0 paddings |
p_out | output stream, which is row-aligned with 0 paddings along subdiagonals |
vec2GbMatStream¶
template <typename t_DataType, unsigned int t_ParEntries> void vec2GbMatStream(unsigned int p_n, unsigned int p_kl, unsigned int p_ku, t_DataType* p_x, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out)
vec2SbMatStream function that moves vector from memory to stream that matches the sbMat2Stream outputs
Parameters:
t_DataType | the data type of the matrix entries |
t_ParEntries | number of parallelly processed entries in the matrix |
p_n | number of rows/cols in a square matrix |
p_ku | number of superdiagonals |
p_kl | number of subdiagonals |
p_x | vector input |
p_out | output stream, which matches the outputs of gbMat2Stream or sbMat2Stream |
tbmSuper2Stream¶
template <typename t_DataType, unsigned int t_ParEntries, unsigned int t_ParBlocks = 1> void tbmSuper2Stream(unsigned int p_n, unsigned int p_k, t_DataType* p_a, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out)
tbmSuper2Stream function that moves triangular banded matrix with super diagonals from memory to stream
Parameters:
t_DataType | the data type of the matrix entries |
t_ParEntries | number of parallelly processed entries in the matrix |
t_ParBlocks | number of t_ParEntries, p_n must be multiple t_ParEntries * t_ParBlocks |
p_n | number of rows/cols in a square matrix |
p_k | number of superdiagonals |
p_a | a p_n x p_n triangular banded matrix with on-chip column-major storage and corresponding 0 paddings |
p_out | output stream, which is row-aligned with 0 paddings along subdiagonals |
tbmSub2Stream¶
template <typename t_DataType, unsigned int t_ParEntries, unsigned int t_ParBlocks = 1> void tbmSub2Stream(unsigned int p_n, unsigned int p_k, t_DataType* p_a, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out)
tbmSub2Stream function that moves triangular banded matrix with sub diagonals from memory to stream
Parameters:
t_DataType | the data type of the matrix entries |
t_ParEntries | number of parallelly processed entries in the matrix |
t_ParBlocks | number of t_ParEntries, p_n must be multiple t_ParEntries * t_ParBlocks |
p_n | number of rows/cols in a square matrix |
p_k | number of subdiagonals |
p_a | a p_n x p_n triangular banded matrix with on-chip column-major storage and corresponding 0 paddings |
p_out | output stream, which is row-aligned with 0 paddings along subdiagonals |
vec2TbUpMatStream¶
template <typename t_DataType, unsigned int t_ParEntries> void vec2TbUpMatStream(unsigned int p_n, unsigned int p_k, t_DataType* p_x, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out)
vec2TbUpMatStream function that moves vector from memory to stream that matches the sbMat2Stream outputs
Parameters:
t_DataType | the data type of the matrix entries |
t_ParEntries | number of parallelly processed entries in the matrix |
p_n | number of rows/cols in a square matrix |
p_k | number of super/sub-diagonals |
p_x | vector input |
p_out | output stream |
vec2TbLoMatStream¶
template <typename t_DataType, unsigned int t_ParEntries> void vec2TbLoMatStream(unsigned int p_n, unsigned int p_k, t_DataType* p_x, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out)
vec2TbLoMatStream function that moves vector from memory to stream that matches the sbMat2Stream outputs
Parameters:
t_DataType | the data type of the matrix entries |
t_ParEntries | number of parallelly processed entries in the matrix |
p_n | number of rows/cols in a square matrix |
p_k | number of sub-diagonals |
p_x | vector input |
p_out | output stream |
gem2Stream¶
template <typename t_DataType, unsigned int t_ParEntries> void gem2Stream(unsigned int p_m, unsigned int p_n, t_DataType* p_in, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out)
gem2Stream function that moves row-major matrix from memory to stream
Parameters:
t_DataType | the data type of the matrix entries |
t_ParEntries | number of parallelly processed entries in the matrix |
p_m | number of rows in a matrix |
p_n | number of cols in a matrix |
p_in | a p_m x p_n matrix with on-chip row-major storage |
p_out | output stream |
vec2GemStream¶
template <typename t_DataType, unsigned int t_ParEntries> void vec2GemStream(unsigned int p_m, unsigned int p_n, t_DataType* p_in, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out)
vec2GemStream function that moves vector from memory to stream that matches the gem2Stream outputs
Parameters:
t_DataType | the data type of the matrix entries |
t_ParEntries | number of parallelly processed entries in the matrix |
p_m | number of rows in a matrix |
p_n | number of cols in a matrix |
p_in | vector input |
p_out | output stream |
symUp2Stream¶
template <typename t_DataType, unsigned int t_ParEntries> void symUp2Stream(unsigned int p_n, t_DataType* p_a, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out)
symUp2Stream function that moves super-symmetric matrix from memory to stream
Parameters:
t_DataType | the data type of the matrix entries |
t_ParEntries | number of parallel processed entries in the matrix |
p_n | number of rows/cols in a symmetric matrix |
p_a | point to a p_n x p_n symmetric matrix |
p_out | output stream |
symLo2Stream¶
template <typename t_DataType, unsigned int t_ParEntries> void symLo2Stream(unsigned int p_n, t_DataType* p_a, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out)
symLo2Stream function that moves sub-symmetric matrix from memory to stream
Parameters:
t_DataType | the data type of the matrix entries |
t_ParEntries | number of parallel processed entries in the matrix |
p_n | number of rows/cols in a symmetric matrix |
p_a | point to a p_n x p_n symmetric matrix |
p_out | output stream |
spmUp2Stream¶
template <typename t_DataType, unsigned int t_ParEntries> void spmUp2Stream(unsigned int p_n, t_DataType* p_a, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out)
spmUp2Stream function that moves packed super-symmetric matrix from memory to stream
Parameters:
t_DataType | the data type of the matrix entries |
t_ParEntries | number of parallel processed entries in the matrix |
p_n | number of rows/cols in a symmetric matrix |
p_a | point to a p_n x p_n symmetric matrix |
p_out | output stream |
spmLo2Stream¶
template <typename t_DataType, unsigned int t_ParEntries> void spmLo2Stream(unsigned int p_n, t_DataType* p_a, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out)
spmLo2Stream function that moves packed sub-symmetric matrix from memory to stream
Parameters:
t_DataType | the data type of the matrix entries |
t_ParEntries | number of parallel processed entries in the matrix |
p_n | number of rows/cols in a symmetric matrix |
p_a | point to a p_n x p_n symmetric matrix |
p_out | output stream |
vec2SymStream¶
template <typename t_DataType, unsigned int t_ParEntries> void vec2SymStream(unsigned int p_n, t_DataType* p_x, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out)
vec2SymStream function that moves vector from memory to stream that matches the symatrix matrix data mover outputs
Parameters:
t_DataType | the data type of the matrix entries |
t_ParEntries | number of parallelly processed entries in the matrix |
p_n | number of rows/cols in a square matrix |
p_x | vector input |
p_out | output stream |
trmUp2Stream¶
template <typename t_DataType, unsigned int t_ParEntries> void trmUp2Stream(unsigned int p_n, t_DataType* p_a, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out)
trmUp2Stream function that read the super-triangular matrix from memory to stream
Parameters:
t_DataType | the data type of the matrix entries |
t_ParEntries | the number of parallelly processed entries in the matrix |
p_n | number of rows/cols in a symmetric matrix |
p_a | memory location of a p_n x p_n symmetric matrix |
p_out | the streams of matrix entries |
trmLo2Stream¶
template <typename t_DataType, unsigned int t_ParEntries> void trmLo2Stream(unsigned int p_n, t_DataType* p_a, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out)
trmLo2Stream function that read the sub-tridiagonal matrix with from memory to stream
Parameters:
t_DataType | the data type of the matrix entries |
t_ParEntries | the number of parallelly processed entries in the matrix |
p_n | number of rows/cols in a symmetric matrix |
p_a | memory location of a p_n x p_n symmetric matrix |
p_out | the streams of matrix entries |
tpmUp2Stream¶
template <typename t_DataType, unsigned int t_ParEntries> void tpmUp2Stream(unsigned int p_n, t_DataType* p_a, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out)
tpmUp2Stream function that read the packed super-triangular matrix from memory to stream
Parameters:
t_DataType | the data type of the matrix entries |
t_ParEntries | the number of parallelly processed entries in the matrix |
p_n | number of rows/cols in a symmetric matrix |
p_a | memory location of a p_n x p_n symmetric matrix |
p_out | the streams of matrix entries |
tpmLo2Stream¶
template <typename t_DataType, unsigned int t_ParEntries> void tpmLo2Stream(unsigned int p_n, t_DataType* p_a, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out)
tpmLo2Stream function that read the packed sub-symmetric matrix with from memory to stream
Parameters:
t_DataType | the data type of the matrix entries |
t_ParEntries | the number of parallelly processed entries in the matrix |
p_n | number of rows/cols in a symmetric matrix |
p_a | memory location of a p_n x p_n symmetric matrix |
p_out | the streams of matrix entries |
vec2TrmUpStream¶
template <typename t_DataType, unsigned int t_ParEntries> void vec2TrmUpStream(unsigned int p_n, t_DataType* p_x, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out)
vec2TrmUpStream function that moves vector from memory to stream that matches the trmUp2Stream/tpmUp2Stream outputs
Parameters:
t_DataType | the data type of the matrix entries |
t_ParEntries | number of parallelly processed entries in the matrix |
p_n | number of rows/cols in a square matrix |
p_x | vector input |
p_out | output stream |
vec2TrmLoStream¶
template <typename t_DataType, unsigned int t_ParEntries> void vec2TrmLoStream(unsigned int p_n, t_DataType* p_x, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out)
vec2TrmLoStream function that moves vector from memory to stream that matches the trmLo2Stream/tpmLo2Stream outputs
Parameters:
t_DataType | the data type of the matrix entries |
t_ParEntries | number of parallelly processed entries in the matrix |
p_n | number of rows/cols in a square matrix |
p_x | vector input |
p_out | output stream |
readVec2Stream¶
template <typename t_DataType, unsigned int t_ParEntries> void readVec2Stream(t_DataType* p_in, unsigned int p_n, hls::stream<WideType<t_DataType, t_ParEntries>>& p_out)
readVec2Stream function that moves vector from memory to stream
Parameters:
t_DataType | the data type of the matrix entries |
t_ParEntries | number of parallelly processed entries in the matrix |
p_n | number of entries in a vectpr |
p_in | vector input |
p_out | output stream |
writeStream2Vec¶
template <typename t_DataType, unsigned int t_ParEntries> void writeStream2Vec(hls::stream<WideType<t_DataType, t_ParEntries>>& p_in, unsigned int p_n, t_DataType* p_out)
writeStream2Vec function that moves vector from stream to vector
Parameters:
t_DataType | the data type of the matrix entries |
t_ParEntries | number of parallelly processed entries in the matrix |
p_n | number of entries in a vectpr |
p_in | vector stream input |
p_out | vector output memory |