VISR  0.11.6
Versatile Interactive Scene Renderer
fft_wrapper_base.hpp
Go to the documentation of this file.
1 /* Copyright Institute of Sound and Vibration Research - All rights reserved */
2 
3 #ifndef VISR_LIBRBBL_FFT_WRAPPER_BASE_HPP_INCLUDED
4 #define VISR_LIBRBBL_FFT_WRAPPER_BASE_HPP_INCLUDED
5 
6 #include "export_symbols.hpp"
7 
8 #include <libefl/error_codes.hpp>
9 
10 #include <cstddef>
11 #include <complex>
12 
13 namespace visr
14 {
15 namespace rbbl
16 {
17 
18 template< typename DataType >
19 class VISR_RBBL_LIBRARY_SYMBOL FftWrapperBase
20 {
21 public:
22  using FrequencyDomainType = std::complex<DataType>;
23 
24  virtual ~FftWrapperBase() {};
25 
26  virtual efl::ErrorCode forwardTransform( DataType const * const in, FrequencyDomainType * out ) const = 0;
27 
28  virtual efl::ErrorCode inverseTransform( FrequencyDomainType const * const in, DataType * out ) const = 0;
29 
30  virtual DataType forwardScalingFactor() const = 0;
31 
32  virtual DataType inverseScalingFactor( ) const = 0;
33 };
34 
35 } // namespace rbbl
36 } // namespace visr
37 
38 #endif // #ifndef VISR_LIBRBBL_FFT_WRAPPER_BASE_HPP_INCLUDED
Definition: fft_wrapper_base.hpp:19
virtual ~FftWrapperBase()
Definition: fft_wrapper_base.hpp:24
Definition: options.cpp:10
std::complex< DataType > FrequencyDomainType
Definition: fft_wrapper_base.hpp:22
ErrorCode
Definition: error_codes.hpp:13