class FunctionalDoublesSurface extends Surface<Double, Double, Double> {

  @Override
  public int size() {
    throw new UnsupportedOperationException("Cannot get size - this surface is defined by a function");
  }

  public  FunctionalDoublesSurface(final Function<Double, Double> function);
  public  FunctionalDoublesSurface(final Function<Double, Double> function, final String name);

}