342"void custom_inner_prod(__local const float* A, __global float* v, unsigned int col_ind, unsigned int row_num, unsigned int start_ind, float* res){\n"
343" for(unsigned int i = start_ind; i < row_num; ++i){\n"
344" *res += A[col_ind*row_num + i]*v[i]; \n"
345" }\n"
346"}\n"
347"// \n"
348"void apply_householder_reflection(__local float* A, unsigned int row_n, unsigned int col_n, unsigned int iter_cnt, __global float* v, float b){\n"
349" float in_prod_res;\n"
350" for(unsigned int i= iter_cnt + get_local_id(0); i < col_n; i+=get_local_size(0)){\n"
351" in_prod_res = 0.0;\n"
352" custom_inner_prod(A, v, i, row_n, iter_cnt, &in_prod_res);\n"
353" for(unsigned int j = iter_cnt; j < row_n; ++j){\n"
354" A[ i*row_n + j] -= b*in_prod_res* v[j];\n"
355" }\n"
356" }\n"
357" \n"
358"}\n"
359"void store_householder_vector(__local float* A, unsigned int ind, unsigned int n, __global float* v){\n"