class ProductPolynomialExtrapolator1D extends Interpolator1D {

  @Override
  public double[] getNodeSensitivitiesForValue(final Interpolator1DDataBundle data, final Double value) {
    Validate.notNull(data, "data");
    Validate.notNull(value, "value");
    ArgumentChecker.isTrue(value < data.firstKey() || value > data.lastKey(), "value was within data range");
    Validate.isTrue(data instanceof Interpolator1DPiecewisePoynomialWithExtraKnotsDataBundle);
    Interpolator1DPiecewisePoynomialWithExtraKnotsDataBundle polyData = (Interpolator1DPiecewisePoynomialWithExtraKnotsDataBundle) data;
    return _interpolator.getNodeSensitivitiesForValue(polyData, value, _func, SMALL);
  }

  public  ProductPolynomialExtrapolator1D(Interpolator1D interpolator);
  public  ProductPolynomialExtrapolator1D(Interpolator1D interpolator, PiecewisePolynomialFunction1D func);

}