]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
obj_bencher: generalize vec_stddev function
authorDmitry Yatsushkevich <dyatsushkevich@mirantis.com>
Tue, 10 Mar 2015 00:17:41 +0000 (17:17 -0700)
committerDmitry Yatsushkevich <dyatsushkevich@mirantis.com>
Mon, 23 Mar 2015 18:54:31 +0000 (11:54 -0700)
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 <dyatsushkevich@mirantis.com>
src/common/obj_bencher.cc

index 97670b3541e684d04e14524e3adbc2135d8b762b..130c71d251d5ac276760aabeb5aa77ce035eff36 100644 (file)
@@ -245,23 +245,24 @@ void _aio_cb(void *cb, void *arg) {
   lc->lock->Unlock();
 }
 
-static double vec_stddev(vector<double>& v)
+template<class T>
+static T vec_stddev(vector<T>& v)
 {
-  double mean = 0;
+  T mean = 0;
 
   if (v.size() < 2)
     return 0;
 
-  vector<double>::iterator iter;
+  typename vector<T>::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;
   }