<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.8.13">
  <compounddef id="classViterbiR2O4" kind="class" language="C++" prot="public">
    <compoundname>ViterbiR2O4</compoundname>
    <basecompoundref refid="classViterbiBase" prot="public" virt="non-virtual">ViterbiBase</basecompoundref>
    <includes refid="ViterbiR204_8h" local="no">ViterbiR204.h</includes>
    <innerclass refid="structViterbiR2O4_1_1candStruct" prot="public">ViterbiR2O4::candStruct</innerclass>
      <sectiondef kind="user-defined">
      <header>Core values.</header>
      <description><para>name Lots of precomputed elements so the compiler can optimize like hell. </para></description>
      <memberdef kind="variable" id="classViterbiR2O4_1ad6c86bde29aca99a41134586d72ed504" prot="private" static="yes" mutable="no">
        <type>const unsigned</type>
        <definition>const unsigned ViterbiR2O4::mIRate</definition>
        <argsstring></argsstring>
        <name>mIRate</name>
        <initializer>= 2</initializer>
        <briefdescription>
<para>reciprocal of rate </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" line="39" column="1" bodyfile="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" bodystart="39" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="classViterbiR2O4_1a276e649e2038bfe7ac56a80f037eb648" prot="private" static="yes" mutable="no">
        <type>const unsigned</type>
        <definition>const unsigned ViterbiR2O4::mOrder</definition>
        <argsstring></argsstring>
        <name>mOrder</name>
        <initializer>= 4</initializer>
        <briefdescription>
<para>memory length of generators </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" line="40" column="1" bodyfile="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" bodystart="40" bodyend="-1"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="user-defined">
      <header>Derived values.</header>
      <memberdef kind="variable" id="classViterbiR2O4_1a09dfe3399caffe186e9304ba77ae594e" prot="private" static="yes" mutable="no">
        <type>const unsigned</type>
        <definition>const unsigned ViterbiR2O4::mIStates</definition>
        <argsstring></argsstring>
        <name>mIStates</name>
        <initializer>= 0x01 &lt;&lt; mOrder</initializer>
        <briefdescription>
<para>(16) number of states, number of survivors </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" line="44" column="1" bodyfile="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" bodystart="44" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="classViterbiR2O4_1a96acced70ebaed1917a36f7005d0d928" prot="private" static="yes" mutable="no">
        <type>const uint32_t</type>
        <definition>const uint32_t ViterbiR2O4::mSMask</definition>
        <argsstring></argsstring>
        <name>mSMask</name>
        <initializer>= mIStates-1</initializer>
        <briefdescription>
<para>survivor mask </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" line="45" column="1" bodyfile="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" bodystart="45" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="classViterbiR2O4_1a9d31f760c29c1fb1e6ba431f977870fc" prot="private" static="yes" mutable="no">
        <type>const uint32_t</type>
        <definition>const uint32_t ViterbiR2O4::mCMask</definition>
        <argsstring></argsstring>
        <name>mCMask</name>
        <initializer>= (mSMask&lt;&lt;1) | 0x01</initializer>
        <briefdescription>
<para>candidate mask </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" line="46" column="1" bodyfile="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" bodystart="46" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="classViterbiR2O4_1a2837b16a6dfee9c3271abc1fb16b3a76" prot="private" static="yes" mutable="no">
        <type>const uint32_t</type>
        <definition>const uint32_t ViterbiR2O4::mOMask</definition>
        <argsstring></argsstring>
        <name>mOMask</name>
        <initializer>= (0x01&lt;&lt;mIRate)-1</initializer>
        <briefdescription>
<para>ouput mask, all iRate low bits set </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" line="47" column="1" bodyfile="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" bodystart="47" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="classViterbiR2O4_1a39218dc21416ac1485c8708f60cdfc49" prot="private" static="yes" mutable="no">
        <type>const unsigned</type>
        <definition>const unsigned ViterbiR2O4::mNumCands</definition>
        <argsstring></argsstring>
        <name>mNumCands</name>
        <initializer>= mIStates*2</initializer>
        <briefdescription>
