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

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




            Ok(true)
        } else {
            Ok(false)
        }
    }

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







>
>
>
>







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.