## org.apache.commons.math3.analysis Interface UnivariateFunction

All Known Subinterfaces:
DifferentiableUnivariateFunction, UnivariateDifferentiableFunction
All Known Implementing Classes:
Abs, Acos, Acosh, Asin, Asinh, Atan, Atanh, Cbrt, Ceil, Constant, Cos, Cosh, Exp, Expm1, Floor, Gaussian, HarmonicOscillator, Identity, Inverse, Log, Log10, Log1p, Logistic, Logit, Minus, PolynomialFunction, PolynomialFunctionLagrangeForm, PolynomialFunctionNewtonForm, PolynomialSplineFunction, Power, Rint, Sigmoid, Signum, Sin, Sinc, Sinh, Sqrt, StepFunction, Tan, Tanh, Ulp

`public interface UnivariateFunction`

An interface representing a univariate real function.
When a user-defined function encounters an error during evaluation, the `value` method should throw a user-defined unchecked exception.
The following code excerpt shows the recommended way to do that using a root solver as an example, but the same construct is applicable to ODE integrators or optimizers.

``` private static class LocalException extends RuntimeException {
// The x value that caused the problem.
private final double x;

public LocalException(double x) {
this.x = x;
}

public double getX() {
return x;
}
}

private static class MyFunction implements UnivariateFunction {
public double value(double x) {
double y = hugeFormula(x);
throw new LocalException(x);
}
return y;
}
}

public void compute() {
try {
solver.solve(maxEval, new MyFunction(a, b, c), min, max);
} catch (LocalException le) {
// Retrieve the x value.
}
}
```
As shown, the exception is local to the user's code and it is guaranteed that Apache Commons Math will not catch it.

Version:
\$Id: UnivariateFunction.java 1364387 2012-07-22 18:14:11Z tn \$

Method Summary
` double` `value(double x)`
Compute the value of the function.

Method Detail

### value

`double value(double x)`
Compute the value of the function.

Parameters:
`x` - Point at which the function value should be computed.
Returns:
the value of the function.
Throws:
`IllegalArgumentException` - when the activated method itself can ascertain that a precondition, specified in the API expressed at the level of the activated method, has been violated. When Commons Math throws an `IllegalArgumentException`, it is usually the consequence of checking the actual parameters passed to the method.