MCPcopy Create free account
hub / github.com/aff3ct/aff3ct / _encode

Method _encode

src/Module/Encoder/LDPC/DVBS2/Encoder_LDPC_DVBS2.cpp:30–63  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

28
29template<typename B>
30void
31Encoder_LDPC_DVBS2<B>::_encode(const B* U_K, B* X_N, const size_t /*frame_id*/)
32{
33 std::copy(U_K, U_K + this->K, X_N);
34 std::fill(X_N + this->K, X_N + this->N, 0);
35
36 B* Px = X_N + this->K;
37 const int* p = dvbs2.EncValues.data();
38 int xPos = 0;
39
40 for (int y = 0; y < dvbs2.N_LINES; y++)
41 {
42 int nbPos = (*p++);
43
44 for (int l = 0; l < dvbs2.M; l++)
45 {
46 int bit = (int)U_K[xPos];
47 if (bit == 1)
48 {
49 for (int q = 0; q < nbPos; q++)
50 {
51 // int position = (p[q] + (xPos % dvbs2.M) * dvbs2.Q) % dvbs2.NmK;
52 int position = (p[q] + l * dvbs2.Q) % dvbs2.NmK;
53 Px[position] ^= bit;
54 }
55 }
56 xPos++;
57 }
58 p += nbPos;
59 }
60
61 for (int i = 1; i < dvbs2.NmK; i++)
62 Px[i] = Px[i] ^ Px[i - 1];
63}
64
65// ==================================================================================== explicit template instantiation
66#include "Tools/types.h"

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected