## Types in MathNet.Numerics

Type Interpolate

Namespace MathNet.Numerics

Interpolation Factory.

### Public Static Functions

#### IInterpolationCommon(IEnumerable<double> points, IEnumerable<double> values)

Creates an interpolation based on arbitrary points.
if your data is already sorted in arrays, consider to use MathNet.Numerics.Interpolation.Barycentric.InterpolateRationalFloaterHormannSorted instead, which is more efficient.
##### Parameters
###### `IEnumerable<double>` points

The sample points t.

###### `IEnumerable<double>` values

The sample point values x(t).

##### Return
###### `IInterpolation`

An interpolation scheme optimized for the given sample points and values, which can then be used to compute interpolations and extrapolations on arbitrary points.

#### IInterpolationCubicSpline(IEnumerable<double> points, IEnumerable<double> values)

Create an piecewise natural cubic spline interpolation based on arbitrary points, with zero secondary derivatives at the boundaries.
if your data is already sorted in arrays, consider to use MathNet.Numerics.Interpolation.CubicSpline.InterpolateNaturalSorted instead, which is more efficient.
##### Parameters
###### `IEnumerable<double>` points

The sample points t.

###### `IEnumerable<double>` values

The sample point values x(t).

##### Return
###### `IInterpolation`

An interpolation scheme optimized for the given sample points and values, which can then be used to compute interpolations and extrapolations on arbitrary points.

#### IInterpolationCubicSplineMonotone(IEnumerable<double> points, IEnumerable<double> values)

Create a piecewise cubic monotone spline interpolation based on arbitrary points. This is a shape-preserving spline with continuous first derivative.
if your data is already sorted in arrays, consider to use MathNet.Numerics.Interpolation.CubicSpline.InterpolatePchipSorted instead, which is more efficient.
##### Parameters
###### `IEnumerable<double>` points

The sample points t.

###### `IEnumerable<double>` values

The sample point values x(t).

##### Return
###### `IInterpolation`

An interpolation scheme optimized for the given sample points and values, which can then be used to compute interpolations and extrapolations on arbitrary points.

#### IInterpolationCubicSplineRobust(IEnumerable<double> points, IEnumerable<double> values)

Create a piecewise cubic Akima spline interpolation based on arbitrary points. Akima splines are robust to outliers.
if your data is already sorted in arrays, consider to use MathNet.Numerics.Interpolation.CubicSpline.InterpolateAkimaSorted instead, which is more efficient.
##### Parameters
###### `IEnumerable<double>` points

The sample points t.

###### `IEnumerable<double>` values

The sample point values x(t).

##### Return
###### `IInterpolation`

An interpolation scheme optimized for the given sample points and values, which can then be used to compute interpolations and extrapolations on arbitrary points.

#### IInterpolationCubicSplineWithDerivatives(IEnumerable<double> points, IEnumerable<double> values, IEnumerable<double> firstDerivatives)

Create a piecewise cubic Hermite spline interpolation based on arbitrary points and their slopes/first derivative.
if your data is already sorted in arrays, consider to use MathNet.Numerics.Interpolation.CubicSpline.InterpolateHermiteSorted instead, which is more efficient.
##### Parameters
###### `IEnumerable<double>` points

The sample points t.

###### `IEnumerable<double>` values

The sample point values x(t).

###### `IEnumerable<double>` firstDerivatives

The slope at the sample points. Optimized for arrays.

##### Return
###### `IInterpolation`

An interpolation scheme optimized for the given sample points and values, which can then be used to compute interpolations and extrapolations on arbitrary points.

#### IInterpolationLinear(IEnumerable<double> points, IEnumerable<double> values)

Create a piecewise linear interpolation based on arbitrary points.
if your data is already sorted in arrays, consider to use MathNet.Numerics.Interpolation.LinearSpline.InterpolateSorted instead, which is more efficient.
##### Parameters
###### `IEnumerable<double>` points

The sample points t.

###### `IEnumerable<double>` values

The sample point values x(t).

##### Return
###### `IInterpolation`

