PolyUtils module
Hypatia.PolyUtils
— ModuleUtilities for constructing interpolant-basis polynomial sum-of-squares models.
Real polynomial domains
Hypatia.PolyUtils.Domain
— Typeabstract type Domain{T<:Real}
Real domains for polynomial constraints.
Hypatia.PolyUtils.dimension
— Functiondimension(dom)
Dimension of a domain.
Hypatia.PolyUtils.degree
— Functiondegree(dom)
Degree of a polynomial constraints defining a domain.
Hypatia.PolyUtils.sample
— Functionsample(dom, npts)
Sample npts
points from the interior of the domain.
Hypatia.PolyUtils.weights
— Functionweights(dom, pts)
Evaluations of the polynomial domain constraints at the points.
Hypatia.PolyUtils.EllipsoidDomain
— Typemutable struct EllipsoidDomain{T<:Real} <: Hypatia.PolyUtils.Domain{T<:Real}
Hyperellipse $(x-c)' Q (x-c) \leq 1$ with center c::Vector{T}
and symmetric positive definite scaling/rotation matrix Q::AbstractMatrix{T}
.
Hypatia.PolyUtils.BoxDomain
— Typemutable struct BoxDomain{T<:Real} <: Hypatia.PolyUtils.Domain{T<:Real}
Hyperbox $x ∈ [l, u]$ with lower bounds l::Vector{T}
and upper bounds u::Vector{T}
.
Hypatia.PolyUtils.BallDomain
— Typemutable struct BallDomain{T<:Real} <: Hypatia.PolyUtils.Domain{T<:Real}
Euclidean hyperball $\lVert (x-c) \rVert_2 \leq r$ with center c::Vector{T}
and positive radius r::T
.
Hypatia.PolyUtils.FreeDomain
— Typemutable struct FreeDomain{T<:Real} <: Hypatia.PolyUtils.Domain{T<:Real}
Real vectors $x ∈ ℝⁿ$ of dimension n::Int
.
Interpolation
Hypatia.PolyUtils.interpolate
— Functioninterpolate(
dom,
d;
calc_V,
get_quadr,
sample,
sample_factor
)
Compute interpolation data for a real weighted sum-of-squares conic constraint on a domain.
interpolate(
R,
halfdeg,
n,
gs,
g_halfdegs;
sample_factor,
use_qr
)
Compute interpolation data for a complex weighted sum-of-squares conic constraint on a domain.