NaiveBeckermannLabahnModular

modhpsol.spad line 1 [edit on github]

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

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.

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

main solver routine

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

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

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.

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

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

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