fabs for gcc4 compatibility
diff --git a/cpp/src/kll_merge_accuracy_profile.cpp b/cpp/src/kll_merge_accuracy_profile.cpp
index 65db044..c117264 100644
--- a/cpp/src/kll_merge_accuracy_profile.cpp
+++ b/cpp/src/kll_merge_accuracy_profile.cpp
@@ -45,13 +45,13 @@
   }
 
   kll_sketch<float> sketch;
-  for (unsigned i = 0; i < num_sketches; i++) sketch.merge(*sketches[i]);
+  for (unsigned i = 0; i < num_sketches; i++) sketch.merge(std::move(*sketches[i]));
 
   double max_rank_error = 0;
   for (size_t i = 0; i < stream_length; i++) {
     double true_rank = static_cast<double>(i) / stream_length;
     double est_rank = sketch.get_rank(i);
-    max_rank_error = std::max(max_rank_error, abs(true_rank - est_rank));
+    max_rank_error = std::max(max_rank_error, fabs(true_rank - est_rank));
   }
 
   return max_rank_error;
diff --git a/cpp/src/kll_sketch_accuracy_profile.cpp b/cpp/src/kll_sketch_accuracy_profile.cpp
index 2caa3e2..ece5c6b 100644
--- a/cpp/src/kll_sketch_accuracy_profile.cpp
+++ b/cpp/src/kll_sketch_accuracy_profile.cpp
@@ -38,7 +38,7 @@
   for (size_t i = 0; i < stream_length; i++) {
     double true_rank = (double) i / stream_length;
     double est_rank = sketch.get_rank(i);
-    max_rank_error = std::max(max_rank_error, abs(true_rank - est_rank));
+    max_rank_error = std::max(max_rank_error, fabs(true_rank - est_rank));
   }
 
   return max_rank_error;