⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 matrix.c

📁 Reed-Solomoon 纠错算法C语言的实现
💻 C
📖 第 1 页 / 共 2 页
字号:
// ==========================================================================// CVS Version Control:       $RCSfile$ //                            $Revision$ //                            $Date$// ==========================================================================////     This confidential and proprietary source code may be used only as//     authorized by a licensing agreement from SEIKO EPSON CORPORATION.////                (C) COPYRIGHT 2003 SEIKO EPSON CORPORATION.//            (C) COPYRIGHT 2003 SHANGHAI EPSON ELECTRONIC CO.,LTD.//                          ALL RIGHTS RESERVED////     The entire notice above must be reproduced on all authorized copies//     and any such reproduction must be pursuant to a licensing agreement//     from SEIKO EPSON CORPORATION.//// File     : correct.c// Author   : Handsome Huang// Abstract : Verification of the Reed-Solomon ECC.// // Modification History:// Date        By               Change Description// --------------------------------------------------------------------------// 2007/06/17  Handsome.Huang   First design.//// ==========================================================================unsigned int DetMA4(unsigned int *Syndrome);unsigned int DetMB40(unsigned int *Syndrome);unsigned int DetMB41(unsigned int *Syndrome);unsigned int DetMB42(unsigned int *Syndrome);unsigned int DetMB43(unsigned int *Syndrome);unsigned int DetMA30(unsigned int *Syndrome);unsigned int DetMB300(unsigned int *Syndrome); unsigned int DetMB301(unsigned int *Syndrome); unsigned int DetMB302(unsigned int *Syndrome); unsigned int DetMA31(unsigned int *Syndrome);unsigned int DetMB310(unsigned int *Syndrome); unsigned int DetMB311(unsigned int *Syndrome); unsigned int DetMB312(unsigned int *Syndrome); unsigned int DetMA32(unsigned int *Syndrome);unsigned int DetMB320(unsigned int *Syndrome); unsigned int DetMB321(unsigned int *Syndrome); unsigned int DetMB322(unsigned int *Syndrome); unsigned int DetMA33(unsigned int *Syndrome);unsigned int DetMA20(unsigned int *Syndrome);unsigned int DetMB200(unsigned int *Syndrome);unsigned int DetMB201(unsigned int *Syndrome);unsigned int DetMA21(unsigned int *Syndrome);unsigned int DetMB210(unsigned int *Syndrome);unsigned int DetMB211(unsigned int *Syndrome);unsigned int DetMA22(unsigned int *Syndrome);unsigned int DetMB220(unsigned int *Syndrome);unsigned int DetMB221(unsigned int *Syndrome);unsigned int DetMA23(unsigned int *Syndrome);unsigned int DetMB230(unsigned int *Syndrome);unsigned int DetMB231(unsigned int *Syndrome);unsigned int DetMA24(unsigned int *Syndrome);unsigned int DetMA25(unsigned int *Syndrome);unsigned int DetMA4(unsigned int *Syndrome){  unsigned int mul[10];  unsigned int add[2];  mul[0] = gmult4(*(Syndrome+0), *(Syndrome+2), *(Syndrome+4), *(Syndrome+6));  mul[1] = gmult4(*(Syndrome+0), *(Syndrome+2), *(Syndrome+5), *(Syndrome+5));  mul[2] = gmult4(*(Syndrome+0), *(Syndrome+3), *(Syndrome+3), *(Syndrome+6));  mul[3] = gmult4(*(Syndrome+0), *(Syndrome+4), *(Syndrome+4), *(Syndrome+4));  mul[4] = gmult4(*(Syndrome+1), *(Syndrome+1), *(Syndrome+4), *(Syndrome+6));  mul[5] = gmult4(*(Syndrome+1), *(Syndrome+1), *(Syndrome+5), *(Syndrome+5));  mul[6] = gmult4(*(Syndrome+2), *(Syndrome+2), *(Syndrome+4), *(Syndrome+4));  mul[7] = gmult4(*(Syndrome+2), *(Syndrome+2), *(Syndrome+2), *(Syndrome+6));  mul[8] = gmult4(*(Syndrome+2), *(Syndrome+3), *(Syndrome+3), *(Syndrome+4));  mul[9] = gmult4(*(Syndrome+3), *(Syndrome+3), *(Syndrome+3), *(Syndrome+3));  add[0] = gadd6(mul[0], mul[1], mul[2], mul[3], mul[4], mul[5]);  add[1] = gadd4(mul[6], mul[7], mul[8], mul[9]);  return (gadd(add[0], add[1]));}unsigned int DetMB40(unsigned int *Syndrome){  unsigned int mul[10];  unsigned int add[2];  mul[0] = gmult4(*(Syndrome+1), *(Syndrome+3), *(Syndrome+5), *(Syndrome+7));  mul[1] = gmult4(*(Syndrome+1), *(Syndrome+5), *(Syndrome+5), *(Syndrome+5));  mul[2] = gmult4(*(Syndrome+1), *(Syndrome+3), *(Syndrome+6), *(Syndrome+6));  mul[3] = gmult4(*(Syndrome+1), *(Syndrome+4), *(Syndrome+4), *(Syndrome+7));  mul[4] = gmult4(*(Syndrome+2), *(Syndrome+2), *(Syndrome+5), *(Syndrome+7));  mul[5] = gmult4(*(Syndrome+2), *(Syndrome+2), *(Syndrome+6), *(Syndrome+6));  mul[6] = gmult4(*(Syndrome+3), *(Syndrome+3), *(Syndrome+5), *(Syndrome+5));  mul[7] = gmult4(*(Syndrome+3), *(Syndrome+4), *(Syndrome+4), *(Syndrome+5));  mul[8] = gmult4(*(Syndrome+3), *(Syndrome+3), *(Syndrome+3), *(Syndrome+7));  mul[9] = gmult4(*(Syndrome+4), *(Syndrome+4), *(Syndrome+4), *(Syndrome+4));  add[0] = gadd6(mul[0], mul[1], mul[2], mul[3], mul[4], mul[5]);  add[1] = gadd4(mul[6], mul[7], mul[8], mul[9]);  return (gadd(add[0], add[1]));}unsigned int DetMB41(unsigned int *Syndrome){  unsigned int mul[16];  unsigned int add[4];  mul[0]  = gmult4(*(Syndrome+0), *(Syndrome+3), *(Syndrome+5), *(Syndrome+7));  mul[1]  = gmult4(*(Syndrome+0), *(Syndrome+5), *(Syndrome+5), *(Syndrome+5));  mul[2]  = gmult4(*(Syndrome+0), *(Syndrome+3), *(Syndrome+6), *(Syndrome+6));  mul[3]  = gmult4(*(Syndrome+0), *(Syndrome+4), *(Syndrome+4), *(Syndrome+7));  mul[4]  = gmult4(*(Syndrome+1), *(Syndrome+4), *(Syndrome+4), *(Syndrome+6));  mul[5]  = gmult4(*(Syndrome+1), *(Syndrome+4), *(Syndrome+5), *(Syndrome+5));  mul[6]  = gmult4(*(Syndrome+1), *(Syndrome+2), *(Syndrome+6), *(Syndrome+6));  mul[7]  = gmult4(*(Syndrome+1), *(Syndrome+2), *(Syndrome+5), *(Syndrome+7));  mul[8]  = gmult4(*(Syndrome+1), *(Syndrome+3), *(Syndrome+5), *(Syndrome+6));  mul[9]  = gmult4(*(Syndrome+1), *(Syndrome+3), *(Syndrome+4), *(Syndrome+7));  mul[10] = gmult4(*(Syndrome+2), *(Syndrome+4), *(Syndrome+4), *(Syndrome+5));  mul[11] = gmult4(*(Syndrome+2), *(Syndrome+2), *(Syndrome+4), *(Syndrome+7));  mul[12] = gmult4(*(Syndrome+2), *(Syndrome+2), *(Syndrome+5), *(Syndrome+6));  mul[13] = gmult4(*(Syndrome+2), *(Syndrome+3), *(Syndrome+3), *(Syndrome+7));  mul[14] = gmult4(*(Syndrome+3), *(Syndrome+4), *(Syndrome+4), *(Syndrome+4));  mul[15] = gmult4(*(Syndrome+3), *(Syndrome+3), *(Syndrome+3), *(Syndrome+6));  add[0] = gadd4(mul[0], mul[1], mul[2], mul[3]);  add[1] = gadd6(mul[4], mul[5], mul[6], mul[7], mul[8], mul[9]);  add[2] = gadd4(mul[10], mul[11], mul[12], mul[13]);  add[3] = gadd (mul[14], mul[15]);  return (gadd4(add[0], add[1], add[2], add[3]));}unsigned int DetMB42(unsigned int *Syndrome){  unsigned int mul[20];  unsigned int add[4];  mul[0]  = gmult4(*(Syndrome+0), *(Syndrome+2), *(Syndrome+6), *(Syndrome+6));  mul[1]  = gmult4(*(Syndrome+0), *(Syndrome+4), *(Syndrome+5), *(Syndrome+5));  mul[2]  = gmult4(*(Syndrome+0), *(Syndrome+3), *(Syndrome+4), *(Syndrome+7));  mul[3]  = gmult4(*(Syndrome+0), *(Syndrome+2), *(Syndrome+5), *(Syndrome+7));  mul[4]  = gmult4(*(Syndrome+0), *(Syndrome+3), *(Syndrome+5), *(Syndrome+6));  mul[5]  = gmult4(*(Syndrome+0), *(Syndrome+4), *(Syndrome+4), *(Syndrome+6));  mul[6]  = gmult4(*(Syndrome+1), *(Syndrome+1), *(Syndrome+6), *(Syndrome+6));  mul[7]  = gmult4(*(Syndrome+1), *(Syndrome+3), *(Syndrome+5), *(Syndrome+5));  mul[8]  = gmult4(*(Syndrome+1), *(Syndrome+2), *(Syndrome+4), *(Syndrome+7));  mul[9]  = gmult4(*(Syndrome+1), *(Syndrome+1), *(Syndrome+5), *(Syndrome+7));  mul[10] = gmult4(*(Syndrome+1), *(Syndrome+2), *(Syndrome+5), *(Syndrome+6));  mul[11] = gmult4(*(Syndrome+1), *(Syndrome+4), *(Syndrome+4), *(Syndrome+5));  mul[12] = gmult4(*(Syndrome+1), *(Syndrome+3), *(Syndrome+3), *(Syndrome+7));  mul[13] = gmult4(*(Syndrome+1), *(Syndrome+3), *(Syndrome+4), *(Syndrome+6));  mul[14] = gmult4(*(Syndrome+2), *(Syndrome+4), *(Syndrome+4), *(Syndrome+4));  mul[15] = gmult4(*(Syndrome+2), *(Syndrome+2), *(Syndrome+4), *(Syndrome+6));  mul[16] = gmult4(*(Syndrome+2), *(Syndrome+3), *(Syndrome+3), *(Syndrome+6));  mul[17] = gmult4(*(Syndrome+2), *(Syndrome+2), *(Syndrome+3), *(Syndrome+7));  mul[18] = gmult4(*(Syndrome+3), *(Syndrome+3), *(Syndrome+4), *(Syndrome+4));  mul[19] = gmult4(*(Syndrome+3), *(Syndrome+3), *(Syndrome+3), *(Syndrome+5));  add[0] = gadd6(mul[0], mul[1], mul[2], mul[3], mul[4], mul[5]);  add[1] = gadd6(mul[6], mul[7], mul[8], mul[9], mul[10], mul[11]);  add[2] = gadd6(mul[12], mul[13], mul[14], mul[15], mul[16], mul[17]);  add[3] = gadd (mul[18], mul[19]);  return (gadd4(add[0], add[1], add[2], add[3]));}unsigned int DetMB43(unsigned int *Syndrome){  unsigned int mul[18];  unsigned int add[4];  mul[0]  = gmult4(*(Syndrome+0), *(Syndrome+2), *(Syndrome+4), *(Syndrome+7));  mul[1]  = gmult4(*(Syndrome+0), *(Syndrome+3), *(Syndrome+4), *(Syndrome+6));  mul[2]  = gmult4(*(Syndrome+0), *(Syndrome+3), *(Syndrome+5), *(Syndrome+5));  mul[3]  = gmult4(*(Syndrome+0), *(Syndrome+2), *(Syndrome+5), *(Syndrome+6));  mul[4]  = gmult4(*(Syndrome+0), *(Syndrome+3), *(Syndrome+3), *(Syndrome+7));  mul[5]  = gmult4(*(Syndrome+0), *(Syndrome+4), *(Syndrome+4), *(Syndrome+5));  mul[6]  = gmult4(*(Syndrome+1), *(Syndrome+1), *(Syndrome+4), *(Syndrome+7));  mul[7]  = gmult4(*(Syndrome+1), *(Syndrome+3), *(Syndrome+3), *(Syndrome+6));  mul[8]  = gmult4(*(Syndrome+1), *(Syndrome+2), *(Syndrome+5), *(Syndrome+5));  mul[9]  = gmult4(*(Syndrome+1), *(Syndrome+1), *(Syndrome+5), *(Syndrome+6));  mul[10] = gmult4(*(Syndrome+1), *(Syndrome+2), *(Syndrome+4), *(Syndrome+6));  mul[11] = gmult4(*(Syndrome+1), *(Syndrome+4), *(Syndrome+4), *(Syndrome+4));  mul[12] = gmult4(*(Syndrome+2), *(Syndrome+2), *(Syndrome+3), *(Syndrome+6));  mul[13] = gmult4(*(Syndrome+2), *(Syndrome+2), *(Syndrome+4), *(Syndrome+5));  mul[14] = gmult4(*(Syndrome+2), *(Syndrome+2), *(Syndrome+2), *(Syndrome+7));  mul[15] = gmult4(*(Syndrome+2), *(Syndrome+3), *(Syndrome+3), *(Syndrome+5));  mul[16] = gmult4(*(Syndrome+2), *(Syndrome+2), *(Syndrome+4), *(Syndrome+5));  mul[17] = gmult4(*(Syndrome+3), *(Syndrome+3), *(Syndrome+3), *(Syndrome+4));  add[0] = gadd6(mul[0], mul[1], mul[2], mul[3], mul[4], mul[5]);  add[1] = gadd6(mul[6], mul[7], mul[8], mul[9], mul[10], mul[11]);  add[2] = gadd4(mul[12], mul[13], mul[14], mul[15]);  add[3] = gadd (mul[16], mul[17]);  return (gadd4(add[0], add[1], add[2], add[3]));}unsigned int DetMA30(unsigned int *Syndrome){  unsigned int mul[4];  mul[0] = gmult3(*(Syndrome+1), *(Syndrome+3), *(Syndrome+5));  mul[1] = gmult3(*(Syndrome+1), *(Syndrome+4), *(Syndrome+4));  mul[2] = gmult3(*(Syndrome+2), *(Syndrome+2), *(Syndrome+5));  mul[3] = gmult3(*(Syndrome+3), *(Syndrome+3), *(Syndrome+3));  return(gadd4(mul[0], mul[1], mul[2], mul[3]));}unsigned int DetMB300(unsigned int *Syndrome){  unsigned int mul[4];  mul[0] = gmult3(*(Syndrome+2), *(Syndrome+4), *(Syndrome+6));  mul[1] = gmult3(*(Syndrome+4), *(Syndrome+4), *(Syndrome+4));  mul[2] = gmult3(*(Syndrome+2), *(Syndrome+5), *(Syndrome+5));  mul[3] = gmult3(*(Syndrome+3), *(Syndrome+3), *(Syndrome+6));  return(gadd4(mul[0], mul[1], mul[2], mul[3]));}unsigned int DetMB301(unsigned int *Syndrome){  unsigned int mul[6];  mul[0] = gmult3(*(Syndrome+1), *(Syndrome+5), *(Syndrome+5));  mul[1] = gmult3(*(Syndrome+3), *(Syndrome+4), *(Syndrome+4));  mul[2] = gmult3(*(Syndrome+2), *(Syndrome+3), *(Syndrome+6));  mul[3] = gmult3(*(Syndrome+1), *(Syndrome+4), *(Syndrome+6));  mul[4] = gmult3(*(Syndrome+2), *(Syndrome+4), *(Syndrome+5));  mul[5] = gmult3(*(Syndrome+3), *(Syndrome+3), *(Syndrome+5));  return(gadd6(mul[0], mul[1], mul[2], mul[3], mul[4], mul[5]));}unsigned int DetMB302(unsigned int *Syndrome){  unsigned int mul[6];  mul[0] = gmult3(*(Syndrome+1), *(Syndrome+3), *(Syndrome+6));  mul[1] = gmult3(*(Syndrome+2), *(Syndrome+3), *(Syndrome+5));  mul[2] = gmult3(*(Syndrome+2), *(Syndrome+4), *(Syndrome+4));  mul[3] = gmult3(*(Syndrome+1), *(Syndrome+4), *(Syndrome+5));  mul[4] = gmult3(*(Syndrome+2), *(Syndrome+2), *(Syndrome+6));  mul[5] = gmult3(*(Syndrome+3), *(Syndrome+3), *(Syndrome+4));  return(gadd6(mul[0], mul[1], mul[2], mul[3], mul[4], mul[5]));}unsigned int DetMA31(unsigned int *Syndrome){  unsigned int mul[6];  mul[0] = gmult3(*(Syndrome+1), *(Syndrome+3), *(Syndrome+6));  mul[1] = gmult3(*(Syndrome+2), *(Syndrome+4), *(Syndrome+4));  mul[2] = gmult3(*(Syndrome+2), *(Syndrome+3), *(Syndrome+5));  mul[3] = gmult3(*(Syndrome+1), *(Syndrome+4), *(Syndrome+5));  mul[4] = gmult3(*(Syndrome+2), *(Syndrome+2), *(Syndrome+6));  mul[5] = gmult3(*(Syndrome+3), *(Syndrome+3), *(Syndrome+4));  return(gadd6(mul[0], mul[1], mul[2], mul[3], mul[4], mul[5]));}unsigned int DetMB310(unsigned int *Syndrome){  unsigned int mul[6];  mul[0] = gmult3(*(Syndrome+3), *(Syndrome+4), *(Syndrome+6));  mul[1] = gmult3(*(Syndrome+2), *(Syndrome+4), *(Syndrome+7));  mul[2] = gmult3(*(Syndrome+3), *(Syndrome+5), *(Syndrome+5));  mul[3] = gmult3(*(Syndrome+4), *(Syndrome+4), *(Syndrome+5));  mul[4] = gmult3(*(Syndrome+2), *(Syndrome+5), *(Syndrome+6));  mul[5] = gmult3(*(Syndrome+3), *(Syndrome+3), *(Syndrome+7));  return(gadd6(mul[0], mul[1], mul[2], mul[3], mul[4], mul[5]));}unsigned int DetMB311(unsigned int *Syndrome){  unsigned int mul[6];

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -