⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rs.c

📁 InsightToolkit-1.4.0(有大量的优化算法程序)
💻 C
字号:
#include "f2c.h"
#include "netlib.h"

/* Subroutine */ void rs_(nm, n, a, w, matz, z, fv1, fv2, ierr)
const integer *nm, *n;
doublereal *a, *w;
const integer *matz;
doublereal *z, *fv1, *fv2;
integer *ierr;
{
/*     this subroutine calls the recommended sequence of                */
/*     subroutines from the eigensystem subroutine package (eispack)    */
/*     to find the eigenvalues and eigenvectors (if desired)            */
/*     of a real symmetric matrix.                                      */
/*                                                                      */
/*     on input                                                         */
/*                                                                      */
/*        nm  must be set to the row dimension of the two-dimensional   */
/*        array parameters as declared in the calling program           */
/*        dimension statement.                                          */
/*                                                                      */
/*        n  is the order of the matrix  a.                             */
/*                                                                      */
/*        a  contains the real symmetric matrix.                        */
/*                                                                      */
/*        matz  is an integer variable set equal to zero if             */
/*        only eigenvalues are desired.  otherwise it is set to         */
/*        any non-zero integer for both eigenvalues and eigenvectors.   */
/*                                                                      */
/*     on output                                                        */
/*                                                                      */
/*        w  contains the eigenvalues in ascending order.               */
/*                                                                      */
/*        z  contains the eigenvectors if matz is not zero.             */
/*                                                                      */
/*        ierr  is an integer output variable set equal to an error     */
/*           completion code described in the documentation for tqlrat  */
/*           and tql2.  the normal completion code is zero.             */
/*                                                                      */
/*        fv1  and  fv2  are temporary storage arrays.                  */
/*                                                                      */
/*     questions and comments should be directed to burton s. garbow,   */
/*     mathematics and computer science div, argonne national laboratory*/
/*                                                                      */
/*     this version dated august 1983.                                  */
/*                                                                      */
/*   ------------------------------------------------------------------ */

    if (*n > *nm) {
        *ierr = *n * 10;
        return;
    }
    if (*matz == 0) {
/*     .......... find eigenvalues only .......... */
        tred1_(nm, n, a, w, fv1, fv2);
/*  tqlrat encounters catastrophic underflow on the Vax */
        tql1_(n, w, fv1, ierr);
        return;
    }
/*     .......... find both eigenvalues and eigenvectors .......... */
    tred2_(nm, n, a, w, fv1, z);
    tql2_(nm, n, w, fv1, z, ierr);
    return;
} /* rs_ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -