math_audio_optimisation/apply_integrality.rs
1use ndarray::Array1;
2
3pub(crate) fn apply_integrality(
4 x: &mut Array1<f64>,
5 mask: &[bool],
6 lower: &Array1<f64>,
7 upper: &Array1<f64>,
8) {
9 for i in 0..x.len() {
10 if i < mask.len() && mask[i] {
11 x[i] = x[i].round();
12 if x[i] < lower[i] {
13 x[i] = lower[i].ceil();
14 }
15 if x[i] > upper[i] {
16 x[i] = upper[i].floor();
17 }
18 }
19 }
20}