Skip to main content

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}