User Manual, Developers Guide and API Documentation

rise::plmapping::TableCoder Class Reference

Implementation with MI2PER conversion table.

#include <plmapping/MI2PER.hpp>

Inheritance diagram for rise::plmapping::TableCoder:

Inheritance graph
[legend]
Collaboration diagram for rise::plmapping::TableCoder:

Collaboration graph
[legend]

List of all members.

Public Member Functions

virtual double mapMI2PER (double mi, unsigned int blockLength) const
 get PER for given MI and blockLength (=payload[net], not CWL[gross])
virtual double PER2MIB (double per, unsigned int blockLength) const
 get MI for a given PER target ratio and blockLength (=payload[net], not CWL[gross])
 TableCoder (const wns::pyconfig::View &config)
virtual ~TableCoder ()

Private Types

typedef std::vector< doubleLookupTable
 lookup table from MI to PER, each index step represents a MI-step of 10^-3
typedef std::vector< LookupTableVectorOfTablesByCWLSize
 maps from a codewordlength(int) to the appropriate Lookup Table

Private Member Functions

virtual const CodeWordLengthsgetCWLvector () const
 get vector of all known CWLs in table
virtual unsigned int suitableCWL (unsigned int CWL) const
 get nearest matching CWL from table
virtual unsigned int suitableCWLposition (unsigned int CWL) const
 get nearest matching CWL (index) from table

Private Attributes

CodeWordLengths codeWordLengths
 e.g. codeWordLengths[0..5]={300,600,...}
wns::logger::Logger logger
 the Logger
unsigned int numberOfCWLs
VectorOfTablesByCWLSize vectorOfTablesByCWLSize
 Lookup table = vectorOfTablesByCWLSize[0].

Friends

class tests::CoderFullTests
class tests::MI2PERTest


Detailed Description

Definition at line 77 of file MI2PER.hpp.


Member Typedef Documentation

typedef std::vector< double > rise::plmapping::TableCoder::LookupTable [private]

Definition at line 84 of file MI2PER.hpp.

vector of tables for known blocklengths

Definition at line 88 of file MI2PER.hpp.


Constructor & Destructor Documentation

TableCoder::TableCoder ( const wns::pyconfig::View config  ) 

Definition at line 55 of file MI2PER.cpp.

virtual rise::plmapping::TableCoder::~TableCoder (  )  [inline, virtual]

Definition at line 91 of file MI2PER.hpp.


Member Function Documentation

const CodeWordLengths & TableCoder::getCWLvector (  )  const [private, virtual]

Definition at line 173 of file MI2PER.cpp.

double TableCoder::mapMI2PER ( double  mi,
unsigned int  blockLength 
) const [virtual]

Implements rise::plmapping::CoderFullSpecification.

Definition at line 179 of file MI2PER.cpp.

double TableCoder::PER2MIB ( double  per,
unsigned int  blockLength 
) const [virtual]

this iterative method is not cheap: O(log(tableSize))

Implements rise::plmapping::CoderFullSpecification.

Definition at line 220 of file MI2PER.cpp.

unsigned int TableCoder::suitableCWL ( unsigned int  CWL  )  const [private, virtual]

Todo:
msg@comnets.rwth-aachen.de 23.10.2007: blockLenght, CWL and all the other stuff should be "int" instead of "unsigned int" to be able to say assure(blockLength > 0, ...). This is useless with "unsigned int" since this is always true.

Definition at line 125 of file MI2PER.cpp.

unsigned int TableCoder::suitableCWLposition ( unsigned int  CWL  )  const [private, virtual]

Definition at line 148 of file MI2PER.cpp.


Friends And Related Function Documentation

friend class tests::CoderFullTests [friend]

Definition at line 81 of file MI2PER.hpp.

friend class tests::MI2PERTest [friend]

Definition at line 80 of file MI2PER.hpp.


Member Data Documentation

Definition at line 115 of file MI2PER.hpp.

Definition at line 117 of file MI2PER.hpp.

Definition at line 111 of file MI2PER.hpp.

Definition at line 113 of file MI2PER.hpp.


The documentation for this class was generated from the following files:

Generated on Sat May 26 03:32:38 2012 for openWNS by  doxygen 1.5.5