diff options
Diffstat (limited to '7zip/Compress/Rar29/Original/rs.hpp')
-rwxr-xr-x | 7zip/Compress/Rar29/Original/rs.hpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/7zip/Compress/Rar29/Original/rs.hpp b/7zip/Compress/Rar29/Original/rs.hpp new file mode 100755 index 00000000..2f099f00 --- /dev/null +++ b/7zip/Compress/Rar29/Original/rs.hpp @@ -0,0 +1,32 @@ +#ifndef _RAR_RS_ +#define _RAR_RS_ + +#define MAXPAR 255 +#define MAXPOL 512 + +class RSCoder +{ + private: + void gfInit(); + int gfMult(int a,int b); + void pnInit(); + void pnMult(int *p1,int *p2,int *r); + + int gfExp[MAXPOL]; + int gfLog[MAXPAR+1]; + + int GXPol[MAXPOL*2]; + + int ErrorLocs[MAXPAR+1],ErrCount; + int Dn[MAXPAR+1]; + + int ParSize; + int PolB[MAXPOL]; + bool FirstBlockDone; + public: + RSCoder(int ParSize); + void Encode(byte *Data,int DataSize,byte *DestData); + bool Decode(byte *Data,int DataSize,int *EraLoc,int EraSize); +}; + +#endif |