\doxysection{osmo\+\_\+conv\+\_\+code Struct Reference}
\label{structosmo__conv__code}\index{osmo\_conv\_code@{osmo\_conv\_code}}


structure describing a given convolutional code  




{\ttfamily \#include $<$conv.\+h$>$}

\doxysubsection*{Data Fields}
\begin{DoxyCompactItemize}
\item 
int \textbf{ N}
\begin{DoxyCompactList}\small\item\em Inverse of code rate. \end{DoxyCompactList}\item 
int \textbf{ K}
\begin{DoxyCompactList}\small\item\em Constraint length. \end{DoxyCompactList}\item 
int \textbf{ len}
\item 
enum \textbf{ osmo\+\_\+conv\+\_\+term} \textbf{ term}
\begin{DoxyCompactList}\small\item\em Termination type. \end{DoxyCompactList}\item 
const uint8\+\_\+t($\ast$ \textbf{ next\+\_\+output} )[2]
\begin{DoxyCompactList}\small\item\em Next output array. \end{DoxyCompactList}\item 
const uint8\+\_\+t($\ast$ \textbf{ next\+\_\+state} )[2]
\begin{DoxyCompactList}\small\item\em Next state array ~\newline
 \end{DoxyCompactList}\item 
const uint8\+\_\+t $\ast$ \textbf{ next\+\_\+term\+\_\+output}
\begin{DoxyCompactList}\small\item\em Flush termination output. \end{DoxyCompactList}\item 
const uint8\+\_\+t $\ast$ \textbf{ next\+\_\+term\+\_\+state}
\begin{DoxyCompactList}\small\item\em Flush termination state ~\newline
 \end{DoxyCompactList}\item 
const int $\ast$ \textbf{ puncture}
\begin{DoxyCompactList}\small\item\em Punctured bits indexes. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
structure describing a given convolutional code 

The only required fields are N,K and the next\+\_\+output/next\+\_\+state arrays. The other can be left to default value of zero depending on what the code does. If \textquotesingle{}len\textquotesingle{} is left at 0 then only the low level API can be used. 

\doxysubsection{Field Documentation}
\mbox{\label{structosmo__conv__code_ac4ccdcc30c6e8b8da51d3114f9efb4b1}} 
\index{osmo\_conv\_code@{osmo\_conv\_code}!K@{K}}
\index{K@{K}!osmo\_conv\_code@{osmo\_conv\_code}}
\doxysubsubsection{K}
{\footnotesize\ttfamily int osmo\+\_\+conv\+\_\+code\+::K}



Constraint length. 



Referenced by \textbf{ gen\+\_\+output()}, \textbf{ gen\+\_\+recursive\+\_\+output()}, \textbf{ gen\+\_\+recursive\+\_\+state\+\_\+info()}, \textbf{ gen\+\_\+state\+\_\+info()}, \textbf{ generate\+\_\+trellis()}, \textbf{ osmo\+\_\+conv\+\_\+decode()}, \textbf{ osmo\+\_\+conv\+\_\+decode\+\_\+acc()}, \textbf{ osmo\+\_\+conv\+\_\+decode\+\_\+flush()}, \textbf{ osmo\+\_\+conv\+\_\+decode\+\_\+get\+\_\+output()}, \textbf{ osmo\+\_\+conv\+\_\+decode\+\_\+init()}, \textbf{ osmo\+\_\+conv\+\_\+encode()}, \textbf{ osmo\+\_\+conv\+\_\+encode\+\_\+flush()}, \textbf{ osmo\+\_\+conv\+\_\+encode\+\_\+load\+\_\+state()}, \textbf{ osmo\+\_\+conv\+\_\+get\+\_\+output\+\_\+length()}, and \textbf{ vdec\+\_\+init()}.

\mbox{\label{structosmo__conv__code_a204fd8fe2393cb0addfa7cf2575d3e7c}} 
\index{osmo\_conv\_code@{osmo\_conv\_code}!len@{len}}
\index{len@{len}!osmo\_conv\_code@{osmo\_conv\_code}}
\doxysubsubsection{len}
{\footnotesize\ttfamily int osmo\+\_\+conv\+\_\+code\+::len}

\doxysubsection{of data bits}\label{structosmo__conv__code_autotoc_md0}


Referenced by \textbf{ osmo\+\_\+conv\+\_\+decode()}, \textbf{ osmo\+\_\+conv\+\_\+decode\+\_\+acc()}, \textbf{ osmo\+\_\+conv\+\_\+decode\+\_\+init()}, \textbf{ osmo\+\_\+conv\+\_\+encode()}, \textbf{ osmo\+\_\+conv\+\_\+get\+\_\+input\+\_\+length()}, and \textbf{ vdec\+\_\+init()}.

\mbox{\label{structosmo__conv__code_a5867f142a7bcac29877c8fadd0fe6642}} 
\index{osmo\_conv\_code@{osmo\_conv\_code}!N@{N}}
\index{N@{N}!osmo\_conv\_code@{osmo\_conv\_code}}
\doxysubsubsection{N}
{\footnotesize\ttfamily int osmo\+\_\+conv\+\_\+code\+::N}



Inverse of code rate. 



Referenced by \textbf{ \+\_\+conv\+\_\+encode\+\_\+do\+\_\+output()}, \textbf{ gen\+\_\+output()}, \textbf{ gen\+\_\+recursive\+\_\+output()}, \textbf{ gen\+\_\+recursive\+\_\+state\+\_\+info()}, \textbf{ gen\+\_\+state\+\_\+info()}, \textbf{ generate\+\_\+trellis()}, \textbf{ osmo\+\_\+conv\+\_\+decode()}, \textbf{ osmo\+\_\+conv\+\_\+decode\+\_\+acc()}, \textbf{ osmo\+\_\+conv\+\_\+decode\+\_\+flush()}, \textbf{ osmo\+\_\+conv\+\_\+decode\+\_\+scan()}, \textbf{ osmo\+\_\+conv\+\_\+get\+\_\+output\+\_\+length()}, and \textbf{ vdec\+\_\+init()}.

\mbox{\label{structosmo__conv__code_a433ea7a5d933a69d3e1ada68541da1ca}} 
\index{osmo\_conv\_code@{osmo\_conv\_code}!next\_output@{next\_output}}
\index{next\_output@{next\_output}!osmo\_conv\_code@{osmo\_conv\_code}}
\doxysubsubsection{next\_output}
{\footnotesize\ttfamily const uint8\+\_\+t($\ast$ osmo\+\_\+conv\+\_\+code\+::next\+\_\+output)[2]}



Next output array. 



Referenced by \textbf{ gen\+\_\+output()}, \textbf{ gen\+\_\+recursive\+\_\+output()}, \textbf{ gen\+\_\+recursive\+\_\+state\+\_\+info()}, \textbf{ osmo\+\_\+conv\+\_\+decode\+\_\+flush()}, \textbf{ osmo\+\_\+conv\+\_\+decode\+\_\+scan()}, \textbf{ osmo\+\_\+conv\+\_\+encode\+\_\+flush()}, and \textbf{ osmo\+\_\+conv\+\_\+encode\+\_\+raw()}.

\mbox{\label{structosmo__conv__code_ad72a9be2805d8d3991fb62e9e470c628}} 
\index{osmo\_conv\_code@{osmo\_conv\_code}!next\_state@{next\_state}}
\index{next\_state@{next\_state}!osmo\_conv\_code@{osmo\_conv\_code}}
\doxysubsubsection{next\_state}
{\footnotesize\ttfamily const uint8\+\_\+t($\ast$ osmo\+\_\+conv\+\_\+code\+::next\+\_\+state)[2]}



Next state array ~\newline
 



Referenced by \textbf{ osmo\+\_\+conv\+\_\+decode\+\_\+flush()}, \textbf{ osmo\+\_\+conv\+\_\+decode\+\_\+get\+\_\+output()}, \textbf{ osmo\+\_\+conv\+\_\+decode\+\_\+scan()}, \textbf{ osmo\+\_\+conv\+\_\+encode\+\_\+flush()}, and \textbf{ osmo\+\_\+conv\+\_\+encode\+\_\+raw()}.

\mbox{\label{structosmo__conv__code_ad33a7333e2e298c1cfb17c85f9f04bf8}} 
\index{osmo\_conv\_code@{osmo\_conv\_code}!next\_term\_output@{next\_term\_output}}
\index{next\_term\_output@{next\_term\_output}!osmo\_conv\_code@{osmo\_conv\_code}}
\doxysubsubsection{next\_term\_output}
{\footnotesize\ttfamily const uint8\+\_\+t$\ast$ osmo\+\_\+conv\+\_\+code\+::next\+\_\+term\+\_\+output}



Flush termination output. 



Referenced by \textbf{ conv\+\_\+code\+\_\+recursive()}, \textbf{ gen\+\_\+recursive\+\_\+output()}, \textbf{ osmo\+\_\+conv\+\_\+decode\+\_\+flush()}, and \textbf{ osmo\+\_\+conv\+\_\+encode\+\_\+flush()}.

\mbox{\label{structosmo__conv__code_a4746a836dc1fa382232934abd6b57590}} 
\index{osmo\_conv\_code@{osmo\_conv\_code}!next\_term\_state@{next\_term\_state}}
\index{next\_term\_state@{next\_term\_state}!osmo\_conv\_code@{osmo\_conv\_code}}
\doxysubsubsection{next\_term\_state}
{\footnotesize\ttfamily const uint8\+\_\+t$\ast$ osmo\+\_\+conv\+\_\+code\+::next\+\_\+term\+\_\+state}



Flush termination state ~\newline
 



Referenced by \textbf{ osmo\+\_\+conv\+\_\+decode\+\_\+flush()}, and \textbf{ osmo\+\_\+conv\+\_\+encode\+\_\+flush()}.

\mbox{\label{structosmo__conv__code_aa5f7e2e09375acddbe45ba32f8f5f6bb}} 
\index{osmo\_conv\_code@{osmo\_conv\_code}!puncture@{puncture}}
\index{puncture@{puncture}!osmo\_conv\_code@{osmo\_conv\_code}}
\doxysubsubsection{puncture}
{\footnotesize\ttfamily const int$\ast$ osmo\+\_\+conv\+\_\+code\+::puncture}



Punctured bits indexes. 



Referenced by \textbf{ \+\_\+conv\+\_\+encode\+\_\+do\+\_\+output()}, \textbf{ osmo\+\_\+conv\+\_\+decode\+\_\+acc()}, \textbf{ osmo\+\_\+conv\+\_\+decode\+\_\+flush()}, \textbf{ osmo\+\_\+conv\+\_\+decode\+\_\+scan()}, and \textbf{ osmo\+\_\+conv\+\_\+get\+\_\+output\+\_\+length()}.

\mbox{\label{structosmo__conv__code_aa024e6740f580b70e83f37b8cc7ac642}} 
\index{osmo\_conv\_code@{osmo\_conv\_code}!term@{term}}
\index{term@{term}!osmo\_conv\_code@{osmo\_conv\_code}}
\doxysubsubsection{term}
{\footnotesize\ttfamily enum \textbf{ osmo\+\_\+conv\+\_\+term} osmo\+\_\+conv\+\_\+code\+::term}



Termination type. 



Referenced by \textbf{ generate\+\_\+trellis()}, \textbf{ osmo\+\_\+conv\+\_\+decode()}, \textbf{ osmo\+\_\+conv\+\_\+decode\+\_\+acc()}, \textbf{ osmo\+\_\+conv\+\_\+decode\+\_\+get\+\_\+best\+\_\+end\+\_\+state()}, \textbf{ osmo\+\_\+conv\+\_\+encode()}, \textbf{ osmo\+\_\+conv\+\_\+get\+\_\+output\+\_\+length()}, and \textbf{ vdec\+\_\+init()}.



The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
include/osmocom/core/\textbf{ conv.\+h}\end{DoxyCompactItemize}
