diff --git a/app/src/jmh/java/de/uni_marburg/powersort/benchmark/JmhBase.java b/app/src/jmh/java/de/uni_marburg/powersort/benchmark/JmhBase.java index 3f59c38..fa72c5a 100644 --- a/app/src/jmh/java/de/uni_marburg/powersort/benchmark/JmhBase.java +++ b/app/src/jmh/java/de/uni_marburg/powersort/benchmark/JmhBase.java @@ -34,7 +34,7 @@ import java.util.concurrent.TimeUnit; // AverageTime: "Average time per operation." // - "This mode is time-based, and it will run until the iteration time expires." //@BenchmarkMode(Mode.AverageTime) -//@Warmup(iterations = 6, time = 1, timeUnit = TimeUnit.SECONDS) +//@Warmup(iterations = 20, time = 1, timeUnit = TimeUnit.SECONDS) //@Measurement(iterations = 6, time = 1, timeUnit = TimeUnit.SECONDS) // SingleShotTime: "Time per single operation" diff --git a/app/src/jmh/java/de/uni_marburg/powersort/benchmark/JmhCgl.java b/app/src/jmh/java/de/uni_marburg/powersort/benchmark/JmhCgl.java index dff9de6..fd0973f 100644 --- a/app/src/jmh/java/de/uni_marburg/powersort/benchmark/JmhCgl.java +++ b/app/src/jmh/java/de/uni_marburg/powersort/benchmark/JmhCgl.java @@ -23,7 +23,7 @@ public class JmhCgl extends JmhBase { // Either all or a selection of sort implementations. //@Param() - @Param({"TIM_SORT", "FASTER_FINN_SORT", "IMPL_M_11", "IMPL_M_21"}) + @Param({"TIM_SORT", "FASTER_FINN_SORT", "IMPL_M_40"}) SortEnum sortEnum; @Override diff --git a/app/src/jmh/java/de/uni_marburg/powersort/benchmark/JmhCompetition.java b/app/src/jmh/java/de/uni_marburg/powersort/benchmark/JmhCompetition.java index 8d77a10..cd0f4eb 100644 --- a/app/src/jmh/java/de/uni_marburg/powersort/benchmark/JmhCompetition.java +++ b/app/src/jmh/java/de/uni_marburg/powersort/benchmark/JmhCompetition.java @@ -16,9 +16,18 @@ import org.openjdk.jmh.annotations.State; */ @State(Scope.Benchmark) public class JmhCompetition extends JmhBase { - @Param() + //@Param() + @Param({ + // Top 4 Heavyweight by #comparisons + "COMPETITION_207", "COMPETITION_214", "COMPETITION_213", "COMPETITION_236", + // Top 4 Heavyweight by #merge-cost + "COMPETITION_198","COMPETITION_199","COMPETITION_232","COMPETITION_231", + // Top 4 Heavyweight by combined metric + "COMPETITION_214","COMPETITION_218","COMPETITION_236","COMPETITION_213", + }) CompetitionEnum dataEnum; - @Param() + //@Param() + @Param({"TIM_SORT", "FASTER_FINN_SORT", "IMPL_M_40"}) SortEnum sortEnum; @Override diff --git a/app/src/main/java/de/uni_marburg/powersort/FinnSort/FasterFinnSort.java b/app/src/main/java/de/uni_marburg/powersort/FinnSort/FasterFinnSort.java index 32fb651..c4a4070 100644 --- a/app/src/main/java/de/uni_marburg/powersort/FinnSort/FasterFinnSort.java +++ b/app/src/main/java/de/uni_marburg/powersort/FinnSort/FasterFinnSort.java @@ -172,7 +172,7 @@ public class FasterFinnSort { } // TODO: Verify if this is correct - int stackLen = ((int) Math.ceil(Math.log(rangeSize))) + 2; + int stackLen = ((int) Math.ceil(Math.log(rangeSize) / Math.log(2))) + 2; runBase = new int[stackLen]; runLen = new int[stackLen]; runPower = new int[stackLen]; diff --git a/app/src/test/java/de/uni_marburg/powersort/sort/IMPL_M_1Test.java b/app/src/test/java/de/uni_marburg/powersort/sort/IMPL_M_1Test.java index b527e7a..064d661 100644 --- a/app/src/test/java/de/uni_marburg/powersort/sort/IMPL_M_1Test.java +++ b/app/src/test/java/de/uni_marburg/powersort/sort/IMPL_M_1Test.java @@ -1,5 +1,8 @@ package de.uni_marburg.powersort.sort; +import org.junit.jupiter.api.Disabled; + +@Disabled("Disabled in favor of IMPL_M_2") public class IMPL_M_1Test extends AbstractSortTest { IMPL_M_1Test() { sortAlg = SortEnum.IMPL_M_10; diff --git a/app/src/test/java/de/uni_marburg/powersort/sort/IMPL_M_2Test.java b/app/src/test/java/de/uni_marburg/powersort/sort/IMPL_M_2Test.java new file mode 100644 index 0000000..b6820d0 --- /dev/null +++ b/app/src/test/java/de/uni_marburg/powersort/sort/IMPL_M_2Test.java @@ -0,0 +1,10 @@ +package de.uni_marburg.powersort.sort; + +import org.junit.jupiter.api.Disabled; + +@Disabled("Disabled in favor of IMPL_M_3") +public class IMPL_M_2Test extends AbstractSortTest { + IMPL_M_2Test() { + sortAlg = SortEnum.IMPL_M_20; + } +} \ No newline at end of file diff --git a/app/src/test/java/de/uni_marburg/powersort/sort/IMPL_M_3Test.java b/app/src/test/java/de/uni_marburg/powersort/sort/IMPL_M_3Test.java new file mode 100644 index 0000000..c7c9f60 --- /dev/null +++ b/app/src/test/java/de/uni_marburg/powersort/sort/IMPL_M_3Test.java @@ -0,0 +1,10 @@ +package de.uni_marburg.powersort.sort; + +import org.junit.jupiter.api.Disabled; + +@Disabled("Disabled in favor of IMPL_M_4") +public class IMPL_M_3Test extends AbstractSortTest { + IMPL_M_3Test() { + sortAlg = SortEnum.IMPL_M_30; + } +} \ No newline at end of file diff --git a/app/src/test/java/de/uni_marburg/powersort/sort/IMPL_M_4Test.java b/app/src/test/java/de/uni_marburg/powersort/sort/IMPL_M_4Test.java new file mode 100644 index 0000000..b6d9649 --- /dev/null +++ b/app/src/test/java/de/uni_marburg/powersort/sort/IMPL_M_4Test.java @@ -0,0 +1,7 @@ +package de.uni_marburg.powersort.sort; + +public class IMPL_M_4Test extends AbstractSortTest { + IMPL_M_4Test() { + sortAlg = SortEnum.IMPL_M_40; + } +} \ No newline at end of file