Doxygen Source Code Documentation
eis_rgg.c File Reference
#include "f2c.h"Go to the source code of this file.
Functions | |
| int | rgg_ (integer *nm, integer *n, doublereal *a, doublereal *b, doublereal *alfr, doublereal *alfi, doublereal *beta, integer *matz, doublereal *z__, integer *ierr) |
Variables | |
| doublereal | c_b5 = 0. |
Function Documentation
|
||||||||||||||||||||||||||||||||||||||||||||
|
Definition at line 12 of file eis_rgg.c. References a, c_b5, qzhes_(), qzit_(), qzval_(), and qzvec_().
00015 {
00016 /* System generated locals */
00017 integer a_dim1, a_offset, b_dim1, b_offset, z_dim1, z_offset;
00018
00019 /* Local variables */
00020 extern /* Subroutine */ int qzit_(integer *, integer *, doublereal *,
00021 doublereal *, doublereal *, logical *, doublereal *, integer *),
00022 qzvec_(integer *, integer *, doublereal *, doublereal *,
00023 doublereal *, doublereal *, doublereal *, doublereal *), qzhes_(
00024 integer *, integer *, doublereal *, doublereal *, logical *,
00025 doublereal *), qzval_(integer *, integer *, doublereal *,
00026 doublereal *, doublereal *, doublereal *, doublereal *, logical *,
00027 doublereal *);
00028 static logical tf;
00029
00030
00031
00032 /* THIS SUBROUTINE CALLS THE RECOMMENDED SEQUENCE OF */
00033 /* SUBROUTINES FROM THE EIGENSYSTEM SUBROUTINE PACKAGE (EISPACK) */
00034 /* TO FIND THE EIGENVALUES AND EIGENVECTORS (IF DESIRED) */
00035 /* FOR THE REAL GENERAL GENERALIZED EIGENPROBLEM AX = (LAMBDA)BX. */
00036
00037 /* ON INPUT */
00038
00039 /* NM MUST BE SET TO THE ROW DIMENSION OF THE TWO-DIMENSIONAL */
00040 /* ARRAY PARAMETERS AS DECLARED IN THE CALLING PROGRAM */
00041 /* DIMENSION STATEMENT. */
00042
00043 /* N IS THE ORDER OF THE MATRICES A AND B. */
00044
00045 /* A CONTAINS A REAL GENERAL MATRIX. */
00046
00047 /* B CONTAINS A REAL GENERAL MATRIX. */
00048
00049 /* MATZ IS AN INTEGER VARIABLE SET EQUAL TO ZERO IF */
00050 /* ONLY EIGENVALUES ARE DESIRED. OTHERWISE IT IS SET TO */
00051 /* ANY NON-ZERO INTEGER FOR BOTH EIGENVALUES AND EIGENVECTORS. */
00052
00053 /* ON OUTPUT */
00054
00055 /* ALFR AND ALFI CONTAIN THE REAL AND IMAGINARY PARTS, */
00056 /* RESPECTIVELY, OF THE NUMERATORS OF THE EIGENVALUES. */
00057
00058 /* BETA CONTAINS THE DENOMINATORS OF THE EIGENVALUES, */
00059 /* WHICH ARE THUS GIVEN BY THE RATIOS (ALFR+I*ALFI)/BETA. */
00060 /* COMPLEX CONJUGATE PAIRS OF EIGENVALUES APPEAR CONSECUTIVELY */
00061 /* WITH THE EIGENVALUE HAVING THE POSITIVE IMAGINARY PART FIRST. */
00062
00063 /* Z CONTAINS THE REAL AND IMAGINARY PARTS OF THE EIGENVECTORS */
00064 /* IF MATZ IS NOT ZERO. IF THE J-TH EIGENVALUE IS REAL, THE */
00065 /* J-TH COLUMN OF Z CONTAINS ITS EIGENVECTOR. IF THE J-TH */
00066 /* EIGENVALUE IS COMPLEX WITH POSITIVE IMAGINARY PART, THE */
00067 /* J-TH AND (J+1)-TH COLUMNS OF Z CONTAIN THE REAL AND */
00068 /* IMAGINARY PARTS OF ITS EIGENVECTOR. THE CONJUGATE OF THIS */
00069 /* VECTOR IS THE EIGENVECTOR FOR THE CONJUGATE EIGENVALUE. */
00070
00071 /* IERR IS AN INTEGER OUTPUT VARIABLE SET EQUAL TO AN ERROR */
00072 /* COMPLETION CODE DESCRIBED IN THE DOCUMENTATION FOR QZIT. */
00073 /* THE NORMAL COMPLETION CODE IS ZERO. */
00074
00075 /* QUESTIONS AND COMMENTS SHOULD BE DIRECTED TO BURTON S. GARBOW, */
00076 /* MATHEMATICS AND COMPUTER SCIENCE DIV, ARGONNE NATIONAL LABORATORY
00077 */
00078
00079 /* THIS VERSION DATED AUGUST 1983. */
00080
00081 /* ------------------------------------------------------------------
00082 */
00083
00084 /* Parameter adjustments */
00085 z_dim1 = *nm;
00086 z_offset = z_dim1 + 1;
00087 z__ -= z_offset;
00088 --beta;
00089 --alfi;
00090 --alfr;
00091 b_dim1 = *nm;
00092 b_offset = b_dim1 + 1;
00093 b -= b_offset;
00094 a_dim1 = *nm;
00095 a_offset = a_dim1 + 1;
00096 a -= a_offset;
00097
00098 /* Function Body */
00099 if (*n <= *nm) {
00100 goto L10;
00101 }
00102 *ierr = *n * 10;
00103 goto L50;
00104
00105 L10:
00106 if (*matz != 0) {
00107 goto L20;
00108 }
00109 /* .......... FIND EIGENVALUES ONLY .......... */
00110 tf = FALSE_;
00111 qzhes_(nm, n, &a[a_offset], &b[b_offset], &tf, &z__[z_offset]);
00112 qzit_(nm, n, &a[a_offset], &b[b_offset], &c_b5, &tf, &z__[z_offset], ierr)
00113 ;
00114 qzval_(nm, n, &a[a_offset], &b[b_offset], &alfr[1], &alfi[1], &beta[1], &
00115 tf, &z__[z_offset]);
00116 goto L50;
00117 /* .......... FIND BOTH EIGENVALUES AND EIGENVECTORS .......... */
00118 L20:
00119 tf = TRUE_;
00120 qzhes_(nm, n, &a[a_offset], &b[b_offset], &tf, &z__[z_offset]);
00121 qzit_(nm, n, &a[a_offset], &b[b_offset], &c_b5, &tf, &z__[z_offset], ierr)
00122 ;
00123 qzval_(nm, n, &a[a_offset], &b[b_offset], &alfr[1], &alfi[1], &beta[1], &
00124 tf, &z__[z_offset]);
00125 if (*ierr != 0) {
00126 goto L50;
00127 }
00128 qzvec_(nm, n, &a[a_offset], &b[b_offset], &alfr[1], &alfi[1], &beta[1], &
00129 z__[z_offset]);
00130 L50:
00131 return 0;
00132 } /* rgg_ */
|
Variable Documentation
|
|
Definition at line 10 of file eis_rgg.c. Referenced by rgg_(). |