diff --git a/sdrbase/dsp/decimators.h b/sdrbase/dsp/decimators.h index f1565c31f..c09c94210 100644 --- a/sdrbase/dsp/decimators.h +++ b/sdrbase/dsp/decimators.h @@ -18,7 +18,11 @@ #define INCLUDE_GPL_DSP_DECIMATORS_H_ #include "dsp/dsptypes.h" +#ifdef USE_SIMD +#include "dsp/inthalfbandfiltereo1.h" +#else #include "dsp/inthalfbandfilterdb.h" +#endif #define DECIMATORS_HB_FILTER_ORDER 48 @@ -120,12 +124,21 @@ public: void decimate64_cen(SampleVector::iterator* it, const T* buf, qint32 len); private: +#ifdef USE_SIMD + IntHalfbandFilterEO1 m_decimator2; // 1st stages + IntHalfbandFilterEO1 m_decimator4; // 2nd stages + IntHalfbandFilterEO1 m_decimator8; // 3rd stages + IntHalfbandFilterEO1 m_decimator16; // 4th stages + IntHalfbandFilterEO1 m_decimator32; // 5th stages + IntHalfbandFilterEO1 m_decimator64; // 6th stages +#else IntHalfbandFilterDB m_decimator2; // 1st stages IntHalfbandFilterDB m_decimator4; // 2nd stages IntHalfbandFilterDB m_decimator8; // 3rd stages IntHalfbandFilterDB m_decimator16; // 4th stages IntHalfbandFilterDB m_decimator32; // 5th stages IntHalfbandFilterDB m_decimator64; // 6th stages +#endif }; template