Skip to content

AFNI/NIfTI Server

Sections
Personal tools
You are here: Home » AFNI » Documentation

Doxygen Source Code Documentation


Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals   Search  

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

int rgg_ integer   nm,
integer   n,
doublereal   a,
doublereal   b,
doublereal   alfr,
doublereal   alfi,
doublereal   beta,
integer   matz,
doublereal   z__,
integer   ierr
 

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

doublereal c_b5 = 0. [static]
 

Definition at line 10 of file eis_rgg.c.

Referenced by rgg_().

 

Powered by Plone

This site conforms to the following standards: