• R/O
  • SSH
  • HTTPS

reedsolomon: コミット


コミットメタ情報

リビジョン36 (tree)
日時2009-08-12 22:11:28
作者m-miyzaki

ログメッセージ

(メッセージはありません)

変更サマリ

差分

--- src/jp/sourceforge/reedsolomon/RsDecode.java (revision 35)
+++ src/jp/sourceforge/reedsolomon/RsDecode.java (revision 36)
@@ -34,12 +34,11 @@
3434 * @param syn int[]
3535 * syndrome
3636 * s0,s1,s2, ... s<npar-1>
37- * @return int[][]
37+ * @return int[]
3838 * null: fail
39- * [0]: sigma(z)
40- * [1]: omega(z)
39+ * int[]: sigma(z)
4140 */
42- public int[][] calcSigmaMBM(int[] syn) {
41+ public int[] calcSigmaMBM(int[] syn) {
4342 int[] sg0 = new int[npar+ 1];
4443 int[] sg1 = new int [npar + 1];
4544 int[] wk = new int [npar + 1];
@@ -81,8 +80,7 @@
8180 }
8281 int[] sigma = new int[jisu1 + 1];
8382 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;
8684 }
8785
8886 private int[] chienSearch(int length, int start, int wa, int seki) {
@@ -195,12 +193,10 @@
195193 return 0;
196194 }
197195
198- int[][] sigmaOmega = calcSigmaMBM(syn);
199- if(sigmaOmega == null) {
196+ int[] sigma = calcSigmaMBM(syn);
197+ if(sigma == null) {
200198 return RS_CORRECT_ERROR;
201199 }
202- int[] sigma = sigmaOmega[0];
203- int[] omega = sigmaOmega[1];
204200
205201 int[] pos = chienSearch(length, sigma);
206202 if(pos == null) {
@@ -208,6 +204,7 @@
208204 }
209205
210206 if(!noCorrect) {
207+ int[] omega = galois.mulPoly(syn, sigma, sigma.length - 1);
211208 doForney(data, length, pos, sigma, omega);
212209 }
213210 return sigma.length - 1;
旧リポジトリブラウザで表示