Previous: htribk Up: ../eispas.html Next: htridi
SUBROUTINE HTRID3(NM,N,A,D,E,E2,TAU) C INTEGER I,J,K,L,N,II,NM,JM1,JP1 REAL A(NM,N),D(N),E(N),E2(N),TAU(2,N) REAL F,G,H,FI,GI,HH,SI,SCALE,PYTHAG C C THIS SUBROUTINE IS A TRANSLATION OF A COMPLEX ANALOGUE OF C THE ALGOL PROCEDURE TRED3, NUM. MATH. 11, 181-195(1968) C BY MARTIN, REINSCH, AND WILKINSON. C HANDBOOK FOR AUTO. COMP., VOL.II-LINEAR ALGEBRA, 212-226(1971). C C THIS SUBROUTINE REDUCES A COMPLEX HERMITIAN MATRIX, STORED AS C A SINGLE SQUARE ARRAY, TO A REAL SYMMETRIC TRIDIAGONAL MATRIX C USING UNITARY SIMILARITY TRANSFORMATIONS. C C ON INPUT C C NM MUST BE SET TO THE ROW DIMENSION OF TWO-DIMENSIONAL C ARRAY PARAMETERS AS DECLARED IN THE CALLING PROGRAM C DIMENSION STATEMENT. C C N IS THE ORDER OF THE MATRIX. C C A CONTAINS THE LOWER TRIANGLE OF THE COMPLEX HERMITIAN INPUT C MATRIX. THE REAL PARTS OF THE MATRIX ELEMENTS ARE STORED C IN THE FULL LOWER TRIANGLE OF A, AND THE IMAGINARY PARTS C ARE STORED IN THE TRANSPOSED POSITIONS OF THE STRICT UPPER C TRIANGLE OF A. NO STORAGE IS REQUIRED FOR THE ZERO C IMAGINARY PARTS OF THE DIAGONAL ELEMENTS. C C ON OUTPUT C C A CONTAINS INFORMATION ABOUT THE UNITARY TRANSFORMATIONS C USED IN THE REDUCTION. C C D CONTAINS THE DIAGONAL ELEMENTS OF THE THE TRIDIAGONAL MATRIX. C C E CONTAINS THE SUBDIAGONAL ELEMENTS OF THE TRIDIAGONAL C MATRIX IN ITS LAST N-1 POSITIONS. E(1) IS SET TO ZERO. C C E2 CONTAINS THE SQUARES OF THE CORRESPONDING ELEMENTS OF E. C E2 MAY COINCIDE WITH E IF THE SQUARES ARE NOT NEEDED. C C TAU CONTAINS FURTHER INFORMATION ABOUT THE TRANSFORMATIONS. C C CALLS PYTHAG FOR SQRT(A*A + B*B) . C C QUESTIONS AND COMMENTS SHOULD BE DIRECTED TO BURTON S. GARBOW, C MATHEMATICS AND COMPUTER SCIENCE DIV, ARGONNE NATIONAL LABORATORY C C THIS VERSION DATED AUGUST 1983. C C ------------------------------------------------------------------ C