Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef INCLUDED_TRELLIS_PERMUTATION_H
00025 #define INCLUDED_TRELLIS_PERMUTATION_H
00026
00027 #include <vector>
00028 #include <gr_sync_block.h>
00029
00030 class trellis_permutation;
00031 typedef boost::shared_ptr<trellis_permutation> trellis_permutation_sptr;
00032
00033 trellis_permutation_sptr trellis_make_permutation (int K, const std::vector<int> &TABLE, int SYMS_PER_BLOCK, size_t NBYTES_INOUT);
00034
00035
00036
00037
00038
00039 class trellis_permutation : public gr_sync_block
00040 {
00041 private:
00042 friend trellis_permutation_sptr trellis_make_permutation (int K, const std::vector<int> &TABLE, int SYMS_PER_BLOCK, size_t NBYTES_INOUT);
00043 int d_K;
00044 std::vector<int> d_TABLE;
00045 int d_SYMS_PER_BLOCK;
00046 size_t d_NBYTES_INOUT;
00047 trellis_permutation (int K, const std::vector<int> &TABLE, int SYMS_PER_BLOCK, size_t NBYTES);
00048
00049 public:
00050 int K () const { return d_K; }
00051 const std::vector<int> & TABLE () const { return d_TABLE; }
00052 int SYMS_PER_BLOCK () const { return d_SYMS_PER_BLOCK; }
00053 size_t NBYTES_INOUT () const { return d_NBYTES_INOUT; }
00054
00055 int work (int noutput_items,
00056 gr_vector_const_void_star &input_items,
00057 gr_vector_void_star &output_items);
00058 };
00059
00060 #endif