class FunctionalDoublesCurve extends DoublesCurve {

  @Override
  public Double[] getXData() {
    throw new UnsupportedOperationException("Cannot get x data - this curve is defined by a function (x -> y)");
  }

  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);

}