From f0c1c692fa37c67b8ab1cdefc4df4055f4feb66a Mon Sep 17 00:00:00 2001
From: Christoph Lehmann <christoph.lehmann@ufz.de>
Date: Wed, 24 May 2017 11:08:33 +0200
Subject: [PATCH] [BL] moved code, fixed includes

---
 BaseLib/Subdivision.cpp | 26 ++++++++++++++++++++++++++
 BaseLib/Subdivision.h   | 23 +----------------------
 2 files changed, 27 insertions(+), 22 deletions(-)

diff --git a/BaseLib/Subdivision.cpp b/BaseLib/Subdivision.cpp
index a2141d04d77..b9ba827c5bc 100644
--- a/BaseLib/Subdivision.cpp
+++ b/BaseLib/Subdivision.cpp
@@ -9,6 +9,9 @@
 
 #include "Subdivision.h"
 
+#include <algorithm>
+#include <cmath>
+
 #include <BaseLib/Error.h>
 
 namespace BaseLib
@@ -31,6 +34,29 @@ GradualSubdivision::GradualSubdivision(const double L,
     }
 }
 
+std::vector<double> GradualSubdivision::operator()() const
+{
+    std::vector<double> vec_x;
+
+    double x = 0;
+    unsigned i = 0;
+    do {
+        vec_x.push_back(x);
+        x += std::min(_max_dL,
+                      _dL0 * std::pow(_multiplier, static_cast<double>(i)));
+        i++;
+    } while (x < _length);
+
+    if (vec_x.back() < _length) {
+        double last_dx = vec_x[vec_x.size() - 1] - vec_x[vec_x.size() - 2];
+        if (_length - vec_x.back() < last_dx)
+            vec_x[vec_x.size() - 1] = _length;
+        else
+            vec_x.push_back(_length);
+    }
+    return vec_x;
+}
+
 GradualSubdivisionFixedNum::GradualSubdivisionFixedNum(
     const double L, const std::size_t num_subdivisions, const double multiplier)
     : _length{L}, _num_subdivisions{num_subdivisions}, _multiplier{multiplier}
diff --git a/BaseLib/Subdivision.h b/BaseLib/Subdivision.h
index f6c87e86984..442fb514af9 100644
--- a/BaseLib/Subdivision.h
+++ b/BaseLib/Subdivision.h
@@ -9,7 +9,6 @@
 
 #pragma once
 
-#include <cmath>
 #include <vector>
 
 namespace BaseLib
@@ -77,27 +76,7 @@ public:
             const double multiplier);
 
     /// Returns a vector of subdivided points
-    std::vector<double> operator()() const override
-    {
-        std::vector<double> vec_x;
-
-        double x = 0;
-        unsigned i=0;
-        do {
-            vec_x.push_back(x);
-            x += std::min(_max_dL, _dL0*std::pow(_multiplier, static_cast<double>(i)));
-            i++;
-        } while (x<_length);
-
-        if (vec_x.back() < _length) {
-            double last_dx = vec_x[vec_x.size()-1] - vec_x[vec_x.size()-2];
-            if (_length-vec_x.back()<last_dx)
-                vec_x[vec_x.size()-1] = _length;
-            else
-                vec_x.push_back(_length);
-        }
-        return vec_x;
-    }
+    std::vector<double> operator()() const override;
 
 private:
     const double _length;
-- 
GitLab