Spine
PolynomialAmoebas.spine
— Function.spine(f::MP.AbstractPolynomial; options...)
Compute the spine of the amoeba $\mathcal{A}(f)$. This algorithm computes first an approximation of $\mathcal{A}(f)$ and from this the spine. Returns a Spine2D.
Example
@polyvar x y
# use all the defaults
spine(x^2 + y^2 + 1)
# Maybe we think that the compleement of the amoeba has some very small components
# and we want to use an explicit domain
spine(x^2 + y^2 + 1, domain=(-5, 5, -5, 5), minimal_component_size=0.001)
Optional arguments:
minimal_component_size=0.01
: A guarantee that in each component of the complement of $\mathcal{A}(f)$ fits a ball with this diameter.
If this does not hold the algorithm can return a wrong result.
domain
: A tuple in the form(xmin, xmax, ymin, ymax)
which defines a section Ω
for which the amoeba $\mathcal{A}(f)$ is computed. This domain has to be such that the intersection Ω ∩ $\mathcal{A}(f)$ still captures the correct topology of $\mathcal{A}(f)$.
grid
: Based onminimal_component_size
anddomain
a grid can be computed automatically.
This can also be overwritten with this option.
membership_options=[MembershipTestOptions](@ref)()
: Options for the membership test.nsamples=1024
: For the computation we numerically evaluate intergrals. This is the number
of sample points used in the computation.
spine(f::MP.AbstractPolynomial, A::Bitmap2D; nsamples=1024)
Compute the spine based on the given amoeba approximation A
.
spine(A::PolygonalAmoeba)
The spine which was used to compute A
.
PolynomialAmoebas.Spine2D
— Type.A Spine2D
represents the spine of a two-dimensional amoeba. This also contains informations about the components of the complement and the approximation used to obtain this spine.
Represents a component of the complement of the amoeba. It contains information about the order of the component, whether it is bounded and one point out of the component.
PolynomialAmoebas.components_complement
— Method.components_complement(S::Spine2D)
Get the ComponentComplement of the spine S
.
PolynomialAmoebas.ronkin_polynomial
— Method.ronkin_polynomial(S::Spine2D)
Get the tropical polynomial which defines this hypersurface.
PolynomialAmoebas.hypersurface
— Method.hypersurface(S::Spine2D)
Get the tropical curve which describes the spine.
PolynomialAmoebas.amoeba_approximation
— Method.amoeba_approximation(S::Spine2D)
Get the approximated amoeba used to compute the spine.