FFTReal.h Example Filedemos/spectrum/3rdparty/fftreal/FFTReal.h/***************************************************************************** FFTReal.h Copyright (c) 2005 Laurent de Soras --- Legal stuff --- This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *Tab=3***********************************************************************/ #if ! defined (FFTReal_HEADER_INCLUDED) #define FFTReal_HEADER_INCLUDED #if defined (_MSC_VER) #pragma once #pragma warning (4 : 4250) // "Inherits via dominance." #endif /*\\\ INCLUDE FILES \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/ #include "def.h" #include "DynArray.h" #include "OscSinCos.h" template <class DT> class FFTReal { /*\\\ PUBLIC \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/ public: enum { MAX_BIT_DEPTH = 30 }; // So length can be represented as long int typedef DT DataType; explicit FFTReal (long length); virtual ~FFTReal () {} long get_length () const; void do_fft (DataType f [], const DataType x []) const; void do_ifft (const DataType f [], DataType x []) const; void rescale (DataType x []) const; DataType * use_buffer () const; /*\\\ PROTECTED \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/ protected: /*\\\ PRIVATE \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/ private: // Over this bit depth, we use direct calculation for sin/cos enum { TRIGO_BD_LIMIT = 12 }; typedef OscSinCos <DataType> OscType; void init_br_lut (); void init_trigo_lut (); void init_trigo_osc (); FORCEINLINE const long * get_br_ptr () const; FORCEINLINE const DataType * get_trigo_ptr (int level) const; FORCEINLINE long get_trigo_level_index (int level) const; inline void compute_fft_general (DataType f [], const DataType x []) const; inline void compute_direct_pass_1_2 (DataType df [], const DataType x []) const; inline void compute_direct_pass_3 (DataType df [], const DataType sf []) const; inline void compute_direct_pass_n (DataType df [], const DataType sf [], int pass) const; inline void compute_direct_pass_n_lut (DataType df [], const DataType sf [], int pass) const; inline void compute_direct_pass_n_osc (DataType df [], const DataType sf [], int pass) const; inline void compute_ifft_general (const DataType f [], DataType x []) const; inline void compute_inverse_pass_n (DataType df [], const DataType sf [], int pass) const; inline void compute_inverse_pass_n_osc (DataType df [], const DataType sf [], int pass) const; inline void compute_inverse_pass_n_lut (DataType df [], const DataType sf [], int pass) const; inline void compute_inverse_pass_3 (DataType df [], const DataType sf []) const; inline void compute_inverse_pass_1_2 (DataType x [], const DataType sf []) const; const long _length; const int _nbr_bits; DynArray <long> _br_lut; DynArray <DataType> _trigo_lut; mutable DynArray <DataType> _buffer; mutable DynArray <OscType> _trigo_osc; /*\\\ FORBIDDEN MEMBER FUNCTIONS \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/ private: FFTReal (); FFTReal (const FFTReal &other); FFTReal & operator = (const FFTReal &other); bool operator == (const FFTReal &other); bool operator != (const FFTReal &other); }; // class FFTReal #include "FFTReal.hpp" #endif // FFTReal_HEADER_INCLUDED /*\\\ EOF \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/ |
Cette page est une traduction d'une page de la documentation de Qt, écrite par Nokia Corporation and/or its subsidiary(-ies). Les éventuels problèmes résultant d'une mauvaise traduction ne sont pas imputables à Nokia. | Qt 4.8 | |
Copyright © 2012 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon, vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD. | ||
Vous avez déniché une erreur ? Un bug ? Une redirection cassée ? Ou tout autre problème, quel qu'il soit ? Ou bien vous désirez participer à ce projet de traduction ? N'hésitez pas à nous contacter ou par MP ! |
Copyright © 2000-2012 - www.developpez.com