GNU Radio 3.6.5 C++ API

gr_fir_ccc_simd Class Reference

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

#include <gr_fir_ccc_simd.h>

Inheritance diagram for gr_fir_ccc_simd:
gr_fir_ccc_generic gr_fir_ccc gr_fir_ccc_3dnow gr_fir_ccc_3dnowext gr_fir_ccc_sse

List of all members.

Public Member Functions

 gr_fir_ccc_simd ()
 gr_fir_ccc_simd (const std::vector< gr_complex > &taps)
 ~gr_fir_ccc_simd ()
virtual void set_taps (const std::vector< gr_complex > &taps)
 install new_taps as the current taps.
virtual gr_complex filter (const gr_complex input[])
 compute a single output value.

Protected Types

typedef void(* ccomplex_dotprod_t )(const float *input, const float *taps, unsigned n_2_ccomplex_blocks, float *result)

Protected Attributes

float * d_aligned_taps [4]
ccomplex_dotprod_t d_ccomplex_dotprod

Detailed Description

common base class for SIMD versions of gr_fir_ccc

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


Member Typedef Documentation

typedef void(* gr_fir_ccc_simd::ccomplex_dotprod_t)(const float *input, const float *taps, unsigned n_2_ccomplex_blocks, float *result) [protected]

Constructor & Destructor Documentation

gr_fir_ccc_simd::gr_fir_ccc_simd ( )
gr_fir_ccc_simd::gr_fir_ccc_simd ( const std::vector< gr_complex > &  taps)
gr_fir_ccc_simd::~gr_fir_ccc_simd ( )

Member Function Documentation

virtual gr_complex gr_fir_ccc_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_ccc_generic.

virtual void gr_fir_ccc_simd::set_taps ( const std::vector< gr_complex > &  taps) [virtual]

install new_taps as the current taps.

Reimplemented from gr_fir_ccc.


Member Data Documentation

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


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