unsafe-libopus 0.2.0

libopus transpiled to rust by c2rust
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
pub unsafe fn silk_bwexpander_32(ar: *mut i32, d: i32, mut chirp_Q16: i32) {
    let mut i: i32 = 0;
    let chirp_minus_one_Q16: i32 = chirp_Q16 - 65536;
    i = 0;
    while i < d - 1 {
        *ar.offset(i as isize) = (chirp_Q16 as i64 * *ar.offset(i as isize) as i64 >> 16) as i32;
        chirp_Q16 += if 16 == 1 {
            (chirp_Q16 * chirp_minus_one_Q16 >> 1) + (chirp_Q16 * chirp_minus_one_Q16 & 1)
        } else {
            (chirp_Q16 * chirp_minus_one_Q16 >> 16 - 1) + 1 >> 1
        };
        i += 1;
    }
    *ar.offset((d - 1) as isize) =
        (chirp_Q16 as i64 * *ar.offset((d - 1) as isize) as i64 >> 16) as i32;
}