slaed9 - is used by sstedc. Find the roots of the secular equation and updates the eigenvectors. Used when the original matrix is dense
SUBROUTINE SLAED9( K, KSTART, KSTOP, N, D, Q, LDQ, RHO, DLAMDA, W, S, LDS, INFO ) INTEGER INFO, K, KSTART, KSTOP, LDQ, LDS, N REAL RHO REAL D(*),DLAMDA(*), Q(LDQ,*), S(LDS,*), W(*) SUBROUTINE SLAED9_64( K, KSTART, KSTOP, N, D, Q, LDQ, RHO, DLAMDA, W, S, LDS, INFO ) INTEGER*8 INFO, K, KSTART, KSTOP, LDQ, LDS, N REAL RHO REAL D(*),DLAMDA(*), Q(LDQ,*), S(LDS,*), W(*) F95 INTERFACE SUBROUTINE LAED9( K, KSTART, KSTOP, N, D, Q, LDQ, RHO, DLAMDA, W, S, LDS, INFO ) REAL, DIMENSION(:,:) :: Q, S INTEGER :: K, KSTART, KSTOP, N, LDQ, LDS, INFO REAL, DIMENSION(:) :: D, DLAMDA, W REAL :: RHO SUBROUTINE LAED9_64( K, KSTART, KSTOP, N, D, Q, LDQ, RHO, DLAMDA, W, S, LDS, INFO ) REAL, DIMENSION(:,:) :: Q, S INTEGER(8) :: K, KSTART, KSTOP, N, LDQ, LDS, INFO REAL, DIMENSION(:) :: D, DLAMDA, W REAL :: RHO C INTERFACE #include <sunperf.h> void slaed9 (int k, int kstart, int kstop, int n, float *d, float *q, int ldq, float rho, float *dlamda, float *w, float *s, int lds, int *info); void slaed9_64 (long k, long kstart, long kstop, long n, float *d, float *q, long ldq, float rho, float *dlamda, float *w, float *s, long lds, long *info);
Oracle Solaris Studio Performance Library slaed9(3P) NAME slaed9 - is used by sstedc. Find the roots of the secular equation and updates the eigenvectors. Used when the original matrix is dense SYNOPSIS SUBROUTINE SLAED9( K, KSTART, KSTOP, N, D, Q, LDQ, RHO, DLAMDA, W, S, LDS, INFO ) INTEGER INFO, K, KSTART, KSTOP, LDQ, LDS, N REAL RHO REAL D(*),DLAMDA(*), Q(LDQ,*), S(LDS,*), W(*) SUBROUTINE SLAED9_64( K, KSTART, KSTOP, N, D, Q, LDQ, RHO, DLAMDA, W, S, LDS, INFO ) INTEGER*8 INFO, K, KSTART, KSTOP, LDQ, LDS, N REAL RHO REAL D(*),DLAMDA(*), Q(LDQ,*), S(LDS,*), W(*) F95 INTERFACE SUBROUTINE LAED9( K, KSTART, KSTOP, N, D, Q, LDQ, RHO, DLAMDA, W, S, LDS, INFO ) REAL, DIMENSION(:,:) :: Q, S INTEGER :: K, KSTART, KSTOP, N, LDQ, LDS, INFO REAL, DIMENSION(:) :: D, DLAMDA, W REAL :: RHO SUBROUTINE LAED9_64( K, KSTART, KSTOP, N, D, Q, LDQ, RHO, DLAMDA, W, S, LDS, INFO ) REAL, DIMENSION(:,:) :: Q, S INTEGER(8) :: K, KSTART, KSTOP, N, LDQ, LDS, INFO REAL, DIMENSION(:) :: D, DLAMDA, W REAL :: RHO C INTERFACE #include <sunperf.h> void slaed9 (int k, int kstart, int kstop, int n, float *d, float *q, int ldq, float rho, float *dlamda, float *w, float *s, int lds, int *info); void slaed9_64 (long k, long kstart, long kstop, long n, float *d, float *q, long ldq, float rho, float *dlamda, float *w, float *s, long lds, long *info); PURPOSE slaed9 finds the roots of the secular equation, as defined by the val- ues in D, Z, and RHO, between KSTART and KSTOP. It makes the appropri- ate calls to SLAED4 and then stores the new matrix of eigenvectors for use in calculating the next level of Z vectors. ARGUMENTS K (input) K is INTEGER The number of terms in the rational function to be solved by SLAED4. K >= 0. KSTART (input) KSTART is INTEGER KSTOP (input) KSTOP is INTEGER The updated eigenvalues Lambda(I), KSTART <= I <= KSTOP are to be computed. 1 <= KSTART <= KSTOP <= K. N (input) N is INTEGER The number of rows and columns in the Q matrix. N >= K (delation may result in N > K). D (output) D is REAL array, dimension (N) D(I) contains the updated eigenvalues for KSTART <= I <= KSTOP. Q (output) Q is REAL array, dimension (LDQ,N) LDQ (input) LDQ is INTEGER The leading dimension of the array Q. LDQ >= max( 1, N ). RHO (input) RHO is REAL The value of the parameter in the rank one update equation. RHO >= 0 required. DLAMDA (input) DLAMDA is REAL array, dimension (K) The first K elements of this array contain the old roots of the deflated updating problem. These are the poles of the secular equation. W (input) W is REAL array, dimension (K) The first K elements of this array contain the components of the deflation-adjusted updating vector. S (output) S is REAL array, dimension (LDS, K) Will contain the eigenvectors of the repaired matrix which will be stored for subsequent Z vector calculation and multiplied by the previously accumulated eigenvectors to update the system. LDS (input) LDS is INTEGER The leading dimension of S. LDS >= max( 1, K ). INFO (output) INFO is INTEGER = 0: successful exit. < 0: if INFO = -i, the i-th argument had an illegal value. > 0: if INFO = 1, an eigenvalue did not converge 7 Nov 2015 slaed9(3P)