gr_fir_fsf_simd Class Reference

#include <gr_fir_fsf_simd.h>

Inheritance diagram for gr_fir_fsf_simd:

Inheritance graph
[legend]
Collaboration diagram for gr_fir_fsf_simd:

Collaboration graph
[legend]

List of all members.


Detailed Description

common base class for SIMD versions of gr_fir_fsf

This base class handles alignment issues common to SSE and 3DNOW subclasses.

Public Member Functions

 gr_fir_fsf_simd ()
 gr_fir_fsf_simd (const std::vector< float > &taps)
 ~gr_fir_fsf_simd ()
virtual void set_taps (const std::vector< float > &taps)
 install new_taps as the current taps.
virtual short 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


Member Typedef Documentation

typedef float(* gr_fir_fsf_simd::float_dotprod_t)(const float *input, const float *taps, unsigned n_4_float_blocks) [protected]


Constructor & Destructor Documentation

gr_fir_fsf_simd::gr_fir_fsf_simd (  ) 

References d_aligned_taps, and d_float_dotprod.

gr_fir_fsf_simd::gr_fir_fsf_simd ( const std::vector< float > &  taps  ) 

gr_fir_fsf_simd::~gr_fir_fsf_simd (  ) 

References d_aligned_taps, and free16Align().


Member Function Documentation

void gr_fir_fsf_simd::set_taps ( const std::vector< float > &  taps  )  [virtual]

install new_taps as the current taps.

Reimplemented from gr_fir_fsf.

References calloc16Align(), d_aligned_taps, free16Align(), gr_reverse(), and gr_fir_fsf::set_taps().

Referenced by gr_fir_fsf_simd().

short gr_fir_fsf_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.

Returns:
the filtered input value.

Reimplemented from gr_fir_fsf_generic.

References d_aligned_taps, d_float_dotprod, and gr_fir_fsf::ntaps().


Member Data Documentation

float* gr_fir_fsf_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_fsf_simd(), set_taps(), and ~gr_fir_fsf_simd().


The documentation for this class was generated from the following files:

Generated on Thu Mar 27 14:50:28 2008 for GNU Radio 3.1.1 by  doxygen 1.5.5