Java Array Interpolate interpolate(double[] x, double D)

Here you can find the source of interpolate(double[] x, double D)

Description

interpolate

License

Open Source License

Declaration

public static double[] interpolate(double[] x, double D) 

Method Source Code

//package com.java2s;
/**//from ww w  . j  ava2s  .  c om
 * Copyright 2000-2009 DFKI GmbH.
 * All Rights Reserved.  Use is subject to license terms.
 *
 * This file is part of MARY TTS.
 *
 * MARY TTS is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation, version 3 of the License.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *
 */

public class Main {
    public static double[] interpolate(double[] x, double D) {
        double[] y = null;

        if (x != null) {
            int ylen = (int) Math.floor(x.length * D + 0.5);
            y = new double[ylen];
            int xind;
            double xindDouble;
            for (int i = 0; i < ylen; i++) {
                xindDouble = i / D;
                xind = (int) Math.floor(xindDouble);

                if (xind <= 0)
                    y[i] = (xind - xindDouble) * (2 * x[0] - x[1]) + (1 - xind + xindDouble) * x[xind];
                else if (xind > x.length - 1)
                    y[i] = (x[x.length - 1] - x[x.length - 2]) * (xindDouble - x.length + 1) + x[x.length - 1];
                else
                    y[i] = (xind - xindDouble) * x[xind - 1] + (1 - xind + xindDouble) * x[xind];
            }
        }

        return y;
    }
}

Related

  1. interpolate(double x, double[] begin, double[] end)
  2. interpolate(double xa[], double ya[], double x)
  3. interpolate(double[] array, int[] translation, double index)
  4. interpolate(double[] end0, double[] end1, double[] mid)
  5. interpolate(double[] points, double[] values, double interpolateAt)
  6. interpolate(double[] X, double[] Y, double[] Z)
  7. interpolate(double[] x, int newLength)
  8. interpolate(float out[], float in1[], float in2[], int in2_idx, float coef, int length)
  9. interpolate(int[] data, double x)