r /= error+.004*ac[0];
r /= error;
float _spx_lpc(float       *lpc, /* out: [0...p-1] LPC coefficients      */const float *ac,  /* in:  [0...p] autocorrelation values  */int          p){   int i, j;  float r, error = ac[0];   if (ac[0] == 0)   {      for (i = 0; i < p; i++)         lpc[i] = 0;      return 0;   }   for (i = 0; i < p; i++) {      /* Sum up this iteration's reflection coefficient */      r = -ac[i + 1];      for (j = 0; j < i; j++)          r -= lpc[j] * ac[i - j];      r /= error+.004*ac[0];      /*  Update LPC coefficients and total error */      lpc[i] = r;      for (j = 0; j < i/2; j++)       {         float tmp  = lpc[j];         lpc[j]     += r * lpc[i-1-j];         lpc[i-1-j] += r * tmp;      }      if (i & 1)          lpc[j] += lpc[j] * r;      error *= 1.0 - r * r;   }   return error;}