org.apache.commons.math3.analysis

## Class FunctionUtils

- java.lang.Object
- - org.apache.commons.math3.analysis.FunctionUtils

-     public class FunctionUtils
      extends java.lang.Object

  Utilities for manipulating function objects.
  Since:
    3.0
  Version:
    $Id: FunctionUtils.java 1401837 2012-10-24 19:39:45Z luc $

- - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `private` | `FunctionUtils()` Class only contains static methods.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `static DifferentiableUnivariateFunction` | `add(DifferentiableUnivariateFunction... f)` Deprecated. as of 3.1 replaced by `add(UnivariateDifferentiableFunction...)`
    `static UnivariateDifferentiableFunction` | `add(UnivariateDifferentiableFunction... f)` Adds functions.
    `static UnivariateFunction` | `add(UnivariateFunction... f)` Adds functions.
    `static MultivariateFunction` | `collector(BivariateFunction combiner, double initialValue)` Returns a MultivariateFunction h(x[]) defined by
    `static MultivariateFunction` | `collector(BivariateFunction combiner, UnivariateFunction f, double initialValue)` Returns a MultivariateFunction h(x[]) defined by
    `static UnivariateFunction` | `combine(BivariateFunction combiner, UnivariateFunction f, UnivariateFunction g)` Returns the univariate function `h(x) = combiner(f(x), g(x))`.
    `static DifferentiableUnivariateFunction` | `compose(DifferentiableUnivariateFunction... f)` Deprecated. as of 3.1 replaced by `compose(UnivariateDifferentiableFunction...)`
    `static UnivariateDifferentiableFunction` | `compose(UnivariateDifferentiableFunction... f)` Composes functions.
    `static UnivariateFunction` | `compose(UnivariateFunction... f)` Composes functions.
    `static UnivariateFunction` | `fix1stArgument(BivariateFunction f, double fixed)` Creates a unary function by fixing the first argument of a binary function.
    `static UnivariateFunction` | `fix2ndArgument(BivariateFunction f, double fixed)` Creates a unary function by fixing the second argument of a binary function.
    `static DifferentiableUnivariateFunction` | `multiply(DifferentiableUnivariateFunction... f)` Deprecated. as of 3.1 replaced by `multiply(UnivariateDifferentiableFunction...)`
    `static UnivariateDifferentiableFunction` | `multiply(UnivariateDifferentiableFunction... f)` Multiplies functions.
    `static UnivariateFunction` | `multiply(UnivariateFunction... f)` Multiplies functions.
    `static double[]` | `sample(UnivariateFunction f, double min, double max, int n)` Samples the specified univariate real function on the specified interval.
    `static DifferentiableMultivariateFunction` | `toDifferentiableMultivariateFunction(MultivariateDifferentiableFunction f)` Deprecated. this conversion method is temporary in version 3.1, as the `DifferentiableMultivariateFunction` interface itself is deprecated
    `static DifferentiableMultivariateVectorFunction` | `toDifferentiableMultivariateVectorFunction(MultivariateDifferentiableVectorFunction f)` Deprecated. this conversion method is temporary in version 3.1, as the `DifferentiableMultivariateVectorFunction` interface itself is deprecated
    `static DifferentiableUnivariateFunction` | `toDifferentiableUnivariateFunction(UnivariateDifferentiableFunction f)` Deprecated. this conversion method is temporary in version 3.1, as the `DifferentiableUnivariateFunction` interface itself is deprecated
    `static MultivariateDifferentiableFunction` | `toMultivariateDifferentiableFunction(DifferentiableMultivariateFunction f)` Deprecated. this conversion method is temporary in version 3.1, as the `DifferentiableMultivariateFunction` interface itself is deprecated
    `static MultivariateDifferentiableVectorFunction` | `toMultivariateDifferentiableVectorFunction(DifferentiableMultivariateVectorFunction f)` Deprecated. this conversion method is temporary in version 3.1, as the `DifferentiableMultivariateFunction` interface itself is deprecated
    `static UnivariateDifferentiableFunction` | `toUnivariateDifferential(DifferentiableUnivariateFunction f)` Deprecated. this conversion method is temporary in version 3.1, as the `DifferentiableUnivariateFunction` interface itself is deprecated

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### FunctionUtils

          private FunctionUtils()

      Class only contains static methods.

  - ### Method Detail

    - #### compose

          public static UnivariateFunction compose(UnivariateFunction... f)

      Composes functions.
      The functions in the argument list are composed sequentially, in the given order. For example, compose(f1,f2,f3) acts like f1(f2(f3(x))).
      Parameters:
        `f` - List of functions.
      Returns:
        the composite function.

    - #### compose

          public static UnivariateDifferentiableFunction compose(UnivariateDifferentiableFunction... f)

      Composes functions.
      The functions in the argument list are composed sequentially, in the given order. For example, compose(f1,f2,f3) acts like f1(f2(f3(x))).
      Parameters:
        `f` - List of functions.
      Returns:
        the composite function.
      Since:
        3.1

    - #### compose

          public static DifferentiableUnivariateFunction compose(DifferentiableUnivariateFunction... f)

      Deprecated. as of 3.1 replaced by `compose(UnivariateDifferentiableFunction...)`
      Composes functions.
      The functions in the argument list are composed sequentially, in the given order. For example, compose(f1,f2,f3) acts like f1(f2(f3(x))).
      Parameters:
        `f` - List of functions.
      Returns:
        the composite function.

    - #### add

          public static UnivariateFunction add(UnivariateFunction... f)

      Adds functions.
      Parameters:
        `f` - List of functions.
      Returns:
        a function that computes the sum of the functions.

    - #### add

          public static UnivariateDifferentiableFunction add(UnivariateDifferentiableFunction... f)

      Adds functions.
      Parameters:
        `f` - List of functions.
      Returns:
        a function that computes the sum of the functions.
      Since:
        3.1

    - #### add

          @Deprecated
          public static DifferentiableUnivariateFunction add(DifferentiableUnivariateFunction... f)

      Deprecated. as of 3.1 replaced by `add(UnivariateDifferentiableFunction...)`
      Adds functions.
      Parameters:
        `f` - List of functions.
      Returns:
        a function that computes the sum of the functions.

    - #### multiply

          public static UnivariateFunction multiply(UnivariateFunction... f)

      Multiplies functions.
      Parameters:
        `f` - List of functions.
      Returns:
        a function that computes the product of the functions.

    - #### multiply

          public static UnivariateDifferentiableFunction multiply(UnivariateDifferentiableFunction... f)

      Multiplies functions.
      Parameters:
        `f` - List of functions.
      Returns:
        a function that computes the product of the functions.
      Since:
        3.1

    - #### multiply

          public static DifferentiableUnivariateFunction multiply(DifferentiableUnivariateFunction... f)

      Deprecated. as of 3.1 replaced by `multiply(UnivariateDifferentiableFunction...)`
      Multiplies functions.
      Parameters:
        `f` - List of functions.
      Returns:
        a function that computes the product of the functions.

    - #### combine

          public static UnivariateFunction combine(BivariateFunction combiner,
                                   UnivariateFunction f,
                                   UnivariateFunction g)

      Returns the univariate function
      `h(x) = combiner(f(x), g(x))`.
      Parameters:
        `combiner` - Combiner function.
        `f` - Function.
        `g` - Function.
      Returns:
        the composite function.

    - #### collector

          public static MultivariateFunction collector(BivariateFunction combiner,
                                       UnivariateFunction f,
                                       double initialValue)

      Returns a MultivariateFunction h(x[]) defined by

           h(x[]) = combiner(...combiner(combiner(initialValue,f(x[0])),f(x[1]))...),f(x[x.length-1]))

      Parameters:
        `combiner` - Combiner function.
        `f` - Function.
        `initialValue` - Initial value.
      Returns:
        a collector function.

    - #### collector

          public static MultivariateFunction collector(BivariateFunction combiner,
                                       double initialValue)

      Returns a MultivariateFunction h(x[]) defined by

           h(x[]) = combiner(...combiner(combiner(initialValue,x[0]),x[1])...),x[x.length-1])

      Parameters:
        `combiner` - Combiner function.
        `initialValue` - Initial value.
      Returns:
        a collector function.

    - #### fix1stArgument

          public static UnivariateFunction fix1stArgument(BivariateFunction f,
                                          double fixed)

      Creates a unary function by fixing the first argument of a binary function.
      Parameters:
        `f` - Binary function.
        `fixed` - Value to which the first argument of `f` is set.
      Returns:
        the unary function h(x) = f(fixed, x)

    - #### fix2ndArgument

          public static UnivariateFunction fix2ndArgument(BivariateFunction f,
                                          double fixed)

      Creates a unary function by fixing the second argument of a binary function.
      Parameters:
        `f` - Binary function.
        `fixed` - Value to which the second argument of `f` is set.
      Returns:
        the unary function h(x) = f(x, fixed)

    - #### sample

          public static double[] sample(UnivariateFunction f,
                        double min,
                        double max,
                        int n)

      Samples the specified univariate real function on the specified interval.
      The interval is divided equally into `n` sections and sample points are taken from `min` to `max - (max - min) / n`; therefore `f` is not sampled at the upper bound `max`.
      Parameters:
        `f` - Function to be sampled
        `min` - Lower bound of the interval (included).
        `max` - Upper bound of the interval (excluded).
        `n` - Number of sample points.
      Returns:
        the array of samples.
      Throws:
        `NumberIsTooLargeException` - if the lower bound `min` is greater than, or equal to the upper bound `max`.
        `NotStrictlyPositiveException` - if the number of sample points `n` is negative.

    - #### toDifferentiableUnivariateFunction

          @Deprecated
          public static DifferentiableUnivariateFunction toDifferentiableUnivariateFunction(UnivariateDifferentiableFunction f)

      Deprecated. this conversion method is temporary in version 3.1, as the `DifferentiableUnivariateFunction` interface itself is deprecated
      Convert a `UnivariateDifferentiableFunction` into a `DifferentiableUnivariateFunction`.
      Parameters:
        `f` - function to convert
      Returns:
        converted function

    - #### toUnivariateDifferential

          @Deprecated
          public static UnivariateDifferentiableFunction toUnivariateDifferential(DifferentiableUnivariateFunction f)

      Deprecated. this conversion method is temporary in version 3.1, as the `DifferentiableUnivariateFunction` interface itself is deprecated
      Convert a `DifferentiableUnivariateFunction` into a `UnivariateDifferentiableFunction`.

      Note that the converted function is able to handle `DerivativeStructure` up to order one. If the function is called with higher order, a `NumberIsTooLargeException` will be thrown.

      Parameters:
        `f` - function to convert
      Returns:
        converted function

    - #### toDifferentiableMultivariateFunction

          @Deprecated
          public static DifferentiableMultivariateFunction toDifferentiableMultivariateFunction(MultivariateDifferentiableFunction f)

      Deprecated. this conversion method is temporary in version 3.1, as the `DifferentiableMultivariateFunction` interface itself is deprecated
      Convert a `MultivariateDifferentiableFunction` into a `DifferentiableMultivariateFunction`.
      Parameters:
        `f` - function to convert
      Returns:
        converted function

    - #### toMultivariateDifferentiableFunction

          @Deprecated
          public static MultivariateDifferentiableFunction toMultivariateDifferentiableFunction(DifferentiableMultivariateFunction f)

      Deprecated. this conversion method is temporary in version 3.1, as the `DifferentiableMultivariateFunction` interface itself is deprecated
      Convert a `DifferentiableMultivariateFunction` into a `MultivariateDifferentiableFunction`.

      Note that the converted function is able to handle `DerivativeStructure` elements that all have the same number of free parameters and order, and with order at most 1. If the function is called with inconsistent numbers of free parameters or higher order, a `DimensionMismatchException` or a `NumberIsTooLargeException` will be thrown.

      Parameters:
        `f` - function to convert
      Returns:
        converted function

    - #### toDifferentiableMultivariateVectorFunction

          @Deprecated
          public static DifferentiableMultivariateVectorFunction toDifferentiableMultivariateVectorFunction(MultivariateDifferentiableVectorFunction f)

      Deprecated. this conversion method is temporary in version 3.1, as the `DifferentiableMultivariateVectorFunction` interface itself is deprecated
      Convert a `MultivariateDifferentiableVectorFunction` into a `DifferentiableMultivariateVectorFunction`.
      Parameters:
        `f` - function to convert
      Returns:
        converted function

    - #### toMultivariateDifferentiableVectorFunction

          @Deprecated
          public static MultivariateDifferentiableVectorFunction toMultivariateDifferentiableVectorFunction(DifferentiableMultivariateVectorFunction f)

      Deprecated. this conversion method is temporary in version 3.1, as the `DifferentiableMultivariateFunction` interface itself is deprecated
      Convert a `DifferentiableMultivariateVectorFunction` into a `MultivariateDifferentiableVectorFunction`.

      Note that the converted function is able to handle `DerivativeStructure` elements that all have the same number of free parameters and order, and with order at most 1. If the function is called with inconsistent numbers of free parameters or higher order, a `DimensionMismatchException` or a `NumberIsTooLargeException` will be thrown.

      Parameters:
        `f` - function to convert
      Returns:
        converted function

Copyright (c) 2003-2013 Apache Software Foundation