MSdDeconvCof
Routine
- 
int MSdDeconvCof (const double u[], int Nu, const double v[], int Nv,
double q[], double r[])
 
Purpose
- 
Polyomial divide (deconvolve the coefficients of two vectors)
 
Description
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[0] + u[1] D + u[2] 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.
Parameters
- 
<-  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
P. Kabal
/ Revision 1.3  2003/05/09
Main Index libtsp