7#ifndef INCLUDE_LFAST_FIR_FILTER_LFAST_H_
8#define INCLUDE_LFAST_FIR_FILTER_LFAST_H_
10#include <gnuradio/gr_complex.h>
12#include <boost/thread/thread.hpp>
21template <
class io_type,
class tap_type>
class Filter {
30 Filter(
const std::vector<tap_type> &newTaps);
33 virtual void setTaps(
const std::vector<tap_type> &newTaps);
35 inline virtual void set_taps(
const std::vector<tap_type> &newTaps) {
38 virtual std::vector<tap_type>
getTaps()
const;
39 inline virtual std::vector<tap_type>
taps()
const {
return getTaps(); };
43 virtual long filter(io_type *outputBuffer,
const io_type *inputBuffer,
60 virtual long filterN(gr_complex *outputBuffer,
const gr_complex *inputBuffer,
65 const gr_complex *inputBuffer,
long numSamples,
68 virtual gr_complex
filter(
const gr_complex *inputBuffer);
73 const gr_complex *inputBuffer,
long numSamples);
87 virtual long filterN(
float *outputBuffer,
const float *inputBuffer,
91 virtual long filterNdec(
float *outputBuffer,
const float *inputBuffer,
92 long numSamples,
int decimation);
94 virtual gr_complex
filter(
const float *inputBuffer);
98 virtual long filterCPU(
float *outputBuffer,
const float *inputBuffer,
113 virtual long filterN(gr_complex *outputBuffer,
const gr_complex *inputBuffer,
118 const gr_complex *inputBuffer,
long numSamples,
121 virtual gr_complex
filter(
const gr_complex *inputBuffer);
126 const gr_complex *inputBuffer,
long numSamples);
211 virtual long filterN(gr_complex *outputBuffer,
const gr_complex *inputBuffer,
216 const gr_complex *inputBuffer,
long numSamples,
249 virtual long filterN(
float *outputBuffer,
const float *inputBuffer,
253 virtual long filterNdec(
float *outputBuffer,
const float *inputBuffer,
286 virtual long filterN(gr_complex *outputBuffer,
const gr_complex *inputBuffer,
291 const gr_complex *inputBuffer,
long numSamples,
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:35
virtual void setTaps(const std::vector< tap_type > &newTaps)
io_type * singlePointBuffer
Definition fir_filter_lfast.h:24
tap_type * alignedTaps
Definition fir_filter_lfast.h:23
virtual long filter(io_type *outputBuffer, const io_type *inputBuffer, long numSamples)
Definition fir_filter_lfast.h:43
virtual std::vector< tap_type > taps() const
Definition fir_filter_lfast.h:39
virtual std::vector< tap_type > getTaps() const
std::vector< tap_type > d_taps
Definition fir_filter_lfast.h:25
long numTaps
Definition fir_filter_lfast.h:26
Filter(const std::vector< tap_type > &newTaps)
virtual long ntaps()
Definition fir_filter_lfast.h:40
int decimation
Definition fir_filter_lfast.h:148
virtual void setThreads(int nthreads)
bool threadReady
Definition fir_filter_lfast.h:146
int d_nthreads
Definition fir_filter_lfast.h:147
virtual bool anyThreadRunning()
int numThreads()
Definition fir_filter_lfast.h:154
virtual long calcDecimationIndex(long blockStartIndex)
boost::thread * threads[16]
Definition fir_filter_lfast.h:144
virtual int getDecimation()
Definition fir_filter_lfast.h:159
io_type * pOutputBuffer
Definition fir_filter_lfast.h:141
bool threadRunning[16]
Definition fir_filter_lfast.h:145
virtual void setDecimation(int newDecimation)
Definition fir_filter_lfast.h:156
virtual long calcDecimationBlockSize(long numSamples)
virtual bool decimating()
Definition fir_filter_lfast.h:160
const io_type * pInputBuffer
Definition fir_filter_lfast.h:140
Definition fir_filter_lfast.h:17
Definition AutoDopplerCorrect.h:27