本文整理汇总了C++中bvec::replace_mid方法的典型用法代码示例。如果您正苦于以下问题:C++ bvec::replace_mid方法的具体用法?C++ bvec::replace_mid怎么用?C++ bvec::replace_mid使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类bvec
的用法示例。
在下文中一共展示了bvec::replace_mid方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: decode
void Hamming_Code::decode(const bvec &coded_bits, bvec &decoded_bits)
{
int length = coded_bits.length();
int Itterations = floor_i(static_cast<double>(length) / n);
ivec Hindexes(n);
bvec temp(n - k);
bvec coded(n), syndrome(n - k);
int isynd, errorpos = 0;
int i, j;
decoded_bits.set_size(Itterations*k, false);
for (i = 0; i < n; i++) {
for (j = 0; j < n - k; j++)
temp(j) = H(j, i);
Hindexes(i) = bin2dec(temp);
}
//Decode all codewords
for (i = 0; i < Itterations; i++) {
coded = coded_bits.mid(i * n, n);
syndrome = H * coded;
isynd = bin2dec(syndrome);
if (isynd != 0) {
for (j = 0; j < n; j++)
if (Hindexes(j) == isynd) {
errorpos = j;
};
coded(errorpos) += 1;
}
decoded_bits.replace_mid(k*i, coded.right(k));
}
}
示例2: encode
void Hamming_Code::encode(const bvec &uncoded_bits, bvec &coded_bits)
{
int length = uncoded_bits.length();
int Itterations = floor_i(static_cast<double>(length) / k);
bmat Gt = G.T();
int i;
coded_bits.set_size(Itterations * n, false);
//Code all codewords
for (i = 0; i < Itterations; i++)
coded_bits.replace_mid(n*i, Gt * uncoded_bits.mid(i*k, k));
}
示例3: decode
void Reed_Solomon::decode(const bvec &coded_bits, bvec &decoded_bits)
{
bvec cw_isvalid;
ivec erasures(0);
if (!decode(coded_bits, erasures, decoded_bits, cw_isvalid)) {
for (int i = 0; i < cw_isvalid.length(); i++) {
if (!cw_isvalid(i)) {
decoded_bits.replace_mid(i * k * m, zeros_b(k * m));
}
}
}
}
示例4: encode
void Reed_Solomon::encode(const bvec &uncoded_bits, bvec &coded_bits)
{
int i, j, iterations = floor_i(static_cast<double>(uncoded_bits.length())
/ (k * m));
GFX mx(q, k), cx(q, n);
GFX r(n + 1, n - k);
GFX uncoded_shifted(n + 1, n);
GF mpow;
bvec mbit(k * m), cbit(m);
coded_bits.set_size(iterations * n * m, false);
if (systematic)
for (i = 0; i < n - k; i++)
uncoded_shifted[i] = GF(n + 1, -1);
for (i = 0; i < iterations; i++) {
//Fix the message polynom m(x).
for (j = 0; j < k; j++) {
mpow.set(q, uncoded_bits.mid((i * m * k) + (j * m), m));
mx[j] = mpow;
if (systematic) {
cx[j] = mx[j];
uncoded_shifted[j + n - k] = mx[j];
}
}
//Fix the outputbits cbit.
if (systematic) {
r = modgfx(uncoded_shifted, g);
for (j = k; j < n; j++) {
cx[j] = r[j - k];
}
}
else {
cx = g * mx;
}
for (j = 0; j < n; j++) {
cbit = cx[j].get_vectorspace();
coded_bits.replace_mid((i * n * m) + (j * m), cbit);
}
}
}