<para>number of candidates to generate during branching </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" line="48" column="1" bodyfile="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" bodystart="48" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="classViterbiR2O4_1ab89c3608502ed55ca1a58d54f088e97a" prot="private" static="yes" mutable="no">
        <type>const unsigned</type>
        <definition>const unsigned ViterbiR2O4::mDeferral</definition>
        <argsstring></argsstring>
        <name>mDeferral</name>
        <initializer>= 6*mOrder</initializer>
        <briefdescription>
<para>deferral to be used </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" line="49" column="1" bodyfile="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" bodystart="49" bodyend="-1"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="user-defined">
      <memberdef kind="variable" id="classViterbiR2O4_1a5b488bee28119d6438a33f611a09972f" prot="private" static="no" mutable="no">
        <type>uint32_t</type>
        <definition>uint32_t ViterbiR2O4::mCoeffs[mIRate]</definition>
        <argsstring>[mIRate]</argsstring>
        <name>mCoeffs</name>
        <briefdescription>
<para>polynomial for each generator </para>        </briefdescription>
        <detaileddescription>
<para>Precomputed tables. </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" line="55" column="1" bodyfile="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" bodystart="55" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="classViterbiR2O4_1a767a4578182b99596e476250577949ef" prot="private" static="no" mutable="no">
        <type>uint32_t</type>
        <definition>uint32_t ViterbiR2O4::mStateTable[mIRate][2 *mIStates]</definition>
        <argsstring>[mIRate][2 *mIStates]</argsstring>
        <name>mStateTable</name>
        <briefdescription>
<para>precomputed generator output tables </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" line="58" column="1" bodyfile="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" bodystart="58" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="classViterbiR2O4_1a1af814969867d7b264fd5927b8e52040" prot="private" static="no" mutable="no">
        <type>uint32_t</type>
        <definition>uint32_t ViterbiR2O4::mGeneratorTable[2 *mIStates]</definition>
        <argsstring>[2 *mIStates]</argsstring>
        <name>mGeneratorTable</name>
        <briefdescription>
<para>precomputed coder output table </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" line="60" column="1" bodyfile="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" bodystart="60" bodyend="-1"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="user-defined">
      <header>Survivors and candidates.</header>
      <memberdef kind="variable" id="classViterbiR2O4_1ac6ef50bfc029bd7fbbb0e69d32849ac4" prot="private" static="no" mutable="no">
        <type><ref refid="classViterbiR2O4_1aa8449902462a485b3d8ae274e33c0004" kindref="member">vCand</ref></type>
        <definition>vCand ViterbiR2O4::mSurvivors[mIStates]</definition>
        <argsstring>[mIStates]</argsstring>
        <name>mSurvivors</name>
        <briefdescription>
<para>current survivor pool </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" line="91" column="1" bodyfile="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" bodystart="91" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="classViterbiR2O4_1ac83be15877ac07961a541fba449b3dc0" prot="private" static="no" mutable="no">
        <type><ref refid="classViterbiR2O4_1aa8449902462a485b3d8ae274e33c0004" kindref="member">vCand</ref></type>
        <definition>vCand ViterbiR2O4::mCandidates[2 *mIStates]</definition>
        <argsstring>[2 *mIStates]</argsstring>
        <name>mCandidates</name>
        <briefdescription>
