- * @return 0 if success, -1 if fail
- */
-static int eval_lpc_coeffs(const float *in, float *tgt, int n)
-{
- int x, y;
- double f0, f1, f2;
-
- if (in[n] == 0)
- return -1;
-
- if ((f0 = *in) <= 0)
- return -1;
-
- in--; // To avoid a -1 subtraction in the inner loop
-
- 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 -1;
- }
-
- return 0;
-}
-
-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);
-
-}
-
-/**
- * Hybrid window filtering. See blocks 36 and 49 of the G.728 specification.
- *
- * @note This function is slightly different from that described in the spec.
- * It expects in[0] to be the newest sample and in[n-1] to be the oldest
- * one stored. The spec has in the more ordinary way (in[0] the oldest
- * and in[n-1] the newest).
- *
- * @param order the order of the filter
- * @param n the length of the input
- * @param non_rec the number of non-recursive samples
- * @param out the filter output
- * @param in pointer to the input of the filter
- * @param hist pointer to the input history of the filter. It is updated by
- * this function.
+ * @param order filter order
+ * @param n input length
+ * @param non_rec number of non-recursive samples
+ * @param out filter output
+ * @param hist pointer to the input history of the filter