function [lb,fulpert,rowp] = cheapl(mat,blk,blkp)
 [nblk dum] = size(blk);
 [nr nc] = size(mat);
 new = [];
 for i=1:nblk
   new = [new ; mat(blkp(i,2):blkp(i+1,2)-1,1:nc)];
   if blk(i,2) ~= 0
     if blk(i,1) > blk(i,2)
       zer = zeros(blk(i,1)-blk(i,2),nc);
       new = [new ; zer];
     end
   end
 end
 [nr nc]=size(new);
 out =[];
 for i=1:nblk
   out = [out  new(1:nr,blkp(i,1):blkp(i+1,1)-1)];
   if blk(i,2) ~= 0
     if blk(i,2) > blk(i,1)
       zer = zeros(nr,blk(i,2)-blk(i,1));
       out = [out zer];
     end
   end
 end
 eigv=eig(out);
 lb = max(abs(eigv));
 if lb == 0
   disp(['LOWER BOUND FOR mu(M) is ZERO,']);
   disp(['  OFFENDING PERTURBATION IS VERY']);
   disp(['  LARGE TO INDICATE THIS']);
   fulpert = randel(blk,1e12);
   rowl = 0;
   for i=1:nblk
     if blk(i,2) == 0
       rowl = rowl + 1;
     else
       rowl = rowl + blk(i,1)*blk(i,2);
     end
   end
   rowp = 1e12*ones(1,rowl);
 else
   loc = find(lb==abs(eigv));
   llb = 1/eigv(loc(1));
   fulpert = [];
   rowp = [];
   for i=1:nblk
     if blk(i,2) == 0
       fulpert = daug(fulpert,(llb)*eye(blk(i,1)));
       rowp = [rowp llb];
     else
       tmp = (llb)*eye(blk(i,1),blk(i,2));
       fulpert = daug(fulpert,tmp);
       tmpp = reshape(tmp.',blk(i,1)*blk(i,2),1);
       rowp = [rowp tmpp.'];
     end
   end
 end
%
% Copyright MUSYN INC 1991,  All Rights Reserved
