vspline 1.1.0
Generic C++11 Code for Uniform B-Splines
Classes | Public Member Functions | Static Public Attributes | List of all members
vspline::iir_filter< in_type, out_type, _math_type > Class Template Reference

class iir_filter implements an n-pole forward/backward recursive filter to be used for b-spline prefiltering. It inherits from the 'specs' class for easy initialization. More...

#include <prefilter.h>

Inheritance diagram for vspline::iir_filter< in_type, out_type, _math_type >:
vspline::iir_filter_specs

Public Member Functions

int get_support_width () const
 calling code may have to set up buffers with additional space around the actual data to allow filtering code to 'run up' to the data, shedding margin effects in the process. For an IIR filter, this is theoretically infinite , but since we usually work to a specified precision, we can pass 'horizon' - horizon[0] containing the largest of the horizon values. More...
 
void solve (const in_buffer_type &input, out_buffer_type &output)
 solve() takes two buffers, one to the input data and one to the output space. The containers must have the same size. It's safe to use solve() in-place. More...
 
void solve (out_buffer_type &data)
 for in-place operation we use the same filter routine. More...
 
 iir_filter (const iir_filter_specs &specs)
 The last bit of work left is the constructor. This simply passes the specs to the base class constructor, as iir_filter inherits from the specs type. More...
 
- Public Member Functions inherited from vspline::iir_filter_specs
 iir_filter_specs (vspline::bc_code _bc, int _npoles, const xlf_type *_pole, xlf_type _tolerance, xlf_type _boost=xlf_type(1))
 

Static Public Attributes

static const bool is_single_pass { false }
 

Additional Inherited Members

- Public Attributes inherited from vspline::iir_filter_specs
vspline::bc_code bc
 
int npoles
 
const xlf_typepole
 
xlf_type tolerance
 
xlf_type boost
 

Detailed Description

template<typename in_type, typename out_type = in_type, typename _math_type = out_type>
class vspline::iir_filter< in_type, out_type, _math_type >

class iir_filter implements an n-pole forward/backward recursive filter to be used for b-spline prefiltering. It inherits from the 'specs' class for easy initialization.

Definition at line 191 of file prefilter.h.

Constructor & Destructor Documentation

◆ iir_filter()

template<typename in_type , typename out_type = in_type, typename _math_type = out_type>
vspline::iir_filter< in_type, out_type, _math_type >::iir_filter ( const iir_filter_specs specs)
inline

The last bit of work left is the constructor. This simply passes the specs to the base class constructor, as iir_filter inherits from the specs type.

Definition at line 805 of file prefilter.h.

Member Function Documentation

◆ get_support_width()

template<typename in_type , typename out_type = in_type, typename _math_type = out_type>
int vspline::iir_filter< in_type, out_type, _math_type >::get_support_width ( ) const
inline

calling code may have to set up buffers with additional space around the actual data to allow filtering code to 'run up' to the data, shedding margin effects in the process. For an IIR filter, this is theoretically infinite , but since we usually work to a specified precision, we can pass 'horizon' - horizon[0] containing the largest of the horizon values.

Definition at line 245 of file prefilter.h.

◆ solve() [1/2]

template<typename in_type , typename out_type = in_type, typename _math_type = out_type>
void vspline::iir_filter< in_type, out_type, _math_type >::solve ( const in_buffer_type &  input,
out_buffer_type &  output 
)
inline

solve() takes two buffers, one to the input data and one to the output space. The containers must have the same size. It's safe to use solve() in-place.

Definition at line 259 of file prefilter.h.

◆ solve() [2/2]

template<typename in_type , typename out_type = in_type, typename _math_type = out_type>
void vspline::iir_filter< in_type, out_type, _math_type >::solve ( out_buffer_type &  data)
inline

for in-place operation we use the same filter routine.

Definition at line 267 of file prefilter.h.

Member Data Documentation

◆ is_single_pass

template<typename in_type , typename out_type = in_type, typename _math_type = out_type>
const bool vspline::iir_filter< in_type, out_type, _math_type >::is_single_pass { false }
static

Definition at line 235 of file prefilter.h.


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