template <typename t_DataType, unsigned int t_LogParEntries, typename t_IndexType = unsigned int> void gemv(const unsigned int p_m, const unsigned int p_n, const t_DataType p_alpha, hls::stream<WideType<t_DataType,(1<<t_LogParEntries)>>& p_M, hls::stream<WideType<t_DataType,(1<<t_LogParEntries)>>& p_x, const t_DataType p_beta, hls::stream<WideType<t_DataType, 1>>& p_y, hls::stream<WideType<t_DataType, 1>>& p_yr)
gemv function that returns the result vector of the multiplication of a matrix and a vector y = alpha * M * x + beta * y
Parameters:
t_DataType | the data type of the vector entries |
t_LogParEntries | log2 of the number of parallelly processed entries in the input vector |
t_IndexType | the datatype of the index |
p_m | the number of rows of input matrix p_M |
p_n | the number of cols of input matrix p_M, as well as the number of entries in the input vector p_x, p_n % l_ParEntries == 0 |
p_alpha | scalar alpha |
p_M | the input stream of packed Matrix entries |
p_x | the input stream of packed vector entries |
p_beta | scalar beta |
p_y | the output vector |