This projects implements a composite Reed Solomon coder based on GF((2^8)^2) in C. The sample function in main.c shows an example of usage.
- Include header:
#include "comp_rscoding.h"
- Create Table Create a pre-computed table in GF(2^8) by:
struct Tables *tables = newTables(285, 8);
- Prepare message: Put the message of length k that you would like to encode as an array, and create a message polynomial by:
struct Polynomial *mesecc_poly = newPolynomial(message_arr, k);
- Encode:
struct Polynomial *encoded_mesecc_poly = rs_encode_msg(mesecc_poly, n - k, tables);
- Decode:
struct Polynomial *corrected_message_poly = rs_correct_msg(encoded_mesecc_poly, n - k, tables, 16);
- If correction is possible, the above function will return a corrected message in
corrected_message_poly->poly_arr
If correction is possible when the message is too long or if there are too many errors, an error message will show up and the program will terminate.
printPolynomial(corrected_message_poly);
make
./main