use p3_field::Field;
#[allow(dead_code)]
pub fn batch_multiplicative_inverse_inplace<F: Field>(values: &mut [F]) {
let mut nonzero_values = Vec::with_capacity(values.len());
let mut indices = Vec::with_capacity(values.len());
for (i, value) in values.iter().copied().enumerate() {
if value.is_zero() {
continue;
}
nonzero_values.push(value);
indices.push(i);
}
let inverse_nonzero_values = p3_field::batch_multiplicative_inverse(&nonzero_values);
for (i, index) in indices.into_iter().enumerate() {
values[index] = inverse_nonzero_values[i];
}
}