From: Dmitry Yatsushkevich Date: Tue, 10 Mar 2015 00:17:41 +0000 (-0700) Subject: obj_bencher: generalize vec_stddev function X-Git-Tag: v9.0.1~163^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=e360bfd7058af01fd03aa9260eacbdc5d631e34b;p=ceph.git 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 --- diff --git a/src/common/obj_bencher.cc b/src/common/obj_bencher.cc index 97670b3541e6..130c71d251d5 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; }