# MeanSD

Output range to compute mean, stdev, variance online. Getter methods for stdev, var cost a few floating point ops. Getter for mean costs a single branch to check for N == 0. Relatively expensive floating point ops, if you only need mean, try Mean. This struct uses O(1) space and does *NOT* store the individual elements.

Note: This struct can implicitly convert to a Mean struct.

References: Computing Higher-Order Moments Online. http://people.xiph.org/~tterribe/notes/homs.html

toMean

## Members

### Functions

put
void put(double element)
put
void put(typeof(this) rhs)

Combine two MeanSD's.

toString
string toString()

### Properties

N
double N [@property getter]
mean
double mean [@property getter]
mse
double mse [@property getter]

Mean squared error. In other words, a biased estimate of variance.

stdev
double stdev [@property getter]
sum
double sum [@property getter]
toMean
Mean toMean [@property getter]

Converts this struct to a Mean struct. Also called when an implicit conversion via alias this takes place.

toMeanSD
MeanSD toMeanSD [@property getter]

Simply returns this. Useful in generic programming contexts.

var
double var [@property getter]

## Examples

```1 MeanSD summ;
2 summ.put(1);
3 summ.put(2);
4 summ.put(3);
5 summ.put(4);
6 summ.put(5);
7 assert(summ.mean == 3);
8 assert(summ.stdev == sqrt(2.5));
9 assert(summ.var == 2.5);```