/***************************************************************************** Upsampler2xFpu.h Author: Laurent de Soras, 2005 Upsamples by a factor 2 the input signal, using FPU. Template parameters: - NC: number of coefficients, > 0 --- Legal stuff --- This program is free software. It comes without any warranty, to the extent permitted by applicable law. You can redistribute it and/or modify it under the terms of the Do What The Fuck You Want To Public License, Version 2, as published by Sam Hocevar. See http://sam.zoy.org/wtfpl/COPYING for more details. *Tab=3***********************************************************************/ #if ! defined (hiir_Upsampler2xFpu_HEADER_INCLUDED) #define hiir_Upsampler2xFpu_HEADER_INCLUDED #if defined (_MSC_VER) #pragma once #pragma warning (4 : 4250) // "Inherits via dominance." #endif /*\\\ INCLUDE FILES \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/ #include namespace hiir { template class Upsampler2xFpu { static_assert ((NC > 0), "Number of coefficient must be positive."); /*\\\ PUBLIC \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/ public: enum { NBR_COEFS = NC }; Upsampler2xFpu (); void set_coefs (const double coef_arr [NBR_COEFS]); inline void process_sample (float &out_0, float &out_1, float input); void process_block (float out_ptr [], const float in_ptr [], long nbr_spl); void clear_buffers (); /*\\\ PROTECTED \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/ protected: /*\\\ PRIVATE \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/ private: typedef std::array HyperGluar; HyperGluar _coef; HyperGluar _x; HyperGluar _y; /*\\\ FORBIDDEN MEMBER FUNCTIONS \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/ private: bool operator == (const Upsampler2xFpu &other); bool operator != (const Upsampler2xFpu &other); }; // class Upsampler2xFpu } // namespace hiir #include "hiir/Upsampler2xFpu.hpp" #endif // hiir_Upsampler2xFpu_HEADER_INCLUDED /*\\\ EOF \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/