### Question:
DoublesVectorFunctionProvider implements VectorFunctionProvider<Double> { @Override public VectorFunction from(List<Double> x) { ArgChecker.notNull(x, "x"); return from(x.toArray(new Double[0])); }  @Override VectorFunction from(List<Double> x); @Override VectorFunction from(Double[] x); abstract VectorFunction from(double[] x);  }### Answer:
@Test public void test() { final ParameterizedCurve curve = new ParameterizedCurve() { @Override public Double evaluate(final Double x, final DoubleArray parameters) { return parameters.get(0) + parameters.get(1) * x + parameters.get(2) * x * x; } @Override public int getNumberOfParameters() { return 3; } }; final DoublesVectorFunctionProvider pro = new DoublesVectorFunctionProvider() { @Override public VectorFunction from(final double[] x) { final ParameterizedCurveVectorFunction vf = new ParameterizedCurveVectorFunction(x, curve); return vf; } }; final DoubleArray parms = DoubleArray.of(-2.0, 1.0, 0.5); VectorFunction f = pro.from(new Double[] {-1.0, 0.0, 1.0}); DoubleArray y = f.apply(parms); AssertMatrix.assertEqualsVectors(DoubleArray.of(-2.5, -2.0, -0.5), y, 1e-15); final List<Double> l = new ArrayList<>(3); l.add(0.0); l.add(2.0); l.add(4.0); f = pro.from(l); y = f.apply(parms); AssertMatrix.assertEqualsVectors(DoubleArray.of(-2.0, 2.0, 10.0), y, 1e-15); }