INNER CODE UNIT · Rust
batch_inversion_helper
0xMiden/crypto · miden-crypto/src/lib.rs:196
fn batch_inversion_helper(values: &[Felt], result: &mut [Felt]) {
debug_assert_eq!(values.len(), result.len());
if values.is_empty() {
return;
}
// Forward pass: compute cumulative products, skipping zeros
let mut last = ONE;
for (result, &value) in result.iter_mut().zip(values.iter()) {
*result = last;
if value != ZERO {
last *= value;
}
}
// Invert the final cumulative product
last = last.inverse();