diff options
author | JamesP <jlp765@gmail.com> | 2015-11-12 06:33:26 +1000 |
---|---|---|
committer | JamesP <jlp765@gmail.com> | 2015-11-12 06:33:26 +1000 |
commit | 52e40995b7adfec8c1a837bed5a84d475f394602 (patch) | |
tree | a839844777771942d952ba696c5d771e8bae65cd /lib | |
parent | 4cefbc2914c5ca470b1214cc1b77bf263aebd35a (diff) | |
download | Nim-52e40995b7adfec8c1a837bed5a84d475f394602.tar.gz |
added helper procs for standalone calc of stats for array/seq
Changed derivation to use runningstats, so there is a single point of truth for the calculations, and provides more stats functions
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pure/stats.nim | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/lib/pure/stats.nim b/lib/pure/stats.nim index 5811e141e..43d9c35f6 100644 --- a/lib/pure/stats.nim +++ b/lib/pure/stats.nim @@ -166,6 +166,51 @@ proc `+`*(a, b: RunningStat): RunningStat = proc `+=`*(a: var RunningStat, b: RunningStat) {.inline.} = ## add a second RunningStats `b` to `a` a = a + b +# ---------------------- standalone array/seq stats --------------------- +proc mean*[T](x: openArray[T]): float = + var rs: RunningStat + rs.push(x) + result = rs.mean() + +proc variance*[T](x: openArray[T]): float = + var rs: RunningStat + rs.push(x) + result = rs.variance() + +proc varianceS*[T](x: openArray[T]): float = + var rs: RunningStat + rs.push(x) + result = rs.varianceS() + +proc standardDeviation*[T](x: openArray[T]): float = + var rs: RunningStat + rs.push(x) + result = rs.standardDeviation() + +proc standardDeviationS*[T](x: openArray[T]): float = + var rs: RunningStat + rs.push(x) + result = rs.standardDeviationS() + +proc skewness*[T](x: openArray[T]): float = + var rs: RunningStat + rs.push(x) + result = rs.skewness() + +proc skewnessS*[T](x: openArray[T]): float = + var rs: RunningStat + rs.push(x) + result = rs.skewnessS() + +proc kurtosis*[T](x: openArray[T]): float = + var rs: RunningStat + rs.push(x) + result = rs.kurtosis() + +proc kurtosisS*[T](x: openArray[T]): float = + var rs: RunningStat + rs.push(x) + result = rs.kurtosisS() # ---------------------- Running Regression ----------------------------- |