home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 10 / 10.iso / l / l455 / 2.ddi / MUTOOLS2.DI$ / SPWR_1.M < prev    next >
Encoding:
Text File  |  1993-03-11  |  1.0 KB  |  44 lines

  1. %function [bw,az,beta,ec] = spwr_1(mat,nblk,blk,blkp,repp,fulp,bw)
  2. %    Performs one iteration of the lower bound power iteration when
  3. %    the block structure is all 1x1 blocks.  Special case of pounce.
  4.  
  5. function [bw,az,beta,ec] = spwr_1(mat,nblk,blk,blkp,repp,fulp,bw)
  6. %  disp(['in spwr_1'])
  7. %  bw
  8.   b = bw(:,1);  w = bw(:,2);
  9.   ec = 0;
  10.   a = mat * b;
  11.   beta1 = norm(a);
  12.   if beta1 < 1e-8
  13.     ec = 1;
  14.     return
  15.   end 
  16.   a = (1.0/beta1) * a;
  17.   den = abs(a);
  18.   if min(den) > 10*eps
  19.     z = abs(w) .* a./den;
  20.       else
  21.     aa = a + (den <= 10*eps);    % set phase of zero elements  
  22.     z = abs(w) .* aa./abs(aa);    % to pha()=1
  23.   end
  24.   w = mat' * z;
  25.   beta2 = norm(w);
  26.   if beta2 < 1e-8
  27.     ec = 2;
  28.     return
  29.   end
  30.   w = (1.0/beta2) * w;
  31.   den = abs(w);
  32.   if min(den) > 10*eps
  33.     b = abs(a) .* w ./ den;
  34.     else
  35.     ww = w + (den <= 10*eps);    % set den=1 for zero elements
  36.     b = abs(a) .* w ./ abs(ww);    % and thus b=0 
  37.   end
  38.   bw = [b w];
  39.   beta = [beta1 beta2];
  40.   az = [a z];
  41. % disp(['out spwr_1'])
  42. %
  43. % Copyright MUSYN INC 1991,  All Rights Reserved
  44.