class FunctionalDoublesCurve extends DoublesCurve {

  public InterpolatedDoublesCurve toInterpolatedDoublesCurve(final double[] x, final Interpolator1D interpolator) {
    Validate.notNull(x, "x");
    Validate.notNull(interpolator);
    final int n = x.length;
    final double[] y = new double[n];
    for (int i = 0; i < n; i++) {
      y[i] = _function.evaluate(x[i]);
    }
    return InterpolatedDoublesCurve.from(x, y, interpolator);
  }

  protected  FunctionalDoublesCurve();
  public  FunctionalDoublesCurve(final Function1D<Double, Double> function);
  private  FunctionalDoublesCurve(final Function1D<Double, Double> function, final Function1D<Double, Double> derivative);
  public  FunctionalDoublesCurve(final Function1D<Double, Double> function, final String name);
  private  FunctionalDoublesCurve(final Function1D<Double, Double> function, final Function1D<Double, Double> derivative, final String name);

}