add range/numeric/dft

This commit is contained in:
bolero-MURAKAMI 2012-05-01 14:34:48 +09:00
parent 374374c62b
commit 5757bc9d7a
11 changed files with 219 additions and 2 deletions

11
README
View file

@ -30,12 +30,14 @@ constexpr バリアント (Variants)
constexpr アルゴリズム (Algorithms) constexpr アルゴリズム (Algorithms)
sprout/algorithm.hpp sprout/algorithm.hpp
sprout/numeric.hpp sprout/numeric.hpp
sprout/numeric/dft.hpp
constexpr 範囲アルゴリズム (Range algorithms) constexpr 範囲アルゴリズム (Range algorithms)
sprout/range/algorithm.hpp sprout/range/algorithm.hpp
sprout/range/numeric.hpp sprout/range/numeric.hpp
constexpr Rangeアダプタ (Range adaptors)
sprout/range/adaptor.hpp
constexpr コンテナ操作 (Container operations) constexpr コンテナ操作 (Container operations)
sprout/operation.hpp sprout/operation.hpp
@ -63,6 +65,10 @@ constexpr UUID (UUID)
コンテナ特性 (Container traits) コンテナ特性 (Container traits)
sprout/container.hpp sprout/container.hpp
constexpr 離散フーリエ変換 (Discrete Fourier transforms)
sprout/numeric/dft.hpp
sprout/range/numeric/dft.hpp
constexpr 構文解析 (Parsing) constexpr 構文解析 (Parsing)
sprout/weed.hpp sprout/weed.hpp
@ -141,4 +147,5 @@ Mail: contact-lib@boleros.x0.com
このライブラリは Boost Software License の元で公開されています。 このライブラリは Boost Software License の元で公開されています。
Copyright (C) 2011-2012 Bolero MURAKAMI. 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)

View file

@ -0,0 +1,9 @@
#ifndef SPROUT_RANGE_NUMERIC_DFT_HPP
#define SPROUT_RANGE_NUMERIC_DFT_HPP
#include <sprout/config.hpp>
#include <sprout/range/numeric/dft/dft.hpp>
#include <sprout/range/numeric/dft/idft.hpp>
#include <sprout/range/numeric/dft/spectrum.hpp>
#endif // #ifndef SPROUT_RANGE_NUMERIC_DFT_HPP

View file

@ -0,0 +1,8 @@
#ifndef SPROUT_RANGE_NUMERIC_DFT_DFT_HPP
#define SPROUT_RANGE_NUMERIC_DFT_DFT_HPP
#include <sprout/config.hpp>
#include <sprout/range/numeric/dft/fixed/dft.hpp>
#include <sprout/range/numeric/dft/fit/dft.hpp>
#endif // #ifndef SPROUT_RANGE_NUMERIC_DFT_DFT_HPP

View file

@ -0,0 +1,28 @@
#ifndef SPROUT_RANGE_NUMERIC_DFT_FIT_DFT_HPP
#define SPROUT_RANGE_NUMERIC_DFT_FIT_DFT_HPP
#include <sprout/config.hpp>
#include <sprout/container/traits.hpp>
#include <sprout/container/functions.hpp>
#include <sprout/algorithm/fit/result_of.hpp>
#include <sprout/numeric/dft/fit/dft.hpp>
namespace sprout {
namespace range {
namespace fit {
//
// dft
//
template<typename Input, typename Result>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::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

View file

@ -0,0 +1,28 @@
#ifndef SPROUT_RANGE_NUMERIC_DFT_FIT_IDFT_HPP
#define SPROUT_RANGE_NUMERIC_DFT_FIT_IDFT_HPP
#include <sprout/config.hpp>
#include <sprout/container/traits.hpp>
#include <sprout/container/functions.hpp>
#include <sprout/algorithm/fit/result_of.hpp>
#include <sprout/numeric/dft/fit/idft.hpp>
namespace sprout {
namespace range {
namespace fit {
//
// idft
//
template<typename Input, typename Result>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::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

View file

@ -0,0 +1,28 @@
#ifndef SPROUT_RANGE_NUMERIC_DFT_FIT_SPECTRUM_HPP
#define SPROUT_RANGE_NUMERIC_DFT_FIT_SPECTRUM_HPP
#include <sprout/config.hpp>
#include <sprout/container/traits.hpp>
#include <sprout/container/functions.hpp>
#include <sprout/algorithm/fit/result_of.hpp>
#include <sprout/numeric/dft/fit/spectrum.hpp>
namespace sprout {
namespace range {
namespace fit {
//
// spectrum
//
template<typename Input, typename Result>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::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

View file

@ -0,0 +1,31 @@
#ifndef SPROUT_RANGE_NUMERIC_DFT_FIXED_DFT_HPP
#define SPROUT_RANGE_NUMERIC_DFT_FIXED_DFT_HPP
#include <sprout/config.hpp>
#include <sprout/container/traits.hpp>
#include <sprout/container/functions.hpp>
#include <sprout/algorithm/fixed/result_of.hpp>
#include <sprout/numeric/dft/fixed/dft.hpp>
namespace sprout {
namespace range {
namespace fixed {
//
// dft
//
template<typename Input, typename Result>
inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm<Result>::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

View file

@ -0,0 +1,31 @@
#ifndef SPROUT_RANGE_NUMERIC_DFT_FIXED_IDFT_HPP
#define SPROUT_RANGE_NUMERIC_DFT_FIXED_IDFT_HPP
#include <sprout/config.hpp>
#include <sprout/container/traits.hpp>
#include <sprout/container/functions.hpp>
#include <sprout/algorithm/fixed/result_of.hpp>
#include <sprout/numeric/dft/fixed/idft.hpp>
namespace sprout {
namespace range {
namespace fixed {
//
// idft
//
template<typename Input, typename Result>
inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm<Result>::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

View file

@ -0,0 +1,31 @@
#ifndef SPROUT_RANGE_NUMERIC_DFT_FIXED_SPECTRUM_HPP
#define SPROUT_RANGE_NUMERIC_DFT_FIXED_SPECTRUM_HPP
#include <sprout/config.hpp>
#include <sprout/container/traits.hpp>
#include <sprout/container/functions.hpp>
#include <sprout/algorithm/fixed/result_of.hpp>
#include <sprout/numeric/dft/fixed/spectrum.hpp>
namespace sprout {
namespace range {
namespace fixed {
//
// spectrum
//
template<typename Input, typename Result>
inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm<Result>::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

View file

@ -0,0 +1,8 @@
#ifndef SPROUT_RANGE_NUMERIC_DFT_IDFT_HPP
#define SPROUT_RANGE_NUMERIC_DFT_IDFT_HPP
#include <sprout/config.hpp>
#include <sprout/range/numeric/dft/fixed/idft.hpp>
#include <sprout/range/numeric/dft/fit/idft.hpp>
#endif // #ifndef SPROUT_RANGE_NUMERIC_DFT_IDFT_HPP

View file

@ -0,0 +1,8 @@
#ifndef SPROUT_RANGE_NUMERIC_DFT_SPECTRUM_HPP
#define SPROUT_RANGE_NUMERIC_DFT_SPECTRUM_HPP
#include <sprout/config.hpp>
#include <sprout/range/numeric/dft/fixed/spectrum.hpp>
#include <sprout/range/numeric/dft/fit/spectrum.hpp>
#endif // #ifndef SPROUT_RANGE_NUMERIC_DFT_SPECTRUM_HPP