Mirror Networking
Mirror.ExponentialMovingAverage Struct Reference

Public Member Functions

 ExponentialMovingAverage (int n)
 
void Add (double newValue)
 

Public Attributes

readonly float alpha
 
bool initialized
 
double Value
 
double Variance
 
double StandardDeviation
 

Properties

double Var [get]
 

Detailed Description

Definition at line 8 of file ExponentialMovingAverage.cs.

Constructor & Destructor Documentation

◆ ExponentialMovingAverage()

Mirror.ExponentialMovingAverage.ExponentialMovingAverage ( int  n)

Definition at line 19 of file ExponentialMovingAverage.cs.

20 {
21 // standard N-day EMA alpha calculation
22 alpha = 2.0f / (n + 1);
23 initialized = false;
24 Value = 0;
25 Variance = 0;
26 StandardDeviation = 0;
27 }

Member Function Documentation

◆ Add()

void Mirror.ExponentialMovingAverage.Add ( double  newValue)

Definition at line 29 of file ExponentialMovingAverage.cs.

30 {
31 // simple algorithm for EMA described here:
32 // https://en.wikipedia.org/wiki/Moving_average#Exponentially_weighted_moving_variance_and_standard_deviation
33 if (initialized)
34 {
35 double delta = newValue - Value;
36 Value += alpha * delta;
37 Variance = (1 - alpha) * (Variance + alpha * delta * delta);
38 StandardDeviation = Math.Sqrt(Variance);
39 }
40 else
41 {
42 Value = newValue;
43 initialized = true;
44 }
45 }

Member Data Documentation

◆ alpha

readonly float Mirror.ExponentialMovingAverage.alpha

Definition at line 10 of file ExponentialMovingAverage.cs.

◆ initialized

bool Mirror.ExponentialMovingAverage.initialized

Definition at line 11 of file ExponentialMovingAverage.cs.

◆ StandardDeviation

double Mirror.ExponentialMovingAverage.StandardDeviation

Definition at line 17 of file ExponentialMovingAverage.cs.

◆ Value

double Mirror.ExponentialMovingAverage.Value

Definition at line 13 of file ExponentialMovingAverage.cs.

◆ Variance

double Mirror.ExponentialMovingAverage.Variance

Definition at line 14 of file ExponentialMovingAverage.cs.

Property Documentation

◆ Var

double Mirror.ExponentialMovingAverage.Var
get

Definition at line 16 of file ExponentialMovingAverage.cs.