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_rebakb.c

Go to the documentation of this file.
00001 /* rebakb.f -- translated by f2c (version 19961017).
00002    You must link the resulting object file with the libraries:
00003         -lf2c -lm   (in that order)
00004 */
00005 
00006 #include "f2c.h"
00007 
00008 /* Subroutine */ int rebakb_(integer *nm, integer *n, doublereal *b, 
00009         doublereal *dl, integer *m, doublereal *z__)
00010 {
00011     /* System generated locals */
00012     integer b_dim1, b_offset, z_dim1, z_offset, i__1, i__2, i__3;
00013 
00014     /* Local variables */
00015     static integer i__, j, k;
00016     static doublereal x;
00017     static integer i1, ii;
00018 
00019 
00020 
00021 /*     THIS SUBROUTINE IS A TRANSLATION OF THE ALGOL PROCEDURE REBAKB, */
00022 /*     NUM. MATH. 11, 99-110(1968) BY MARTIN AND WILKINSON. */
00023 /*     HANDBOOK FOR AUTO. COMP., VOL.II-LINEAR ALGEBRA, 303-314(1971). */
00024 
00025 /*     THIS SUBROUTINE FORMS THE EIGENVECTORS OF A GENERALIZED */
00026 /*     SYMMETRIC EIGENSYSTEM BY BACK TRANSFORMING THOSE OF THE */
00027 /*     DERIVED SYMMETRIC MATRIX DETERMINED BY  REDUC2. */
00028 
00029 /*     ON INPUT */
00030 
00031 /*        NM MUST BE SET TO THE ROW DIMENSION OF TWO-DIMENSIONAL */
00032 /*          ARRAY PARAMETERS AS DECLARED IN THE CALLING PROGRAM */
00033 /*          DIMENSION STATEMENT. */
00034 
00035 /*        N IS THE ORDER OF THE MATRIX SYSTEM. */
00036 
00037 /*        B CONTAINS INFORMATION ABOUT THE SIMILARITY TRANSFORMATION */
00038 /*          (CHOLESKY DECOMPOSITION) USED IN THE REDUCTION BY  REDUC2 */
00039 /*          IN ITS STRICT LOWER TRIANGLE. */
00040 
00041 /*        DL CONTAINS FURTHER INFORMATION ABOUT THE TRANSFORMATION. */
00042 
00043 /*        M IS THE NUMBER OF EIGENVECTORS TO BE BACK TRANSFORMED. */
00044 
00045 /*        Z CONTAINS THE EIGENVECTORS TO BE BACK TRANSFORMED */
00046 /*          IN ITS FIRST M COLUMNS. */
00047 
00048 /*     ON OUTPUT */
00049 
00050 /*        Z CONTAINS THE TRANSFORMED EIGENVECTORS */
00051 /*          IN ITS FIRST M COLUMNS. */
00052 
00053 /*     QUESTIONS AND COMMENTS SHOULD BE DIRECTED TO BURTON S. GARBOW, */
00054 /*     MATHEMATICS AND COMPUTER SCIENCE DIV, ARGONNE NATIONAL LABORATORY 
00055 */
00056 
00057 /*     THIS VERSION DATED AUGUST 1983. */
00058 
00059 /*     ------------------------------------------------------------------ 
00060 */
00061 
00062     /* Parameter adjustments */
00063     --dl;
00064     b_dim1 = *nm;
00065     b_offset = b_dim1 + 1;
00066     b -= b_offset;
00067     z_dim1 = *nm;
00068     z_offset = z_dim1 + 1;
00069     z__ -= z_offset;
00070 
00071     /* Function Body */
00072     if (*m == 0) {
00073         goto L200;
00074     }
00075 
00076     i__1 = *m;
00077     for (j = 1; j <= i__1; ++j) {
00078 /*     .......... FOR I=N STEP -1 UNTIL 1 DO -- .......... */
00079         i__2 = *n;
00080         for (ii = 1; ii <= i__2; ++ii) {
00081             i1 = *n - ii;
00082             i__ = i1 + 1;
00083             x = dl[i__] * z__[i__ + j * z_dim1];
00084             if (i__ == 1) {
00085                 goto L80;
00086             }
00087 
00088             i__3 = i1;
00089             for (k = 1; k <= i__3; ++k) {
00090 /* L60: */
00091                 x += b[i__ + k * b_dim1] * z__[k + j * z_dim1];
00092             }
00093 
00094 L80:
00095             z__[i__ + j * z_dim1] = x;
00096 /* L100: */
00097         }
00098     }
00099 
00100 L200:
00101     return 0;
00102 } /* rebakb_ */
00103 
 

Powered by Plone

This site conforms to the following standards: