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