ThoughtWorks.QRCode/ThoughtWorks/QRCode/Codec/Ecc/ReedSolomon.cs
(开头部分) 11KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
namespace ThoughtWorks.QRCode.Codec.Ecc
{
using System;
public class ReedSolomon
{
internal int[] y;
internal int[] gexp = new int[0x200];
internal int[] glog = new int[0x100];
internal int NPAR;
internal int MAXDEG;
internal int[] synBytes;
internal int[] Lambda;
internal int[] Omega;
internal int[] ErrorLocs = new int[0x100];
internal int NErrors;
internal int[] ErasureLocs = new int[0x100];
internal int NErasures = 0;
internal bool correctionSucceeded = true;
public ReedSolomon(int[] source, int NPAR)
{
this.initializeGaloisTables();
this.y = source;
this.NPAR = NPAR;
this.MAXDEG = NPAR * 2;
this.synBytes = new int[this.MAXDEG];
this.Lambda = new int[this.MAXDEG];
this.Omega = new int[this.MAXDEG];
}
internal virtual void add_polys(int[] dst, int[] src)
{
for (int i = 0; i < this.MAXDEG; i++)
{
dst[i] ^= src[i];
}
}
internal virtual int compute_discrepancy(int[] lambda, int[] S, int L, int n)
{
int num2 = 0;
for (int i = 0; i <= L; i++)
{
num2 ^= this.gmult(lambda[i], S[n - i]);
}
return num2;
}
internal virtual void compute_modified_omega()
{
int[] dst = new int[this.MAXDEG * 2];
this.mult_polys(dst, this.Lambda, this.synBytes);
this.zero_poly(this.Omega);
for (int i = 0; i < this.NPAR; i++)
{
this.Omega[i] = dst[i];
}
}
后面还有 306 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。