double precision
diff --git a/src/main/java/algorithms/project/benchmark/Ackley.java b/src/main/java/algorithms/project/benchmark/Ackley.java
index a0a40da..c640d3b 100644
--- a/src/main/java/algorithms/project/benchmark/Ackley.java
+++ b/src/main/java/algorithms/project/benchmark/Ackley.java
@@ -3,14 +3,14 @@
 public class Ackley implements Benchmark {
 
     @Override
-    public float benchmark(Float... params) {
-        float sumOfSquares = 0;
+    public Double benchmark(Double... params) {
+        double sumOfSquares = 0;
         float s2 = 0;
 
         for (int i = 0; i < params.length; i++) {
             sumOfSquares += params[i] * params[i];
             s2 += Math.cos(2 * Math.PI * params[i]);
         }
-        return -20f * (float) Math.exp(-0.2f * Math.sqrt(sumOfSquares / params.length)) - (float) Math.exp(s2 / params.length) + 20f + (float) Math.E;
+        return -20f * Math.exp(-0.2f * Math.sqrt(sumOfSquares / params.length)) - Math.exp(s2 / params.length) + 20f + Math.E;
     }
 }
diff --git a/src/main/java/algorithms/project/benchmark/Benchmark.java b/src/main/java/algorithms/project/benchmark/Benchmark.java
index 7346111..b62e152 100644
--- a/src/main/java/algorithms/project/benchmark/Benchmark.java
+++ b/src/main/java/algorithms/project/benchmark/Benchmark.java
@@ -2,6 +2,6 @@
 
 public interface Benchmark {
 
-    float benchmark(Float... params);
+    Double benchmark(Double... params);
 
 }
diff --git a/src/main/java/algorithms/project/benchmark/BentCigar.java b/src/main/java/algorithms/project/benchmark/BentCigar.java
index f3a8a26..f480271 100644
--- a/src/main/java/algorithms/project/benchmark/BentCigar.java
+++ b/src/main/java/algorithms/project/benchmark/BentCigar.java
@@ -3,8 +3,8 @@
 public class BentCigar implements Benchmark {
 
     @Override
-    public float benchmark(Float... params) {
-        float sq0 = params[0] * params[0];
+    public Double benchmark(Double... params) {
+        double sq0 = params[0] * params[0];
 
         float sumOfSquares1ToN = 0;
         for (int i = 1; i < params.length; i++) {
diff --git a/src/main/java/algorithms/project/benchmark/Discus.java b/src/main/java/algorithms/project/benchmark/Discus.java
index d5e5c38..b5b4b07 100644
--- a/src/main/java/algorithms/project/benchmark/Discus.java
+++ b/src/main/java/algorithms/project/benchmark/Discus.java
@@ -3,8 +3,8 @@
 public class Discus implements Benchmark {
 
     @Override
-    public float benchmark(Float... params) {
-        float fitness = 1000000 * params[0] * params[0];
+    public Double benchmark(Double... params) {
+        double fitness = 1000000 * params[0] * params[0];
 
         for (int i = 1; i < params.length; i++) {
             fitness += params[i] * params[i];
diff --git a/src/main/java/algorithms/project/benchmark/Griewank.java b/src/main/java/algorithms/project/benchmark/Griewank.java
index 83bbb11..ddd0375 100644
--- a/src/main/java/algorithms/project/benchmark/Griewank.java
+++ b/src/main/java/algorithms/project/benchmark/Griewank.java
@@ -3,9 +3,9 @@
 public class Griewank implements Benchmark {
 
     @Override
-    public float benchmark(Float... params) {
-        float lhs = 0;
-        float rhs = 1;
+    public Double benchmark(Double... params) {
+        double lhs = 0;
+        double rhs = 1;
         for (int i = 0; i < params.length; i++) {
             lhs += params[i] * params[i];
         }
diff --git a/src/main/java/algorithms/project/benchmark/HCE.java b/src/main/java/algorithms/project/benchmark/HCE.java
index a352bd5..cdfb9e2 100644
--- a/src/main/java/algorithms/project/benchmark/HCE.java
+++ b/src/main/java/algorithms/project/benchmark/HCE.java
@@ -6,8 +6,8 @@
 public class HCE implements Benchmark {
 
     @Override
-    public float benchmark(Float... params) {
-        float fitness = 0;
+    public Double benchmark(Double... params) {
+        double fitness = 0;
 
         for (int i = 0; i < params.length; i++) {
             fitness += Math.pow(1000000, (i - 1) / (params.length - 1)) * params[i] * params[i];
diff --git a/src/main/java/algorithms/project/benchmark/Rastrigin.java b/src/main/java/algorithms/project/benchmark/Rastrigin.java
index 3e2ed37..de37fab 100644
--- a/src/main/java/algorithms/project/benchmark/Rastrigin.java
+++ b/src/main/java/algorithms/project/benchmark/Rastrigin.java
@@ -3,8 +3,8 @@
 public class Rastrigin implements Benchmark {
 
     @Override
-    public float benchmark(Float... params) {
-        float fitness = 10 * params.length;
+    public Double benchmark(Double... params) {
+        double fitness = 10 * params.length;
         for (int i = 0; i < params.length; i++) {
             fitness += params[i] * params[i] - 10 * Math.cos(2 * Math.PI * params[i]);
         }
diff --git a/src/main/java/algorithms/project/benchmark/Rosenbrock.java b/src/main/java/algorithms/project/benchmark/Rosenbrock.java
index 43566c4..0ebadf8 100644
--- a/src/main/java/algorithms/project/benchmark/Rosenbrock.java
+++ b/src/main/java/algorithms/project/benchmark/Rosenbrock.java
@@ -3,8 +3,8 @@
 public class Rosenbrock implements Benchmark {
 
     @Override
-    public float benchmark(Float... params) {
-        float fitness = 0;
+    public Double benchmark(Double... params) {
+        double fitness = 0;
 
         for (int i = 0; i < params.length - 1; i++) {
             fitness += 100 * (Math.pow(params[i] * params[i] - params[i + 1], 2) + Math.pow(params[i] - 1, 2));