From 529108afea8a9b02ddd661da7cb1c5827af6e150 Mon Sep 17 00:00:00 2001
From: Christof Metzger-Kraus <christof.j.metzger@gmail.com>
Date: Sun, 24 Dec 2017 12:54:06 +0100
Subject: [PATCH] reduce duplicate code

---
 src/Optimize/OptimizeCmd.cpp | 22 ++++++----------------
 1 file changed, 6 insertions(+), 16 deletions(-)

diff --git a/src/Optimize/OptimizeCmd.cpp b/src/Optimize/OptimizeCmd.cpp
index 77d7ca90b..ce665bedd 100644
--- a/src/Optimize/OptimizeCmd.cpp
+++ b/src/Optimize/OptimizeCmd.cpp
@@ -237,22 +237,12 @@ void OptimizeCmd::execute() {
                 }
             } else if (type == "real") {
                 if (itsAttr[i]) {
-                    if (i == EPSILON ||
-                        i == EXPECTEDHYPERVOL ||
-                        i == CONVHVOLPROG ||
-                        i == GENEMUTATIONPROBABILITY ||
-                        i == MUTATIONPROBABILITY ||
-                        i == RECOMBINATIONPROBABILITY ||
-                        i == SIMBINCROSSOVERNU) { // float
-                        std::string val = std::to_string (Attributes::getReal(itsAttr[i]));
-                        val.erase ( val.find_last_not_of('0') + 1, std::string::npos );
-                        std::string argument = "--" + (*it).second + "=" + val;
-                        arguments.push_back(argument);
-                    } else { // integer
-                        int val = Attributes::getReal(itsAttr[i]);
-                        std::string argument = "--" + (*it).second + "=" + std::to_string(val);
-                        arguments.push_back(argument);
-                    }
+                    std::string val = std::to_string (Attributes::getReal(itsAttr[i]));
+                    size_t last = val.find_last_not_of('0');
+                    if (val[last] != '.') ++ last;
+                    val.erase (last, std::string::npos );
+                    std::string argument = "--" + (*it).second + "=" + val;
+                    arguments.push_back(argument);
                 }
             } else if (type == "logical") {
                 if (itsAttr[i]) {
-- 
GitLab