# ModularHermitePadeΒΆ

This package provides modular Hermite-Pade solvers for a few rings. Solver over integers is implemented in this package. Also it contains interfaces to solver over $`Z_p`

$ and solver over ring of integer polynomials.

- check_sol1a: (Vector U32Vector, List U32Vector, (List U32Vector, Integer, Integer) -> Vector U32Vector, Integer, Integer, Integer) -> U32Vector
- one round of modular Monte Carlo check for solutions.

get_variables: (List List Fraction Polynomial Integer, Symbol, Symbol) -> List Symbol

- HP_solve_A: (List List AlgebraicNumber, List Integer, Symbol, NonNegativeInteger, (List U32Vector, Integer, Integer) -> Vector U32Vector, List SparseUnivariatePolynomial AlgebraicNumber -> Union(good, reject, no_solution)) -> Union(Matrix SparseUnivariatePolynomial AlgebraicNumber, Boolean)
- Fake solver over algebraic numbers.

- HP_solve_I: (List List Fraction Integer, List Integer, Symbol, NonNegativeInteger, (List U32Vector, Integer, Integer) -> Vector U32Vector, List SparseUnivariatePolynomial Integer -> Union(good, reject, no_solution)) -> Union(Matrix SparseUnivariatePolynomial Integer, Boolean)
- implements HP_solve over integers.

- HP_solve_M: (List List Integer, List Integer, Symbol, Integer, NonNegativeInteger, (List U32Vector, Integer, Integer) -> Vector U32Vector, List SparseUnivariatePolynomial Integer -> Union(good, reject, no_solution)) -> Union(Matrix SparseUnivariatePolynomial Integer, Boolean)
- implements HP_solve over $
`Z_p`

$ with machine-sized $`p`

$.

- HP_solve_P: (List List Fraction Polynomial Integer, List Integer, Symbol, Symbol, NonNegativeInteger, (List U32Vector, Integer, Integer) -> Vector U32Vector, List SparseUnivariatePolynomial Polynomial Integer -> Union(good, reject, no_solution)) -> Union(Matrix SparseUnivariatePolynomial Polynomial Integer, Boolean)
- implements HP_solve over integer polynomials.

- HP_solve_PA: (List List Fraction Polynomial AlgebraicNumber, List Integer, Symbol, Symbol, NonNegativeInteger, (List U32Vector, Integer, Integer) -> Vector U32Vector, List SparseUnivariatePolynomial Polynomial AlgebraicNumber -> Union(good, reject, no_solution)) -> Union(Matrix SparseUnivariatePolynomial Polynomial AlgebraicNumber, Boolean)
- Fake solver over polynomials having algebraic coefficients.

- LLFI_to_LPA: (List List Fraction Integer, Integer, Integer) -> Union(List U32Vector, failed)
- evaluation routine

- LLFPI_to_LPA: (List List Fraction Polynomial Integer, Integer, List Symbol, List Integer, Integer) -> Union(List U32Vector, failed)
- evaluation routine

- unpack_poly: (List Symbol, SortedExponentVector, PrimitiveArray Integer, Integer, Integer) -> SparseUnivariatePolynomial Polynomial Integer
`unpack_poly(vars, exps, coeffs, lo, hi)`

converts polynomial from packed to sparse representation. Coefficients of packed polynomial are stored in`coeffs`

(`l0`

) up to`coeffs`

(`hi`

) Exponents are stored in corresponding elements of`exps`

.