# Package org.apache.commons.math3.analysis.differentiation

This package holds the main interfaces and basic building block classes dealing with differentiation.

See: Description

Interface Summary
Interface | Description
--- | ---
MultivariateDifferentiableFunction | Extension of `MultivariateFunction` representing a multivariate differentiable real function.
MultivariateDifferentiableVectorFunction | Extension of `MultivariateVectorFunction` representing a multivariate differentiable vectorial function.
UnivariateDifferentiableFunction | Interface for univariate functions derivatives.
UnivariateDifferentiableMatrixFunction | Extension of `UnivariateMatrixFunction` representing a univariate differentiable matrix function.
UnivariateDifferentiableVectorFunction | Extension of `UnivariateVectorFunction` representing a univariate differentiable vectorial function.
UnivariateFunctionDifferentiator | Interface defining the function differentiation operation.
UnivariateMatrixFunctionDifferentiator | Interface defining the function differentiation operation.
UnivariateVectorFunctionDifferentiator | Interface defining the function differentiation operation.

Class Summary
Class | Description
--- | ---
DerivativeStructure | Class representing both the value and the differentials of a function.
DerivativeStructure.DataTransferObject | Internal class used only for serialization.
DSCompiler | Class holding "compiled" computation rules for derivative structures.
FiniteDifferencesDifferentiator | Univariate functions differentiator using finite differences.
GradientFunction | Class representing the gradient of a multivariate function.
JacobianFunction | Class representing the Jacobian of a multivariate vector function.

## Package org.apache.commons.math3.analysis.differentiation Description

This package holds the main interfaces and basic building block classes dealing with differentiation. The core class is `DerivativeStructure` which holds the value and the differentials of a function. This class handles some arbitrary number of free parameters and arbitrary derivation order. It is used both as the input and the output type for the `UnivariateDifferentiableFunction` interface. Any differentiable function should implement this interface.

The `UnivariateFunctionDifferentiator` interface defines a way to differentiation a simple `UnivariateFunction` and get a `UnivariateDifferentiableFunction`.

Similar interfaces also exist for multivariate functions and for vector or matrix valued functions.