16 lines
554 B
C
16 lines
554 B
C
#if !defined(_bch15_5_H)
|
|
# define _bch15_5_H (1)
|
|
|
|
/*Encodes a raw 5-bit value _x into a 15-bit BCH(15,5) code.
|
|
This is capable of correcting up to 3 bit errors, and detecting as many as
|
|
5 bit errors in some cases.*/
|
|
unsigned bch15_5_encode(unsigned _x);
|
|
|
|
/*Corrects the received code *_y, if possible.
|
|
The original data is located in the top five bits.
|
|
Returns the number of errors corrected, or a negative value if decoding
|
|
failed due to too many bit errors, in which case *_y is left unchanged.*/
|
|
int bch15_5_correct(unsigned *_y);
|
|
|
|
#endif
|