<para>current candidate pool </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" line="92" column="1" bodyfile="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" bodystart="92" bodyend="-1"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="public-type">
      <memberdef kind="typedef" id="classViterbiR2O4_1aa8449902462a485b3d8ae274e33c0004" prot="public" static="no">
        <type>struct <ref refid="structViterbiR2O4_1_1candStruct" kindref="compound">ViterbiR2O4::candStruct</ref></type>
        <definition>typedef struct ViterbiR2O4::candStruct  ViterbiR2O4::vCand</definition>
        <argsstring></argsstring>
        <name>vCand</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>A candidate sequence in a Viterbi decoder. The 32-bit state register can support a deferral of 6 with a 4th-order coder. </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" line="75" column="1"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="private-attrib">
      <memberdef kind="variable" id="classViterbiR2O4_1ab61d90bf7ae8976828bda99192e4c2a7" prot="private" static="no" mutable="no">
        <type>int</type>
        <definition>int ViterbiR2O4::mBitErrorCnt</definition>
        <argsstring></argsstring>
        <name>mBitErrorCnt</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" line="62" column="1" bodyfile="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" bodystart="62" bodyend="-1"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="public-func">
      <memberdef kind="function" id="classViterbiR2O4_1a50d8498423e53dc0cc3ab470e63fca8b" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>void</type>
        <definition>void ViterbiR2O4::vitClear</definition>
        <argsstring>(vCand &amp;v)</argsstring>
        <name>vitClear</name>
        <param>
          <type><ref refid="classViterbiR2O4_1aa8449902462a485b3d8ae274e33c0004" kindref="member">vCand</ref> &amp;</type>
          <declname>v</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Clear a structure. </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" line="78" column="1" bodyfile="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" bodystart="78" bodyend="84"/>
        <references refid="structViterbiR2O4_1_1candStruct_1ae76f66bf8ba05dde63518136a297b810" compoundref="ViterbiR204_8h" startline="74">ViterbiR2O4::candStruct::bitErrorCnt</references>
        <references refid="structViterbiR2O4_1_1candStruct_1a47f2caf59f1db24705721d1bc312a507" compoundref="ViterbiR204_8h" startline="73">ViterbiR2O4::candStruct::cost</references>
        <references refid="structViterbiR2O4_1_1candStruct_1ae1cfb6397ab1aa93ae0430899343ab7f" compoundref="ViterbiR204_8h" startline="71">ViterbiR2O4::candStruct::iState</references>
        <references refid="structViterbiR2O4_1_1candStruct_1a8c4ace34aa3b9bba20f00ccdcb8f7c0c" compoundref="ViterbiR204_8h" startline="72">ViterbiR2O4::candStruct::oState</references>
      </memberdef>
      <memberdef kind="function" id="classViterbiR2O4_1a7ddc706c555bd3da327abb5c95d034cb" prot="public" static="no" const="yes" explicit="no" inline="yes" virt="non-virtual">
        <type>unsigned</type>
        <definition>unsigned ViterbiR2O4::iRate</definition>
        <argsstring>() const</argsstring>
        <name>iRate</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" line="97" column="1" bodyfile="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" bodystart="97" bodyend="97"/>
      </memberdef>
      <memberdef kind="function" id="classViterbiR2O4_1af03648683c67799c129409a674423a92" prot="public" static="no" const="yes" explicit="no" inline="yes" virt="non-virtual">
        <type>uint32_t</type>
        <definition>uint32_t ViterbiR2O4::cMask</definition>
        <argsstring>() const</argsstring>
        <name>cMask</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" line="98" column="1" bodyfile="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" bodystart="98" bodyend="98"/>
      </memberdef>
      <memberdef kind="function" id="classViterbiR2O4_1a18c5dba9db91dffc249f270e4bbac400" prot="public" static="no" const="yes" explicit="no" inline="yes" virt="non-virtual">
        <type>uint32_t</type>
        <definition>uint32_t ViterbiR2O4::stateTable</definition>
        <argsstring>(unsigned g, unsigned i) const</argsstring>
        <name>stateTable</name>
        <param>
          <type>unsigned</type>
          <declname>g</declname>
        </param>
        <param>
          <type>unsigned</type>
          <declname>i</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" line="99" column="1" bodyfile="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" bodystart="99" bodyend="99"/>
      </memberdef>
      <memberdef kind="function" id="classViterbiR2O4_1a589960526d6ee62d64d5e0ab293c99cf" prot="public" static="no" const="yes" explicit="no" inline="yes" virt="non-virtual">
        <type>unsigned</type>
        <definition>unsigned ViterbiR2O4::deferral</definition>
        <argsstring>() const</argsstring>
        <name>deferral</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" line="100" column="1" bodyfile="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" bodystart="100" bodyend="100"/>
        <references refid="classViterbiR2O4_1a3287df605b7b285f01b4cffd7465270f">decode</references>
        <references refid="classViterbiR2O4_1aa13f33775022578344e87269477d49d3">encode</references>
        <references refid="classViterbiR2O4_1aa0f2aeea92f1d0f37448084a57f78b14">initializeStates</references>
        <references refid="classViterbiR2O4_1ad5cc54247af785f5c7c5b281bbc90778">ViterbiR2O4</references>
        <references refid="classViterbiR2O4_1a47ca032c0e89a12c78cb153b5885bc47">vstep</references>
      </memberdef>
      <memberdef kind="function" id="classViterbiR2O4_1ad5cc54247af785f5c7c5b281bbc90778" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type></type>
        <definition>ViterbiR2O4::ViterbiR2O4</definition>
        <argsstring>()</argsstring>
        <name>ViterbiR2O4</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" line="103" column="1"/>
        <referencedby refid="classViterbiR2O4_1a589960526d6ee62d64d5e0ab293c99cf" compoundref="ViterbiR204_8h" startline="100" endline="100">deferral</referencedby>
      </memberdef>
      <memberdef kind="function" id="classViterbiR2O4_1aa0f2aeea92f1d0f37448084a57f78b14" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void ViterbiR2O4::initializeStates</definition>
        <argsstring>()</argsstring>
        <name>initializeStates</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Set all cost metrics to zero. </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" line="106" column="1"/>
        <referencedby refid="classViterbiR2O4_1a589960526d6ee62d64d5e0ab293c99cf" compoundref="ViterbiR204_8h" startline="100" endline="100">deferral</referencedby>
      </memberdef>
      <memberdef kind="function" id="classViterbiR2O4_1a47ca032c0e89a12c78cb153b5885bc47" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>const <ref refid="classViterbiR2O4_1aa8449902462a485b3d8ae274e33c0004" kindref="member">vCand</ref> *</type>
        <definition>const vCand* ViterbiR2O4::vstep</definition>
        <argsstring>(uint32_t inSample, const float *probs, const float *iprobs, bool isNotTailBits)</argsstring>
        <name>vstep</name>
        <param>
          <type>uint32_t</type>
          <declname>inSample</declname>
        </param>
        <param>
          <type>const float *</type>
          <declname>probs</declname>
        </param>
        <param>
          <type>const float *</type>
          <declname>iprobs</declname>
        </param>
        <param>
          <type>bool</type>
          <declname>isNotTailBits</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Full cycle of the Viterbi algorithm: branch, metrics, prune, select. <simplesect kind="return"><para>reference to minimum-cost candidate. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" line="112" column="1"/>
        <referencedby refid="classViterbiR2O4_1a589960526d6ee62d64d5e0ab293c99cf" compoundref="ViterbiR204_8h" startline="100" endline="100">deferral</referencedby>
      </memberdef>
      <memberdef kind="function" id="classViterbiR2O4_1aa13f33775022578344e87269477d49d3" prot="public" static="no" const="yes" explicit="no" inline="no" virt="virtual">
        <type>void</type>
        <definition>void ViterbiR2O4::encode</definition>
        <argsstring>(const BitVector &amp;in, BitVector &amp;target) const</argsstring>
        <name>encode</name>
        <reimplements refid="classViterbiBase_1ada634c1d9d9761e8fd849f93c2c2bba4">encode</reimplements>
        <param>
          <type>const <ref refid="classBitVector" kindref="compound">BitVector</ref> &amp;</type>
          <declname>in</declname>
        </param>
        <param>
          <type><ref refid="classBitVector" kindref="compound">BitVector</ref> &amp;</type>
          <declname>target</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" line="141" column="1"/>
        <referencedby refid="classViterbiR2O4_1a589960526d6ee62d64d5e0ab293c99cf" compoundref="ViterbiR204_8h" startline="100" endline="100">deferral</referencedby>
      </memberdef>
      <memberdef kind="function" id="classViterbiR2O4_1a3287df605b7b285f01b4cffd7465270f" prot="public" static="no" const="no" explicit="no" inline="no" virt="virtual">
        <type>void</type>
        <definition>void ViterbiR2O4::decode</definition>
        <argsstring>(const SoftVector &amp;in, BitVector &amp;target)</argsstring>
        <name>decode</name>
        <reimplements refid="classViterbiBase_1a6ce7d0720db188acf79bb0078bb02bea">decode</reimplements>
        <param>
          <type>const <ref refid="classSoftVector" kindref="compound">SoftVector</ref> &amp;</type>
          <declname>in</declname>
        </param>
        <param>
          <type><ref refid="classBitVector" kindref="compound">BitVector</ref> &amp;</type>
          <declname>target</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" line="142" column="1"/>
        <referencedby refid="classViterbiR2O4_1a589960526d6ee62d64d5e0ab293c99cf" compoundref="ViterbiR204_8h" startline="100" endline="100">deferral</referencedby>
      </memberdef>
      <memberdef kind="function" id="classViterbiR2O4_1a1ed9cf20dcbd9da02b908e13a20e49bd" prot="public" static="no" const="no" explicit="no" inline="yes" virt="virtual">
        <type>int</type>
        <definition>int ViterbiR2O4::getBEC</definition>
        <argsstring>()</argsstring>
        <name>getBEC</name>
        <reimplements refid="classViterbiBase_1a3a66056f1a2fff22f0fec39552fc20eb">getBEC</reimplements>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" line="143" column="1" bodyfile="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" bodystart="143" bodyend="143"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="private-func">
      <memberdef kind="function" id="classViterbiR2O4_1a9fe6ff681c67cc62ad5441a10facb88e" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void ViterbiR2O4::branchCandidates</definition>
        <argsstring>()</argsstring>
        <name>branchCandidates</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Branch survivors into new candidates. </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" line="117" column="1"/>
      </memberdef>
      <memberdef kind="function" id="classViterbiR2O4_1a635c1d4d7f506dfbc15e0b8aa1b9a6da" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void ViterbiR2O4::getSoftCostMetrics</definition>
        <argsstring>(uint32_t inSample, const float *probs, const float *iprobs)</argsstring>
        <name>getSoftCostMetrics</name>
        <param>
          <type>uint32_t</type>
          <declname>inSample</declname>
        </param>
        <param>
          <type>const float *</type>
          <declname>probs</declname>
        </param>
        <param>
          <type>const float *</type>
          <declname>iprobs</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Compute cost metrics for soft-inputs. </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" line="120" column="1"/>
      </memberdef>
      <memberdef kind="function" id="classViterbiR2O4_1a049e571a69f0bac1ce4d6f4b1799504e" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void ViterbiR2O4::pruneCandidates</definition>
        <argsstring>()</argsstring>
        <name>pruneCandidates</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Select survivors from the candidate set. </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" line="123" column="1"/>
      </memberdef>
      <memberdef kind="function" id="classViterbiR2O4_1af7f0082cae277b976362db594246a2ce" prot="private" static="no" const="yes" explicit="no" inline="no" virt="non-virtual">
        <type>const <ref refid="classViterbiR2O4_1aa8449902462a485b3d8ae274e33c0004" kindref="member">vCand</ref> &amp;</type>
        <definition>const vCand&amp; ViterbiR2O4::minCost</definition>
        <argsstring>() const</argsstring>
        <name>minCost</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Find the minimum cost survivor. </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" line="126" column="1"/>
      </memberdef>
      <memberdef kind="function" id="classViterbiR2O4_1aeeab6111877b5fb7e15b9d6942b9881f" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void ViterbiR2O4::computeStateTables</definition>
        <argsstring>(unsigned g)</argsstring>
        <name>computeStateTables</name>
        <param>
          <type>unsigned</type>
          <declname>g</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Precompute the state tables. <parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>g</parametername>
