BogaudioModules

BogaudioModules for VCV Rack
Log | Files | Refs | README | LICENSE

FFTRealPassInverse.h (2658B)


      1 /*****************************************************************************
      2 
      3         FFTRealPassInverse.h
      4         By Laurent de Soras
      5 
      6 --- Legal stuff ---
      7 
      8 This program is free software. It comes without any warranty, to
      9 the extent permitted by applicable law. You can redistribute it
     10 and/or modify it under the terms of the Do What The Fuck You Want
     11 To Public License, Version 2, as published by Sam Hocevar. See
     12 http://sam.zoy.org/wtfpl/COPYING for more details.
     13 
     14 *Tab=3***********************************************************************/
     15 
     16 
     17 
     18 #if ! defined (ffft_FFTRealPassInverse_HEADER_INCLUDED)
     19 #define	ffft_FFTRealPassInverse_HEADER_INCLUDED
     20 
     21 #if defined (_MSC_VER)
     22 	#pragma once
     23 	#pragma warning (4 : 4250) // "Inherits via dominance."
     24 #endif
     25 
     26 
     27 
     28 /*\\\ INCLUDE FILES \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/
     29 
     30 #include	"ffft/def.h"
     31 #include	"ffft/FFTRealFixLenParam.h"
     32 #include	"ffft/OscSinCos.h"
     33 
     34 
     35 
     36 
     37 namespace ffft
     38 {
     39 
     40 
     41 
     42 template <int PASS>
     43 class FFTRealPassInverse
     44 {
     45 
     46 /*\\\ PUBLIC \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/
     47 
     48 public:
     49 
     50    typedef	FFTRealFixLenParam::DataType	DataType;
     51 	typedef	OscSinCos <DataType>	OscType;
     52 
     53 	ffft_FORCEINLINE static void
     54 						process (long len, DataType dest_ptr [], DataType src_ptr [], const DataType f_ptr [], const DataType cos_ptr [], long cos_len, const long br_ptr [], OscType osc_list []);
     55 	ffft_FORCEINLINE static void
     56 						process_rec (long len, DataType dest_ptr [], DataType src_ptr [], const DataType cos_ptr [], long cos_len, const long br_ptr [], OscType osc_list []);
     57 	ffft_FORCEINLINE static void
     58 						process_internal (long len, DataType dest_ptr [], const DataType src_ptr [], const DataType cos_ptr [], long cos_len, const long br_ptr [], OscType osc_list []);
     59 
     60 
     61 
     62 /*\\\ PROTECTED \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/
     63 
     64 protected:
     65 
     66 
     67 
     68 /*\\\ PRIVATE \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/
     69 
     70 private:
     71 
     72 
     73 
     74 /*\\\ FORBIDDEN MEMBER FUNCTIONS \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/
     75 
     76 private:
     77 
     78 						FFTRealPassInverse ();
     79 						FFTRealPassInverse (const FFTRealPassInverse &other);
     80 	FFTRealPassInverse &
     81 						operator = (const FFTRealPassInverse &other);
     82 	bool				operator == (const FFTRealPassInverse &other);
     83 	bool				operator != (const FFTRealPassInverse &other);
     84 
     85 };	// class FFTRealPassInverse
     86 
     87 
     88 
     89 }	// namespace ffft
     90 
     91 
     92 
     93 #include	"ffft/FFTRealPassInverse.hpp"
     94 
     95 
     96 
     97 #endif	// ffft_FFTRealPassInverse_HEADER_INCLUDED
     98 
     99 
    100 
    101 /*\\\ EOF \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/