RsBundle  Diff

Differences From Artifact [b88a135ee0]:

  • File src/solver.rs — part of check-in [8d95c5134e] at 2016-10-05 20:14:35 on branch trunk — solver: Remove duplicate method `update_problem`. (user: fifr size: 28861)

To Artifact [1e525fe60f]:

  • File src/solver.rs — part of check-in [039c268628] at 2016-10-05 20:20:40 on branch trunk — solver: Enlarge vectors when adding new variables. (user: fifr size: 29044)

538
539
540
541
542
543
544




545
546
547
548
549
550
551
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555







+
+
+
+








        if !newvars.is_empty() {
            let mut problem = &mut self.problem;
            let minorants = &self.minorants;
            self.master.add_vars(&newvars, &mut move |fidx, minidx, vars| {
                problem.extend_subgradient(minorants[fidx][minidx].primal.as_ref().unwrap(), vars).unwrap()
            });
            let newn = self.cur_y.len() + newvars.len();
            self.cur_y.resize(newn, 0.0);
            self.nxt_d.resize(newn, 0.0);
            self.nxt_y.resize(newn, 0.0);
            Ok(true)
        } else {
            Ok(false)
        }
    }

    /// Return the current aggregated primal information for a subproblem.