Additional constructor for random interleaver (not working yet)
[debian/gnuradio] / gr-trellis / src / lib / interleaver.cc
index 12144bdc0e2105b202a5f4db9784a1e92ce34cda..427db72e3197143556573a6768fe45fd215146ae 100644 (file)
  * Boston, MA 02111-1307, USA.\r
  */\r
 \r
+#include <cstdlib> \r
 #include <cstdio>\r
 #include <stdexcept>\r
 #include <cmath>\r
+#include "quicksort_index.h"\r
 #include "interleaver.h"\r
 \r
 interleaver::interleaver()\r
@@ -78,3 +80,29 @@ interleaver::interleaver(const char *name)
     d_DEINTER[d_INTER[i]]=i;\r
   }\r
 }\r
+\r
+//######################################################################\r
+//# Generate a random interleaver\r
+//######################################################################\r
+interleaver::interleaver(const int K, unsigned int seed)\r
+{\r
+  d_K=K;\r
+  d_INTER.resize(d_K);\r
+  d_DEINTER.resize(d_K);\r
+\r
+  std::runtime_error ("Not yet implemented: something wrong with quicksort\n");\r
+/*\r
+  srand(seed); \r
+  std::vector<int> tmp(d_K);\r
+  for(int i=0;i<d_K;i++)\r
+    //d_INTER[i]=i;\r
+    tmp[i] = rand(); \r
+  quicksort_index <int> (tmp,d_INTER,0,d_K);\r
+\r
+  // generate DEINTER table\r
+  for(int i=0;i<d_K;i++) {\r
+    d_DEINTER[d_INTER[i]]=i;\r
+  }\r
+*/\r
+}\r
+\r