?? tests.n.c
字號(hào):
data[1] = 1; printf("Data [randloc,1] = %d %d \n", data[randloc], data[1]); syndromes( 144, 32); eras_dec_rs( data, erase_posit, 0, 144, 32 ); if ( (data[randloc] != save_val) | ( data[1] != save_val2)) { printf(" Error at k = %d data[randloc] = %d save = %d \n", k , data[randloc], save_val ); printf(" Error2 at k = %d data[1] = %d save = %d \n", k , data[1], save_val2 ); } data[randloc] = save_val; data[1] = save_val2; } // two random errors at random locs for ( k = 0 ; k < 100 ; k += 1) { randint = rand(); randint2 = rand(); randint = randint & 1023; randint2 = randint2 & 1023; difval = randint %929; difval2 = randint2 % 929; randloc = rand(); randloc = randloc % 80; randloc2 = rand(); randloc2 = randloc % 80; if (randloc == randloc2) { randloc = (randloc+ 1)%929; } if ( difval > data[randloc]) { this_error = difval - data[randloc]; } else { this_error = data[randloc] - difval; } save_val = data[randloc]; data[randloc] = difval; // cause error at location k save_val2 = data[1]; if ( difval2 > data[randloc2]) { this_error2 = difval2 - data[randloc2]; } else { this_error2 = data[randloc2] - difval2; } save_val2 = data[randloc2]; data[randloc2] = difval2; // cause error at location k printf("Data [randloc,randloc2] = %d %d \n", data[randloc], data[randloc2]); syndromes( 144, 32); eras_dec_rs( data, erase_posit, 0, 144, 32 ); if ( (data[randloc] != save_val) || ( data[randloc2] != save_val2)) { printf(" Error at k = %d data[randloc] = %d save = %d \n", k , data[randloc], save_val ); printf(" Error2 at k = %d data[randloc2] = %d save = %d \n", k , data[randloc2], save_val2 ); } data[randloc] = save_val; data[randloc2] = save_val2; } for(j =0; j < 64; j += 1) { printf("data[%d] = %d \n", 80 + j, data[80+j]); } // three random errors at random locs printf("Begin random triple errors \n"); for ( k = 0 ; k < 100 ; k += 1) { randint = rand(); randint2 = rand(); randint3 = rand(); randint = randint & 1023; randint2 = randint2 & 1023; randint3 = randint3 & 1023; difval = randint %929; difval2 = randint2 % 929; difval3 = randint3 % 929; randloc = rand(); randloc = randloc % 80; randloc2 = rand(); randloc2 = randloc % 80; if ( randloc2 > randloc) { if (randloc2 - randloc != 1) { if ((randloc2 - randloc) % 2 == 0) { randloc3 = (randloc2 - randloc)/2; } else { randloc3 = ( 1 + randloc2 - randloc)/2; } } } else // randloc2 < or = randloc1 { if (randloc2 != 0) { randloc3 = randloc2 - 1; } else { randloc3 = (randloc + 1) % 929; } } if (randloc == randloc2) { randloc = (randloc+ 1)%929; } if ( difval > data[randloc]) { this_error = difval - data[randloc]; } else { this_error = data[randloc] - difval; } save_val = data[randloc]; data[randloc] = difval; // cause error at location k if ( difval2 > data[randloc2]) { this_error2 = difval2 - data[randloc2]; } else { this_error2 = data[randloc2] - difval2; } save_val2 = data[randloc2]; data[randloc2] = difval2; // cause error at location k save_val3 = data[randloc3]; data[randloc3] = difval3; // cause error at location k printf("Data [randloc,randloc2,randloc3] = %d %d %d\n", data[randloc], data[randloc2], data[randloc3] ); syndromes( 144, 32); eras_dec_rs( data, erase_posit, 0, 144, 32 ); if ( (data[randloc] != save_val) || ( data[randloc2] != save_val2) || ( data[randloc3] != save_val3 )) { printf(" Error at k = %d data[randloc] = %d save = %d \n", k , data[randloc], save_val ); printf(" Error2 at k = %d data[randloc2] = %d save = %d \n", k , data[randloc2], save_val2 ); printf(" Error3 at k = %d data[randloc3] = %d save = %d \n", k , data[randloc3], save_val3 ); } data[randloc] = save_val; data[randloc2] = save_val2; data[randloc3] = save_val3; } for(j =0; j < 64; j += 1) { printf("data[%d] = %d \n", 80 + j, data[80+j]); } // three random errors at random locs, error at 76 printf("Begin random quad errors \n"); for ( k = 0 ; k < 100 ; k += 1) { randint = rand(); randint2 = rand()+ 17; randint3 = rand()-12; randint4 = rand()+74; randint = randint & 1023; randint2 = randint2 & 1023; randint3 = randint3 & 1023; randint4 = randint4 & 1023; difval = randint %929; difval2 = randint2 % 929; difval3 = randint3 % 929; difval4 = randint4 % 929; save_val = data[33]; data[33] = difval; // cause error at location k save_val2 = data[34]; data[34] = difval2; // cause error at location k save_val3 = data[35]; data[35] = difval3; // cause error at location k save_val4 = data[36]; data[36] = difval4; // cause error at location k printf("Data [33,34,35,36] = %d %d %d %d\n", data[33], data[34], data[35], data[36] ); syndromes( 144, 32); printf("Done with syndromes \n"); eras_dec_rs( data, erase_posit, 0, 144, 32 ); printf("Returned from eras_dec_rs \n"); if ( (data[33] != save_val) || ( data[34] != save_val2) || ( data[35] != save_val3 ) || ( data[36] != save_val4)) { printf(" Error at k = %d data[33] = %d save = %d \n", k , data[33], save_val ); printf(" Error2 at k = %d data[34] = %d save = %d \n", k , data[34], save_val2 ); printf(" Error3 at k = %d data[35] = %d save = %d \n", k , data[randloc3], save_val3 ); printf(" Error4 at k = %d data[36] = %d save = %d \n", k , data[36], save_val4); } data[33] = save_val; data[34] = save_val2; data[35] = save_val3; data[36] = save_val4; } codeindex = 80; generateEC( data, 80, 128 ); /* do the error correction, 128 */ syndromes( 208, 64); for (j = 0; j < 208; j += 1) { erase_posit[j] = 0; } // printf("Begin random errors for level 6 ecc\n"); for ( k = 0 ; k < 100 ; k += 1) { for ( j = 0; j < 64; j += 1) { randin[j] = rand(); } for ( j = 0; j < 64; j += 1) { randin[j] = randin[j] & 1023; difvals[j] = randin[j] % 929; } for ( j = 0; j < 64; j += 1) { savevals[j] = data[13+j]; data[33+j] = difvals[j]; } syndromes( 208, 64); printf("Done with syndromes \n"); eras_dec_rs( data, erase_posit, 0, 208, 64 ); printf("Returned from eras_dec_rs \n"); haserror = FALSE; for ( j = 0; j < 64; j += 1) { if ( data[13+j] != savevals[j]) { haserror = TRUE; } } if ( haserror == TRUE ) { printf("Error: Level 6 ecc failed \n"); } for ( j = 0; j < 64; j += 1) { data[13+j] = savevals[j]; } } codeindex = 80; generateEC( data, 80, 256 ); /* do the error correction, 256 */ syndromes( 336, 128); for (j = 0; j < 336; j += 1) { erase_posit[j] = 0; } // printf("Begin random six errors \n"); for ( k = 0 ; k < 100 ; k += 1) { randint = rand(); randint2 = rand()+ 17; randint3 = rand()-12; randint4 = rand()+74; randint5 = rand()-11; randint6 = rand()+12; randint = randint & 1023; randint2 = randint2 & 1023; randint3 = randint3 & 1023; randint4 = randint4 & 1023; randint5 = randint5 & 1023; randint6 = randint6 & 1023; difval = randint % 929; difval2 = randint2 % 929; difval3 = randint3 % 929; difval4 = randint4 % 929; difval5 = randint5 % 929; difval6 = randint6 & 929; save_val = data[33]; data[33] = difval; // cause error at location k save_val2 = data[34]; data[34] = difval2; // cause error at location k save_val3 = data[35]; data[35] = difval3; // cause error at location k save_val4 = data[36]; data[36] = difval4; // cause error at location k save_val5 = data[37]; data[37] = difval5; // cause error at location k save_val6 = data[38]; data[38] = difval6; // cause error at location k printf("Data [33,34,35,36,37, 38] = %d %d %d %d %d %d\n", data[33], data[34], data[35], data[36], data[37], data[38] ); syndromes( 336, 128); printf("Done with syndromes \n"); eras_dec_rs( data, erase_posit, 0, 208, 64 ); printf("Returned from eras_dec_rs \n"); if ( (data[33] != save_val) || ( data[34] != save_val2) || ( data[35] != save_val3 ) || ( data[36] != save_val4) || ( data[37] != save_val5) || ( data[38] != save_val6)) { printf(" Error at k = %d data[33] = %d save = %d \n", k , data[33], save_val ); printf(" Error2 at k = %d data[34] = %d save = %d \n", k , data[34], save_val2 ); printf(" Error3 at k = %d data[35] = %d save = %d \n", k , data[randloc3], save_val3 ); printf(" Error4 at k = %d data[36] = %d save = %d \n", k , data[36], save_val4); printf(" Error4 at k = %d data[37] = %d save = %d \n", k , data[36], save_val5); printf(" Error4 at k = %d data[38] = %d save = %d \n", k , data[38], save_val6); } data[33] = save_val; data[34] = save_val2; data[35] = save_val3; data[36] = save_val4; data[37] = save_val5; data[38] = save_val6; } for(j =0; j < 64; j += 1) { printf("data[%d] = %d \n", 80 + j, data[80+j]); } /* data[79] = 80; data[78] = 924; data[77] = 0; data[76] = 9; data[75] = 334; data[74] = 508; data[73] = 496; data[72] = 900; data[71] = 840; data[70] = 182; data[69] = 858; data[68] = 877; data[67] = 924; data[66] = 248; data[65] = 44; data[64] = 50; data[63] = 62; data[62] = 572; data[61] = 16; data[60] = 683; data[59] = 304; data[58] = 781; data[57] = 321; data[56] = 17; data[55] = 71; data[54] = 175; data[53] = 89; data[52] = 365; data[51] = 0; data[50] = 594; data[49] = 844; data[48] = 351; data[47] = 720; data[46] = 163; data[45] = 128; data[44] = 227; data[43] = 810; data[42] = 552; data[41] = 349; data[40] = 422; data[39] = 462; data[38] = 861; data[37] = 733; data[36] = 80; data[35] = 681; data[34] = 553; data[33] = 501; data[32] = 669; data[31] = 0; data[30] = 439; data[29] = 484; data[28] = 888; data[27] = 103; data[26] = 349; data[25] = 133; data[24] = 113; data[23] = 116; data[22] = 757; data[21] = 221; data[20] = 781; data[19] = 645; data[18] = 562; data[17] = 333; data[16] = 16; data[15] = 134; data[14] = 279; data[13] = 497; data[12] = 660; data[11] = 371; data[10] = 110; data[9] = 857; data[8] = 319; data[7] = 593; data[6] = 370; data[5] = 700; data[4] = 488; data[3] = 30; data[2] = 147; data[1] = 900; data[0] = 900; generateEC( data, 80, 64 ); for(j =0; j < 64; j += 1) { printf("data[%d] = %d \n", 80 + j, data[80+j]); } */}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -