Package org.apache.commons.math3.analysis

# Interface RealFieldUnivariateFunction<T extends RealFieldElement<T>>

Type Parameters:
  `T` - the type of the field elements

public interface RealFieldUnivariateFunction<T extends RealFieldElement<T>>
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 SomeFieldType x;

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

         public double getX() {
             return x;
         }
     }

     private static class MyFunction implements FieldUnivariateFunction<SomeFieldType> {
         public SomeFieldType value(SomeFieldType x) {
             SomeFieldType y = hugeFormula(x);
             if (somethingBadHappens) {
               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.

Since:
  3.6
See Also:
  - `UnivariateFunction`

## Method Summary

Modifier and Type
Method
Description
`T`
`value(T x)`
Compute the value of the function.

## Method Details

### value

T value(T 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.