48 const num *b,
int p,
const num *a,
int q)
52 assert(h && N > 0 && b && p >= 0 && a && q > 0);
54 for (n = 0; n < N; ++n)
56 h[n] = (n <= p) ? b[n] : 0;
58 for (m = 1; m <= q && m <= n; ++m)
59 h[n] -= a[m] * h[n - m];
87 const num *b,
int p,
const num *a,
int q,
88 num sum,
num tol,
long max_iter)
94 assert(dest && src && N > 0 && stride != 0
95 && b && p >= 0 && a && 0 < q && q <=
MAX_Q
96 && tol > 0 && max_iter > 0);
102 for (m = 0; m < q; ++m)
103 for (dest[m] = 0, n = 1; n <= m; ++n)
104 dest[m] += h[m - n] * src[stride *
extension(N, n)];
106 for (n = 0; n < max_iter; ++n)
111 for (m = 0; m < q; ++m)
112 dest[m] += h[m] * cur;
120 h[q] = (n + q <= p) ? b[n + q] : 0;
122 for (m = 1; m <= q; ++m)
123 h[q] -= a[m] * h[q - m];
126 for (m = 0; m < q; ++m)