class SIGNAL_MATH_I
Common interface to local proxy interface and remote server class for generating a cosine waveform
SIGNAL_MATH_I* SIGNAL_MATH SIGNAL_MATH_PROXY
note
description: "[
Common interface to local proxy interface and remote server class for generating a cosine waveform
]"
descendants: "[
SIGNAL_MATH_I*
${SIGNAL_MATH}
${SIGNAL_MATH_PROXY}
]"
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: "2008-04-21 19:24:48 GMT (Monday 21st April 2008)"
revision: "12"
deferred class
SIGNAL_MATH_I
inherit
DOUBLE_MATH
rename
log as nlog
end
feature -- Element change
cosine_waveform (i_freq, log2_length: INTEGER; phase_fraction: DOUBLE): COLUMN_VECTOR_COMPLEX_64
--
require
i_freq_ok: i_freq > 0 and i_freq <= 2 ^ (log2_length - 1)
i_freq_ok_with_fft_length: ((2 ^ log2_length).rounded \\ i_freq) = 0
phase_fraction_ok: phase_fraction >= 0.0 and phase_fraction <= 1.0
deferred
end
feature {NONE} -- EROS implementation
routines: ARRAY [TUPLE [STRING, ROUTINE]]
--
do
Result := <<
[R_cosine_waveform, agent cosine_waveform]
>>
end
feature {NONE} -- Routine names
R_cosine_waveform: STRING = "cosine_waveform"
end