The OpenD Programming Language

SkewnessAccumulator

Constructors

this
this(Range r)
this
this(T x)

Members

Aliases

S
alias S = Summator!(T, summation)

Functions

centeredSumOfCubes
F centeredSumOfCubes()
centeredSumOfSquares
F centeredSumOfSquares()
count
size_t count()
mean
F mean()
put
void put(Range r)
put
void put(T x)
scaledSumOfCubes
F scaledSumOfCubes(bool isPopulation)
skewness
F skewness(bool isPopulation)
sumOfCubes
F sumOfCubes()
sumOfSquares
F sumOfSquares()
variance
F variance(bool isPopulation)

Examples

naive

import mir.math.common: pow;
import mir.math.sum: Summation;
import mir.ndslice.slice: sliced;
import mir.test: shouldApprox;

auto x = [0.0, 1.0, 1.5, 2.0, 3.5, 4.25,
          2.0, 7.5, 5.0, 1.0, 1.5, 0.0].sliced;

SkewnessAccumulator!(double, SkewnessAlgo.naive, Summation.naive) v;
v.put(x);
v.skewness(true).shouldApprox == (117.005859 / 12) / pow(54.765625 / 12, 1.5);
v.skewness(false).shouldApprox == (117.005859 / 12) / pow(54.765625 / 11, 1.5) * (12.0 ^^ 2) / (11.0 * 10.0);

v.put(4.0);
v.skewness(true).shouldApprox == (100.238166 / 13) / pow(57.019231 / 13, 1.5);
v.skewness(false).shouldApprox == (100.238166 / 13) / pow(57.019231 / 12, 1.5) * (13.0 ^^ 2) / (12.0 * 11.0);

Meta