org.apache.commons.math3.analysis
Class FunctionUtils

java.lang.Object
  extended by org.apache.commons.math3.analysis.FunctionUtils

public class FunctionUtils
extends Object

Utilities for manipulating function objects.

Since:
3.0
Version:
$Id$

Constructor Summary
private FunctionUtils()
          Class only contains static methods.
 
Method Summary
static DifferentiableUnivariateFunction add(DifferentiableUnivariateFunction... f)
          Add functions.
static UnivariateFunction add(UnivariateFunction... f)
          Add 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)
          Compose functions.
static UnivariateFunction compose(UnivariateFunction... f)
          Compose functions.
static UnivariateFunction fix1stArgument(BivariateFunction f, double fixed)
          Create a unary function by fixing the first argument of a binary function.
static UnivariateFunction fix2ndArgument(BivariateFunction f, double fixed)
          Create a unary function by fixing the second argument of a binary function.
static DifferentiableUnivariateFunction multiply(DifferentiableUnivariateFunction... f)
          Multiply functions.
static UnivariateFunction multiply(UnivariateFunction... f)
          Multiply functions.
static double[] sample(UnivariateFunction f, double min, double max, int n)
           Samples the specified univariate real function on the specified interval.
 
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)
Compose functions. The functions in the argument list are composed sequentially, in the order given. For example, compose(f1,f2,f3) acts like f1(f2(f3(x))).

Parameters:
f - List of functions.
Returns:
the composite function.

compose

public static DifferentiableUnivariateFunction compose(DifferentiableUnivariateFunction... f)
Compose functions. The functions in the argument list are composed sequentially, in the order given. 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)
Add functions.

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

add

public static DifferentiableUnivariateFunction add(DifferentiableUnivariateFunction... f)
Add functions.

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

multiply

public static UnivariateFunction multiply(UnivariateFunction... f)
Multiply functions.

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

multiply

public static DifferentiableUnivariateFunction multiply(DifferentiableUnivariateFunction... f)
Multiply 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)
Create 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)
Create 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 - the function to be sampled
min - the (inclusive) lower bound of the interval
max - the (exclusive) upper bound of the interval
n - the 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


Copyright (c) 2003-2013 Apache Software Foundation