Puiseux expansion

For a (possibly singular) plane curve through the origin over QQ we have

puiseux_expansionMethod
function puiseux_expansion(
    f::MPolyRingElem{T},
    max_ord::Int=10;
    precision::Int=max_ord
  ) where {T <: QQFieldElem}

Compute the Puiseux expansion of f up to degree max_ord and returns the output in puiseux series rings with the given precision.

Note

For the moment we only support bivariate polynomials over QQ. Puiseux expansion may produce number fields as coefficient rings for the output. As this is not foreseeable a priori, no guarantee can be given about the parent objects for the output.

julia> R, (x, y) = QQ[:x, :y]
(Multivariate polynomial ring in 2 variables over QQ, QQMPolyRingElem[x, y])

julia> f = y^3 + x^2 + x^8
x^8 + x^2 + y^3

julia> h = Oscar.puiseux_expansion(f, 15)
1-element Vector{AbstractAlgebra.Generic.PuiseuxSeriesFieldElem{QQFieldElem}}:
 -x^(2//3) + O(x^(17//3))

julia> all(is_zero(evaluate(f, [gen(parent(h)), h])) for h in h)
true
source