Java Array Shift shift(double[] a, int shift, double insert)

Here you can find the source of shift(double[] a, int shift, double insert)

Description

each entry is moved from index to index+shift

License

Apache License

Parameter

Parameter Description
a a parameter
shift a parameter
insert a parameter

Declaration

public static double shift(double[] a, int shift, double insert) 

Method Source Code

//package com.java2s;
/**//from  w ww .  j av a  2 s.  c om
 * 
 *    Copyright 2017 Florian Erhard
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 * 
 */

import java.util.Arrays;

public class Main {
    /**
     * each entry is moved from index to index+shift
     * @param a
     * @param shift
     * @param insert
     */
    public static double shift(double[] a, int shift, double insert) {
        if (shift > 0) {
            double re = sum(a, a.length - shift, a.length);
            for (int i = a.length - 1; i >= shift; i--)
                a[i] = a[i - shift];
            Arrays.fill(a, 0, shift, insert);
            return re;
        } else {
            double re = sum(a, 0, -shift);
            for (int i = 0; i < a.length + shift; i++)
                a[i] = a[i - shift];
            Arrays.fill(a, a.length + shift, a.length, insert);
            return re;
        }
    }

    public static int sum(int[] a) {
        int re = 0;
        for (int i : a)
            re += i;
        return re;
    }

    public static int sum(int[] a, int start, int end) {
        int re = 0;
        for (int i = start; i < end; i++)
            re += a[i];
        return re;
    }

    public static double sum(double[][] m) {
        double re = 0;
        for (double[] a : m)
            for (double i : a)
                re += i;
        return re;
    }

    public static long sum(long[] a) {
        long re = 0;
        for (long i : a)
            re += i;
        return re;
    }

    public static float sum(float[] a) {
        float re = 0;
        for (float i : a)
            re += i;
        return re;
    }

    public static float sum(float[] a, int start, int end) {
        float re = 0;
        for (int i = start; i < end; i++)
            re += a[i];
        return re;
    }

    /**
     * Computes the sum of the given array.
     * @param array the array
     * @return the sum
     */
    public static double sum(double[] array) {
        if (array == null)
            return Double.NaN;
        double re = 0;
        for (double i : array)
            re += i;
        return re;
    }

    public static double sum(double[] array, int start, int end) {
        if (array == null)
            return Double.NaN;
        double re = 0;
        for (int i = start; i < end; i++)
            re += array[i];
        return re;
    }
}

Related

  1. arrayShift(Object[] input, int shift)
  2. arrayShiftArgs(int[] array, int a)
  3. shift(double[] x, int N)
  4. shift(final byte[] input, final int amount)
  5. shift(final double[] values, final double constant)
  6. shift(final Object[] array, int offset)