RsBundle  Diff

Differences From 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)

To Artifact [1b2d1b0ca6]:

  • File src/solver.rs — part of check-in [f7d5aaf424] at 2016-10-06 06:27:13 on branch trunk — solver: Add a debug assertion. (user: fifr size: 29117)

699
700
701
702
703
704
705

706
707
708
709
710
711
712
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713







+







                let aggr = self.minorants[i].split_off(self.params.max_bundle_size-2);
                let aggr_sum = aggr.iter().map(|m| m.multiplier).sum();
                let (aggr_mins, aggr_primals) : (Vec<_>, Vec<_>) = aggr.into_iter().map(|m| {
                    (m.index, m.primal.unwrap())
                }).unzip();
                let (aggr_min, aggr_coeffs) = try!(self.master.aggregate(i, &aggr_mins));
                // append aggregated minorant
                debug_assert_eq!(aggr_coeffs.len(), aggr_primals.len());
                self.minorants[i].push(MinorantInfo{
                    index: aggr_min,
                    multiplier: aggr_sum,
                    primal: Some(self.problem.aggregate_primals(&aggr_coeffs, aggr_primals)),
                });
            }
        }