in src/transport/fec_schemes/xqc_reed_solomon.c [14:30]
unsigned char (*GM)[XQC_RSM_COL])
{
int tmp_gm_col, invert_gm_col;
unsigned char tmp_GM[XQC_RSM_COL * 2][XQC_RSM_COL] = {{0}}, invert_GM[XQC_RSM_COL][XQC_RSM_COL] = {{0}};
tmp_gm_col = invert_gm_col = XQC_RSM_COL;
xqc_build_vandermonde_matrix(total_symbol_num, src_symbol_num, tmp_GM);
/* invert GM rows corresponds to src symbols */
xqc_submatrix(0, src_symbol_num, 0, src_symbol_num, invert_gm_col, tmp_gm_col, &invert_GM[0][0], &tmp_GM[0][0]);
xqc_invert_matrix(src_symbol_num, src_symbol_num, invert_GM);
xqc_matrix_time(total_symbol_num, src_symbol_num, tmp_GM,
src_symbol_num, src_symbol_num, invert_GM,
total_symbol_num, src_symbol_num, GM);
}