summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorClark Williams <williams@redhat.com>2009-10-13 11:40:20 -0500
committerClark Williams <williams@redhat.com>2009-10-13 11:42:33 -0500
commitcf073569e36bbf3dc28e140aaa912d135bfdc2f6 (patch)
tree699a1080f9f4ce57b7d2f6695496394905bef8c9
parentdbda4bec63bbf11ac9f9dba2e655670ebd0ec845 (diff)
reworked stats calculation in Rundata::reduce()
avoid looping so much when calculating MAD and variance
-rw-r--r--rteval/cyclictest.py10
1 files changed, 2 insertions, 8 deletions
diff --git a/rteval/cyclictest.py b/rteval/cyclictest.py
index c1cebb5..91eda2c 100644
--- a/rteval/cyclictest.py
+++ b/rteval/cyclictest.py
@@ -105,14 +105,8 @@ class RunData(object):
madsum = 0
varsum = 0
for i in keys:
- # DON'T try using range(0, samples[i] here!
- # that will create a potentially HUGE list and
- # in many cases exhaust memory
- j = 0
- while j < self.samples[i]:
- madsum += float(abs(i - self.mean))
- varsum += float((i - self.mean) ** 2)
- j += 1
+ madsum += float(abs(float(i) - self.mean) * self.samples[i])
+ varsum += float(((float(i) - self.mean) ** 2) * self.samples[i])
self.mad = madsum / self.numsamples
self.variance = varsum / (self.numsamples - 1)