Skip to content

Commit a5208c2

Browse files
committed
Fixes
1 parent 5b21d5d commit a5208c2

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

src/Bridges/Constraint/bridges/set_conversion.jl

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,17 @@
66
77
* ``f(x) \\in S1`` into ``f(x) \\in S2``
88
9+
In order to add this bridge, you need to create a bridge specific
10+
for a given type `T` and set `S2`:
11+
```julia
12+
MOI.Bridges.add_bridge(model, MOI.Bridges.Constraint.SetConversionBridge{T,S2})
13+
```
14+
In order to define a bridge with `S2` specified but `T` unspecified, e.g.,
15+
for `JuMP.add_bridge`, you can use
16+
```julia
17+
const MyBridge{T,S1,F} = MOI.Bridges.Constraint.SetConversionBridge{T,S2,S1,F}
18+
```
19+
920
See also [`FunctionConversionBridge`](@ref).
1021
1122
## Source node

test/Bridges/Constraint/set_conversion.jl

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,18 @@ end
3232

3333
Base.convert(::Type{MOI.EqualTo{Float64}}, ::Zero) = MOI.EqualTo(0.0)
3434

35+
function Base.convert(::Type{Zero}, s::MOI.EqualTo)
36+
if !iszero(s.value)
37+
throw(InexactError(convert, (Zero, s)))
38+
end
39+
return Zero()
40+
end
41+
42+
const EqualToBridge{T,S1,F} = MOI.Bridges.Constraint.SetConversionBridge{T,MOI.EqualTo{T},S1,F}
43+
3544
function test_runtests()
3645
MOI.Bridges.runtests(
37-
MOI.Bridges.Constraint.SetConversionBridge{Float64,MOI.EqualTo{Float64},Zero},
46+
EqualToBridge,
3847
model -> begin
3948
x = MOI.add_variable(model)
4049
MOI.add_constraint(model, x, Zero())

0 commit comments

Comments
 (0)