int MSdDeconvCof (const double u, int Nu, const double v, int Nv,
double q, double r)
Polyomial divide (deconvolve the coefficients of two vectors)
This routine divides one polynomial by another. Given polynomials U(D)
and V(D), the polynomial division U(D)/V(D) gives quotient Q(D) and
remainder R(D), where
U(D) = Q(D) V(D) + R(D).
Polynomial U(D) is represented as
U(D) = u + u D + u D^2 + ... + u[Nu-1] D^(Nu-1).
The quotient Q(D) normally has Nu-Nv+1 terms. The remainder R(C) normally
has Nv-1 terms.
<- int MSdDeconvCof
Number of quotient coefficients. This is normally Nu-Nv+1. If some of
the higher order terms in v are zero, this may be as large as Nu. If
the last non-zero term in v is v[k], then the number of quotient
coefficients is returned as Nu-k.
-> double u
Input vector of coefficients (Nu values)
-> int Nu
Number of coefficients in u
-> double v
Input vector of coefficients (Nv values)
-> int Nv
Number of coefficients in v. If Nu < Nv, the quotient is empty and the
remainder is equal to u.
<- double q
Output vector of Nu coefficients representing the quotient of the
polynomial division. The quotient vector can be the same as the vector
u. If v[k] is the last non-zero coefficient of v, the last k
coefficients of q will be zero.
<- double r
Output vector of Nu coefficient representing the remainder of the
polynomial division. If r is NULL, the remainder is not calculated.
The remainder satisfies R(D) = U(D) - Q(D) U(D). If v[k] is the last
nonzero coefficient of v (k can be ascertained from the function return
value which is Nu-k), the last Nu-k terms of R(D) will be zero.
Author / revision
/ Revision 1.3 2003/05/09
Main Index libtsp