# NaiveBeckermannLabahnModular¶

This package solves (multipoint) Hermite-Pade interpolation problem over $Z_p$, where $p$ is machine sized prime. We use quadratic algorithm from 94 Beckermann and Labahn paper (with modification to handle multipoint case).

naiveBeckermannLabahn0: (Vector U32Vector, Vector U32Vector, Vector Integer, NonNegativeInteger, Integer, Integer -> Integer, (U32Vector, Integer, Integer) -> Void, (U32Vector, Integer, Integer) -> Void) -> Void

main solver routine

naiveBeckermannLabahn1: (Vector SparseUnivariatePolynomial Integer, Vector Integer, NonNegativeInteger, Integer, Integer -> Integer, (U32Vector, Integer, Integer) -> Void, (U32Vector, Integer, Integer) -> Void) -> List Any

naiveBeckermannLabahn1: (Vector U32Vector, Vector Integer, NonNegativeInteger, Integer, Integer -> Integer, (U32Vector, Integer, Integer) -> Void, (U32Vector, Integer, Integer) -> Void) -> List Any

naiveBeckermannLabahn: (Vector SparseUnivariatePolynomial Integer, Vector Integer, NonNegativeInteger, Integer) -> List Any

naiveBeckermannLabahn(f, degs, sigma, p) solves modulo $p$ Hermite-Pade interpolation problem of order $sigma$. $degs$ specifies degree bounds for solution. The first element of result contains sigma-basis. The second gives defects of elements of sigma-basis. The third one contains residuals -- we stop updating solution if this would violate degree bounds, so residual is zero for elements of sigma-basis which are within bounds, but non-zero otherwise.

naiveBeckermannLabahn: (Vector U32Vector, Vector Integer, NonNegativeInteger, Integer) -> List Any

naiveBeckermannLabahn(f, degs, sigma, p) solves modulo $p$ Hermite-Pade interpolation problem of order $sigma$. $degs$ specifies degree bounds for solution. The first element of result contains sigma-basis. The second gives defects of elements of sigma-basis. The third one contains residuals -- we stop updating solution if this would violate degree bounds, so residual is zero for elements of sigma-basis which are within bounds, but non-zero otherwise.

naiveBeckermannLabahnMultipoint: (Vector SparseUnivariatePolynomial Integer, Vector Integer, U32Vector, Integer) -> List Any

naiveBeckermannLabahnMultipoint(f, degs, sigma, p) solves modulo $p$ multipoint Hermite-Pade interpolation problem of order $sigma$. $degs$ specifies degree bounds for solution. The first element of result contains sigma-basis. The second gives defects of elements of sigma-basis. The third one contains residuals -- we stop updating solution if this would violate degree bounds, so residual is zero for elements of sigma-basis which are within bounds, but non-zero otherwise.

naiveBeckermannLabahnMultipoint: (Vector U32Vector, Vector Integer, U32Vector, Integer) -> List Any

naiveBeckermannLabahnMultipoint(f, degs, sigma, p) solves modulo $p$ multipoint Hermite-Pade interpolation problem of order $sigma$. $degs$ specifies degree bounds for solution. The first element of result contains sigma-basis. The second gives defects of elements of sigma-basis. The third one contains residuals -- we stop updating solution if this would violate degree bounds, so residual is zero for elements of sigma-basis which are within bounds, but non-zero otherwise.

reduceBasis0: (TwoDimensionalArray U32Vector, Vector Integer, Vector Integer, Integer) -> Record(basis: TwoDimensionalArray U32Vector, defects: Vector Integer, cinds: Vector Integer)

reduceBasis: (Vector U32Vector, Vector Integer, Vector Integer, Integer) -> Record(basis: TwoDimensionalArray U32Vector, defects: Vector Integer, cinds: Vector Integer)

Skips elements of sigma basis which does not satisfy degree bounds and puts sigma-basis into canonical form.