unsigned char()

in src/transport/fec_schemes/xqc_galois_calculation.c [229:253]


    unsigned char (*left)[XQC_RSM_COL],
    unsigned char right_row, unsigned char right_col,
    unsigned char (*right)[XQC_RSM_COL],
    unsigned char output_row, unsigned char output_col,
    unsigned char (*output)[XQC_RSM_COL])
{
    unsigned char value = 0;
    if (left_col != right_row
        || left_row > output_row
        || right_col > output_col)
    {
        /* invalid matrix multiplication. */
        return -XQC_EPARAM;
    }
    for (int row_i = 0; row_i < left_row; row_i++) {
        for(int col_i = 0; col_i < right_col; col_i++) {
            value = 0;
            for (int i = 0; i < left_col; i++) {
                value ^= xqc_galois_multiply(left[row_i][i], right[i][col_i]);
            }
            output[row_i][col_i] = value;
        }
    }
    return XQC_OK;
}