# Package org.hipparchus.analysis.differentiation

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

See: Description

## Package org.hipparchus.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 differentiation order. It is used both as the input and the output type for the UnivariateDifferentiableFunction interface. Any differentiable function should implement this interface.

The UnivariateDerivative1, UnivariateDerivative2 and Gradient classes are more restricted implementation of classes holding the value and the differentials of a function. These classes handle only either one free parameter (i.e. univariate functions) with derivation orders 1 or 2, or several free parameters with derivation order 1. As they arefar less general than DerivativeStructure, they have less overhead and are more efficient in their respective domains.

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

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