/* UnivariateFunctionWrappedInAMultivariate.java created 2011-02-20 * */ package org.signalml.math.iirdesigner.math; import org.apache.commons.math.FunctionEvaluationException; import org.apache.commons.math.analysis.MultivariateRealFunction; import org.apache.commons.math.analysis.UnivariateRealFunction; /** * This class represents an apache univariateRealFunction wrapped in a multivariate * function interface to use it with Nelder-Mead optimization algorithm which * is for multivariate functions only in the apache.commons.math library. * * @author Piotr Szachewicz */ class UnivariateFunctionWrappedInAMultivariate implements MultivariateRealFunction { /** * A function to which all calls for values will be delegated. */ private UnivariateRealFunction function; /** * Creates a new multivariate function out of a univariate function. * @param function univariate function to be wrapped in a multivariate * interface */ public UnivariateFunctionWrappedInAMultivariate(UnivariateRealFunction function) { this.function = function; } @Override public double value(double[] doubles) throws FunctionEvaluationException, IllegalArgumentException { return function.value(doubles[0]); } }