static void flac_lpc_16_c(int32_t *decoded, const int coeffs[32], int pred_order, int qlevel, int len) { int i, j; for (i = pred_order; i < len - 1; i += 2, decoded += 2) { int c = coeffs[0]; int d = decoded[0]; int s0 = 0, s1 = 0; for (j = 1; j < pred_order; j++) { s0 += c*d; d = decoded[j]; s1 += c*d; c = coeffs[j]; } s0 += c*d; d = decoded[j] += s0 >> qlevel; s1 += c*d; decoded[j + 1] += s1 >> qlevel; } if (i < len) { int sum = 0; for (j = 0; j < pred_order; j++) sum += coeffs[j] * decoded[j]; decoded[j] += sum >> qlevel; } }