Package cc.redberry.rings.poly.univar
Class UnivariateInterpolation
java.lang.Object
cc.redberry.rings.poly.univar.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 interpolationstatic 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 atpoints[i]
are exactlyvalues[i]
.static <E> UnivariatePolynomial<E>
interpolateLagrange(Ring<E> ring, E[] points, E[] values)
Constructs an interpolating polynomial which values atpoints[i]
are exactlyvalues[i]
.static UnivariatePolynomialZp64
interpolateNewton(long modulus, long[] points, long[] values)
Constructs an interpolating polynomial which values atpoints[i]
are exactlyvalues[i]
.static UnivariatePolynomialZp64
interpolateNewton(IntegersZp64 ring, long[] points, long[] values)
Constructs an interpolating polynomial which values atpoints[i]
are exactlyvalues[i]
.static <E> UnivariatePolynomial<E>
interpolateNewton(Ring<E> ring, E[] points, E[] values)
Constructs an interpolating polynomial which values atpoints[i]
are exactlyvalues[i]
.
-
Method Details
-
interpolateLagrange
public static UnivariatePolynomialZp64 interpolateLagrange(long modulus, long[] points, long[] values)Constructs an interpolating polynomial which values atpoints[i]
are exactlyvalues[i]
. This method uses Lagrange's interpolation formula.- Parameters:
modulus
- the moduluspoints
- evaluation pointsvalues
- 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 atpoints[i]
are exactlyvalues[i]
. This method uses Lagrange's interpolation formula.- Parameters:
ring
- the ringpoints
- evaluation pointsvalues
- corresponding polynomial values- Returns:
- the interpolating polynomial
-
interpolateNewton
public static UnivariatePolynomialZp64 interpolateNewton(long modulus, long[] points, long[] values)Constructs an interpolating polynomial which values atpoints[i]
are exactlyvalues[i]
. This method uses Newton's mixed radix iterations.- Parameters:
modulus
- the moduluspoints
- evaluation pointsvalues
- corresponding polynomial values- Returns:
- the interpolating polynomial
-
interpolateNewton
public static UnivariatePolynomialZp64 interpolateNewton(IntegersZp64 ring, long[] points, long[] values)Constructs an interpolating polynomial which values atpoints[i]
are exactlyvalues[i]
. This method uses Newton's mixed radix iterations.- Parameters:
ring
- the ringpoints
- evaluation pointsvalues
- corresponding polynomial values- Returns:
- the interpolating polynomial
-
interpolateNewton
Constructs an interpolating polynomial which values atpoints[i]
are exactlyvalues[i]
. This method uses Newton's mixed radix iterations.- Parameters:
ring
- the ringpoints
- evaluation pointsvalues
- corresponding polynomial values- Returns:
- the interpolating polynomial
-