Package com.opengamma.analytics.math.interpolation.data

Examples of com.opengamma.analytics.math.interpolation.data.Interpolator1DQuadraticSplineDataBundle


    throw new NotImplementedException();
  }

  @Override
  public Interpolator1DDataBundle getDataBundle(final double[] x, final double[] y) {
    return new Interpolator1DQuadraticSplineDataBundle(new ArrayInterpolator1DDataBundle(x, y));
  }
View Full Code Here


    return new Interpolator1DQuadraticSplineDataBundle(new ArrayInterpolator1DDataBundle(x, y));
  }

  @Override
  public Interpolator1DDataBundle getDataBundleFromSortedArrays(final double[] x, final double[] y) {
    return new Interpolator1DQuadraticSplineDataBundle(new ArrayInterpolator1DDataBundle(x, y, true));
  }
View Full Code Here

  @Override
  public Double interpolate(final Interpolator1DDataBundle data, final Double value) {
    Validate.notNull(value, "value");
    Validate.notNull(data, "data bundle");
    Validate.isTrue(data instanceof Interpolator1DQuadraticSplineDataBundle);
    final Interpolator1DQuadraticSplineDataBundle quadraticData = (Interpolator1DQuadraticSplineDataBundle) data;

    final int n = data.size() - 1;
    final double[] xData = data.getKeys();
    final double[] yData = data.getValues();

    double h, dx, a, b;
    if (value < data.firstKey()) {
      h = 0;
      dx = value;
      a = quadraticData.getA(0);
      b = quadraticData.getB(0);
    } else if (value > data.lastKey()) {
      h = yData[n];
      dx = value - xData[n];
      a = quadraticData.getA(n + 1);
      b = quadraticData.getB(n + 1);
    } else {
      final int low = data.getLowerBoundIndex(value);
      h = yData[low];
      dx = value - xData[low];
      a = quadraticData.getA(low + 1);
      b = quadraticData.getB(low + 1);
    }
    return h + a * a * dx + a * b * dx * dx + b * b / 3 * dx * dx * dx;

  }
View Full Code Here

  @Override
  public double firstDerivative(final Interpolator1DDataBundle data, final Double value) {
    Validate.notNull(value, "value");
    Validate.notNull(data, "data bundle");
    Validate.isTrue(data instanceof Interpolator1DQuadraticSplineDataBundle);
    final Interpolator1DQuadraticSplineDataBundle quadraticData = (Interpolator1DQuadraticSplineDataBundle) data;

    final int n = data.size() - 1;
    final double[] xData = data.getKeys();

    double dx, a, b;
    if (value < data.firstKey()) {
      dx = value;
      a = quadraticData.getA(0);
      b = quadraticData.getB(0);
    } else if (value > data.lastKey()) {
      dx = value - xData[n];
      a = quadraticData.getA(n + 1);
      b = quadraticData.getB(n + 1);
    } else {
      final int low = data.getLowerBoundIndex(value);
      dx = value - xData[low];
      a = quadraticData.getA(low + 1);
      b = quadraticData.getB(low + 1);
    }
    return a * a + 2. * a * b * dx + b * b * dx * dx;

  }
View Full Code Here

TOP

Related Classes of com.opengamma.analytics.math.interpolation.data.Interpolator1DQuadraticSplineDataBundle

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.