20#ifndef INCLUDE_LFAST_FIR_FILTER_LFAST_H_
21#define INCLUDE_LFAST_FIR_FILTER_LFAST_H_
23#include <gnuradio/gr_complex.h>
25#include <boost/thread/thread.hpp>
34 template<
class io_type,
class tap_type>
44 Filter(
const std::vector<tap_type>& newTaps);
47 virtual void setTaps(
const std::vector<tap_type>& newTaps);
49 inline virtual void set_taps(
const std::vector<tap_type>& newTaps) {
setTaps(newTaps); };
50 virtual std::vector<tap_type>
getTaps()
const;
51 inline virtual std::vector<tap_type>
taps()
const {
return getTaps();};
55 virtual long filter(io_type *outputBuffer,
const io_type *inputBuffer,
long numSamples) {
return 0;};
68 virtual long filterN(gr_complex *outputBuffer,
const gr_complex *inputBuffer,
long numSamples);
71 virtual long filterNdec(gr_complex *outputBuffer,
const gr_complex *inputBuffer,
long numSamples,
int decimation);
73 virtual gr_complex
filter(
const gr_complex *inputBuffer);
76 virtual long filterCPU(gr_complex *outputBuffer,
const gr_complex *inputBuffer,
long numSamples);
89 virtual long filterN(
float *outputBuffer,
const float *inputBuffer,
long numSamples);
92 virtual long filterNdec(
float *outputBuffer,
const float *inputBuffer,
long numSamples,
int decimation);
94 virtual gr_complex
filter(
const float *inputBuffer);
97 virtual long filterCPU(
float *outputBuffer,
const float *inputBuffer,
long numSamples);
110 virtual long filterN(gr_complex *outputBuffer,
const gr_complex *inputBuffer,
long numSamples);
113 virtual long filterNdec(gr_complex *outputBuffer,
const gr_complex *inputBuffer,
long numSamples,
int decimation);
115 virtual gr_complex
filter(
const gr_complex *inputBuffer);
118 virtual long filterCPU(gr_complex *outputBuffer,
const gr_complex *inputBuffer,
long numSamples);
131 template<
class io_type>
197 virtual long filterN(gr_complex *outputBuffer,
const gr_complex *inputBuffer,
long numSamples);
200 virtual long filterNdec(gr_complex *outputBuffer,
const gr_complex *inputBuffer,
long numSamples,
int decimation);
232 virtual long filterN(
float *outputBuffer,
const float *inputBuffer,
long numSamples);
266 virtual long filterN(gr_complex *outputBuffer,
const gr_complex *inputBuffer,
long numSamples);
269 virtual long filterNdec(gr_complex *outputBuffer,
const gr_complex *inputBuffer,
long numSamples,
int decimation);
virtual void runThread1(long startIndex, long numSamples)
virtual void runThread8(long startIndex, long numSamples)
virtual void runThread2(long startIndex, long numSamples)
virtual void runThread15(long startIndex, long numSamples)
FIRFilterCCC_MT(const std::vector< gr_complex > &newTaps, int nthreads)
virtual void runThread10(long startIndex, long numSamples)
virtual void runThread13(long startIndex, long numSamples)
virtual long filterNdec(gr_complex *outputBuffer, const gr_complex *inputBuffer, long numSamples, int decimation)
virtual void runThread6(long startIndex, long numSamples)
virtual void runThread16(long startIndex, long numSamples)
virtual void runThread9(long startIndex, long numSamples)
virtual void runThread5(long startIndex, long numSamples)
virtual void runThread3(long startIndex, long numSamples)
virtual ~FIRFilterCCC_MT()
virtual void runThread12(long startIndex, long numSamples)
virtual void runThread11(long startIndex, long numSamples)
virtual long filterN(gr_complex *outputBuffer, const gr_complex *inputBuffer, long numSamples)
FIRFilterCCC_MT(int nthreads)
virtual void runThread4(long startIndex, long numSamples)
virtual void runThread7(long startIndex, long numSamples)
virtual void runThread14(long startIndex, long numSamples)
virtual long filterN(gr_complex *outputBuffer, const gr_complex *inputBuffer, long numSamples)
virtual gr_complex filter(const gr_complex *inputBuffer)
virtual long filterCPU(gr_complex *outputBuffer, const gr_complex *inputBuffer, long numSamples)
virtual long filterNdec(gr_complex *outputBuffer, const gr_complex *inputBuffer, long numSamples, int decimation)
FIRFilterCCC(const std::vector< gr_complex > &newTaps)
FIRFilterCCF_MT(const std::vector< float > &newTaps, int nthreads)
virtual ~FIRFilterCCF_MT()
virtual void runThread9(long startIndex, long numSamples)
virtual void runThread12(long startIndex, long numSamples)
virtual void runThread5(long startIndex, long numSamples)
virtual void runThread6(long startIndex, long numSamples)
virtual long filterN(gr_complex *outputBuffer, const gr_complex *inputBuffer, long numSamples)
virtual void runThread4(long startIndex, long numSamples)
virtual void runThread8(long startIndex, long numSamples)
virtual void runThread11(long startIndex, long numSamples)
virtual void runThread16(long startIndex, long numSamples)
virtual void runThread13(long startIndex, long numSamples)
virtual void runThread10(long startIndex, long numSamples)
virtual void runThread3(long startIndex, long numSamples)
virtual void runThread2(long startIndex, long numSamples)
FIRFilterCCF_MT(int nthreads)
virtual void runThread14(long startIndex, long numSamples)
virtual void runThread7(long startIndex, long numSamples)
virtual void runThread1(long startIndex, long numSamples)
virtual void runThread15(long startIndex, long numSamples)
virtual long filterNdec(gr_complex *outputBuffer, const gr_complex *inputBuffer, long numSamples, int decimation)
virtual long filterN(gr_complex *outputBuffer, const gr_complex *inputBuffer, long numSamples)
FIRFilterCCF(const std::vector< float > &newTaps)
virtual long filterNdec(gr_complex *outputBuffer, const gr_complex *inputBuffer, long numSamples, int decimation)
virtual long filterCPU(gr_complex *outputBuffer, const gr_complex *inputBuffer, long numSamples)
virtual gr_complex filter(const gr_complex *inputBuffer)
FIRFilterFFF_MT(const std::vector< float > &newTaps, int nthreads)
virtual long filterNdec(float *outputBuffer, const float *inputBuffer, long numSamples, int decimation)
virtual void runThread4(long startIndex, long numSamples)
virtual void runThread12(long startIndex, long numSamples)
virtual void runThread10(long startIndex, long numSamples)
virtual void runThread5(long startIndex, long numSamples)
virtual void runThread13(long startIndex, long numSamples)
virtual void runThread14(long startIndex, long numSamples)
virtual void runThread15(long startIndex, long numSamples)
FIRFilterFFF_MT(int nthreads)
virtual void runThread6(long startIndex, long numSamples)
virtual void runThread7(long startIndex, long numSamples)
virtual void runThread11(long startIndex, long numSamples)
virtual void runThread16(long startIndex, long numSamples)
virtual void runThread8(long startIndex, long numSamples)
virtual void runThread1(long startIndex, long numSamples)
virtual void runThread3(long startIndex, long numSamples)
virtual ~FIRFilterFFF_MT()
virtual long filterN(float *outputBuffer, const float *inputBuffer, long numSamples)
virtual void runThread9(long startIndex, long numSamples)
virtual void runThread2(long startIndex, long numSamples)
FIRFilterFFF(const std::vector< float > &newTaps)
virtual long filterNdec(float *outputBuffer, const float *inputBuffer, long numSamples, int decimation)
virtual long filterCPU(float *outputBuffer, const float *inputBuffer, long numSamples)
virtual gr_complex filter(const float *inputBuffer)
virtual long filterN(float *outputBuffer, const float *inputBuffer, long numSamples)
virtual void set_taps(const std::vector< tap_type > &newTaps)
Definition fir_filter_lfast.h:49
virtual void setTaps(const std::vector< tap_type > &newTaps)
io_type * singlePointBuffer
Definition fir_filter_lfast.h:38
tap_type * alignedTaps
Definition fir_filter_lfast.h:37
virtual long filter(io_type *outputBuffer, const io_type *inputBuffer, long numSamples)
Definition fir_filter_lfast.h:55
virtual std::vector< tap_type > taps() const
Definition fir_filter_lfast.h:51
virtual std::vector< tap_type > getTaps() const
std::vector< tap_type > d_taps
Definition fir_filter_lfast.h:39
long numTaps
Definition fir_filter_lfast.h:40
Filter(const std::vector< tap_type > &newTaps)
virtual long ntaps()
Definition fir_filter_lfast.h:52
int decimation
Definition fir_filter_lfast.h:142
virtual void setThreads(int nthreads)
bool threadReady
Definition fir_filter_lfast.h:140
int d_nthreads
Definition fir_filter_lfast.h:141
virtual bool anyThreadRunning()
int numThreads()
Definition fir_filter_lfast.h:149
virtual long calcDecimationIndex(long blockStartIndex)
boost::thread * threads[16]
Definition fir_filter_lfast.h:138
virtual int getDecimation()
Definition fir_filter_lfast.h:152
io_type * pOutputBuffer
Definition fir_filter_lfast.h:135
bool threadRunning[16]
Definition fir_filter_lfast.h:139
virtual void setDecimation(int newDecimation)
Definition fir_filter_lfast.h:151
virtual long calcDecimationBlockSize(long numSamples)
virtual bool decimating()
Definition fir_filter_lfast.h:153
const io_type * pInputBuffer
Definition fir_filter_lfast.h:134