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[Nu1] D^(Nu1).
The quotient Q(D) normally has NuNv+1 terms. The remainder R(C) normally
has Nv1 terms.
Parameters

< int MSdDeconvCof

Number of quotient coefficients. This is normally NuNv+1. If some of
the higher order terms in v are zero, this may be as large as Nu. If
the last nonzero term in v is v[k], then the number of quotient
coefficients is returned as Nuk.

> 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 nonzero 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 Nuk), the last Nuk terms of R(D) will be zero.
Author / revision
P. Kabal
/ Revision 1.3 2003/05/09
Main Index libtsp