summaryrefslogtreecommitdiffstats
path: root/src/fec/encode_rs.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/fec/encode_rs.h')
-rw-r--r--src/fec/encode_rs.h58
1 files changed, 0 insertions, 58 deletions
diff --git a/src/fec/encode_rs.h b/src/fec/encode_rs.h
deleted file mode 100644
index 2c157f9..0000000
--- a/src/fec/encode_rs.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/* The guts of the Reed-Solomon encoder, meant to be #included
- * into a function body with the following typedefs, macros and variables supplied
- * according to the code parameters:
-
- * data_t - a typedef for the data symbol
- * data_t data[] - array of NN-NROOTS-PAD and type data_t to be encoded
- * data_t parity[] - an array of NROOTS and type data_t to be written with parity symbols
- * NROOTS - the number of roots in the RS code generator polynomial,
- * which is the same as the number of parity symbols in a block.
- Integer variable or literal.
- *
- * NN - the total number of symbols in a RS block. Integer variable or literal.
- * PAD - the number of pad symbols in a block. Integer variable or literal.
- * ALPHA_TO - The address of an array of NN elements to convert Galois field
- * elements in index (log) form to polynomial form. Read only.
- * INDEX_OF - The address of an array of NN elements to convert Galois field
- * elements in polynomial form to index (log) form. Read only.
- * MODNN - a function to reduce its argument modulo NN. May be inline or a macro.
- * GENPOLY - an array of NROOTS+1 elements containing the generator polynomial in index form
-
- * The memset() and memmove() functions are used. The appropriate header
- * file declaring these functions (usually <string.h>) must be included by the calling
- * program.
-
- * Copyright 2004, Phil Karn, KA9Q
- * May be used under the terms of the GNU Lesser General Public License (LGPL)
- */
-
-
-#undef A0
-#define A0 (NN) /* Special reserved value encoding zero in index form */
-
-{
- int i, j;
- data_t feedback;
-
- memset(parity,0,NROOTS*sizeof(data_t));
-
- for(i=0;i<NN-NROOTS-PAD;i++){
- feedback = INDEX_OF[data[i] ^ parity[0]];
- if(feedback != A0){ /* feedback term is non-zero */
-#ifdef UNNORMALIZED
- /* This line is unnecessary when GENPOLY[NROOTS] is unity, as it must
- * always be for the polynomials constructed by init_rs()
- */
- feedback = MODNN(NN - GENPOLY[NROOTS] + feedback);
-#endif
- for(j=1;j<NROOTS;j++)
- parity[j] ^= ALPHA_TO[MODNN(feedback + GENPOLY[NROOTS-j])];
- }
- /* Shift */
- memmove(&parity[0],&parity[1],sizeof(data_t)*(NROOTS-1));
- if(feedback != A0)
- parity[NROOTS-1] = ALPHA_TO[MODNN(feedback + GENPOLY[0])];
- else
- parity[NROOTS-1] = 0;
- }
-}