added methods to interleaver class for writting to text file
authoranastas <anastas@221aa14e-8319-0410-a670-987f0aec2ac5>
Tue, 13 Feb 2007 04:52:51 +0000 (04:52 +0000)
committeranastas <anastas@221aa14e-8319-0410-a670-987f0aec2ac5>
Tue, 13 Feb 2007 04:52:51 +0000 (04:52 +0000)
git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@4463 221aa14e-8319-0410-a670-987f0aec2ac5

gr-trellis/src/lib/interleaver.cc
gr-trellis/src/lib/interleaver.h
gr-trellis/src/lib/interleaver.i

index 93c194709db2c3faf4d29cbc704a315ee1c22922..ad33d78bf58e0a398c7669a9ce44c445042f8bf3 100644 (file)
 #include <cstdlib> 
 #include <cstdio>
 #include <iostream>
+#include <string>
+#include <fstream>
 #include <stdexcept>
 #include <cmath>
 #include "quicksort_index.h"
 #include "interleaver.h"
 
+
+
+
 interleaver::interleaver()
 {
   d_K=0;
@@ -104,3 +109,27 @@ interleaver::interleaver(int K, int seed)
     d_DEINTER[d_INTER[i]]=i;
   }
 }
+
+
+
+
+
+//######################################################################
+//# Write an INTERLEAVER specification from a file.
+//# Format
+//# K
+//# blank line
+//# list of space separated K integers from 0 to K-1 in appropriate order
+//# optional comments
+//######################################################################
+void interleaver::write_interleaver_txt(std::string filename)
+{
+   std::ofstream interleaver_fname (filename.c_str());
+   if (!interleaver_fname) {std::cout << "file not found " << std::endl ; exit(-1);}
+   interleaver_fname << d_K << std::endl;
+   interleaver_fname << std::endl;
+   for(int i=0;i<d_K;i++)
+     interleaver_fname << d_INTER[i] << ' ';
+   interleaver_fname << std::endl;
+   interleaver_fname.close();
+}
index 466b0cdd22b9aceac83464cc8931532249b90ce3..5282a4ba8fea4755abfb19e8c2c522321c7cf996 100644 (file)
@@ -42,6 +42,7 @@ public:
   int K () const { return d_K; }
   const std::vector<int> & INTER () const { return d_INTER; }
   const std::vector<int> & DEINTER () const { return d_DEINTER; }
+  void write_interleaver_txt(std::string filename);
 };
 
 #endif
index a5e68dc589db11358bb3e4e39127114adf64f627..30a97bf6b370dcce88490092f3eba581dec4159f 100644 (file)
@@ -34,4 +34,5 @@ public:
   int K () const { return d_K; }\r
   const std::vector<int> & INTER () const { return d_INTER; }\r
   const std::vector<int> & DEINTER () const { return d_DEINTER; }\r
+  void write_interleaver_txt(std::string filename);\r
 };\r