- for (x=1; x <= n; x++) {
- f1 = in[x+1];
-
- for (y=0; y < x - 1; y++)
- f1 += in[x-y]*tgt[y];
-
- tgt[x-1] = f2 = -f1/f0;
- for (y=0; y < x >> 1; y++) {
- float temp = tgt[y] + tgt[x-y-2]*f2;
- tgt[x-y-2] += tgt[y]*f2;
- tgt[y] = temp;
- }
- if ((f0 += f1*f2) < 0)
- return 0;
- }
-
- return 1;
-}
-
-/* product sum (lsf) */
-static void prodsum(float *tgt, const float *src, int len, int n)
-{
- for (; n >= 0; n--)
- tgt[n] = scalar_product_float(src, src - n, len);
-
-}
-
-static void co(int n, int i, int j, const float *in, float *out, float *st1,
- float *st2, const float *table)
-{
- int a, b, c;
- unsigned int x;
- const float *fp;
- float buffer1[37];
- float buffer2[37];
- float work[111];
-
- /* rotate and multiply */
- c = (b = (a = n + i) + j) - i;
- fp = st1 + i;
- for (x=0; x < b; x++) {
- if (x == c)
- fp=in;
- work[x] = *(table++) * (*(st1++) = *(fp++));
+ for (i=0; i <= order; i++) {
+ out2[i] = out2[i] * 0.5625 + buffer1[i];
+ out [i] = out2[i] + buffer2[i];