/**
* Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.analytics.example.curveconstruction;
// @export "imports"
import java.io.PrintStream;
import com.opengamma.analytics.math.curve.ConstantDoublesCurve;
import com.opengamma.analytics.math.curve.Curve;
import com.opengamma.analytics.math.curve.InterpolatedDoublesCurve;
import com.opengamma.analytics.math.interpolation.CombinedInterpolatorExtrapolator;
import com.opengamma.analytics.math.interpolation.Interpolator1D;
import com.opengamma.analytics.math.interpolation.LinearExtrapolator1D;
import com.opengamma.analytics.math.interpolation.LinearInterpolator1D;
/**
* Example for curves.
*/
public class CurveExample {
// @export "constantDoublesCurveDemo"
public static void constantDoublesCurveDemo(PrintStream out) {
Curve<Double, Double> curve = new ConstantDoublesCurve(5.0);
out.println(curve.getYValue(0.0));
out.println(curve.getYValue(10.0));
out.println(curve.getYValue(-10.0));
}
// @export "nodalDoublesCurveDemo"
// public static void nodalDoublesCurveDemo(PrintStream out) {
// double[] xdata = { 1.0, 2.0, 3.0 };
// double[] ydata = { 2.0, 4.0, 6.0 };
// Curve curve = new NodalDoublesCurve(xdata, ydata, true);
//
// out.println(curve.getYValue(1.0));
// out.println(curve.getYValue(2.0));
// out.println(curve.getYValue(3.0));
//
// try {
// out.println("Trying to get y value for an undefined x value...");
// curve.getYValue(1.5);
// } catch (java.lang.IllegalArgumentException e) {
// out.println("IllegalArgumentException called");
// }
// }
// @export "interpolatedDoublesCurveDemo"
public static void interpolatedDoublesCurveDemo(PrintStream out) {
double[] xdata = {1.0, 2.0, 3.0};
double[] ydata = {2.0, 4.0, 6.0};
LinearInterpolator1D interpolator = new LinearInterpolator1D();
Curve<Double, Double> curve = new InterpolatedDoublesCurve(xdata, ydata, interpolator, true);
out.println(curve.getYValue(1.0));
out.println(curve.getYValue(2.0));
out.println(curve.getYValue(3.0));
out.println(curve.getYValue(1.5));
try {
out.println("Trying to get y value for too large an x...");
curve.getYValue(4.0);
} catch (java.lang.IllegalArgumentException e) {
out.println("IllegalArgumentException called");
}
}
// @export "interpolatorExtrapolatorDoublesCurveDemo"
public static void interpolatorExtrapolatorDoublesCurveDemo(PrintStream out) {
double[] xdata = {1.0, 2.0, 3.0};
double[] ydata = {2.0, 4.0, 6.0};
Interpolator1D interpolator = new LinearInterpolator1D();
Interpolator1D leftExtrapolator = new LinearExtrapolator1D(interpolator);
Interpolator1D rightExtrapolator = new LinearExtrapolator1D(interpolator);
Interpolator1D combined = new CombinedInterpolatorExtrapolator(interpolator, leftExtrapolator, rightExtrapolator);
Curve<Double, Double> curve = new InterpolatedDoublesCurve(xdata, ydata, combined, true);
out.println(curve.getYValue(1.0));
out.println(curve.getYValue(2.0));
out.println(curve.getYValue(3.0));
out.println(curve.getYValue(1.5));
out.println(curve.getYValue(4.0));
}
}