www.gusucode.com > wavelet工具箱matlab源码程序 > wavelet/wavelet/@laurpoly/plus.m

    function P = plus(A,B)
%PLUS Laurent polynomial addition.
%   P = PLUS(A,B) returns a Laurent polynomial which is
%   the sum of the two Laurent polynomials A and B.

%   M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 19-Mar-2001.
%   Last Revision: 13-Jun-2003.
%   Copyright 1995-2004 The MathWorks, Inc.

if      isnumeric(A) && length(A)==1 , A = laurpoly(A,0);
elseif  isnumeric(B) && length(B)==1 , B = laurpoly(B,0);
end

dA = A.maxDEG;
dB = B.maxDEG;
dP = max([dA,dB]);
cA = A.coefs; lA = length(cA);
cB = B.coefs; lB = length(cB);
nbCoefs = dP - min([dA-lA+1,dB-lB+1])+1;
cP = zeros(1,nbCoefs);
idxBeg = 1+dP-dA; idxEnd = idxBeg +lA-1;
cP(idxBeg:idxEnd) = cA;
idxBeg = 1+dP-dB; idxEnd = idxBeg +lB-1;
cP(idxBeg:idxEnd) = cP(idxBeg:idxEnd)+cB;
[cP,dP] = reduce(cP,dP);
P = laurpoly(cP,dP);