31#ifndef ETL_CUMULATIVE_MOVING_AVERAGE_INCLUDED
32#define ETL_CUMULATIVE_MOVING_AVERAGE_INCLUDED
40 namespace private_pseudo_moving_average
46 template <
typename TPseudo_Moving_Average>
95 const size_t SAMPLE_SIZE,
96 const size_t SCALING = 1U,
108 template <
typename T, const
size_t SAMPLE_SIZE_, const
size_t SCALING_>
118 static ETL_CONSTANT sample_t SAMPLES =
static_cast<sample_t
>(
SAMPLE_SIZE_);
119 static ETL_CONSTANT scale_t SCALE =
static_cast<scale_t
>(
SCALING_);
123 typedef T value_type;
155 average /= SAMPLES + sample_t(1);
181 template <
typename T, const
size_t SAMPLE_SIZE_, const
size_t SCALING_>
182 ETL_CONSTANT
size_t pseudo_moving_average<T, SAMPLE_SIZE_, SCALING_, true, false>::SAMPLE_SIZE;
184 template <
typename T, const
size_t SAMPLE_SIZE_, const
size_t SCALING_>
185 ETL_CONSTANT
size_t pseudo_moving_average<T, SAMPLE_SIZE_, SCALING_, true, false>::SCALING;
193 template <
typename T, const
size_t SCALING_>
201 static ETL_CONSTANT scale_t SCALE =
static_cast<scale_t
>(
SCALING_);
205 typedef T value_type;
246 average /= samples + sample_t(1);
273 template <
typename T, const
size_t SCALING_>
274 ETL_CONSTANT
size_t pseudo_moving_average<T, 0, SCALING_, true, false>::SCALING;
282 template <
typename T, const
size_t SAMPLE_SIZE_>
289 typedef T value_type;
319 average += (
new_value - average) * reciprocal_samples_plus_1;
342 const T reciprocal_samples_plus_1;
346 template <
typename T, const
size_t SAMPLE_SIZE_>
347 ETL_CONSTANT
size_t pseudo_moving_average<T, SAMPLE_SIZE_, 1U, false, true>::SAMPLE_SIZE;
354 template <
typename T>
361 typedef T value_type;
398 average += (
new_value - average) * reciprocal_samples_plus_1;
421 T reciprocal_samples_plus_1;
Definition pseudo_moving_average.h:48
Definition pseudo_moving_average.h:195
pseudo_moving_average(const T initial_value, const size_t sample_size)
Definition pseudo_moving_average.h:214
void clear(const T initial_value)
Definition pseudo_moving_average.h:224
void add(T new_value)
Definition pseudo_moving_average.h:242
T value() const
Definition pseudo_moving_average.h:253
void set_sample_size(const size_t sample_size)
Definition pseudo_moving_average.h:233
add_insert_iterator input()
Definition pseudo_moving_average.h:262
Definition pseudo_moving_average.h:356
add_insert_iterator input()
Definition pseudo_moving_average.h:414
void set_sample_size(const size_t sample_size)
Definition pseudo_moving_average.h:387
pseudo_moving_average(const T initial_value, const size_t sample_size)
Definition pseudo_moving_average.h:368
T value() const
Definition pseudo_moving_average.h:405
void add(const T new_value)
Definition pseudo_moving_average.h:396
void clear(const T initial_value)
Definition pseudo_moving_average.h:378
Definition pseudo_moving_average.h:284
void clear(const T initial_value)
Definition pseudo_moving_average.h:308
T value() const
Definition pseudo_moving_average.h:326
add_insert_iterator input()
Definition pseudo_moving_average.h:335
void add(const T new_value)
Definition pseudo_moving_average.h:317
pseudo_moving_average(const T initial_value)
Definition pseudo_moving_average.h:298
Definition pseudo_moving_average.h:110
void add(T new_value)
Definition pseudo_moving_average.h:151
pseudo_moving_average(const T initial_value)
Definition pseudo_moving_average.h:133
T value() const
Definition pseudo_moving_average.h:162
void clear(const T initial_value)
Definition pseudo_moving_average.h:142
add_insert_iterator input()
Definition pseudo_moving_average.h:171
Definition pseudo_moving_average.h:99
conditional
Definition type_traits_generator.h:1223
is_floating_point
Definition type_traits_generator.h:1094
is_integral
Definition type_traits_generator.h:1064
bitset_ext
Definition absolute.h:39
ETL_NODISCARD ETL_CONSTEXPR14 T round_half_even_unscaled(T value) ETL_NOEXCEPT
Definition scaled_rounding.h:315
iterator
Definition iterator.h:399