# 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)