(empty log message)
@@ -34,12 +34,11 @@ | ||
34 | 34 | * @param syn int[] |
35 | 35 | * syndrome |
36 | 36 | * s0,s1,s2, ... s<npar-1> |
37 | - * @return int[][] | |
37 | + * @return int[] | |
38 | 38 | * null: fail |
39 | - * [0]: sigma(z) | |
40 | - * [1]: omega(z) | |
39 | + * int[]: sigma(z) | |
41 | 40 | */ |
42 | - public int[][] calcSigmaMBM(int[] syn) { | |
41 | + public int[] calcSigmaMBM(int[] syn) { | |
43 | 42 | int[] sg0 = new int[npar+ 1]; |
44 | 43 | int[] sg1 = new int [npar + 1]; |
45 | 44 | int[] wk = new int [npar + 1]; |
@@ -81,8 +80,7 @@ | ||
81 | 80 | } |
82 | 81 | int[] sigma = new int[jisu1 + 1]; |
83 | 82 | System.arraycopy(sg1, 0, sigma, 0, jisu1 + 1); |
84 | - int[] omega = galois.mulPoly(syn, sigma, jisu1); | |
85 | - return new int[][] {sigma, omega}; | |
83 | + return sigma; | |
86 | 84 | } |
87 | 85 | |
88 | 86 | private int[] chienSearch(int length, int start, int wa, int seki) { |
@@ -195,12 +193,10 @@ | ||
195 | 193 | return 0; |
196 | 194 | } |
197 | 195 | |
198 | - int[][] sigmaOmega = calcSigmaMBM(syn); | |
199 | - if(sigmaOmega == null) { | |
196 | + int[] sigma = calcSigmaMBM(syn); | |
197 | + if(sigma == null) { | |
200 | 198 | return RS_CORRECT_ERROR; |
201 | 199 | } |
202 | - int[] sigma = sigmaOmega[0]; | |
203 | - int[] omega = sigmaOmega[1]; | |
204 | 200 | |
205 | 201 | int[] pos = chienSearch(length, sigma); |
206 | 202 | if(pos == null) { |
@@ -208,6 +204,7 @@ | ||
208 | 204 | } |
209 | 205 | |
210 | 206 | if(!noCorrect) { |
207 | + int[] omega = galois.mulPoly(syn, sigma, sigma.length - 1); | |
211 | 208 | doForney(data, length, pos, sigma, omega); |
212 | 209 | } |
213 | 210 | return sigma.length - 1; |