/** * Copyright (C) 2014 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.analytics.math.function; import java.io.Serializable; import java.util.List; import org.apache.commons.lang.ArrayUtils; import com.opengamma.util.ArgumentChecker; /** * abstraction for anything that provides a {@link VectorFunction} for a set of data points (as Double) */ public abstract class DoublesVectorFunctionProvider implements VectorFunctionProvider<Double>, Serializable { @Override public VectorFunction from(final List<Double> x) { ArgumentChecker.notNull(x, "x"); return from(x.toArray(new Double[0])); } @Override public VectorFunction from(final Double[] x) { ArgumentChecker.notNull(x, "x"); return from(ArrayUtils.toPrimitive(x)); } /** * produce a vector function that depends in some way on the given data points * @param x Array of data points * @return a {@link VectorFunction} */ public abstract VectorFunction from(double[] x); }