class FFT_COMPLEX_64
Fast fourier transform for complex doubles
note
description: "Fast fourier transform for complex doubles"
author: "Finnian Reilly"
copyright: "Copyright (c) 2001-2022 Finnian Reilly"
contact: "finnian at eiffel hyphen loop dot com"
license: "MIT license (See: en.wikipedia.org/wiki/MIT_License)"
date: "2023-03-10 10:10:54 GMT (Friday 10th March 2023)"
revision: "12"
class
FFT_COMPLEX_64
inherit
FFT_COMPLEX_DOUBLE
rename
fft as do_transform,
ifft as do_inverse_transform,
make as fft_make,
log as logarithm
redefine
output, input, fft_make, set_windower
end
FFT_COMPLEX_64_I
EROS_REMOTELY_ACCESSIBLE
create
make, fft_make
feature -- Initialization
fft_make (n: INTEGER)
--
do
Precursor {FFT_COMPLEX_DOUBLE} (n)
create output.make_with_size (length)
end
feature -- Access
output: COLUMN_VECTOR_COMPLEX_64
input: COLUMN_VECTOR_COMPLEX_64
feature -- Contract support
is_output_length_valid: BOOLEAN
--
do
Result := output.length = length
end
is_valid_input_length (a_length: INTEGER): BOOLEAN
--
do
Result := length = a_length
end
feature -- Element change
set_windower (a_windower: WINDOWER_DOUBLE)
--
do
a_windower.make (length)
Precursor (a_windower)
end
feature -- Constants
Windower_rectangular: RECTANGULAR_WINDOWER_DOUBLE
--
once
create Result.make (1)
end
Windower_default: DEFAULT_WINDOWER_DOUBLE
--
once
create Result.make (1)
end
end