diff options
author | kurtis.heimerl <kurtis.heimerl@19bc5d8c-e614-43d4-8b26-e1612bc8e597> | 2013-05-31 21:47:25 +0000 |
---|---|---|
committer | kurtis.heimerl <kurtis.heimerl@19bc5d8c-e614-43d4-8b26-e1612bc8e597> | 2013-05-31 21:47:25 +0000 |
commit | 5a87247fdf2768a6408e0b87c210cebda85bc996 (patch) | |
tree | b538e7e42f8a7ba6c53e1b0bc22bfb359b1e0ef9 /CommonLibs/BitVector.cpp | |
parent | bec41039bf2ec07c04a6e8b0b586b085ab9cd74c (diff) |
syncing commonlibs with Many thanks to Michael Iedema for these patches, makes config a lot better.
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@5655 19bc5d8c-e614-43d4-8b26-e1612bc8e597
Diffstat (limited to 'CommonLibs/BitVector.cpp')
-rw-r--r-- | CommonLibs/BitVector.cpp | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/CommonLibs/BitVector.cpp b/CommonLibs/BitVector.cpp index 54a3edc..7487834 100644 --- a/CommonLibs/BitVector.cpp +++ b/CommonLibs/BitVector.cpp @@ -29,6 +29,7 @@ #include "BitVector.h" #include <iostream> #include <stdio.h> +#include <sstream> using namespace std; @@ -274,9 +275,6 @@ void BitVector::unmap(const unsigned *map, size_t mapSize, BitVector& dest) cons - - - ostream& operator<<(ostream& os, const BitVector& hv) { for (size_t i=0; i<hv.size(); i++) { @@ -527,6 +525,22 @@ void SoftVector::decode(ViterbiR2O4 &decoder, BitVector& target) const +// (pat) Added 6-22-2012 +float SoftVector::getEnergy(float *plow) const +{ + const SoftVector &vec = *this; + int len = vec.size(); + float avg = 0; float low = 1; + for (int i = 0; i < len; i++) { + float bit = vec[i]; + float energy = 2*((bit < 0.5) ? (0.5-bit) : (bit-0.5)); + if (energy < low) low = energy; + avg += energy/len; + } + if (plow) { *plow = low; } + return avg; +} + ostream& operator<<(ostream& os, const SoftVector& sv) { @@ -578,6 +592,14 @@ void BitVector::hex(ostream& os) const os << std::dec; } +std::string BitVector::hexstr() const +{ + std::ostringstream ss; + hex(ss); + return ss.str(); +} + + bool BitVector::unhex(const char* src) { // Assumes MSB-first packing. |