4 int myCRC[16],
D[64],
C[16];
6 for (
int i = 0;
i < 64; ++
i) {
9 for (
int i = 0;
i < 16; ++
i) {
10 C[
i] = (myC >>
i) & 0
x1;
13 myCRC[0] = (
D[63] +
D[62] +
D[61] +
D[60] +
D[55] +
D[54] +
D[53] +
D[52] +
D[51] +
D[50] +
D[49] +
D[48] +
D[47] +
14 D[46] +
D[45] +
D[43] +
D[41] +
D[40] +
D[39] +
D[38] +
D[37] +
D[36] +
D[35] +
D[34] +
D[33] +
D[32] +
15 D[31] +
D[30] +
D[27] +
D[26] +
D[25] +
D[24] +
D[23] +
D[22] +
D[21] +
D[20] +
D[19] +
D[18] +
D[17] +
16 D[16] +
D[15] +
D[13] +
D[12] +
D[11] +
D[10] +
D[9] +
D[8] +
D[7] +
D[6] +
D[5] +
D[4] +
D[3] +
D[2] +
17 D[1] +
D[0] +
C[0] +
C[1] +
C[2] +
C[3] +
C[4] +
C[5] +
C[6] +
C[7] +
C[12] +
C[13] +
C[14] +
C[15]) %
20 myCRC[1] = (
D[63] +
D[62] +
D[61] +
D[56] +
D[55] +
D[54] +
D[53] +
D[52] +
D[51] +
D[50] +
D[49] +
D[48] +
D[47] +
21 D[46] +
D[44] +
D[42] +
D[41] +
D[40] +
D[39] +
D[38] +
D[37] +
D[36] +
D[35] +
D[34] +
D[33] +
D[32] +
22 D[31] +
D[28] +
D[27] +
D[26] +
D[25] +
D[24] +
D[23] +
D[22] +
D[21] +
D[20] +
D[19] +
D[18] +
D[17] +
23 D[16] +
D[14] +
D[13] +
D[12] +
D[11] +
D[10] +
D[9] +
D[8] +
D[7] +
D[6] +
D[5] +
D[4] +
D[3] +
D[2] +
24 D[1] +
C[0] +
C[1] +
C[2] +
C[3] +
C[4] +
C[5] +
C[6] +
C[7] +
C[8] +
C[13] +
C[14] +
C[15]) %
27 myCRC[2] = (
D[61] +
D[60] +
D[57] +
D[56] +
D[46] +
D[42] +
D[31] +
D[30] +
D[29] +
D[28] +
D[16] +
D[14] +
D[1] +
28 D[0] +
C[8] +
C[9] +
C[12] +
C[13]) %
31 myCRC[3] = (
D[62] +
D[61] +
D[58] +
D[57] +
D[47] +
D[43] +
D[32] +
D[31] +
D[30] +
D[29] +
D[17] +
D[15] +
D[2] +
32 D[1] +
C[9] +
C[10] +
C[13] +
C[14]) %
35 myCRC[4] = (
D[63] +
D[62] +
D[59] +
D[58] +
D[48] +
D[44] +
D[33] +
D[32] +
D[31] +
D[30] +
D[18] +
D[16] +
D[3] +
36 D[2] +
C[0] +
C[10] +
C[11] +
C[14] +
C[15]) %
39 myCRC[5] = (
D[63] +
D[60] +
D[59] +
D[49] +
D[45] +
D[34] +
D[33] +
D[32] +
D[31] +
D[19] +
D[17] +
D[4] +
D[3] +
40 C[1] +
C[11] +
C[12] +
C[15]) %
43 myCRC[6] = (
D[61] +
D[60] +
D[50] +
D[46] +
D[35] +
D[34] +
D[33] +
D[32] +
D[20] +
D[18] +
D[5] +
D[4] +
C[2] +
47 myCRC[7] = (
D[62] +
D[61] +
D[51] +
D[47] +
D[36] +
D[35] +
D[34] +
D[33] +
D[21] +
D[19] +
D[6] +
D[5] +
C[3] +
51 myCRC[8] = (
D[63] +
D[62] +
D[52] +
D[48] +
D[37] +
D[36] +
D[35] +
D[34] +
D[22] +
D[20] +
D[7] +
D[6] +
C[0] +
52 C[4] +
C[14] +
C[15]) %
56 (
D[63] +
D[53] +
D[49] +
D[38] +
D[37] +
D[36] +
D[35] +
D[23] +
D[21] +
D[8] +
D[7] +
C[1] +
C[5] +
C[15]) % 2;
58 myCRC[10] = (
D[54] +
D[50] +
D[39] +
D[38] +
D[37] +
D[36] +
D[24] +
D[22] +
D[9] +
D[8] +
C[2] +
C[6]) % 2;
60 myCRC[11] = (
D[55] +
D[51] +
D[40] +
D[39] +
D[38] +
D[37] +
D[25] +
D[23] +
D[10] +
D[9] +
C[3] +
C[7]) % 2;
62 myCRC[12] = (
D[56] +
D[52] +
D[41] +
D[40] +
D[39] +
D[38] +
D[26] +
D[24] +
D[11] +
D[10] +
C[4] +
C[8]) % 2;
64 myCRC[13] = (
D[57] +
D[53] +
D[42] +
D[41] +
D[40] +
D[39] +
D[27] +
D[25] +
D[12] +
D[11] +
C[5] +
C[9]) % 2;
66 myCRC[14] = (
D[58] +
D[54] +
D[43] +
D[42] +
D[41] +
D[40] +
D[28] +
D[26] +
D[13] +
D[12] +
C[6] +
C[10]) % 2;
68 myCRC[15] = (
D[63] +
D[62] +
D[61] +
D[60] +
D[59] +
D[54] +
D[53] +
D[52] +
D[51] +
D[50] +
D[49] +
D[48] +
D[47] +
69 D[46] +
D[45] +
D[44] +
D[42] +
D[40] +
D[39] +
D[38] +
D[37] +
D[36] +
D[35] +
D[34] +
D[33] +
D[32] +
70 D[31] +
D[30] +
D[29] +
D[26] +
D[25] +
D[24] +
D[23] +
D[22] +
D[21] +
D[20] +
D[19] +
D[18] +
D[17] +
71 D[16] +
D[15] +
D[14] +
D[12] +
D[11] +
D[10] +
D[9] +
D[8] +
D[7] +
D[6] +
D[5] +
D[4] +
D[3] +
D[2] +
72 D[1] +
D[0] +
C[0] +
C[1] +
C[2] +
C[3] +
C[4] +
C[5] +
C[6] +
C[11] +
C[12] +
C[13] +
C[14] +
C[15]) %
76 for (
int i = 0;
i < 16; ++
i) {
77 tempC = tempC + (myCRC[
i] <<
i);
85 int myCRC[16],
D[64],
C[16];
87 for (
int i = 0;
i < 32; ++
i) {
88 D[
i] = (myD2 >>
i) & 0
x1;
90 for (
int i = 0;
i < 32; ++
i) {
91 D[
i + 32] = (myD1 >>
i) & 0
x1;
93 for (
int i = 0;
i < 16; ++
i) {
94 C[
i] = (myC >>
i) & 0
x1;
97 myCRC[0] = (
D[63] +
D[62] +
D[61] +
D[60] +
D[55] +
D[54] +
D[53] +
D[52] +
D[51] +
D[50] +
D[49] +
D[48] +
D[47] +
98 D[46] +
D[45] +
D[43] +
D[41] +
D[40] +
D[39] +
D[38] +
D[37] +
D[36] +
D[35] +
D[34] +
D[33] +
D[32] +
99 D[31] +
D[30] +
D[27] +
D[26] +
D[25] +
D[24] +
D[23] +
D[22] +
D[21] +
D[20] +
D[19] +
D[18] +
D[17] +
100 D[16] +
D[15] +
D[13] +
D[12] +
D[11] +
D[10] +
D[9] +
D[8] +
D[7] +
D[6] +
D[5] +
D[4] +
D[3] +
D[2] +
101 D[1] +
D[0] +
C[0] +
C[1] +
C[2] +
C[3] +
C[4] +
C[5] +
C[6] +
C[7] +
C[12] +
C[13] +
C[14] +
C[15]) %
104 myCRC[1] = (
D[63] +
D[62] +
D[61] +
D[56] +
D[55] +
D[54] +
D[53] +
D[52] +
D[51] +
D[50] +
D[49] +
D[48] +
D[47] +
105 D[46] +
D[44] +
D[42] +
D[41] +
D[40] +
D[39] +
D[38] +
D[37] +
D[36] +
D[35] +
D[34] +
D[33] +
D[32] +
106 D[31] +
D[28] +
D[27] +
D[26] +
D[25] +
D[24] +
D[23] +
D[22] +
D[21] +
D[20] +
D[19] +
D[18] +
D[17] +
107 D[16] +
D[14] +
D[13] +
D[12] +
D[11] +
D[10] +
D[9] +
D[8] +
D[7] +
D[6] +
D[5] +
D[4] +
D[3] +
D[2] +
108 D[1] +
C[0] +
C[1] +
C[2] +
C[3] +
C[4] +
C[5] +
C[6] +
C[7] +
C[8] +
C[13] +
C[14] +
C[15]) %
111 myCRC[2] = (
D[61] +
D[60] +
D[57] +
D[56] +
D[46] +
D[42] +
D[31] +
D[30] +
D[29] +
D[28] +
D[16] +
D[14] +
D[1] +
112 D[0] +
C[8] +
C[9] +
C[12] +
C[13]) %
115 myCRC[3] = (
D[62] +
D[61] +
D[58] +
D[57] +
D[47] +
D[43] +
D[32] +
D[31] +
D[30] +
D[29] +
D[17] +
D[15] +
D[2] +
116 D[1] +
C[9] +
C[10] +
C[13] +
C[14]) %
119 myCRC[4] = (
D[63] +
D[62] +
D[59] +
D[58] +
D[48] +
D[44] +
D[33] +
D[32] +
D[31] +
D[30] +
D[18] +
D[16] +
D[3] +
120 D[2] +
C[0] +
C[10] +
C[11] +
C[14] +
C[15]) %
123 myCRC[5] = (
D[63] +
D[60] +
D[59] +
D[49] +
D[45] +
D[34] +
D[33] +
D[32] +
D[31] +
D[19] +
D[17] +
D[4] +
D[3] +
124 C[1] +
C[11] +
C[12] +
C[15]) %
127 myCRC[6] = (
D[61] +
D[60] +
D[50] +
D[46] +
D[35] +
D[34] +
D[33] +
D[32] +
D[20] +
D[18] +
D[5] +
D[4] +
C[2] +
131 myCRC[7] = (
D[62] +
D[61] +
D[51] +
D[47] +
D[36] +
D[35] +
D[34] +
D[33] +
D[21] +
D[19] +
D[6] +
D[5] +
C[3] +
135 myCRC[8] = (
D[63] +
D[62] +
D[52] +
D[48] +
D[37] +
D[36] +
D[35] +
D[34] +
D[22] +
D[20] +
D[7] +
D[6] +
C[0] +
136 C[4] +
C[14] +
C[15]) %
140 (
D[63] +
D[53] +
D[49] +
D[38] +
D[37] +
D[36] +
D[35] +
D[23] +
D[21] +
D[8] +
D[7] +
C[1] +
C[5] +
C[15]) % 2;
142 myCRC[10] = (
D[54] +
D[50] +
D[39] +
D[38] +
D[37] +
D[36] +
D[24] +
D[22] +
D[9] +
D[8] +
C[2] +
C[6]) % 2;
144 myCRC[11] = (
D[55] +
D[51] +
D[40] +
D[39] +
D[38] +
D[37] +
D[25] +
D[23] +
D[10] +
D[9] +
C[3] +
C[7]) % 2;
146 myCRC[12] = (
D[56] +
D[52] +
D[41] +
D[40] +
D[39] +
D[38] +
D[26] +
D[24] +
D[11] +
D[10] +
C[4] +
C[8]) % 2;
148 myCRC[13] = (
D[57] +
D[53] +
D[42] +
D[41] +
D[40] +
D[39] +
D[27] +
D[25] +
D[12] +
D[11] +
C[5] +
C[9]) % 2;
150 myCRC[14] = (
D[58] +
D[54] +
D[43] +
D[42] +
D[41] +
D[40] +
D[28] +
D[26] +
D[13] +
D[12] +
C[6] +
C[10]) % 2;
152 myCRC[15] = (
D[63] +
D[62] +
D[61] +
D[60] +
D[59] +
D[54] +
D[53] +
D[52] +
D[51] +
D[50] +
D[49] +
D[48] +
D[47] +
153 D[46] +
D[45] +
D[44] +
D[42] +
D[40] +
D[39] +
D[38] +
D[37] +
D[36] +
D[35] +
D[34] +
D[33] +
D[32] +
154 D[31] +
D[30] +
D[29] +
D[26] +
D[25] +
D[24] +
D[23] +
D[22] +
D[21] +
D[20] +
D[19] +
D[18] +
D[17] +
155 D[16] +
D[15] +
D[14] +
D[12] +
D[11] +
D[10] +
D[9] +
D[8] +
D[7] +
D[6] +
D[5] +
D[4] +
D[3] +
D[2] +
156 D[1] +
D[0] +
C[0] +
C[1] +
C[2] +
C[3] +
C[4] +
C[5] +
C[6] +
C[11] +
C[12] +
C[13] +
C[14] +
C[15]) %
160 for (
int i = 0;
i < 16; ++
i) {
161 tempC = tempC + (myCRC[
i] <<
i);
DecomposeProduct< arg, typename Div::arg > D
void calcCRC(long, int &)