Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

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

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.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2003-2013 The Apache Software Foundation. All Rights Reserved.