📄 matrix.c
字号:
// ==========================================================================// 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 + -