@@ -546,6 +546,15 @@ function _delete_variables_in_variables_constraints(
546
546
end
547
547
548
548
function MOI. delete (b:: AbstractBridgeOptimizer , vis:: Vector{MOI.VariableIndex} )
549
+ F = MOI. get (b, MOI. ObjectiveFunctionType ())
550
+ if is_objective_bridged (b) && F == MOI. VectorOfVariables
551
+ f = MOI. get (b, MOI. ObjectiveFunction {MOI.VectorOfVariables} ())
552
+ discard = Base. Fix2 (in, vis)
553
+ if any (discard, f. variables)
554
+ g = MOI. VectorOfVariables (filter (! discard, f. variables))
555
+ MOI. set (b, MOI. ObjectiveFunction {MOI.VectorOfVariables} (), g)
556
+ end
557
+ end
549
558
if Constraint. has_bridges (Constraint. bridges (b))
550
559
_delete_variables_in_variables_constraints (b, vis)
551
560
end
@@ -575,6 +584,14 @@ function MOI.delete(b::AbstractBridgeOptimizer, vis::Vector{MOI.VariableIndex})
575
584
end
576
585
577
586
function MOI. delete (b:: AbstractBridgeOptimizer , vi:: MOI.VariableIndex )
587
+ F = MOI. get (b, MOI. ObjectiveFunctionType ())
588
+ if is_objective_bridged (b) && F == MOI. VectorOfVariables
589
+ f = MOI. get (b, MOI. ObjectiveFunction {MOI.VectorOfVariables} ())
590
+ if any (isequal (vi), f. variables)
591
+ g = MOI. VectorOfVariables (filter (! isequal (vi), f. variables))
592
+ MOI. set (b, MOI. ObjectiveFunction {MOI.VectorOfVariables} (), g)
593
+ end
594
+ end
578
595
if Constraint. has_bridges (Constraint. bridges (b))
579
596
_delete_variables_in_variables_constraints (b, [vi])
580
597
end
@@ -600,6 +617,7 @@ function MOI.delete(b::AbstractBridgeOptimizer, vi::MOI.VariableIndex)
600
617
else
601
618
MOI. delete (b. model, vi)
602
619
end
620
+ return
603
621
end
604
622
605
623
function MOI. delete (b:: AbstractBridgeOptimizer , ci:: MOI.ConstraintIndex )
0 commit comments