@@ -14,24 +14,52 @@ struct Ideal{S<:Pattern,C<:SumOfSquares.Certificate.AbstractIdealCertificate} <:
1414 certificate:: C
1515end
1616
17- function Ideal (sp:: Variable , basis, cone, maxdegree:: Nothing , newton_polytope)
17+ function Ideal (
18+ sp:: Variable ,
19+ gram_basis,
20+ zero_basis,
21+ cone,
22+ maxdegree:: Nothing ,
23+ newton_polytope,
24+ )
1825 return error (
1926 " `maxdegree` cannot be `nothing` when `sparsity` is `Sparsity.Variable`." ,
2027 )
2128end
22- function Ideal (sp:: Variable , basis, cone, maxdegree:: Integer , newton_polytope)
23- return Ideal (sp, SumOfSquares. Certificate. MaxDegree (cone, basis, maxdegree))
29+ function Ideal (
30+ sp:: Variable ,
31+ gram_basis,
32+ zero_basis,
33+ cone,
34+ maxdegree:: Integer ,
35+ newton_polytope,
36+ )
37+ return Ideal (
38+ sp,
39+ SumOfSquares. Certificate. MaxDegree (
40+ cone,
41+ gram_basis,
42+ zero_basis,
43+ maxdegree,
44+ ),
45+ )
2446end
2547function Ideal (
2648 sp:: Union{Monomial,SignSymmetry} ,
27- basis,
49+ gram_basis,
50+ zero_basis,
2851 cone,
2952 maxdegree,
3053 newton_polytope,
3154)
3255 return Ideal (
3356 sp,
34- SumOfSquares. Certificate. Newton (cone, basis, newton_polytope),
57+ SumOfSquares. Certificate. Newton (
58+ cone,
59+ gram_basis,
60+ zero_basis,
61+ newton_polytope,
62+ ),
3563 )
3664end
3765
@@ -44,7 +72,7 @@ function sparsity(
4472 H, cliques = chordal_csp_graph (basis, SemialgebraicSets. FullSpace ())
4573 return map (cliques) do clique
4674 return SumOfSquares. Certificate. maxdegree_gram_basis (
47- certificate. basis ,
75+ certificate. gram_basis ,
4876 clique,
4977 certificate. maxdegree,
5078 )
7199function SumOfSquares. Certificate. gram_basis (certificate:: Ideal , poly)
72100 return sparsity (poly, certificate. sparsity, certificate. certificate)
73101end
74- function SumOfSquares. Certificate. gram_basis_type (
102+ function MA. promote_operation (
103+ :: typeof (SumOfSquares. Certificate. gram_basis),
75104 :: Type{Ideal{S,C}} ,
76105) where {S,C}
77- return Vector{SumOfSquares. Certificate. gram_basis_type ( C)}
106+ return Vector{MA . promote_operation ( SumOfSquares. Certificate. gram_basis, C)}
78107end
79108function SumOfSquares. Certificate. reduced_polynomial (
80109 certificate:: Ideal ,
@@ -87,14 +116,14 @@ function SumOfSquares.Certificate.reduced_polynomial(
87116 domain,
88117 )
89118end
90- function SumOfSquares. Certificate. reduced_basis (
119+ function SumOfSquares. Certificate. zero_basis (
91120 certificate:: Ideal ,
92121 basis,
93122 domain,
94123 gram_bases,
95124 weights,
96125)
97- return SumOfSquares. Certificate. reduced_basis (
126+ return SumOfSquares. Certificate. zero_basis (
98127 certificate. certificate,
99128 basis,
100129 domain,
@@ -103,15 +132,15 @@ function SumOfSquares.Certificate.reduced_basis(
103132 )
104133end
105134function MA. promote_operation (
106- :: typeof (SumOfSquares. Certificate. reduced_basis ),
135+ :: typeof (SumOfSquares. Certificate. zero_basis ),
107136 :: Type{Ideal{S,C}} ,
108137 :: Type{B} ,
109138 :: Type{D} ,
110139 :: Type{G} ,
111140 :: Type{W} ,
112141) where {S,C,B,D,G,W}
113142 return MA. promote_operation (
114- SumOfSquares. Certificate. reduced_basis ,
143+ SumOfSquares. Certificate. zero_basis ,
115144 C,
116145 B,
117146 D,
129158function SumOfSquares. Certificate. zero_basis (certificate:: Ideal )
130159 return SumOfSquares. Certificate. zero_basis (certificate. certificate)
131160end
132- function SumOfSquares. Certificate. zero_basis_type (
161+
162+ function MA. promote_operation (
163+ b:: typeof (SumOfSquares. Certificate. zero_basis),
133164 :: Type{Ideal{S,C}} ,
134165) where {S,C}
135- return SumOfSquares . Certificate . zero_basis_type ( C)
166+ return MA . promote_operation (b, C)
136167end
0 commit comments