[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Svdc_complex






Hi all,
    if somebody wants to test this I send the procedure to calculate the
singular value of a complex matrix.



pro svdc_complex, M, Ew2, Eu2, Ev2

  xdim=(size(M))(1)
  ydim=(size(M))(2)
  Ew2=complexarr(xdim)
  Eu2=complexarr(xdim,ydim)
  Ev2=complexarr(xdim,ydim)
  M2=dblarr(2*xdim,2*ydim)
  M2(0:xdim-1,0:ydim-1)=double(M)
  M2(xdim:2*xdim-1,0:ydim-1)=-imaginary(M)
  M2(0:xdim-1,ydim:2*ydim-1)=imaginary(M)
  M2(xdim:2*xdim-1,ydim:2*ydim-1)=double(M)
  catch, Error_status
  if Error_status ne 0 then begin
   ;   print, !err_string
      Minv=0.*transpose(M)
  end else begin
      svdc, m2,w,u,v,/double
      for i=0, xdim-1 do begin
          Ew2(i)=w(2*i)
          Eu2(i,*)=u(2*i,0:ydim-1)+dcomplex(0,1)*u(2*i,ydim:2*ydim-1)
          Ev2(i,*)=v(2*i,0:ydim-1)+dcomplex(0,1)*v(2*i,ydim:2*ydim-1)
     endfor
 end

end


Thanks all



                            Javier Sanchez Gonzalez