31#ifndef ETL_CUMULATIVE_MOVING_AVERAGE_INCLUDED
32#define ETL_CUMULATIVE_MOVING_AVERAGE_INCLUDED
39 namespace private_pseudo_moving_average
45 template <
typename TPseudo_Moving_Average>
94 const size_t SAMPLE_SIZE,
95 const size_t SCALING = 1U,
107 template <
typename T, const
size_t SAMPLE_SIZE_, const
size_t SCALING_>
117 static ETL_CONSTANT sample_t SAMPLES =
static_cast<sample_t
>(
SAMPLE_SIZE_);
118 static ETL_CONSTANT scale_t SCALE =
static_cast<scale_t
>(
SCALING_);
154 average /= SAMPLES + sample_t(1);
180 template <
typename T, const
size_t SAMPLE_SIZE_, const
size_t SCALING_>
181 ETL_CONSTANT
size_t pseudo_moving_average<T, SAMPLE_SIZE_, SCALING_, true, false>::SAMPLE_SIZE;
183 template <
typename T, const
size_t SAMPLE_SIZE_, const
size_t SCALING_>
184 ETL_CONSTANT
size_t pseudo_moving_average<T, SAMPLE_SIZE_, SCALING_, true, false>::SCALING;
192 template <
typename T, const
size_t SCALING_>
200 static ETL_CONSTANT scale_t SCALE =
static_cast<scale_t
>(
SCALING_);
272 template <
typename T, const
size_t SCALING_>
273 ETL_CONSTANT
size_t pseudo_moving_average<T, 0, SCALING_, true, false>::SCALING;
281 template <
typename T, const
size_t SAMPLE_SIZE_>
318 average += (
new_value - average) * reciprocal_samples_plus_1;
341 const T reciprocal_samples_plus_1;
345 template <
typename T, const
size_t SAMPLE_SIZE_>
346 ETL_CONSTANT
size_t pseudo_moving_average<T, SAMPLE_SIZE_, 1U, false, true>::SAMPLE_SIZE;
353 template <
typename T>
397 average += (
new_value - average) * reciprocal_samples_plus_1;
420 T reciprocal_samples_plus_1;
Definition pseudo_moving_average.h:47
Definition pseudo_moving_average.h:194
pseudo_moving_average(const T initial_value, const size_t sample_size)
Definition pseudo_moving_average.h:213
void clear(const T initial_value)
Definition pseudo_moving_average.h:223
void add(T new_value)
Definition pseudo_moving_average.h:241
T value() const
Definition pseudo_moving_average.h:252
void set_sample_size(const size_t sample_size)
Definition pseudo_moving_average.h:232
add_insert_iterator input()
Definition pseudo_moving_average.h:261
Definition pseudo_moving_average.h:355
add_insert_iterator input()
Definition pseudo_moving_average.h:413
void set_sample_size(const size_t sample_size)
Definition pseudo_moving_average.h:386
pseudo_moving_average(const T initial_value, const size_t sample_size)
Definition pseudo_moving_average.h:367
T value() const
Definition pseudo_moving_average.h:404
void add(const T new_value)
Definition pseudo_moving_average.h:395
void clear(const T initial_value)
Definition pseudo_moving_average.h:377
Definition pseudo_moving_average.h:283
void clear(const T initial_value)
Definition pseudo_moving_average.h:307
T value() const
Definition pseudo_moving_average.h:325
add_insert_iterator input()
Definition pseudo_moving_average.h:334
void add(const T new_value)
Definition pseudo_moving_average.h:316
pseudo_moving_average(const T initial_value)
Definition pseudo_moving_average.h:297
Definition pseudo_moving_average.h:109
void add(T new_value)
Definition pseudo_moving_average.h:150
pseudo_moving_average(const T initial_value)
Definition pseudo_moving_average.h:132
T value() const
Definition pseudo_moving_average.h:161
void clear(const T initial_value)
Definition pseudo_moving_average.h:141
add_insert_iterator input()
Definition pseudo_moving_average.h:170
Definition pseudo_moving_average.h:98
is_floating_point
Definition type_traits_generator.h:1031
is_integral
Definition type_traits_generator.h:1001
bitset_ext
Definition absolute.h:38
iterator
Definition iterator.h:399
pair holds two objects of arbitrary type
Definition utility.h:164