meansd

Calculates mean and standard deviation.

Usage

Simple execution mode:

console $ seq 1 3 | meansd n=3 ∅ 2 ± 1

Binning:

```console $ seq 2 7 | meansd --bin-width 5

From To Size Mean SD 0 4 3 3 1 5 9 3 6 1

n=6 ∅ 5 ± 2 ```

For more command line options, see meansd --help.

Resource Requirements

This tool uses so-called online algorithms. This means that the input is not stored and you can pipe an indefinite amount to this tool without increasing its memory requirement.

Memory

Without binning, VmPeak is only 4884 kB, measured with:

```bash

generate 2 byte unsigned numbers and pipe to meansd

od -v -A n -t u2 -w2 /dev/urandom | meansd --progress 1000000

measure VmPeak

rg VmPeak /proc/$(pgrep meansd)/status ```

With binning, the memory requirements increase only ever so slightly per bin.

CPU

During the memory tests, my observation was that meansd consumes the numbers faster than the random number generator can produce them. While od was at 100% CPU utilization, meansd was at about 50% without binning and 90% with binning.