2.0f32.powf(0.25 * (f32::from(scale) - 100.0 - 56.0))
}
fn iquant(val: i16) -> f32 {
- let idx = val.abs() as usize;
+ let idx = val.unsigned_abs() as usize;
if idx < CBRT_TAB.len() {
if val < 0 {
-CBRT_TAB[idx]
for i in 0..4 {
let val = AAC_QUADS[cw][i] - 1;
if val < 0 {
- out[i] = -CBRT_TAB[val.abs() as usize] * scale;
+ out[i] = -CBRT_TAB[val.unsigned_abs() as usize] * scale;
} else {
- out[i] = CBRT_TAB[val.abs() as usize] * scale;
+ out[i] = CBRT_TAB[val.unsigned_abs() as usize] * scale;
}
}
}
out[0] = iquant(x) * scale;
out[1] = iquant(y) * scale;
} else {
- out[0] = scale * if x < 0 { -CBRT_TAB[x.abs() as usize] } else { CBRT_TAB[x as usize] };
- out[1] = scale * if y < 0 { -CBRT_TAB[y.abs() as usize] } else { CBRT_TAB[y as usize] };
+ out[0] = scale * if x < 0 { -CBRT_TAB[x.unsigned_abs() as usize] } else { CBRT_TAB[x as usize] };
+ out[1] = scale * if y < 0 { -CBRT_TAB[y.unsigned_abs() as usize] } else { CBRT_TAB[y as usize] };
}
}
Ok(())