/* Backward synthesis filter, find the LPC coefficients from past speech data.  */
static void backward_filter(float *hist, float *rec, const float *window, float *lpc, const float *tab, int order, int n, int non_rec, int move_size)
/* Backward synthesis filter, find the LPC coefficients from past speech data.  */
static void backward_filter(float *hist, float *rec, const float *window, float *lpc, const float *tab, int order, int n, int non_rec, int move_size)
{
    float temp[order+1];
    do_hybrid_window(order, n, non_rec, temp, hist, rec, window);
    if (!compute_lpc_coefs(temp, order, lpc, 0, 1, 1))
        apply_window(lpc, lpc, tab, order);
    memmove(hist, hist + n, move_size*sizeof(*hist));
}