Skip to content

Commit 9e63577

Browse files
authored
[Utilities] refactor is_maybe_real to is_complex (#2475)
1 parent d022088 commit 9e63577

File tree

5 files changed

+20
-20
lines changed

5 files changed

+20
-20
lines changed

src/Bridges/Constraint/bridges/functionize.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -280,7 +280,7 @@ function MOI.supports_constraint(
280280
::Type{G},
281281
::Type{<:MOI.AbstractSet},
282282
) where {T,F,G<:MOI.AbstractFunction}
283-
return MOI.Utilities.is_maybe_real(G) && isfinite(conversion_cost(F, G))
283+
return !MOI.Utilities.is_complex(G) && isfinite(conversion_cost(F, G))
284284
end
285285

286286
function concrete_bridge_type(

src/Bridges/Constraint/bridges/norm_one.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ function MOI.supports_constraint(
5656
::Type{F},
5757
::Type{MOI.NormOneCone},
5858
) where {T,F<:MOI.AbstractVectorFunction}
59-
return MOI.Utilities.is_maybe_real(F)
59+
return !MOI.Utilities.is_complex(F)
6060
end
6161

6262
function MOI.Bridges.added_constrained_variable_types(::Type{<:NormOneBridge})

src/Bridges/Constraint/bridges/vectorize.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ function MOI.supports_constraint(
6464
::Type{F},
6565
::Type{<:MOI.Utilities.ScalarLinearSet{T}},
6666
) where {T,F<:MOI.AbstractScalarFunction}
67-
return MOI.Utilities.is_maybe_real(F)
67+
return !MOI.Utilities.is_complex(F)
6868
end
6969

7070
function MOI.Bridges.added_constrained_variable_types(::Type{<:VectorizeBridge})

src/Bridges/Constraint/set_map.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,15 +51,15 @@ function MOI.supports_constraint(
5151
::Type{F},
5252
::Type{S1},
5353
) where {T,S1<:MOI.AbstractScalarSet,F<:MOI.AbstractScalarFunction}
54-
return MOI.Utilities.is_maybe_real(F)
54+
return !MOI.Utilities.is_complex(F)
5555
end
5656

5757
function MOI.supports_constraint(
5858
::Type{<:MultiSetMapBridge{T,S1}},
5959
::Type{F},
6060
::Type{S1},
6161
) where {T,S1<:MOI.AbstractVectorSet,F<:MOI.AbstractVectorFunction}
62-
return MOI.Utilities.is_maybe_real(F)
62+
return !MOI.Utilities.is_complex(F)
6363
end
6464

6565
function MOI.Bridges.added_constrained_variable_types(

src/Utilities/functions.jl

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2494,13 +2494,13 @@ function constant_vector(
24942494
end
24952495

24962496
"""
2497-
is_maybe_real(::Type{<:MOI.AbstractFunction})
2497+
is_complex(::Type{<:MOI.AbstractFunction})
24982498
2499-
Return `true` if the function type may return `<:Real` values. It returns false
2500-
for Complex-valued functions.
2499+
Return `true` if the function type may return `<:Complex` values. It returns
2500+
`false` for real-valued functions.
25012501
2502-
This function defaults to returning a false positive (`true`). If your new
2503-
function explicitly returns complex values, opt-out by defining a new method.
2502+
This function defaults to returning a false negatives (`false`). If your new
2503+
function explicitly returns complex values, opt-in by defining a new method.
25042504
25052505
This function is mostly intended for use in the `MOI.Bridges` submodule to
25062506
identify when bridges are not applicable (because the function is
@@ -2511,18 +2511,18 @@ complex-valued).
25112511
```jldoctest
25122512
julia> import MathOptInterface as MOI
25132513
2514-
julia> MOI.Utilities.is_maybe_real(MOI.VariableIndex)
2515-
true
2516-
2517-
julia> MOI.Utilities.is_maybe_real(MOI.ScalarAffineFunction{Complex{Int}})
2514+
julia> MOI.Utilities.is_complex(MOI.VariableIndex)
25182515
false
25192516
2520-
julia> MOI.Utilities.is_maybe_real(MOI.ScalarNonlinearFunction)
2517+
julia> MOI.Utilities.is_complex(MOI.ScalarAffineFunction{Complex{Int}})
25212518
true
2519+
2520+
julia> MOI.Utilities.is_complex(MOI.ScalarNonlinearFunction)
2521+
false
25222522
```
25232523
"""
2524-
is_maybe_real(::Type{<:MOI.AbstractFunction}) = true
2525-
is_maybe_real(::Type{<:MOI.ScalarAffineFunction{<:Complex}}) = false
2526-
is_maybe_real(::Type{<:MOI.VectorAffineFunction{<:Complex}}) = false
2527-
is_maybe_real(::Type{<:MOI.ScalarQuadraticFunction{<:Complex}}) = false
2528-
is_maybe_real(::Type{<:MOI.VectorQuadraticFunction{<:Complex}}) = false
2524+
is_complex(::Type{<:MOI.AbstractFunction}) = false
2525+
is_complex(::Type{<:MOI.ScalarAffineFunction{<:Complex}}) = true
2526+
is_complex(::Type{<:MOI.VectorAffineFunction{<:Complex}}) = true
2527+
is_complex(::Type{<:MOI.ScalarQuadraticFunction{<:Complex}}) = true
2528+
is_complex(::Type{<:MOI.VectorQuadraticFunction{<:Complex}}) = true

0 commit comments

Comments
 (0)