620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
|
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
|
-
+
|
}
}
}
if !newvars.is_empty() {
let mut problem = &mut self.problem;
let minorants = &self.minorants;
self.master.add_vars(&newvars.iter().map(|v| (v.1, v.2)).collect::<Vec<_>>(),
self.master.add_vars(&newvars.iter().map(|v| (v.0, v.1)).collect::<Vec<_>>(),
&mut move |fidx, minidx, vars| {
problem.extend_subgradient(minorants[fidx][minidx].primal.as_ref().unwrap(), vars)
.map(DVector)
.unwrap()
});
let newn = self.cur_y.len() + newvars.len();
self.cur_y.extend(newvars.iter().map(|v| v.2));
|