RsBundle  Check-in [443fb2dfa5]

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Improve dimension check in master initialization.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 443fb2dfa5b696da7c86454511725736e5bb65d4
User & Date: fifr 2017-11-20 09:15:07.050
Context
2017-11-20
09:24
BoxedMasterProblem is now constructed with wrapped unconstrainted master. check-in: 7293704f87 user: fifr tags: trunk
09:15
Improve dimension check in master initialization. check-in: 443fb2dfa5 user: fifr tags: trunk
09:11
Refactoring check-in: 741fb52a85 user: fifr tags: trunk
Changes
Unified Diff Ignore Whitespace Patch
Changes to src/solver.rs.
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();