#include <gr_fir_fff_simd.h>


This base class handles alignment issues common to SSE and 3DNOW subclasses.
Public Member Functions | |
| gr_fir_fff_simd () | |
| gr_fir_fff_simd (const std::vector< float > &taps) | |
| ~gr_fir_fff_simd () | |
| virtual void | set_taps (const std::vector< float > &taps) |
install new_taps as the current taps. | |
| virtual float | filter (const float input[]) |
| compute a single output value. | |
Protected Types | |
| typedef float(* | float_dotprod_t )(const float *input, const float *taps, unsigned n_4_float_blocks) |
Protected Attributes | |
| float * | d_aligned_taps [4] |
| float_dotprod_t | d_float_dotprod |
typedef float(* gr_fir_fff_simd::float_dotprod_t)(const float *input, const float *taps, unsigned n_4_float_blocks) [protected] |
| gr_fir_fff_simd::gr_fir_fff_simd | ( | ) |
References d_aligned_taps, and d_float_dotprod.
| gr_fir_fff_simd::gr_fir_fff_simd | ( | const std::vector< float > & | taps | ) |
References d_aligned_taps, d_float_dotprod, and set_taps().
| gr_fir_fff_simd::~gr_fir_fff_simd | ( | ) |
References d_aligned_taps, and free16Align().
| void gr_fir_fff_simd::set_taps | ( | const std::vector< float > & | taps | ) | [virtual] |
install new_taps as the current taps.
Reimplemented from gr_fir_fff.
References calloc16Align(), d_aligned_taps, free16Align(), gr_reverse(), and gr_fir_fff::set_taps().
Referenced by gr_fir_fff_simd().
| float gr_fir_fff_simd::filter | ( | const float | 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_fff_generic.
References d_aligned_taps, d_float_dotprod, and gr_fir_fff::ntaps().
float* gr_fir_fff_simd::d_aligned_taps[4] [protected] |
aligned_taps holds 4 copies of the coefficients preshifted by 0, 1, 2, or 3 floats to meet all possible input data alignments. This allows us to always fetch data and taps that are 128-bit aligned.
Referenced by filter(), gr_fir_fff_simd(), set_taps(), and ~gr_fir_fff_simd().
float_dotprod_t gr_fir_fff_simd::d_float_dotprod [protected] |
Referenced by filter(), gr_fir_fff_3dnow::gr_fir_fff_3dnow(), gr_fir_fff_simd(), and gr_fir_fff_sse::gr_fir_fff_sse().
1.5.5