An interpolation scheme optimized for the given sample points and values, which can then be used to compute interpolations and extrapolations on arbitrary points.

#### IInterpolationLogLinear(IEnumerable<double> points, IEnumerable<double> values)

Create piecewise log-linear interpolation based on arbitrary points.
if your data is already sorted in arrays, consider to use MathNet.Numerics.Interpolation.LogLinear.InterpolateSorted instead, which is more efficient.
##### Parameters
###### `IEnumerable<double>` points

The sample points t.

###### `IEnumerable<double>` values

The sample point values x(t).

##### Return
###### `IInterpolation`

An interpolation scheme optimized for the given sample points and values, which can then be used to compute interpolations and extrapolations on arbitrary points.

#### IInterpolationPolynomial(IEnumerable<double> points, IEnumerable<double> values)

Create a Neville polynomial interpolation based on arbitrary points. If the points happen to be equidistant, consider to use the much more robust PolynomialEquidistant instead. Otherwise, consider whether RationalWithoutPoles would not be a more robust alternative.
if your data is already sorted in arrays, consider to use MathNet.Numerics.Interpolation.NevillePolynomialInterpolation.InterpolateSorted instead, which is more efficient.
##### Parameters
###### `IEnumerable<double>` points

The sample points t.

###### `IEnumerable<double>` values

The sample point values x(t).

##### Return
###### `IInterpolation`

An interpolation scheme optimized for the given sample points and values, which can then be used to compute interpolations and extrapolations on arbitrary points.

#### IInterpolationPolynomialEquidistant(IEnumerable<double> points, IEnumerable<double> values)

Create a barycentric polynomial interpolation where the given sample points are equidistant.
if your data is already sorted in arrays, consider to use MathNet.Numerics.Interpolation.Barycentric.InterpolatePolynomialEquidistantSorted instead, which is more efficient.
##### Parameters
###### `IEnumerable<double>` points

The sample points t, must be equidistant.

###### `IEnumerable<double>` values

The sample point values x(t).

##### Return
###### `IInterpolation`

An interpolation scheme optimized for the given sample points and values, which can then be used to compute interpolations and extrapolations on arbitrary points.

#### IInterpolationRationalWithoutPoles(IEnumerable<double> points, IEnumerable<double> values)

Create a Floater-Hormann rational pole-free interpolation based on arbitrary points.
if your data is already sorted in arrays, consider to use MathNet.Numerics.Interpolation.Barycentric.InterpolateRationalFloaterHormannSorted instead, which is more efficient.
##### Parameters
###### `IEnumerable<double>` points

The sample points t.

###### `IEnumerable<double>` values

The sample point values x(t).

##### Return
###### `IInterpolation`

An interpolation scheme optimized for the given sample points and values, which can then be used to compute interpolations and extrapolations on arbitrary points.

#### IInterpolationRationalWithPoles(IEnumerable<double> points, IEnumerable<double> values)

Create a Bulirsch Stoer rational interpolation based on arbitrary points.
if your data is already sorted in arrays, consider to use MathNet.Numerics.Interpolation.BulirschStoerRationalInterpolation.InterpolateSorted instead, which is more efficient.
##### Parameters
###### `IEnumerable<double>` points

The sample points t.

###### `IEnumerable<double>` values

The sample point values x(t).

##### Return
###### `IInterpolation`

An interpolation scheme optimized for the given sample points and values, which can then be used to compute interpolations and extrapolations on arbitrary points.

#### IInterpolationStep(IEnumerable<double> points, IEnumerable<double> values)

Create a step-interpolation based on arbitrary points.
if your data is already sorted in arrays, consider to use MathNet.Numerics.Interpolation.StepInterpolation.InterpolateSorted instead, which is more efficient.
##### Parameters
###### `IEnumerable<double>` points

The sample points t.

###### `IEnumerable<double>` values

The sample point values x(t).

##### Return
###### `IInterpolation`

An interpolation scheme optimized for the given sample points and values, which can then be used to compute interpolations and extrapolations on arbitrary points.