ModularHermitePade

modhpsol.spad line 1035 [edit on github]

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.

HP_solve_A : (List(List(AlgebraicNumber)), List(Integer), Symbol, NonNegativeInteger, Mapping(Vector(U32Vector), List(U32Vector), Integer, Integer), Mapping(Union("good", "reject", "no_solution"), List(SparseUnivariatePolynomial(AlgebraicNumber)))) -> Union(Matrix(SparseUnivariatePolynomial(AlgebraicNumber)), Boolean)

HP_solve_A is a fake solver over algebraic numbers.

HP_solve_I : (List(List(Fraction(Integer))), List(Integer), Symbol, NonNegativeInteger, Mapping(Vector(U32Vector), List(U32Vector), Integer, Integer), Mapping(Union("good", "reject", "no_solution"), List(SparseUnivariatePolynomial(Integer)))) -> Union(Matrix(SparseUnivariatePolynomial(Integer)), Boolean)

HP_solve_I implements HP_solve over integers.

HP_solve_M : (List(List(Integer)), List(Integer), Symbol, Integer, NonNegativeInteger, Mapping(Vector(U32Vector), List(U32Vector), Integer, Integer), Mapping(Union("good", "reject", "no_solution"), List(SparseUnivariatePolynomial(Integer)))) -> Union(Matrix(SparseUnivariatePolynomial(Integer)), Boolean)

HP_solve_M implements HP_solve over $Z_p$ with machine-sized $p$.

HP_solve_P : (List(List(Fraction(Polynomial(Integer)))), List(Integer), Symbol, Symbol, NonNegativeInteger, Mapping(Vector(U32Vector), List(U32Vector), Integer, Integer), Mapping(Union("good", "reject", "no_solution"), List(SparseUnivariatePolynomial(Polynomial(Integer))))) -> Union(Matrix(SparseUnivariatePolynomial(Polynomial(Integer))), Boolean)

HP_solve_P implements HP_solve over integer polynomials.

HP_solve_PA : (List(List(Fraction(Polynomial(AlgebraicNumber)))), List(Integer), Symbol, Symbol, NonNegativeInteger, Mapping(Vector(U32Vector), List(U32Vector), Integer, Integer), Mapping(Union("good", "reject", "no_solution"), List(SparseUnivariatePolynomial(Polynomial(AlgebraicNumber))))) -> Union(Matrix(SparseUnivariatePolynomial(Polynomial(AlgebraicNumber))), Boolean)

HP_solve_PA is a 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

VSUPI_to_VPA : (Vector(SparseUnivariatePolynomial(Integer)), Integer) -> Vector(U32Vector)

evaluation routine

VSUPPI_to_VPA : (Vector(SparseUnivariatePolynomial(Polynomial(Integer))), List(Symbol), List(Integer), Integer) -> Vector(U32Vector)

evaluation routine

check_sol1a : (Vector(U32Vector), List(U32Vector), Mapping(Vector(U32Vector), List(U32Vector), Integer, Integer), Integer, Integer, Integer) -> U32Vector

check_sol1a performs one round of modular Monte Carlo check for solutions.

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

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.