Several enhancements to gr-trellis and gnuradio-examples/python/channel-coding:
[debian/gnuradio] / gr-trellis / src / lib / interleaver.h
1 /* -*- c++ -*- */\r
2 /*\r
3  * Copyright 2002 Free Software Foundation, Inc.\r
4  *\r
5  * This file is part of GNU Radio\r
6  *\r
7  * GNU Radio is free software; you can redistribute it and/or modify\r
8  * it under the terms of the GNU General Public License as published by\r
9  * the Free Software Foundation; either version 2, or (at your option)\r
10  * any later version.\r
11  *\r
12  * GNU Radio is distributed in the hope that it will be useful,\r
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
15  * GNU General Public License for more details.\r
16  *\r
17  * You should have received a copy of the GNU General Public License\r
18  * along with GNU Radio; see the file COPYING.  If not, write to\r
19  * the Free Software Foundation, Inc., 59 Temple Place - Suite 330,\r
20  * Boston, MA 02111-1307, USA.\r
21  */\r
22 \r
23 #ifndef INCLUDED_TRELLIS_INTERLEAVER_H\r
24 #define INCLUDED_TRELLIS_INTERLEAVER_H\r
25 \r
26 #include <vector>\r
27 \r
28 /*!\r
29  * \brief  INTERLEAVER class\r
30  */\r
31 class interleaver {\r
32 private:\r
33   int d_K;\r
34   std::vector<int> d_INTER;\r
35   std::vector<int> d_DEINTER;\r
36 public:\r
37   interleaver();\r
38   interleaver(const interleaver & INTERLEAVER);\r
39   interleaver(int K, const std::vector<int> & INTER);\r
40   interleaver(const char *name);\r
41   interleaver(int K, unsigned int seed);\r
42   int K () const { return d_K; }\r
43   const std::vector<int> & INTER () const { return d_INTER; }\r
44   const std::vector<int> & DEINTER () const { return d_DEINTER; }\r
45 };\r
46 \r
47 #endif\r