22 #ifndef EDSP_STATISTICAL_RMS_H 23 #define EDSP_STATISTICAL_RMS_H 25 #include <edsp/meta/iterator.hpp> 29 namespace edsp {
namespace statistics {
43 template <
typename ForwardIt>
44 constexpr meta::value_type_t<ForwardIt>
rms(ForwardIt first, ForwardIt last) {
45 using input_t = meta::value_type_t<ForwardIt>;
46 const auto accumulated = std::inner_product(first, last, first, static_cast<input_t>(1));
47 return std::sqrt(accumulated / static_cast<input_t>(
std::distance(first, last)));
51 #endif // EDSP_STATISTICAL_RMS_H constexpr meta::value_type_t< ForwardIt > rms(ForwardIt first, ForwardIt last)
Computes the root-mean-square (RMS) value of the range [first, last)
Definition: rms.hpp:44
constexpr T distance(T x, T y) noexcept
Computes the distance between x and y.
Definition: numeric.hpp:328
Definition: amplifier.hpp:29