GNU Radio 3.6.5 C++ API
|
common base class for SIMD versions of gr_fir_sccThis base class handles alignment issues common to SSE and 3DNOW subclasses. More...
#include <gr_fir_scc_simd.h>
Public Member Functions | |
gr_fir_scc_simd () | |
gr_fir_scc_simd (const std::vector< gr_complex > &taps) | |
~gr_fir_scc_simd () | |
virtual void | set_taps (const std::vector< gr_complex > &taps) |
install new_taps as the current taps. | |
virtual gr_complex | filter (const short input[]) |
compute a single output value. | |
Protected Types | |
typedef void(* | complex_dotprod_t )(const short *input, const float *taps, unsigned n_2_complex_blocks, float *result) |
Protected Attributes | |
float * | d_aligned_taps [4] |
complex_dotprod_t | d_complex_dotprod |
common base class for SIMD versions of gr_fir_scc
This base class handles alignment issues common to SSE and 3DNOW subclasses.
typedef void(* gr_fir_scc_simd::complex_dotprod_t)(const short *input, const float *taps, unsigned n_2_complex_blocks, float *result) [protected] |
gr_fir_scc_simd::gr_fir_scc_simd | ( | ) |
gr_fir_scc_simd::gr_fir_scc_simd | ( | const std::vector< gr_complex > & | taps | ) |
gr_fir_scc_simd::~gr_fir_scc_simd | ( | ) |
virtual gr_complex gr_fir_scc_simd::filter | ( | const short | input[] | ) | [virtual] |
compute a single output value.
input
must have ntaps() valid entries. input[0] .. input[ntaps() - 1] are referenced to compute the output value.
Reimplemented from gr_fir_scc_generic.
virtual void gr_fir_scc_simd::set_taps | ( | const std::vector< gr_complex > & | taps | ) | [virtual] |
install new_taps
as the current taps.
Reimplemented from gr_fir_scc.
float* gr_fir_scc_simd::d_aligned_taps[4] [protected] |
aligned_taps
holds 4 copies of the coefficients preshifted by 0, 1, 2, or 3 float pairs to meet all possible input data alignments. This allows us to always fetch data and taps that are 128-bit aligned.
complex_dotprod_t gr_fir_scc_simd::d_complex_dotprod [protected] |