#pragma once
class Red_Solomon
{
private:
#define mm  8 // степень RS-полинома (согласно Стандарта ECMA-130 – восемь)
#define nn  255          /* nn=2**mm -1    (длина кодового слова) */
#define tt  8           /* number of errors that can be corrected */
#define kk  239           /* kk = nn-2*tt  */

	int pp [mm]  ; /* specify irreducible polynomial coeffts */
	int alpha_to [nn+1], index_of [nn+1], gg [nn-kk+1] ;
	int recd[nn] ;
	int data [kk], bb [nn-kk] ;
	bool error;
	void gen_gf();
	void gen_poly();
	void encode_rs();
	void decode_rs();
public:
	bool decode(char *dat,char *prov);
	Red_Solomon(void);
	~Red_Solomon(void);
};

