home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / eispack-1.0-src.tgz / tar.out / contrib / eispack / rebak.f < prev    next >
Text File  |  1996-09-28  |  2KB  |  64 lines

  1.       subroutine rebak(nm,n,b,dl,m,z)
  2. c
  3.       integer i,j,k,m,n,i1,ii,nm
  4.       double precision b(nm,n),dl(n),z(nm,m)
  5.       double precision x
  6. c
  7. c     this subroutine is a translation of the algol procedure rebaka,
  8. c     num. math. 11, 99-110(1968) by martin and wilkinson.
  9. c     handbook for auto. comp., vol.ii-linear algebra, 303-314(1971).
  10. c
  11. c     this subroutine forms the eigenvectors of a generalized
  12. c     symmetric eigensystem by back transforming those of the
  13. c     derived symmetric matrix determined by  reduc.
  14. c
  15. c     on input
  16. c
  17. c        nm must be set to the row dimension of two-dimensional
  18. c          array parameters as declared in the calling program
  19. c          dimension statement.
  20. c
  21. c        n is the order of the matrix system.
  22. c
  23. c        b contains information about the similarity transformation
  24. c          (cholesky decomposition) used in the reduction by  reduc
  25. c          in its strict lower triangle.
  26. c
  27. c        dl contains further information about the transformation.
  28. c
  29. c        m is the number of eigenvectors to be back transformed.
  30. c
  31. c        z contains the eigenvectors to be back transformed
  32. c          in its first m columns.
  33. c
  34. c     on output
  35. c
  36. c        z contains the transformed eigenvectors
  37. c          in its first m columns.
  38. c
  39. c     questions and comments should be directed to burton s. garbow,
  40. c     mathematics and computer science div, argonne national laboratory
  41. c
  42. c     this version dated august 1983.
  43. c
  44. c     ------------------------------------------------------------------
  45. c
  46.       if (m .eq. 0) go to 200
  47. c
  48.       do 100 j = 1, m
  49. c     .......... for i=n step -1 until 1 do -- ..........
  50.          do 100 ii = 1, n
  51.             i = n + 1 - ii
  52.             i1 = i + 1
  53.             x = z(i,j)
  54.             if (i .eq. n) go to 80
  55. c
  56.             do 60 k = i1, n
  57.    60       x = x - b(k,i) * z(k,j)
  58. c
  59.    80       z(i,j) = x / dl(i)
  60.   100 continue
  61. c
  62.   200 return
  63.       end
  64.