RsBundle  Diff

Differences From Artifact [91e00af442]:

  • File src/solver.rs — part of check-in [4cf9ac6c65] at 2016-09-28 11:27:43 on branch trunk — solver: Add validity check for parameters. (user: fifr size: 23283)

To Artifact [647352101b]:

  • File src/solver.rs — part of check-in [1f65b89c9e] at 2016-09-28 11:28:18 on branch trunk — solver: Allow larger bundle sizes when compressing bundles. (user: fifr size: 23388)

569
570
571
572
573
574
575
576
577

578

579
580
581
582
583
584
585
        debug!("  expected={}", self.expected_progress);
        Ok(())
    }


    /// Reduce size of bundle.
    fn compress_bundle(&mut self) {
        if self.master.num_minorants() > 1 {
            let n = self.master.num_minorants();

            self.master.aggregate(0, &(0..n).collect::<Vec<_>>());

        }
    }

    /// Perform a descent step.
    fn descent_step(&mut self) {
        let new_weight = self.weighter.weight(&current_state!(self, Step::Descent), &self.params);
        self.master.set_weight(new_weight);







|
|
>
|
>







569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
        debug!("  expected={}", self.expected_progress);
        Ok(())
    }


    /// Reduce size of bundle.
    fn compress_bundle(&mut self) {
        for i in 0..self.problem.num_subproblems() {
            let n = self.master.num_minorants(i);
            if n >= self.params.max_bundle_size {
                self.master.aggregate(0, &(self.params.max_bundle_size-2..n).collect::<Vec<_>>());
            }
        }
    }

    /// Perform a descent step.
    fn descent_step(&mut self) {
        let new_weight = self.weighter.weight(&current_state!(self, Step::Descent), &self.params);
        self.master.set_weight(new_weight);