From e76f54e059fc89bb2cdab0a61700988c56b609d3 Mon Sep 17 00:00:00 2001 From: Josep Sanjuas Date: Sat, 18 Apr 2015 13:28:48 +0200 Subject: [PATCH] Generalize variance to other types --- lib/pure/math.nim | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/pure/math.nim b/lib/pure/math.nim index 0051c9d881..ef9c69e3cf 100644 --- a/lib/pure/math.nim +++ b/lib/pure/math.nim @@ -122,13 +122,13 @@ proc mean*[T](x: openArray[T]): float {.noSideEffect.} = ## ``toFloat(x: T): float`` must be defined. result = toFloat(sum(x)) / toFloat(len(x)) -proc variance*(x: openArray[float]): float {.noSideEffect.} = +proc variance*[T](x: openArray[T]): float {.noSideEffect.} = ## computes the variance of the elements in `x`. ## If `x` is empty, NaN is returned. result = 0.0 var m = mean(x) - for i in 0 .. high(x): - var diff = x[i] - m + for i in items(x): + var diff = toFloat(i) - m result = result + diff*diff result = result / toFloat(len(x))