Go to the documentation of this file.
50 :mCoeff(wCoeff),mState(0),
51 mMask((1ULL<<wLen)-1),
52 mLen(wLen),mLen_1(wLen-1)
59 uint64_t
state()
const {
return mState & mMask; }
60 unsigned size()
const {
return mLen; }
69 const unsigned fb = (mState>>(mLen_1)) & 0x01;
70 mState = (mState<<1) ^ (inBit & 0x01);
71 if (fb) mState ^= mCoeff;
80 const unsigned fb = ((mState>>(mLen_1)) ^ inBit) & 0x01;
82 if (fb) mState ^= mCoeff;
100 Parity(uint64_t wCoefficients,
unsigned wParitySize,
unsigned wCodewordSize)
127 if (other.getData()) {
157 char* wStart = this->
begin() + start;
158 char* wEnd = wStart + span;
159 assert(wEnd<=this->
end());
160 #if BITVECTOR_REFCNTS
217 uint64_t
peekField(
size_t readIndex,
unsigned length)
const;
219 uint64_t
readField(
size_t& readIndex,
unsigned length)
const;
221 void fillField(
size_t writeIndex, uint64_t value,
unsigned length);
223 void writeField(
size_t& writeIndex, uint64_t value,
unsigned length);
231 unsigned sum()
const;
240 void pack(
unsigned char*)
const;
243 void pack2(
unsigned char*)
const;
249 void unpack(
const unsigned char*);
252 void hex(std::ostream&)
const;
253 std::string
hexstr()
const;
257 bool unhex(
const char*);
268 printf(
"BitVector::operator=\n");
281 bool bit(
size_t index)
const
284 const char *dp = this->
begin()+index;
285 assert(dp<this->
end());
292 return this->
mStart[index];
298 return this->
mStart[index];
304 char *dp = this->
mStart+index;
305 assert(dp<this->
mEnd);
314 #define BitVector2 BitVector
346 :
Vector<float>(wData,length)
350 :
Vector<float>(wData,wStart,wEnd)
366 float* wStart =
mStart + start;
367 float* wEnd = wStart + span;
394 bool bit(
size_t index)
const
396 const float *dp =
mStart+index;
410 const float *dp =
mStart+index;
void settfb(size_t index, int value)
Definition: BitVector.h:302
BitVector()
Definition: BitVector.h:138
BitVector(const BitVector &other1, const BitVector &other2)
Definition: BitVector.h:141
void copyPunctured(BitVector &dst, const unsigned *puncture, const size_t plth)
BitVector segment(size_t start, size_t span)
Definition: BitVector.h:155
void unknown()
Definition: BitVector.h:391
float getEnergy(float *low=0) const
void fillFieldReversed(size_t writeIndex, uint64_t value, unsigned length)
const typedef char * const_iterator
Definition: BitVector.h:310
BitVector(const BitVector &other)
Definition: BitVector.h:125
bool bit(size_t index) const
Definition: BitVector.h:394
void clone(const VectorBase< char > &other)
Definition: Vector.h:192
char * mEnd
end of useful data + 1
Definition: Vector.h:133
SoftVector(size_t wSize=0)
Definition: BitVector.h:333
void dup(BitVector &other)
Definition: BitVector.h:264
Definition: BitVector.h:115
BitVector(size_t len)
Definition: BitVector.h:137
void writeParityWord(const BitVector &data, BitVector &parityWordTarget, bool invert=true)
void write0(size_t &writeIndex)
Definition: BitVector.h:225
void writeField(size_t &writeIndex, uint64_t value, unsigned length)
bool bit(size_t index) const
Definition: BitVector.h:281
const char & operator[](size_t index) const
Definition: BitVector.h:295
void unpack(const unsigned char *)
SoftVector(float *wData, unsigned length)
Definition: BitVector.h:345
BitVector tail(size_t start)
Definition: BitVector.h:184
void zero()
Definition: BitVector.h:193
bool operator==(const BitVector &other) const
void fillField(size_t writeIndex, uint64_t value, unsigned length)
void syndromeShift(unsigned inBit)
Definition: BitVector.h:67
uint64_t syndrome(const BitVector &receivedCodeword)
const SoftVector tail(size_t start) const
Definition: BitVector.h:381
void settfb(size_t index, float value)
Definition: BitVector.h:416
std::string packToString() const
void writeFieldReversed(size_t &writeIndex, uint64_t value, unsigned length)
void operator=(const VectorBase< char > &other)
Definition: Vector.h:282
BitVector head(size_t span)
Definition: BitVector.h:183
void pack(unsigned char *) const
unsigned mCodewordSize
Definition: BitVector.h:96
void makeAlias(const VectorBase< char > &other)
Definition: Vector.h:156
unsigned size() const
Definition: BitVector.h:60
SoftVector head(size_t span)
Definition: BitVector.h:378
const SoftVector segment(size_t start, size_t span) const
Definition: BitVector.h:375
Generator(uint64_t wCoeff, unsigned wLen)
Definition: BitVector.h:49
uint64_t parity(Generator &gen) const
void copyUnPunctured(SoftVector &dst, const unsigned *puncture, const size_t plth)
SoftVector(Vector< float > source)
Definition: BitVector.h:357
uint64_t syndrome(Generator &gen) const
void vInit(size_t elements)
Definition: Vector.h:136
std::ostream & operator<<(std::ostream &, const BitVector &)
SoftVector(float *wData, float *wStart, float *wEnd)
Definition: BitVector.h:349
Definition: BitVector.h:328
uint64_t state() const
Definition: BitVector.h:59
float softbit(size_t index) const
Definition: BitVector.h:408
uint64_t peekFieldReversed(size_t readIndex, unsigned length) const
Parity(uint64_t wCoefficients, unsigned wParitySize, unsigned wCodewordSize)
Definition: BitVector.h:100
void dup(BitVector other)
Definition: BitVector.h:263
SoftVector tail(size_t start)
Definition: BitVector.h:380
BitVector(VectorDataType wData, char *wStart, char *wEnd)
Definition: BitVector.h:122
size_t size() const
Definition: Vector.h:169
BitVector alias() const
Definition: BitVector.h:179
char * mStart
start of useful data
Definition: Vector.h:132
const char * getData() const
Definition: Vector.h:312
char * VectorDataType
Definition: Vector.h:129
char * iterator
Definition: BitVector.h:309
const SoftVector head(size_t span) const
Definition: BitVector.h:379
void map(const unsigned *map, size_t mapSize, BitVector &dest) const
char & operator[](size_t index)
Definition: BitVector.h:289
void vConcat(const VectorBase< char > &other1, const VectorBase< char > &other2)
Definition: Vector.h:197
Definition: BitVector.h:37
uint8_t data[0]
Definition: gsm_04_08.h:5
std::string hexstr() const
VectorDataType mData
allocated data block.
Definition: Vector.h:131
void clear()
Definition: BitVector.h:55
void write1(size_t &writeIndex)
Definition: BitVector.h:226
void hex(std::ostream &) const
uint64_t readFieldReversed(size_t &readIndex, unsigned length) const
void fill(const char &val)
Definition: Vector.h:265
uint64_t readField(size_t &readIndex, unsigned length) const
void unmap(const unsigned *map, size_t mapSize, BitVector &dest) const
Definition: BitVector.h:92
const BitVector cloneSegment(size_t start, size_t span) const
Definition: BitVector.h:169
uint64_t peekField(size_t readIndex, unsigned length) const
const char * begin() const
Definition: Vector.h:305
#define VECTORDEBUG(...)
Definition: Vector.h:39
SoftVector alias()
Definition: BitVector.h:372
void pack2(unsigned char *) const
void encoderShift(unsigned inBit)
Definition: BitVector.h:78
SoftVector segment(size_t start, size_t span)
Definition: BitVector.h:364
Vector< T > segment(size_t start, size_t span)
Definition: Vector.h:351
const char * end() const
Definition: Vector.h:307