28d3778601109fb7b4bd99a42e5fbdd7ad9e3293
[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(const int K, const std::vector<int> & INTER);\r
40   interleaver(const char *name);\r
41   int K () const { return d_K; }\r
42   const std::vector<int> & INTER () const { return d_INTER; }\r
43   const std::vector<int> & DEINTER () const { return d_DEINTER; }\r
44 };\r
45 \r
46 #endif\r