</parameternamelist>
<parameterdescription>
<para><ref refid="classGenerator" kindref="compound">Generator</ref> index 0..((1/rate)-1) </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" line="132" column="1"/>
      </memberdef>
      <memberdef kind="function" id="classViterbiR2O4_1ab8a7fc51fb05ed9f1092819076708c3f" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void ViterbiR2O4::computeGeneratorTable</definition>
        <argsstring>()</argsstring>
        <name>computeGeneratorTable</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Precompute the generator outputs. mCoeffs must be defined first. </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" line="138" column="1"/>
      </memberdef>
      </sectiondef>
    <briefdescription>
    </briefdescription>
    <detaileddescription>
<para>Class to represent convolutional coders/decoders of rate 1/2, memory length 4. This is the &quot;workhorse&quot; coder for most <ref refid="namespaceGSM" kindref="compound">GSM</ref> channels. </para>    </detaileddescription>
    <inheritancegraph>
      <node id="393">
        <label>ViterbiR2O4</label>
        <link refid="classViterbiR2O4"/>
        <childnode refid="394" relation="public-inheritance">
        </childnode>
      </node>
      <node id="394">
        <label>ViterbiBase</label>
        <link refid="classViterbiBase"/>
      </node>
    </inheritancegraph>
    <collaborationgraph>
      <node id="395">
        <label>ViterbiR2O4</label>
        <link refid="classViterbiR2O4"/>
        <childnode refid="396" relation="public-inheritance">
        </childnode>
      </node>
      <node id="396">
        <label>ViterbiBase</label>
        <link refid="classViterbiBase"/>
      </node>
    </collaborationgraph>
    <location file="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" line="32" column="1" bodyfile="/build/gr-gsm-git/src/gr-gsm-git/lib/decoding/openbts/ViterbiR204.h" bodystart="32" bodyend="144"/>
    <listofallmembers>
      <member refid="classViterbiBase_1a33940c637e576fb7f18fba0bdcf81cf4" prot="public" virt="non-virtual"><scope>ViterbiR2O4</scope><name>applyPoly</name></member>
      <member refid="classViterbiBase_1a80a471965ab1231000f6693d1564d2f3" prot="public" virt="non-virtual"><scope>ViterbiR2O4</scope><name>applyPoly</name></member>
      <member refid="classViterbiR2O4_1a9fe6ff681c67cc62ad5441a10facb88e" prot="private" virt="non-virtual"><scope>ViterbiR2O4</scope><name>branchCandidates</name></member>
      <member refid="classViterbiR2O4_1af03648683c67799c129409a674423a92" prot="public" virt="non-virtual"><scope>ViterbiR2O4</scope><name>cMask</name></member>
      <member refid="classViterbiR2O4_1ab8a7fc51fb05ed9f1092819076708c3f" prot="private" virt="non-virtual"><scope>ViterbiR2O4</scope><name>computeGeneratorTable</name></member>
      <member refid="classViterbiR2O4_1aeeab6111877b5fb7e15b9d6942b9881f" prot="private" virt="non-virtual"><scope>ViterbiR2O4</scope><name>computeStateTables</name></member>
      <member refid="classViterbiR2O4_1a3287df605b7b285f01b4cffd7465270f" prot="public" virt="virtual"><scope>ViterbiR2O4</scope><name>decode</name></member>
      <member refid="classViterbiR2O4_1a589960526d6ee62d64d5e0ab293c99cf" prot="public" virt="non-virtual"><scope>ViterbiR2O4</scope><name>deferral</name></member>
      <member refid="classViterbiR2O4_1aa13f33775022578344e87269477d49d3" prot="public" virt="virtual"><scope>ViterbiR2O4</scope><name>encode</name></member>
      <member refid="classViterbiR2O4_1a1ed9cf20dcbd9da02b908e13a20e49bd" prot="public" virt="virtual"><scope>ViterbiR2O4</scope><name>getBEC</name></member>
      <member refid="classViterbiR2O4_1a635c1d4d7f506dfbc15e0b8aa1b9a6da" prot="private" virt="non-virtual"><scope>ViterbiR2O4</scope><name>getSoftCostMetrics</name></member>
      <member refid="classViterbiR2O4_1aa0f2aeea92f1d0f37448084a57f78b14" prot="public" virt="non-virtual"><scope>ViterbiR2O4</scope><name>initializeStates</name></member>
      <member refid="classViterbiR2O4_1a7ddc706c555bd3da327abb5c95d034cb" prot="public" virt="non-virtual"><scope>ViterbiR2O4</scope><name>iRate</name></member>
      <member refid="classViterbiR2O4_1ab61d90bf7ae8976828bda99192e4c2a7" prot="private" virt="non-virtual"><scope>ViterbiR2O4</scope><name>mBitErrorCnt</name></member>
      <member refid="classViterbiR2O4_1ac83be15877ac07961a541fba449b3dc0" prot="private" virt="non-virtual"><scope>ViterbiR2O4</scope><name>mCandidates</name></member>
      <member refid="classViterbiR2O4_1a9d31f760c29c1fb1e6ba431f977870fc" prot="private" virt="non-virtual"><scope>ViterbiR2O4</scope><name>mCMask</name></member>
      <member refid="classViterbiR2O4_1a5b488bee28119d6438a33f611a09972f" prot="private" virt="non-virtual"><scope>ViterbiR2O4</scope><name>mCoeffs</name></member>
      <member refid="classViterbiR2O4_1ab89c3608502ed55ca1a58d54f088e97a" prot="private" virt="non-virtual"><scope>ViterbiR2O4</scope><name>mDeferral</name></member>
      <member refid="classViterbiR2O4_1a1af814969867d7b264fd5927b8e52040" prot="private" virt="non-virtual"><scope>ViterbiR2O4</scope><name>mGeneratorTable</name></member>
      <member refid="classViterbiR2O4_1af7f0082cae277b976362db594246a2ce" prot="private" virt="non-virtual"><scope>ViterbiR2O4</scope><name>minCost</name></member>
      <member refid="classViterbiR2O4_1ad6c86bde29aca99a41134586d72ed504" prot="private" virt="non-virtual"><scope>ViterbiR2O4</scope><name>mIRate</name></member>
      <member refid="classViterbiR2O4_1a09dfe3399caffe186e9304ba77ae594e" prot="private" virt="non-virtual"><scope>ViterbiR2O4</scope><name>mIStates</name></member>
      <member refid="classViterbiR2O4_1a39218dc21416ac1485c8708f60cdfc49" prot="private" virt="non-virtual"><scope>ViterbiR2O4</scope><name>mNumCands</name></member>
      <member refid="classViterbiR2O4_1a2837b16a6dfee9c3271abc1fb16b3a76" prot="private" virt="non-virtual"><scope>ViterbiR2O4</scope><name>mOMask</name></member>
      <member refid="classViterbiR2O4_1a276e649e2038bfe7ac56a80f037eb648" prot="private" virt="non-virtual"><scope>ViterbiR2O4</scope><name>mOrder</name></member>
      <member refid="classViterbiR2O4_1a96acced70ebaed1917a36f7005d0d928" prot="private" virt="non-virtual"><scope>ViterbiR2O4</scope><name>mSMask</name></member>
      <member refid="classViterbiR2O4_1a767a4578182b99596e476250577949ef" prot="private" virt="non-virtual"><scope>ViterbiR2O4</scope><name>mStateTable</name></member>
      <member refid="classViterbiR2O4_1ac6ef50bfc029bd7fbbb0e69d32849ac4" prot="private" virt="non-virtual"><scope>ViterbiR2O4</scope><name>mSurvivors</name></member>
      <member refid="classViterbiR2O4_1a049e571a69f0bac1ce4d6f4b1799504e" prot="private" virt="non-virtual"><scope>ViterbiR2O4</scope><name>pruneCandidates</name></member>
      <member refid="classViterbiR2O4_1a18c5dba9db91dffc249f270e4bbac400" prot="public" virt="non-virtual"><scope>ViterbiR2O4</scope><name>stateTable</name></member>
      <member refid="classViterbiR2O4_1aa8449902462a485b3d8ae274e33c0004" prot="public" virt="non-virtual"><scope>ViterbiR2O4</scope><name>vCand</name></member>
      <member refid="classViterbiR2O4_1a50d8498423e53dc0cc3ab470e63fca8b" prot="public" virt="non-virtual"><scope>ViterbiR2O4</scope><name>vitClear</name></member>
      <member refid="classViterbiR2O4_1ad5cc54247af785f5c7c5b281bbc90778" prot="public" virt="non-virtual"><scope>ViterbiR2O4</scope><name>ViterbiR2O4</name></member>
      <member refid="classViterbiR2O4_1a47ca032c0e89a12c78cb153b5885bc47" prot="public" virt="non-virtual"><scope>ViterbiR2O4</scope><name>vstep</name></member>
    </listofallmembers>
  </compounddef>
</doxygen>
