#ifndef _RAR_RS_#define _RAR_RS_#define MAXPAR 255 // Maximum parity data size.#define MAXPOL 512 // Maximum polynomial degree.classRSCoder{private:voidgfInit();intgfMult(inta,intb);voidpnInit();voidpnMult(int*p1,int*p2,int*r);intgfExp[MAXPOL];// Galois field exponents.intgfLog[MAXPAR+1];// Galois field logarithms.intGXPol[MAXPOL*2];// Generator polynomial g(x).intErrorLocs[MAXPAR+1],ErrCount;intDnm[MAXPAR+1];intParSize;// Parity bytes size and so the number of recovery volumes.intELPol[MAXPOL];// Error locator polynomial.boolFirstBlockDone;public:RSCoder(intParSize);voidEncode(byte*Data,intDataSize,byte*DestData);boolDecode(byte*Data,intDataSize,int*EraLoc,intEraSize);};#endif