Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,12 @@
|
|||
import math, strutils
|
||||
|
||||
var sdSum, sdSum2, sdN = 0.0
|
||||
|
||||
proc sd(x: float): float =
|
||||
sdN += 1
|
||||
sdSum += x
|
||||
sdSum2 += x * x
|
||||
sqrt(sdSum2 / sdN - sdSum * sdSum / (sdN * sdN))
|
||||
|
||||
for value in [float 2,4,4,4,5,5,7,9]:
|
||||
echo value, " ", formatFloat(sd(value), precision = -1)
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
import math, strutils
|
||||
|
||||
type SDAccum = object
|
||||
sdN, sdSum, sdSum2: float
|
||||
|
||||
var accum: SDAccum
|
||||
|
||||
proc add(accum: var SDAccum; value: float): float =
|
||||
# Add a value to the accumulator. Return the standard deviation.
|
||||
accum.sdN += 1
|
||||
accum.sdSum += value
|
||||
accum.sdSum2 += value * value
|
||||
result = sqrt(accum.sdSum2 / accum.sdN - accum.sdSum * accum.sdSum / (accum.sdN * accum.sdN))
|
||||
|
||||
for value in [float 2, 4, 4, 4, 5, 5, 7, 9]:
|
||||
echo value, " ", formatFloat(accum.add(value), precision = -1)
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
import math, strutils
|
||||
|
||||
func accumBuilder(): auto =
|
||||
var sdSum, sdSum2, sdN = 0.0
|
||||
|
||||
result = func(value: float): float =
|
||||
sdN += 1
|
||||
sdSum += value
|
||||
sdSum2 += value * value
|
||||
result = sqrt(sdSum2 / sdN - sdSum * sdSum / (sdN * sdN))
|
||||
|
||||
let std = accumBuilder()
|
||||
|
||||
for value in [float 2, 4, 4, 4, 5, 5, 7, 9]:
|
||||
echo value, " ", formatFloat(std(value), precision = -1)
|
||||
Loading…
Add table
Add a link
Reference in a new issue