/
sos_polynomial.jl
29 lines (26 loc) · 1012 Bytes
/
sos_polynomial.jl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
function build_gram_matrix(q::Vector,
monos::AbstractVector{<:MP.AbstractMonomial})
return GramMatrix(MultivariateMoments.SymMatrix(q, length(monos)),
monos)
end
function build_moment_matrix(q::Vector,
monos::AbstractVector{<:MP.AbstractMonomial})
return MomentMatrix(MultivariateMoments.SymMatrix(q, length(monos)),
monos)
end
abstract type SOSLikeCone <: PolyJuMP.PolynomialSet end
Base.broadcastable(cone::SOSLikeCone) = Ref(cone)
struct SOSPolynomialSet{DT <: AbstractSemialgebraicSet,
CT <: SOSLikeCone,
BT <: PolyJuMP.AbstractPolynomialBasis,
MT <: MP.AbstractMonomial,
MVT <: AbstractVector{MT},
NPT <: Tuple} <: MOI.AbstractVectorSet
domain::DT
cone::CT
basis::Type{BT}
monomials::MVT
newton_polytope::NPT
mindegree::Int
maxdegree::Int
end