From 675735d8d99e9de19e3ec7a2e7ec0c7e3e47e0c2 Mon Sep 17 00:00:00 2001 From: Vojtech Moravec <vojtech.moravec.st@vsb.cz> Date: Mon, 19 Oct 2020 08:50:20 +0200 Subject: [PATCH] Save array difference result to prepared array. The old API is still present and just allocates the difference array, which is later passed to the `new` function. This way we can skip allocating the same array every time we want to calculate plane difference of multiple planes. --- src/main/java/cz/it4i/qcmp/utilities/Utils.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/main/java/cz/it4i/qcmp/utilities/Utils.java b/src/main/java/cz/it4i/qcmp/utilities/Utils.java index 5c00075..3730c98 100644 --- a/src/main/java/cz/it4i/qcmp/utilities/Utils.java +++ b/src/main/java/cz/it4i/qcmp/utilities/Utils.java @@ -55,12 +55,17 @@ public class Utils { public static int[] getDifference(final int[] original, final int[] transformed) { assert (original.length == transformed.length) : "Array lengths doesn't match"; - final int[] difference = new int[original.length]; + differenceToArray(original, transformed, difference); + return difference; + } + + public static void differenceToArray(final int[] original, final int[] transformed, final int[] result) { + assert (original.length == transformed.length) : "Array lengths doesn't match"; + assert (original.length == result.length) : "Array lengths doesn't match with result array."; for (int i = 0; i < original.length; i++) { - difference[i] = (original[i] - transformed[i]); + result[i] = (original[i] - transformed[i]); } - return difference; } public static int[] asAbsoluteValues(final int[] values) { -- GitLab