private static int[] createIndexesToKeep(TensorType argumentType, int[] indexesToReduce) {
        int[] indexesToKeep = new int[argumentType.rank() - indexesToReduce.length];
        int toKeepIndex = 0;
        for (int i = 0; i < argumentType.rank(); i++) {
            if ( ! contains(indexesToReduce, i))
                indexesToKeep[toKeepIndex++] = i;
        }
        return indexesToKeep;
    }
Creates a reduce function.

@param argument the tensor to reduce
@param aggregator the aggregator function to use
@param dimensions the list of dimensions to remove. If an empty list is given, all dimensions are reduced,
                  producing a dimensionless tensor (a scalar).
@throws IllegalArgumentException if any of the tensor dimensions are not present in the input tensor
vespajlib/src/main/java/com/yahoo/tensor/functions/Reduce.java