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
            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);
            }


        }

        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();







<
|
|
|
>
>







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 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();