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

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

- - ### Method Detail

    - #### 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.

Copyright © 2003–2016 The Apache Software Foundation. All rights reserved.