You are looking at historical revision 39741 of this page. It may differ significantly from its current revision.

micro-stats

This egg provides simple statistical operations. Very simple.

Documentation

Usage

(import micro-stats)

Types

seq

binary-predicate

statistics-alist

[type] seq : (or string vector list)
[type] binary-predicate : (* * --> boolean)
[type] statistics-alist : (or null (list-of (pair symbol *)))

Note an seq is anything understood as a sequence by the sequences egg.

generate-statistics

[procedure] (generate-statistics SEQ [SET-ID]) -> statistics-alist
SEQ
(seq-of real) ; SEQ of all iterations, in microseconds
SET-ID
symbol ; 'normal

Returns an alist with the following:

size
the count of the SEQ
min
the minimum runtime of the SEQ
max
the maximum runtime of the SEQ
mean
arithmetic-mean alias
arithmetic-mean
the arithmetic average runtime of the SEQ
sd
standard-deviation alias
sigma
standard-deviation alias
standard-deviation
the standard deviation for the SEQ

When verbose adds the following:

95th
the 95th percentile runtime of the SEQ
harmonic-mean
the harmonic average runtime of the SEQ
geometric-mean
the geometric average runtime of the SEQ
median
the median runtime of the SEQ
mode
the mode runtime of the SEQ
var
variance alias
sigma^2
variance alias
variance
the variance for the SEQ

basic-statistics

[procedure] (basic-statistics) -> (vector-of real)

Returns #(m h g s v).

generate-statistics-alist

[procedure] (generate-statistics-alist SEQ FUNCS [BASICS]) -> statistics-alist

Returns an alist for a set of statistical functions results.

SEQ
(seq-of real) ; the sample
FUNCS
(list-of function-spec); the report template
BASICS
#(m h g s v) ; required statistics

A function-spec is:

size
sample count
min
sample minimum
max
sample maximum
arithmetic-mean
sample arithmetic-average
standard-deviation
sample standard-deviation
percentile
sample Pth-percentile ; default is 95
harmonic-mean
sample harmonic-average
geometric-mean
sample geometric-average
median
sample median
mode
sample mode
variance
sample variance
(KEY . (F [PARAM ...]))
sample parameterized (: F function-spec)

percentile

[procedure] (percentile SEQ [P]) -> real

Returns Pth percentile of SEQ.

SEQ
(seq-of real)
P
[0 .. 100] ; defaults is 95

mean

[procedure] (mean SEQ) -> real real real

Returns the arithmetic, harmonic, & geometric means for SEQ.

SEQ
(seq-of real)

median

[procedure] (median SEQ [<?]) -> real

Returns the median of the SEQ.

SEQ
(seq-of real)
<?
binary-predicate ; less-than predicate, default <

mode

[procedure] (mode SEQ [=?]) -> real

Returns the mode of the SEQ.

SEQ
(seq-of real)
=?
binary-predicate ; equality predicate, default =

standard-deviation

[procedure] (standard-deviation SEQ [MEAN]) -> real real

Returns the standard-deviation, & variance for SEQ, given the MEAN. Calculates the MEAN when not given.

SEQ
(seq-of real)
MEAN
real

Requirements

srfi-1 sequences

Authors

David Krentzlin Kon Lovett

Version history

0.0.3
Missing dependency. Fix percentile side-effecting.
0.0.2
Fix category.
0.0.1
C5 release.

License

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or (at
your option) any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
General Public License for more details.
A full copy of the GPL license can be found at
<http://www.gnu.org/licenses/>.