dlaed9 - is used by sstedc. Find the roots of the secular equation and updates the eigenvectors. Used when the original matrix is dense
SUBROUTINE DLAED9( K, KSTART, KSTOP, N, D, Q, LDQ, RHO, DLAMDA, W, S, LDS, INFO ) INTEGER INFO, K, KSTART, KSTOP, LDQ, LDS, N DOUBLE PRECISION RHO DOUBLE PRECISION D(*),DLAMDA(*), Q(LDQ,*), S(LDS,*), W(*) SUBROUTINE DLAED9_64( K, KSTART, KSTOP, N, D, Q, LDQ, RHO, DLAMDA, W, S, LDS, INFO ) INTEGER*8 INFO, K, KSTART, KSTOP, LDQ, LDS, N DOUBLE PRECISION RHO DOUBLE PRECISION D(*),DLAMDA(*), Q(LDQ,*), S(LDS,*), W(*) F95 INTERFACE SUBROUTINE LAED9( K, KSTART, KSTOP, N, D, Q, LDQ, RHO, DLAMDA, W, S, LDS, INFO ) INTEGER :: K, KSTART, KSTOP, N, LDQ, LDS, INFO REAL(8), DIMENSION(:,:) :: Q, S REAL(8), DIMENSION(:) :: D, DLAMDA, W REAL(8) :: RHO SUBROUTINE LAED9_64( K, KSTART, KSTOP, N, D, Q, LDQ, RHO, DLAMDA, W, S, LDS, INFO ) INTEGER(8) :: K, KSTART, KSTOP, N, LDQ, LDS, INFO REAL(8), DIMENSION(:,:) :: Q, S REAL(8), DIMENSION(:) :: D, DLAMDA, W REAL(8) :: RHO C INTERFACE #include <sunperf.h> void dlaed9 (int k, int kstart, int kstop, int n, double *d, double *q, int ldq, double rho, double *dlamda, double *w, double *s, int lds, int *info); void dlaed9_64 (long k, long kstart, long kstop, long n, double *d, double *q, long ldq, double rho, double *dlamda, double *w, double *s, long lds, long *info);
Oracle Solaris Studio Performance Library dlaed9(3P)
NAME
dlaed9 - is used by sstedc. Find the roots of the secular equation and
updates the eigenvectors. Used when the original matrix is dense
SYNOPSIS
SUBROUTINE DLAED9( K, KSTART, KSTOP, N, D, Q, LDQ, RHO, DLAMDA, W, S,
LDS, INFO )
INTEGER INFO, K, KSTART, KSTOP, LDQ, LDS, N
DOUBLE PRECISION RHO
DOUBLE PRECISION D(*),DLAMDA(*), Q(LDQ,*), S(LDS,*), W(*)
SUBROUTINE DLAED9_64( K, KSTART, KSTOP, N, D, Q, LDQ, RHO, DLAMDA, W,
S, LDS, INFO )
INTEGER*8 INFO, K, KSTART, KSTOP, LDQ, LDS, N
DOUBLE PRECISION RHO
DOUBLE PRECISION D(*),DLAMDA(*), Q(LDQ,*), S(LDS,*), W(*)
F95 INTERFACE
SUBROUTINE LAED9( K, KSTART, KSTOP, N, D, Q, LDQ, RHO, DLAMDA, W, S,
LDS, INFO )
INTEGER :: K, KSTART, KSTOP, N, LDQ, LDS, INFO
REAL(8), DIMENSION(:,:) :: Q, S
REAL(8), DIMENSION(:) :: D, DLAMDA, W
REAL(8) :: RHO
SUBROUTINE LAED9_64( K, KSTART, KSTOP, N, D, Q, LDQ, RHO, DLAMDA, W, S,
LDS, INFO )
INTEGER(8) :: K, KSTART, KSTOP, N, LDQ, LDS, INFO
REAL(8), DIMENSION(:,:) :: Q, S
REAL(8), DIMENSION(:) :: D, DLAMDA, W
REAL(8) :: RHO
C INTERFACE
#include <sunperf.h>
void dlaed9 (int k, int kstart, int kstop, int n, double *d, double *q,
int ldq, double rho, double *dlamda, double *w, double *s,
int lds, int *info);
void dlaed9_64 (long k, long kstart, long kstop, long n, double *d,
double *q, long ldq, double rho, double *dlamda, double *w,
double *s, long lds, long *info);
PURPOSE
dlaed9 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 DLAED4 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
DLAED4. 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 DOUBLE PRECISION array, dimension (N)
D(I) contains the updated eigenvalues
for KSTART <= I <= KSTOP.
Q (output)
Q is DOUBLE PRECISION array, dimension (LDQ,N)
LDQ (input)
LDQ is INTEGER
The leading dimension of the array Q. LDQ >= max( 1, N ).
RHO (input)
RHO is DOUBLE PRECISION
The value of the parameter in the rank one update equation.
RHO >= 0 required.
DLAMDA (input)
DLAMDA is DOUBLE PRECISION 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 DOUBLE PRECISION array, dimension (K)
The first K elements of this array contain the components
of the deflation-adjusted updating vector.
S (output)
S is DOUBLE PRECISION 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 dlaed9(3P)