function [C0,C1] = gcmp( rho, tau, sin, win ) % % generalized companion matrix pencil % (c) Robert M. Corless 2007 % % [C0,C1] = gcmp( rho, tau, s, w ) [n,dummy] = size(tau(:)); if max(size(sin))==1, s = sin*ones(n,1); else s = sin; end; smax = max(s); d = -1 + sum(s); if nargin > 3, w = win; else w = genbarywts( tau, s ); end; C1 = eye(d+2,d+2); C1(d+2,d+2) = 0; C0 = zeros(d+2,d+2); C0(1:d+1,d+2) = -rho(:); ik=1; for i=1:n, C0(d+2,ik:ik+s(i)-1) = w(i,1:s(i)); C0(ik:ik+s(i)-1,ik:ik+s(i)-1) = tau(i)*eye(s(i)); for j=1:s(i)-1, C0(ik+j,ik+j-1)=1; end; ik = ik + s(i); end;