Go to main content
Oracle Developer Studio 12.5 Man Pages

Exit Print View

Updated: June 2017
 
 

claed0 (3p)

Name

claed0 - compute all eigenvalues and corresponding eigenvectors of an unreduced symmetric tridiagonal matrix using the divide and conquer method. Used by cstedc

Synopsis

SUBROUTINE  CLAED0(QSIZ,  N,  D, E, Q, LDQ, QSTORE, LDQS, RWORK, IWORK,
INFO)


INTEGER INFO, LDQ, LDQS, N, QSIZ

INTEGER IWORK(*)

REAL D(*), E(*), RWORK(*)

COMPLEX Q(LDQ,*), QSTORE(LDQS,*)


SUBROUTINE CLAED0_64(QSIZ, N, D, E, Q, LDQ, QSTORE, LDQS, RWORK, IWORK,
INFO)


INTEGER*8 INFO, LDQ, LDQS, N, QSIZ

INTEGER*8 IWORK(*)

REAL D(*), E(*), RWORK(*)

COMPLEX Q(LDQ,*), QSTORE(LDQS,*)


F95 INTERFACE
SUBROUTINE  LAED0(QSIZ,  N,  D,  E, Q, LDQ, QSTORE, LDQS, RWORK, IWORK,
INFO)


INTEGER :: QSIZ, N, LDQ, LDQS, INFO

INTEGER, DIMENSION(:) :: IWORK

REAL, DIMENSION(:) :: D, E, RWORK

COMPLEX, DIMENSION(:,:) :: Q, QSTORE


SUBROUTINE LAED0_64(QSIZ, N, D, E, Q, LDQ, QSTORE, LDQS, RWORK,  IWORK,
INFO)


INTEGER(8) :: QSIZ, N, LDQ, LDQS, INFO

INTEGER(8), DIMENSION(:) :: IWORK

REAL, DIMENSION(:) :: D, E, RWORK

COMPLEX, DIMENSION(:,:) :: Q, QSTORE


C INTERFACE
#include <sunperf.h>

void  claed0 (int qsiz, int n, float *d, float *e, floatcomplex *q, int
ldq, floatcomplex *qstore, int ldqs, int *info);


void claed0_64 (long qsiz, long n, float *d, float *e, floatcomplex *q,
long ldq, floatcomplex *qstore, long ldqs, long *info);

Description

Oracle Solaris Studio Performance Library                           claed0(3P)



NAME
       claed0  -  compute all eigenvalues and corresponding eigenvectors of an
       unreduced symmetric tridiagonal matrix using  the  divide  and  conquer
       method. Used by cstedc


SYNOPSIS
       SUBROUTINE  CLAED0(QSIZ,  N,  D, E, Q, LDQ, QSTORE, LDQS, RWORK, IWORK,
                 INFO)


       INTEGER INFO, LDQ, LDQS, N, QSIZ

       INTEGER IWORK(*)

       REAL D(*), E(*), RWORK(*)

       COMPLEX Q(LDQ,*), QSTORE(LDQS,*)


       SUBROUTINE CLAED0_64(QSIZ, N, D, E, Q, LDQ, QSTORE, LDQS, RWORK, IWORK,
                 INFO)


       INTEGER*8 INFO, LDQ, LDQS, N, QSIZ

       INTEGER*8 IWORK(*)

       REAL D(*), E(*), RWORK(*)

       COMPLEX Q(LDQ,*), QSTORE(LDQS,*)


   F95 INTERFACE
       SUBROUTINE  LAED0(QSIZ,  N,  D,  E, Q, LDQ, QSTORE, LDQS, RWORK, IWORK,
                 INFO)


       INTEGER :: QSIZ, N, LDQ, LDQS, INFO

       INTEGER, DIMENSION(:) :: IWORK

       REAL, DIMENSION(:) :: D, E, RWORK

       COMPLEX, DIMENSION(:,:) :: Q, QSTORE


       SUBROUTINE LAED0_64(QSIZ, N, D, E, Q, LDQ, QSTORE, LDQS, RWORK,  IWORK,
                 INFO)


       INTEGER(8) :: QSIZ, N, LDQ, LDQS, INFO

       INTEGER(8), DIMENSION(:) :: IWORK

       REAL, DIMENSION(:) :: D, E, RWORK

       COMPLEX, DIMENSION(:,:) :: Q, QSTORE


   C INTERFACE
       #include <sunperf.h>

       void  claed0 (int qsiz, int n, float *d, float *e, floatcomplex *q, int
                 ldq, floatcomplex *qstore, int ldqs, int *info);


       void claed0_64 (long qsiz, long n, float *d, float *e, floatcomplex *q,
                 long ldq, floatcomplex *qstore, long ldqs, long *info);


PURPOSE
       Using the divide and conquer method, claed0 computes all eigenvalues of
       a symmetric tridiagonal matrix which is one  diagonal  block  of  those
       from reducing a dense or band Hermitian matrix and corresponding eigen-
       vectors of the dense or band matrix.


ARGUMENTS
       QSIZ (input)
                 QSIZ is INTEGER
                 The dimension of the unitary matrix used to reduce  the  full
                 matrix to tridiagonal form.  QSIZ >= N if ICOMPQ = 1.


       N (input)
                 N is INTEGER
                 The dimension of the symmetric tridiagonal matrix.  N >= 0.


       D (input/output)
                 D is REAL array, dimension (N)
                 On entry, the diagonal elements of the tridiagonal matrix.
                 On exit, the eigenvalues in ascending order.


       E (input/output)
                 E is REAL array, dimension (N-1)
                 On  entry,  the  off-diagonal  elements  of  the  tridiagonal
                 matrix.
                 On exit, E has been destroyed.


       Q (input/output)
                 Q is COMPLEX array, dimension (LDQ,N)
                 On entry, Q must contain an QSIZ x  N  matrix  whose  columns
                 unitarily  orthonormal.  It  is  a part of the unitary matrix
                 that reduces the full dense Hermitian matrix to a (reducible)
                 symmetric tridiagonal matrix.


       LDQ (input)
                 LDQ is INTEGER
                 The leading dimension of the array Q.
                 LDQ >= max(1,N).


       IWORK (output)
                 IWORK is INTEGER array,
                 the dimension of IWORK must be at least
                    6 + 6*N + 5*N*lg N
                    ( lg( N ) = smallest integer k
                                such that 2^k >= N )


       RWORK (output)
                 RWORK is REAL array,
                 dimension (1 + 3*N + 2*N*lg N + 3*N**2)
                    ( lg( N ) = smallest integer k
                                such that 2^k >= N )


       QSTORE (output)
                 QSTORE is COMPLEX array, dimension (LDQS, N)
                 Used to store parts of the eigenvector matrix when the updat-
                 ing matrix multiplies take place.


       LDQS (input)
                 LDQS is INTEGER
                 The leading dimension of the array QSTORE.
                 LDQS >= max(1,N).


       INFO (output)
                 INFO is INTEGER
                 = 0:  successful exit.
                 < 0:  if INFO = -i, the i-th argument had an illegal value.
                 > 0:  The algorithm failed to  compute  an  eigenvalue  while
                 working on the submatrix lying in rows and columns INFO/(N+1)
                 through mod(INFO,N+1).




                                  7 Nov 2015                        claed0(3P)