X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=gr-trellis%2Fsrc%2Flib%2Finterleaver.cc;h=ff15eeadc8a974c03577acf170e5dbe79ff8a341;hb=a72819e861caaabdea0ac41f5f5e387cb61d3513;hp=b33ac5b2d4b324ef3f9b6991712fd4f62b2ddfb9;hpb=86f5c92427b3f4bb30536d76cf63c3fca388fb2f;p=debian%2Fgnuradio diff --git a/gr-trellis/src/lib/interleaver.cc b/gr-trellis/src/lib/interleaver.cc index b33ac5b2..ff15eead 100644 --- a/gr-trellis/src/lib/interleaver.cc +++ b/gr-trellis/src/lib/interleaver.cc @@ -6,7 +6,7 @@ * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) + * the Free Software Foundation; either version 3, or (at your option) * any later version. * * GNU Radio is distributed in the hope that it will be useful, @@ -23,11 +23,16 @@ #include #include #include +#include +#include #include #include #include "quicksort_index.h" #include "interleaver.h" + + + interleaver::interleaver() { d_K=0; @@ -70,11 +75,20 @@ interleaver::interleaver(const char *name) throw std::runtime_error ("file open error in interleaver()"); //printf("file open error in interleaver()\n"); - fscanf(interleaverfile,"%d\n",&d_K); + if(fscanf(interleaverfile,"%d\n",&d_K) == EOF) { + if(ferror(interleaverfile) != 0) + throw std::runtime_error ("interleaver::interleaver(const char *name): file read error\n"); + } + d_INTER.resize(d_K); d_DEINTER.resize(d_K); - for(int i=0;i=0) srand((unsigned int)seed); std::vector tmp(d_K); for(int i=0;i (tmp,d_INTER,0,d_K-1); //got to resolve this... - quicksort_index1 (tmp,d_INTER,0,d_K-1); + quicksort_index (tmp,d_INTER,0,d_K-1); // generate DEINTER table for(int i=0;i