From 5757bc9d7a4629a92bef3349017b55c756c59eaa Mon Sep 17 00:00:00 2001 From: bolero-MURAKAMI Date: Tue, 1 May 2012 14:34:48 +0900 Subject: [PATCH] add range/numeric/dft --- README | 11 ++++++-- sprout/range/numeric/dft.hpp | 9 ++++++ sprout/range/numeric/dft/dft.hpp | 8 ++++++ sprout/range/numeric/dft/fit/dft.hpp | 28 +++++++++++++++++++ sprout/range/numeric/dft/fit/idft.hpp | 28 +++++++++++++++++++ sprout/range/numeric/dft/fit/spectrum.hpp | 28 +++++++++++++++++++ sprout/range/numeric/dft/fixed/dft.hpp | 31 +++++++++++++++++++++ sprout/range/numeric/dft/fixed/idft.hpp | 31 +++++++++++++++++++++ sprout/range/numeric/dft/fixed/spectrum.hpp | 31 +++++++++++++++++++++ sprout/range/numeric/dft/idft.hpp | 8 ++++++ sprout/range/numeric/dft/spectrum.hpp | 8 ++++++ 11 files changed, 219 insertions(+), 2 deletions(-) create mode 100644 sprout/range/numeric/dft.hpp create mode 100644 sprout/range/numeric/dft/dft.hpp create mode 100644 sprout/range/numeric/dft/fit/dft.hpp create mode 100644 sprout/range/numeric/dft/fit/idft.hpp create mode 100644 sprout/range/numeric/dft/fit/spectrum.hpp create mode 100644 sprout/range/numeric/dft/fixed/dft.hpp create mode 100644 sprout/range/numeric/dft/fixed/idft.hpp create mode 100644 sprout/range/numeric/dft/fixed/spectrum.hpp create mode 100644 sprout/range/numeric/dft/idft.hpp create mode 100644 sprout/range/numeric/dft/spectrum.hpp diff --git a/README b/README index 99d7c59e..0439b280 100644 --- a/README +++ b/README @@ -30,12 +30,14 @@ constexpr バリアント (Variants) constexpr アルゴリズム (Algorithms) sprout/algorithm.hpp sprout/numeric.hpp - sprout/numeric/dft.hpp constexpr 範囲アルゴリズム (Range algorithms) sprout/range/algorithm.hpp sprout/range/numeric.hpp +constexpr Rangeアダプタ (Range adaptors) + sprout/range/adaptor.hpp + constexpr コンテナ操作 (Container operations) sprout/operation.hpp @@ -63,6 +65,10 @@ constexpr UUID (UUID) コンテナ特性 (Container traits) sprout/container.hpp +constexpr 離散フーリエ変換 (Discrete Fourier transforms) + sprout/numeric/dft.hpp + sprout/range/numeric/dft.hpp + constexpr 構文解析 (Parsing) sprout/weed.hpp @@ -141,4 +147,5 @@ Mail: contact-lib@boleros.x0.com このライブラリは Boost Software License の元で公開されています。 Copyright (C) 2011-2012 Bolero MURAKAMI. -Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/sprout/range/numeric/dft.hpp b/sprout/range/numeric/dft.hpp new file mode 100644 index 00000000..09605168 --- /dev/null +++ b/sprout/range/numeric/dft.hpp @@ -0,0 +1,9 @@ +#ifndef SPROUT_RANGE_NUMERIC_DFT_HPP +#define SPROUT_RANGE_NUMERIC_DFT_HPP + +#include +#include +#include +#include + +#endif // #ifndef SPROUT_RANGE_NUMERIC_DFT_HPP diff --git a/sprout/range/numeric/dft/dft.hpp b/sprout/range/numeric/dft/dft.hpp new file mode 100644 index 00000000..9a7335e5 --- /dev/null +++ b/sprout/range/numeric/dft/dft.hpp @@ -0,0 +1,8 @@ +#ifndef SPROUT_RANGE_NUMERIC_DFT_DFT_HPP +#define SPROUT_RANGE_NUMERIC_DFT_DFT_HPP + +#include +#include +#include + +#endif // #ifndef SPROUT_RANGE_NUMERIC_DFT_DFT_HPP diff --git a/sprout/range/numeric/dft/fit/dft.hpp b/sprout/range/numeric/dft/fit/dft.hpp new file mode 100644 index 00000000..fae3cc03 --- /dev/null +++ b/sprout/range/numeric/dft/fit/dft.hpp @@ -0,0 +1,28 @@ +#ifndef SPROUT_RANGE_NUMERIC_DFT_FIT_DFT_HPP +#define SPROUT_RANGE_NUMERIC_DFT_FIT_DFT_HPP + +#include +#include +#include +#include +#include + +namespace sprout { + namespace range { + namespace fit { + // + // dft + // + template + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type dft( + Input const& input, + Result const& result + ) + { + return sprout::fit::dft(sprout::begin(input), sprout::end(input), result); + } + } // namespace fit + } // namespace range +} // namespace sprout + +#endif // #ifndef SPROUT_RANGE_NUMERIC_DFT_FIT_DFT_HPP diff --git a/sprout/range/numeric/dft/fit/idft.hpp b/sprout/range/numeric/dft/fit/idft.hpp new file mode 100644 index 00000000..82fc1b57 --- /dev/null +++ b/sprout/range/numeric/dft/fit/idft.hpp @@ -0,0 +1,28 @@ +#ifndef SPROUT_RANGE_NUMERIC_DFT_FIT_IDFT_HPP +#define SPROUT_RANGE_NUMERIC_DFT_FIT_IDFT_HPP + +#include +#include +#include +#include +#include + +namespace sprout { + namespace range { + namespace fit { + // + // idft + // + template + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type idft( + Input const& input, + Result const& result + ) + { + return sprout::fit::idft(sprout::begin(input), sprout::end(input), result); + } + } // namespace fit + } // namespace range +} // namespace sprout + +#endif // #ifndef SPROUT_RANGE_NUMERIC_DFT_FIT_IDFT_HPP diff --git a/sprout/range/numeric/dft/fit/spectrum.hpp b/sprout/range/numeric/dft/fit/spectrum.hpp new file mode 100644 index 00000000..b4c7a13f --- /dev/null +++ b/sprout/range/numeric/dft/fit/spectrum.hpp @@ -0,0 +1,28 @@ +#ifndef SPROUT_RANGE_NUMERIC_DFT_FIT_SPECTRUM_HPP +#define SPROUT_RANGE_NUMERIC_DFT_FIT_SPECTRUM_HPP + +#include +#include +#include +#include +#include + +namespace sprout { + namespace range { + namespace fit { + // + // spectrum + // + template + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type spectrum( + Input const& input, + Result const& result + ) + { + return sprout::fit::spectrum(sprout::begin(input), sprout::end(input), result); + } + } // namespace fit + } // namespace range +} // namespace sprout + +#endif // #ifndef SPROUT_RANGE_NUMERIC_DFT_FIT_SPECTRUM_HPP diff --git a/sprout/range/numeric/dft/fixed/dft.hpp b/sprout/range/numeric/dft/fixed/dft.hpp new file mode 100644 index 00000000..f0fe5f01 --- /dev/null +++ b/sprout/range/numeric/dft/fixed/dft.hpp @@ -0,0 +1,31 @@ +#ifndef SPROUT_RANGE_NUMERIC_DFT_FIXED_DFT_HPP +#define SPROUT_RANGE_NUMERIC_DFT_FIXED_DFT_HPP + +#include +#include +#include +#include +#include + +namespace sprout { + namespace range { + namespace fixed { + // + // dft + // + template + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + dft( + Input const& input, + Result const& result + ) + { + return sprout::fixed::dft(sprout::begin(input), sprout::end(input), result); + } + } // namespace fixed + + using sprout::range::fixed::dft; + } // namespace range +} // namespace sprout + +#endif // #ifndef SPROUT_RANGE_NUMERIC_DFT_FIXED_DFT_HPP diff --git a/sprout/range/numeric/dft/fixed/idft.hpp b/sprout/range/numeric/dft/fixed/idft.hpp new file mode 100644 index 00000000..23762370 --- /dev/null +++ b/sprout/range/numeric/dft/fixed/idft.hpp @@ -0,0 +1,31 @@ +#ifndef SPROUT_RANGE_NUMERIC_DFT_FIXED_IDFT_HPP +#define SPROUT_RANGE_NUMERIC_DFT_FIXED_IDFT_HPP + +#include +#include +#include +#include +#include + +namespace sprout { + namespace range { + namespace fixed { + // + // idft + // + template + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + idft( + Input const& input, + Result const& result + ) + { + return sprout::fixed::idft(sprout::begin(input), sprout::end(input), result); + } + } // namespace fixed + + using sprout::range::fixed::idft; + } // namespace range +} // namespace sprout + +#endif // #ifndef SPROUT_RANGE_NUMERIC_DFT_FIXED_IDFT_HPP diff --git a/sprout/range/numeric/dft/fixed/spectrum.hpp b/sprout/range/numeric/dft/fixed/spectrum.hpp new file mode 100644 index 00000000..5b9beec3 --- /dev/null +++ b/sprout/range/numeric/dft/fixed/spectrum.hpp @@ -0,0 +1,31 @@ +#ifndef SPROUT_RANGE_NUMERIC_DFT_FIXED_SPECTRUM_HPP +#define SPROUT_RANGE_NUMERIC_DFT_FIXED_SPECTRUM_HPP + +#include +#include +#include +#include +#include + +namespace sprout { + namespace range { + namespace fixed { + // + // spectrum + // + template + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + spectrum( + Input const& input, + Result const& result + ) + { + return sprout::fixed::spectrum(sprout::begin(input), sprout::end(input), result); + } + } // namespace fixed + + using sprout::range::fixed::spectrum; + } // namespace range +} // namespace sprout + +#endif // #ifndef SPROUT_RANGE_NUMERIC_DFT_FIXED_SPECTRUM_HPP diff --git a/sprout/range/numeric/dft/idft.hpp b/sprout/range/numeric/dft/idft.hpp new file mode 100644 index 00000000..68c5f4b7 --- /dev/null +++ b/sprout/range/numeric/dft/idft.hpp @@ -0,0 +1,8 @@ +#ifndef SPROUT_RANGE_NUMERIC_DFT_IDFT_HPP +#define SPROUT_RANGE_NUMERIC_DFT_IDFT_HPP + +#include +#include +#include + +#endif // #ifndef SPROUT_RANGE_NUMERIC_DFT_IDFT_HPP diff --git a/sprout/range/numeric/dft/spectrum.hpp b/sprout/range/numeric/dft/spectrum.hpp new file mode 100644 index 00000000..84692397 --- /dev/null +++ b/sprout/range/numeric/dft/spectrum.hpp @@ -0,0 +1,8 @@ +#ifndef SPROUT_RANGE_NUMERIC_DFT_SPECTRUM_HPP +#define SPROUT_RANGE_NUMERIC_DFT_SPECTRUM_HPP + +#include +#include +#include + +#endif // #ifndef SPROUT_RANGE_NUMERIC_DFT_SPECTRUM_HPP