@@ -279,56 +279,57 @@ function JuMP.moi_set(
279279end 
280280
281281function  PolyJuMP. bridges (
282-     :: Type{<:MOI.AbstractVectorFunction} ,
282+     F :: Type{<:MOI.AbstractVectorFunction} ,
283283    :: Type{EmptyCone} ,
284284)
285-     return  [(Bridges. Constraint. EmptyBridge, Float64 )]
285+     return  Tuple{Type,Type} [(Bridges. Constraint. EmptyBridge, PolyJuMP . coefficient_type_or_float (F) )]
286286end 
287287
288288function  PolyJuMP. bridges (
289-     :: Type{<:MOI.AbstractVectorFunction} ,
289+     F :: Type{<:MOI.AbstractVectorFunction} ,
290290    :: Type{PositiveSemidefinite2x2ConeTriangle} ,
291291)
292-     return  [(Bridges. Constraint. PositiveSemidefinite2x2Bridge, Float64 )]
292+     return  Tuple{Type,Type} [(Bridges. Constraint. PositiveSemidefinite2x2Bridge, PolyJuMP . coefficient_type_or_float (F) )]
293293end 
294294
295295function  PolyJuMP. bridges (
296-     :: Type{<:MOI.AbstractVectorFunction} ,
296+     F :: Type{<:MOI.AbstractVectorFunction} ,
297297    :: Type{<:DiagonallyDominantConeTriangle} ,
298298)
299-     return  [(Bridges. Constraint. DiagonallyDominantBridge, Float64 )]
299+     return  Tuple{Type,Type} [(Bridges. Constraint. DiagonallyDominantBridge, PolyJuMP . coefficient_type_or_float (F) )]
300300end 
301301
302302function  PolyJuMP. bridges (
303-     :: Type{<:MOI.AbstractVectorFunction} ,
303+     F :: Type{<:MOI.AbstractVectorFunction} ,
304304    :: Type{<:ScaledDiagonallyDominantConeTriangle} ,
305305)
306-     return  [(Bridges. Constraint. ScaledDiagonallyDominantBridge, Float64 )]
306+     return  Tuple{Type,Type} [(Bridges. Constraint. ScaledDiagonallyDominantBridge, PolyJuMP . coefficient_type_or_float (F) )]
307307end 
308308
309309function  _bridge_coefficient_type (
310+     T:: Type ,
310311    :: Type{SOSPolynomialSet{S,M,MV,C}} ,
311312) where  {S,M,MV,C}
312-     return  _complex (Float64 , matrix_cone_type (C))
313+     return  _complex (T , matrix_cone_type (C))
313314end 
314315
315316function  PolyJuMP. bridges (
316-     :: Type{<:MOI.AbstractVectorFunction} ,
317+     F :: Type{<:MOI.AbstractVectorFunction} ,
317318    S:: Type{<:SOSPolynomialSet{<:AbstractAlgebraicSet}} ,
318319)
319320    return  Tuple{Type,Type}[(
320321        Bridges. Constraint. SOSPolynomialBridge,
321-         _bridge_coefficient_type (S),
322+         _bridge_coefficient_type (PolyJuMP . coefficient_type_or_float (F),  S),
322323    )]
323324end 
324325
325326function  PolyJuMP. bridges (
326-     :: Type{<:MOI.AbstractVectorFunction} ,
327+     F :: Type{<:MOI.AbstractVectorFunction} ,
327328    S:: Type{<:SOSPolynomialSet{<:BasicSemialgebraicSet}} ,
328329)
329-     return  [(
330+     return  Tuple{Type,Type} [(
330331        Bridges. Constraint. SOSPolynomialInSemialgebraicSetBridge,
331-         _bridge_coefficient_type (S),
332+         _bridge_coefficient_type (PolyJuMP . coefficient_type_or_float (F),  S),
332333    )]
333334end 
334335
@@ -352,7 +353,7 @@ function JuMP.build_constraint(_error::Function, p, cone::SOSLikeCone; kws...)
352353    _coefs =  PolyJuMP. non_constant_coefficients (p)
353354    #  If a polynomial with real coefficients is used with the Hermitian SOS
354355    #  cone, we want to promote the coefficients to complex
355-     T =  _bridge_coefficient_type (typeof (set))
356+     T =  _bridge_coefficient_type (JuMP . value_type (JuMP . variable_ref_type ( eltype (_coefs))),  typeof (set))
356357    coefs =  convert (Vector{_promote_coef_type (eltype (_coefs), T)}, _coefs)
357358    shape =  PolyJuMP. PolynomialShape (monos)
358359    return  PolyJuMP. bridgeable (
0 commit comments