tempQ2.add(temp); ListUtils.addQ(postKernelSum, ListUtils.kernelQ(buffer, tempQ1, tempQ2)); buffer.addLast(residual); preKernelSum.addLast(ListUtils.kernelSubSum(residual, buffer, sdBuffer, 0, preWindowSize - 1)); ListUtils.kernelQ(buffer, buffer.subList(preWindowSize, preWindowSize + 1), sdBuffer.subList(preWindowSize, preWindowSize + 1)); ListUtils.addQ(preKernelSum, midExchangedValues); ListUtils.subtractQ(postKernelSum, midExchangedValues); LinkedList<Float> postAddedValues = ListUtils.kernelQ(buffer, tempQ1, tempQ2); ListUtils.addQ(postKernelSum, postAddedValues);