RsBundle  Diff

Differences From Artifact [4aa50b81f7]:

  • File src/solver.rs — part of check-in [741fb52a85] at 2017-11-20 09:11:33 on branch trunk — Refactoring (user: fifr size: 35060)

To Artifact [9033b303ef]:

  • File src/solver.rs — part of check-in [443fb2dfa5] at 2017-11-20 09:15:07 on branch trunk — Improve dimension check in master initialization. (user: fifr size: 35195)

719
720
721
722
723
724
725
726
727
728
729





730
731
732
733
734
735
736
719
720
721
722
723
724
725




726
727
728
729
730
731
732
733
734
735
736
737







-
-
-
-
+
+
+
+
+







            debug!("Use CPLEX master problem");
            Box::new(BoxedMasterProblem::<CplexMaster>::new().unwrap())
        };

        let lb = self.problem.lower_bounds().map(DVector);
        let ub = self.problem.upper_bounds().map(DVector);

        if let Some(ref x) = lb {
            if x.len() != self.problem.num_variables() {
                return Err(SolverError::Dimension);
            }
        if lb.as_ref().map(|lb| lb.len() != self.problem.num_variables()).unwrap_or(false) {
            return Err(SolverError::Dimension);
        }
        if ub.as_ref().map(|ub| ub.len() != self.problem.num_variables()).unwrap_or(false) {
            return Err(SolverError::Dimension);
        }

        self.master.set_num_subproblems(m).map_err(SolverError::Master)?;
        self.master.set_vars(self.problem.num_variables(), lb, ub).map_err(SolverError::Master)?;
        self.master.set_max_updates(self.params.max_updates).map_err(SolverError::Master)?;

        self.minorants = (0..m).map(|_| vec![]).collect();