@@ -21,28 +21,14 @@ include("bridgeoptimizer.jl")
2121include (" singlebridgeoptimizer.jl" )
2222include (" lazybridgeoptimizer.jl" )
2323
24- # This is used by JuMP and removes the need to update JuMP everytime a bridge is added
25- MOIU. @model (AllBridgedConstraints,
26- (),
27- (MOI. EqualTo, MOI. LessThan, MOI. GreaterThan, MOI. Interval,),
28- (MOI. Nonnegatives, MOI. Nonpositives, MOI. SecondOrderCone,
29- MOI. RotatedSecondOrderCone, MOI. GeometricMeanCone,
30- MOI. PositiveSemidefiniteConeSquare,
31- MOI. LogDetConeTriangle, MOI. RootDetConeTriangle),
32- (),
33- (MOI. SingleVariable,),
34- (MOI. ScalarAffineFunction, MOI. ScalarQuadraticFunction),
35- (MOI. VectorOfVariables,),
36- (MOI. VectorAffineFunction, MOI. VectorQuadraticFunction))
3724"""
3825 full_bridge_optimizer(model::MOI.ModelLike, ::Type{T}) where T
3926
4027Returns a `LazyBridgeOptimizer` bridging `model` for every bridge defined in
4128this package and for the coefficient type `T`.
4229"""
4330function full_bridge_optimizer (model:: MOI.ModelLike , :: Type{T} ) where T
44- cache = MOIU. UniversalFallback (AllBridgedConstraints {T} ())
45- bridged_model = LazyBridgeOptimizer (model, cache)
31+ bridged_model = LazyBridgeOptimizer (model)
4632 add_bridge (bridged_model, GreaterToLessBridge{T})
4733 add_bridge (bridged_model, LessToGreaterBridge{T})
4834 add_bridge (bridged_model, NonnegToNonposBridge{T})
@@ -66,49 +52,35 @@ function full_bridge_optimizer(model::MOI.ModelLike, ::Type{T}) where T
6652end
6753
6854include (" flip_sign_bridge.jl" )
69- @bridge GreaterToLess GreaterToLessBridge () ( MOI. GreaterThan,) () () (MOI . SingleVariable,) (MOI . ScalarAffineFunction, MOI . ScalarQuadraticFunction) () ()
70- @bridge LessToGreater LessToGreaterBridge () ( MOI. LessThan,) () () (MOI . SingleVariable,) (MOI . ScalarAffineFunction, MOI . ScalarQuadraticFunction) () ()
71- @bridge NonnegToNonpos NonnegToNonposBridge () () ( MOI. Nonnegatives,) () () () (MOI . VectorOfVariables,) (MOI . VectorAffineFunction, MOI . VectorQuadraticFunction)
72- @bridge NonposToNonneg NonposToNonnegBridge () () ( MOI. Nonpositives,) () () () (MOI . VectorOfVariables,) (MOI . VectorAffineFunction, MOI . VectorQuadraticFunction)
55+ const GreaterToLess{T, OT <: MOI.ModelLike } = SingleBridgeOptimizer{GreaterToLessBridge{T}, OT}
56+ const LessToGreater{T, OT <: MOI.ModelLike } = SingleBridgeOptimizer{LessToGreaterBridge{T}, OT}
57+ const NonnegToNonpos{T, OT <: MOI.ModelLike } = SingleBridgeOptimizer{NonnegToNonposBridge{T}, OT}
58+ const NonposToNonneg{T, OT <: MOI.ModelLike } = SingleBridgeOptimizer{NonposToNonnegBridge{T}, OT}
7359include (" vectorizebridge.jl" )
74- @bridge Vectorize VectorizeBridge () (MOI . EqualTo, MOI. LessThan, MOI . GreaterThan,) () () (MOI . SingleVariable,) (MOI . ScalarAffineFunction, MOI . ScalarQuadraticFunction) () ()
60+ const Vectorize{T, OT <: MOI.ModelLike } = SingleBridgeOptimizer{VectorizeBridge{T}, OT}
7561include (" scalarizebridge.jl" )
76- @bridge Scalarize ScalarizeBridge () () (MOI . Zeros, MOI. Nonnegatives, MOI . Nonpositives) () () () (MOI . VectorOfVariables,) (MOI . VectorAffineFunction, MOI . VectorQuadraticFunction)
62+ const Scalarize{T, OT <: MOI.ModelLike } = SingleBridgeOptimizer{ScalarizeBridge{T}, OT}
7763include (" slackbridge.jl" )
78- @bridge ScalarSlack ScalarSlackBridge () (MOI. Interval, MOI. LessThan, MOI. GreaterThan) () () () (MOI. ScalarAffineFunction, MOI. ScalarQuadraticFunction) () ()
79- @bridge (VectorSlack, VectorSlackBridge, (), (),
80- (MOI. Nonnegatives, MOI. Nonpositives, MOI. SecondOrderCone,
81- MOI. RotatedSecondOrderCone, MOI. GeometricMeanCone,
82- MOI. PositiveSemidefiniteConeSquare, MOI. PositiveSemidefiniteConeTriangle, MOI. LogDetConeTriangle,
83- MOI. RootDetConeTriangle),
84- (MOI. PowerCone, MOI. DualPowerCone, MOI. SOS1, MOI. SOS2), (), (), (),
85- (MOI. VectorAffineFunction, MOI. VectorQuadraticFunction)
86- )
64+ const ScalarSlack{T, OT<: MOI.ModelLike } = SingleBridgeOptimizer{ScalarSlackBridge{T}, OT}
65+ const VectorSlack{T, OT<: MOI.ModelLike } = SingleBridgeOptimizer{VectorSlackBridge{T}, OT}
8766include (" functionize_bridge.jl" )
88- @bridge ScalarFunctionize ScalarFunctionizeBridge () (MOI. Interval, MOI. LessThan, MOI. GreaterThan) () () (MOI. SingleVariable,) () () ()
89- @bridge (VectorFunctionize, VectorFunctionizeBridge, (), (),
90- (MOI. Nonnegatives, MOI. Nonpositives, MOI. SecondOrderCone,
91- MOI. RotatedSecondOrderCone, MOI. GeometricMeanCone,
92- MOI. PositiveSemidefiniteConeSquare, MOI. PositiveSemidefiniteConeTriangle, MOI. LogDetConeTriangle,
93- MOI. RootDetConeTriangle),
94- (MOI. PowerCone, MOI. DualPowerCone, MOI. SOS1, MOI. SOS2), (), (),
95- (MOI. VectorOfVariables,), ()
96- )
67+ const ScalarFunctionize{T, OT<: MOI.ModelLike } = SingleBridgeOptimizer{ScalarFunctionizeBridge{T}, OT}
68+ const VectorFunctionize{T, OT<: MOI.ModelLike } = SingleBridgeOptimizer{VectorFunctionizeBridge{T}, OT}
9769include (" intervalbridge.jl" )
98- @bridge SplitInterval SplitIntervalBridge () ( MOI. Interval,) () () (MOI . SingleVariable,) (MOI . ScalarAffineFunction, MOI . ScalarQuadraticFunction) () ()
70+ const SplitInterval{T, OT <: MOI.ModelLike } = SingleBridgeOptimizer{SplitIntervalBridge{T}, OT}
9971include (" rsocbridge.jl" )
100- @bridge RSOC RSOCBridge () () ( MOI. RotatedSecondOrderCone,) () () () (MOI . VectorOfVariables,) (MOI . VectorAffineFunction,)
72+ const RSOC{T, OT <: MOI.ModelLike } = SingleBridgeOptimizer{RSOCBridge{T}, OT}
10173include (" quadtosocbridge.jl" )
102- @bridge QuadtoSOC QuadtoSOCBridge () (MOI . LessThan, MOI. GreaterThan) () () () (MOI . ScalarQuadraticFunction,) () ()
74+ const QuadtoSOC{T, OT <: MOI.ModelLike } = SingleBridgeOptimizer{QuadtoSOCBridge{T}, OT}
10375include (" geomeanbridge.jl" )
104- @bridge GeoMean GeoMeanBridge () () ( MOI. GeometricMeanCone,) () () () (MOI . VectorOfVariables,) (MOI . VectorAffineFunction,)
76+ const GeoMean{T, OT <: MOI.ModelLike } = SingleBridgeOptimizer{GeoMeanBridge{T}, OT}
10577include (" squarepsdbridge.jl" )
106- @bridge SquarePSD SquarePSDBridge () () ( MOI. PositiveSemidefiniteConeSquare,) () () () (MOI . VectorOfVariables,) (MOI . VectorAffineFunction, MOI . VectorQuadraticFunction)
78+ const SquarePSD{T, OT <: MOI.ModelLike } = SingleBridgeOptimizer{SquarePSDBridge{T}, OT}
10779include (" detbridge.jl" )
108- @bridge LogDet LogDetBridge () () ( MOI. LogDetConeTriangle,) () () () (MOI . VectorOfVariables,) (MOI . VectorAffineFunction,)
109- @bridge RootDet RootDetBridge () () ( MOI. RootDetConeTriangle,) () () () (MOI . VectorOfVariables,) (MOI . VectorAffineFunction,)
80+ const LogDet{T, OT <: MOI.ModelLike } = SingleBridgeOptimizer{LogDetBridge{T}, OT}
81+ const RootDet{T, OT <: MOI.ModelLike } = SingleBridgeOptimizer{RootDetBridge{T}, OT}
11082include (" soctopsdbridge.jl" )
111- @bridge SOCtoPSD SOCtoPSDBridge () () ( MOI. SecondOrderCone,) () () () (MOI . VectorOfVariables,) (MOI . VectorAffineFunction,)
112- @bridge RSOCtoPSD RSOCtoPSDBridge () () ( MOI. RotatedSecondOrderCone,) () () () (MOI . VectorOfVariables,) (MOI . VectorAffineFunction,)
83+ const SOCtoPSD{T, OT <: MOI.ModelLike } = SingleBridgeOptimizer{SOCtoPSDBridge{T}, OT}
84+ const RSOCtoPSD{T, OT <: MOI.ModelLike } = SingleBridgeOptimizer{RSOCtoPSDBridge{T}, OT}
11385
11486end # module
0 commit comments