/**
* Copyright (C) 2015 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.sesame;
import com.opengamma.analytics.math.interpolation.CombinedInterpolatorExtrapolatorFactory;
import com.opengamma.analytics.math.interpolation.GridInterpolator2D;
import com.opengamma.analytics.math.interpolation.Interpolator1D;
import com.opengamma.util.result.Result;
/**
* Create GridInterpolator2D based on Y and Y extrapolator and interpolator.
*/
public class DefaultGridInterpolator2DFn implements GridInterpolator2DFn {
private final String _xInterpolatorName;
private final String _xLeftExtrapolatorName;
private final String _xRightExtrapolatorName;
private final String _yInterpolatorName;
private final String _yLeftExtrapolatorName;
private final String _yRightExtrapolatorName;
/**
* Default implementation of GridInterpolator2DFn
*
* @param xInterpolatorName name of the X interpolator
* @param xLeftExtrapolatorName name of the X left extrapolator
* @param xRightExtrapolatorName name of the X right extrapolator
* @param yInterpolatorName name of the Y interpolator
* @param yLeftExtrapolatorName name of the Y left extrapolator
* @param yRightExtrapolatorName name of the Y right extrapolator
*/
public DefaultGridInterpolator2DFn(String xInterpolatorName,
String xLeftExtrapolatorName,
String xRightExtrapolatorName,
String yInterpolatorName,
String yLeftExtrapolatorName,
String yRightExtrapolatorName) {
_xInterpolatorName = xInterpolatorName;
_xLeftExtrapolatorName = xLeftExtrapolatorName;
_xRightExtrapolatorName = xRightExtrapolatorName;
_yInterpolatorName = yInterpolatorName;
_yLeftExtrapolatorName = yLeftExtrapolatorName;
_yRightExtrapolatorName = yRightExtrapolatorName;
}
@Override
public Result<GridInterpolator2D> createGridInterpolator2DFn(Environment env) {
Interpolator1D combinedX =
CombinedInterpolatorExtrapolatorFactory.getInterpolator(_xInterpolatorName,
_xLeftExtrapolatorName,
_xRightExtrapolatorName);
Interpolator1D combinedY =
CombinedInterpolatorExtrapolatorFactory.getInterpolator(_yInterpolatorName,
_yLeftExtrapolatorName,
_yRightExtrapolatorName);
return Result.success(new GridInterpolator2D(combinedX, combinedY));
}
}