Minor fix in interleaver class: invoking with negative seed will not reset the random...
authoranastas <anastas@221aa14e-8319-0410-a670-987f0aec2ac5>
Tue, 6 Feb 2007 23:55:34 +0000 (23:55 +0000)
committeranastas <anastas@221aa14e-8319-0410-a670-987f0aec2ac5>
Tue, 6 Feb 2007 23:55:34 +0000 (23:55 +0000)
git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@4402 221aa14e-8319-0410-a670-987f0aec2ac5

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

index 33556ea45b5145eb2f73df289245d3e966f88df5..93c194709db2c3faf4d29cbc704a315ee1c22922 100644 (file)
@@ -85,13 +85,13 @@ interleaver::interleaver(const char *name)
 //######################################################################
 //# Generate a random interleaver
 //######################################################################
-interleaver::interleaver(int K, unsigned int seed)
+interleaver::interleaver(int K, int seed)
 {
   d_K=K;
   d_INTER.resize(d_K);
   d_DEINTER.resize(d_K);
 
-  srand(seed);
+  if(seed>=0) srand((unsigned int)seed); 
   std::vector<int> tmp(d_K);
   for(int i=0;i<d_K;i++) {
     d_INTER[i]=i;
index 53a3123bad90d915e55e1737864c88567d2948be..466b0cdd22b9aceac83464cc8931532249b90ce3 100644 (file)
@@ -38,7 +38,7 @@ public:
   interleaver(const interleaver & INTERLEAVER);
   interleaver(int K, const std::vector<int> & INTER);
   interleaver(const char *name);
-  interleaver(int K, unsigned int seed);
+  interleaver(int K, int seed);
   int K () const { return d_K; }
   const std::vector<int> & INTER () const { return d_INTER; }
   const std::vector<int> & DEINTER () const { return d_DEINTER; }
index 46db7216bd10317e7da68126b64737cc5da83aec..a5e68dc589db11358bb3e4e39127114adf64f627 100644 (file)
@@ -30,7 +30,7 @@ public:
   interleaver(const interleaver & INTERLEAVER);\r
   interleaver(int K, const std::vector<int> & INTER);\r
   interleaver(const char *name);\r
-  interleaver(int K, unsigned int seed);\r
+  interleaver(int K, int seed);\r
   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
index 0b577ff0535dea711692844c7ea923fcc6b6aecf..591d8fdb990017aca23289add7a67425d6b6d757 100644 (file)
@@ -61,7 +61,7 @@ quicksort_index
 }
 
 // instantiate an <int> version of the quicksort_index
-
+//template <int> void SWAP (int & a, int & b);
 template
 void
 quicksort_index<int>
index b519b66c9d115a61db8127d0ca66fcc5fb765ad5..0f620c564fd5fe9777e4d106805497295b374af6 100644 (file)
@@ -29,7 +29,6 @@ template <class T>
 void SWAP (T & a, T & b);
 
 template <class T>
-void quicksort_index (std::vector<T> & p, std::vector<int> & index,
-                     int left, int right);
+void quicksort_index (std::vector<T> & p, std::vector<int> & index, int left, int right);
 
 #endif