RsBundle  Diff

Differences From Artifact [d7e36dbc14]:

  • File src/solver.rs — part of check-in [58f8ffe7a1] at 2018-06-26 21:39:59 on branch error-handling — Implement `MasterProblemError` as more specific enum (user: fifr size: 36946)

To Artifact [1f983703ce]:

  • File src/solver.rs — part of check-in [f410ce94ba] at 2018-06-27 07:05:32 on branch error-handling — solver: remove unnecessary `move` from extend subgradient closure (user: fifr size: 36937)

679
680
681
682
683
684
685
686

687
688
689
690
691

692
693
694
695
696
697
698
679
680
681
682
683
684
685

686
687
688
689
690

691
692
693
694
695
696
697
698







-
+




-
+







                    }
                    newvars.push((Some(index), lower - value, upper - value, value));
                }
            }
        }

        if !newvars.is_empty() {
            let mut problem = &mut self.problem;
            let problem = &mut self.problem;
            let minorants = &self.minorants;
            self.master
                .add_vars(
                    &newvars.iter().map(|v| (v.0, v.1, v.2)).collect::<Vec<_>>(),
                    &mut move |fidx, minidx, vars| {
                    &mut |fidx, minidx, vars| {
                        problem
                            .extend_subgradient(minorants[fidx][minidx].primal.as_ref().unwrap(), vars)
                            .map(DVector)
                            .map_err(|e| e.into())
                    },
                )
                .map_err(SolverError::Master)?;