Example #1
0
			inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm<Result>::type
			phase_spectrum_impl(
				InputIterator first, InputIterator last, Result const& result,
				sprout::index_tuple<Indexes...>,
				typename sprout::container_traits<Result>::difference_type offset,
				typename sprout::container_traits<Result>::size_type size,
				typename sprout::container_traits<Result>::size_type input_size
				)
			{
				using sprout::real;
				using sprout::imag;
				return sprout::remake<Result>(
					result,
					size,
					(Indexes >= offset && Indexes < offset + size && Indexes < offset + input_size
						? sprout::atan2(
							sprout::llround(imag(*sprout::next(first, Indexes))),
							sprout::llround(real(*sprout::next(first, Indexes)))
							)
						: *sprout::next(sprout::internal_begin(result), Indexes)
						)...
					);
			}
Example #2
0
	inline SPROUT_CONSTEXPR typename T::value_type
	phase_spectrum_value(T const& x) {
		using sprout::real;
		using sprout::imag;
		return sprout::atan2(sprout::llround(imag(x)), sprout::llround(real(x)));
	}
	inline SPROUT_CONSTEXPR typename T::value_type
	amplitude_spectrum_value(T const& x) {
		using sprout::real;
		using sprout::imag;
		return sprout::sqrt(real(x) * real(x) + imag(x) * imag(x));
	}