## Class UnivariateInterpolation

• ```public final class UnivariateInterpolation
extends Object```
Univariate polynomial interpolation.
Since:
1.0
• ### Nested Class Summary

Nested Classes
Modifier and Type Class Description
`static class ` `UnivariateInterpolation.Interpolation<E>`
Updatable Newton interpolation
`static class ` `UnivariateInterpolation.InterpolationZp64`
Updatable Newton interpolation
• ### Method Summary

Modifier and Type Method Description
`static UnivariatePolynomialZp64` ```interpolateLagrange​(long modulus, long[] points, long[] values)```
Constructs an interpolating polynomial which values at `points[i]` are exactly `values[i]`.
`static <E> UnivariatePolynomial<E>` ```interpolateLagrange​(Ring<E> ring, E[] points, E[] values)```
Constructs an interpolating polynomial which values at `points[i]` are exactly `values[i]`.
`static UnivariatePolynomialZp64` ```interpolateNewton​(long modulus, long[] points, long[] values)```
Constructs an interpolating polynomial which values at `points[i]` are exactly `values[i]`.
`static UnivariatePolynomialZp64` ```interpolateNewton​(IntegersZp64 ring, long[] points, long[] values)```
Constructs an interpolating polynomial which values at `points[i]` are exactly `values[i]`.
`static <E> UnivariatePolynomial<E>` ```interpolateNewton​(Ring<E> ring, E[] points, E[] values)```
Constructs an interpolating polynomial which values at `points[i]` are exactly `values[i]`.
• ### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
• ### Method Detail

• #### interpolateLagrange

```public static UnivariatePolynomialZp64 interpolateLagrange​(long modulus,
long[] points,
long[] values)```
Constructs an interpolating polynomial which values at `points[i]` are exactly `values[i]`. This method uses Lagrange's interpolation formula.
Parameters:
`modulus` - the modulus
`points` - evaluation points
`values` - corresponding polynomial values
Returns:
the interpolating polynomial
• #### interpolateLagrange

```public static <E> UnivariatePolynomial<E> interpolateLagrange​(Ring<E> ring,
E[] points,
E[] values)```
Constructs an interpolating polynomial which values at `points[i]` are exactly `values[i]`. This method uses Lagrange's interpolation formula.
Parameters:
`ring` - the ring
`points` - evaluation points
`values` - corresponding polynomial values
Returns:
the interpolating polynomial
• #### interpolateNewton

```public static UnivariatePolynomialZp64 interpolateNewton​(long modulus,
long[] points,
long[] values)```
Constructs an interpolating polynomial which values at `points[i]` are exactly `values[i]`. This method uses Newton's mixed radix iterations.
Parameters:
`modulus` - the modulus
`points` - evaluation points
`values` - corresponding polynomial values
Returns:
the interpolating polynomial
• #### interpolateNewton

```public static UnivariatePolynomialZp64 interpolateNewton​(IntegersZp64 ring,
long[] points,
long[] values)```
Constructs an interpolating polynomial which values at `points[i]` are exactly `values[i]`. This method uses Newton's mixed radix iterations.
Parameters:
`ring` - the ring
`points` - evaluation points
`values` - corresponding polynomial values
Returns:
the interpolating polynomial
• #### interpolateNewton

```public static <E> UnivariatePolynomial<E> interpolateNewton​(Ring<E> ring,
E[] points,
E[] values)```
Constructs an interpolating polynomial which values at `points[i]` are exactly `values[i]`. This method uses Newton's mixed radix iterations.
Parameters:
`ring` - the ring
`points` - evaluation points
`values` - corresponding polynomial values
Returns:
the interpolating polynomial