GNU Radio C++ API
gr_fir_ccf_simd Class Reference

common base class for SIMD versions of gr_fir_ccfThis base class handles alignment issues common to SSE and 3DNOW subclasses. More...

#include <gr_fir_ccf_simd.h>

Inheritance diagram for gr_fir_ccf_simd:

Public Member Functions

 gr_fir_ccf_simd ()
 
 gr_fir_ccf_simd (const std::vector< float > &taps)
 
 ~gr_fir_ccf_simd ()
 
virtual void set_taps (const std::vector< float > &taps)
 install new_taps as the current taps. More...
 
virtual gr_complex filter (const gr_complex input[])
 compute a single output value. More...
 
- Public Member Functions inherited from gr_fir_ccf_generic
 gr_fir_ccf_generic ()
 
 gr_fir_ccf_generic (const std::vector< float > &taps)
 
virtual void filterN (gr_complex output[], const gr_complex input[], unsigned long n)
 compute an array of N output values. More...
 
virtual void filterNdec (gr_complex output[], const gr_complex input[], unsigned long n, unsigned decimate)
 compute an array of N output values, decimating the input More...
 
- Public Member Functions inherited from gr_fir_ccf
 gr_fir_ccf ()
 construct new FIR with given taps. More...
 
 gr_fir_ccf (const std::vector< float > &taps)
 
virtual ~gr_fir_ccf ()
 
unsigned ntaps () const
 
virtual const std::vector< float > get_taps () const
 

Protected Types

typedef void(* fcomplex_dotprod_t )(const float *taps, const float *input, unsigned n_2_complex_blocks, float *result)
 

Protected Attributes

float * d_aligned_taps [4]
 
fcomplex_dotprod_t d_fcomplex_dotprod
 

Detailed Description

common base class for SIMD versions of gr_fir_ccf

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

Member Typedef Documentation

typedef void(* gr_fir_ccf_simd::fcomplex_dotprod_t)(const float *taps, const float *input, unsigned n_2_complex_blocks, float *result)
protected

Constructor & Destructor Documentation

gr_fir_ccf_simd::gr_fir_ccf_simd ( )
gr_fir_ccf_simd::gr_fir_ccf_simd ( const std::vector< float > &  taps)
gr_fir_ccf_simd::~gr_fir_ccf_simd ( )

Member Function Documentation

virtual gr_complex gr_fir_ccf_simd::filter ( const gr_complex  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_ccf_generic.

virtual void gr_fir_ccf_simd::set_taps ( const std::vector< float > &  taps)
virtual

install new_taps as the current taps.

Reimplemented from gr_fir_ccf.

Member Data Documentation

float* gr_fir_ccf_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.

fcomplex_dotprod_t gr_fir_ccf_simd::d_fcomplex_dotprod
protected

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