From e360bfd7058af01fd03aa9260eacbdc5d631e34b Mon Sep 17 00:00:00 2001 From: Dmitry Yatsushkevich Date: Mon, 9 Mar 2015 17:17:41 -0700 Subject: [PATCH] obj_bencher: generalize vec_stddev function Generalize vec_stddev by making them templates, so that we could use different kind of a vector to calculate STDDEV Signed-off-by: Dmitry Yatsushkevich --- src/common/obj_bencher.cc | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/common/obj_bencher.cc b/src/common/obj_bencher.cc index 97670b3541e..130c71d251d 100644 --- a/src/common/obj_bencher.cc +++ b/src/common/obj_bencher.cc @@ -245,23 +245,24 @@ void _aio_cb(void *cb, void *arg) { lc->lock->Unlock(); } -static double vec_stddev(vector& v) +template +static T vec_stddev(vector& v) { - double mean = 0; + T mean = 0; if (v.size() < 2) return 0; - vector::iterator iter; + typename vector::iterator iter; for (iter = v.begin(); iter != v.end(); ++iter) { mean += *iter; } mean /= v.size(); - double stddev = 0; + T stddev = 0; for (iter = v.begin(); iter != v.end(); ++iter) { - double dev = *iter - mean; + T dev = *iter - mean; dev *= dev; stddev += dev; } -- 2.47.3