Go to main content
Oracle Developer Studio 12.5 Man Pages

Exit Print View

Updated: June 2017
 
 

dgeev (3p)

Name

dgeev - ues and, optionally, the left and/or right eigenvectors

Synopsis

SUBROUTINE DGEEV(JOBVL, JOBVR, N, A, LDA, WR, WI, VL, LDVL, VR, LDVR,
WORK, LDWORK, INFO)

CHARACTER*1 JOBVL, JOBVR
INTEGER N, LDA, LDVL, LDVR, LDWORK, INFO
DOUBLE  PRECISION  A(LDA,*),  WR(*),  WI(*),  VL(LDVL,*),   VR(LDVR,*),
WORK(*)

SUBROUTINE DGEEV_64(JOBVL, JOBVR, N, A, LDA, WR, WI, VL, LDVL, VR,
LDVR, WORK, LDWORK, INFO)

CHARACTER*1 JOBVL, JOBVR
INTEGER*8 N, LDA, LDVL, LDVR, LDWORK, INFO
DOUBLE   PRECISION  A(LDA,*),  WR(*),  WI(*),  VL(LDVL,*),  VR(LDVR,*),
WORK(*)




F95 INTERFACE
SUBROUTINE GEEV(JOBVL, JOBVR, N, A, LDA, WR, WI, VL, LDVL, VR,
LDVR, WORK, LDWORK, INFO)

CHARACTER(LEN=1) :: JOBVL, JOBVR
INTEGER :: N, LDA, LDVL, LDVR, LDWORK, INFO
REAL(8), DIMENSION(:) :: WR, WI, WORK
REAL(8), DIMENSION(:,:) :: A, VL, VR

SUBROUTINE GEEV_64(JOBVL, JOBVR, N, A, LDA, WR, WI, VL, LDVL,
VR, LDVR, WORK, LDWORK, INFO)

CHARACTER(LEN=1) :: JOBVL, JOBVR
INTEGER(8) :: N, LDA, LDVL, LDVR, LDWORK, INFO
REAL(8), DIMENSION(:) :: WR, WI, WORK
REAL(8), DIMENSION(:,:) :: A, VL, VR




C INTERFACE
#include <sunperf.h>

void dgeev(char jobvl, char jobvr, int n, double *a,  int  lda,  double
*wr,  double *wi, double *vl, int ldvl, double *vr, int ldvr,
int *info);

void dgeev_64(char jobvl, char jobvr, long n, double *a, long lda, dou-
ble  *wr, double *wi, double *vl, long ldvl, double *vr, long
ldvr, long *info);

Description

Oracle Solaris Studio Performance Library                            dgeev(3P)



NAME
       dgeev - compute for an N-by-N real nonsymmetric matrix A, the eigenval-
       ues and, optionally, the left and/or right eigenvectors


SYNOPSIS
       SUBROUTINE DGEEV(JOBVL, JOBVR, N, A, LDA, WR, WI, VL, LDVL, VR, LDVR,
             WORK, LDWORK, INFO)

       CHARACTER*1 JOBVL, JOBVR
       INTEGER N, LDA, LDVL, LDVR, LDWORK, INFO
       DOUBLE  PRECISION  A(LDA,*),  WR(*),  WI(*),  VL(LDVL,*),   VR(LDVR,*),
       WORK(*)

       SUBROUTINE DGEEV_64(JOBVL, JOBVR, N, A, LDA, WR, WI, VL, LDVL, VR,
             LDVR, WORK, LDWORK, INFO)

       CHARACTER*1 JOBVL, JOBVR
       INTEGER*8 N, LDA, LDVL, LDVR, LDWORK, INFO
       DOUBLE   PRECISION  A(LDA,*),  WR(*),  WI(*),  VL(LDVL,*),  VR(LDVR,*),
       WORK(*)




   F95 INTERFACE
       SUBROUTINE GEEV(JOBVL, JOBVR, N, A, LDA, WR, WI, VL, LDVL, VR,
              LDVR, WORK, LDWORK, INFO)

       CHARACTER(LEN=1) :: JOBVL, JOBVR
       INTEGER :: N, LDA, LDVL, LDVR, LDWORK, INFO
       REAL(8), DIMENSION(:) :: WR, WI, WORK
       REAL(8), DIMENSION(:,:) :: A, VL, VR

       SUBROUTINE GEEV_64(JOBVL, JOBVR, N, A, LDA, WR, WI, VL, LDVL,
              VR, LDVR, WORK, LDWORK, INFO)

       CHARACTER(LEN=1) :: JOBVL, JOBVR
       INTEGER(8) :: N, LDA, LDVL, LDVR, LDWORK, INFO
       REAL(8), DIMENSION(:) :: WR, WI, WORK
       REAL(8), DIMENSION(:,:) :: A, VL, VR




   C INTERFACE
       #include <sunperf.h>

       void dgeev(char jobvl, char jobvr, int n, double *a,  int  lda,  double
                 *wr,  double *wi, double *vl, int ldvl, double *vr, int ldvr,
                 int *info);

       void dgeev_64(char jobvl, char jobvr, long n, double *a, long lda, dou-
                 ble  *wr, double *wi, double *vl, long ldvl, double *vr, long
                 ldvr, long *info);



PURPOSE
       dgeev computes for an N-by-N real nonsymmetric matrix A, the  eigenval-
       ues and, optionally, the left and/or right eigenvectors.

       The right eigenvector v(j) of A satisfies
                        A * v(j) = lambda(j) * v(j)
       where lambda(j) is its eigenvalue.
       The left eigenvector u(j) of A satisfies
                     u(j)**H * A = lambda(j) * u(j)**H
       where u(j)**H denotes the conjugate transpose of u(j).

       The  computed  eigenvectors are normalized to have Euclidean norm equal
       to 1 and largest component real.


ARGUMENTS
       JOBVL (input)
                 = 'N': left eigenvectors of A are not computed;
                 = 'V': left eigenvectors of A are computed.


       JOBVR (input)
                 = 'N': right eigenvectors of A are not computed;
                 = 'V': right eigenvectors of A are computed.


       N (input) The order of the matrix A. N >= 0.


       A (input/output)
                 On entry, the N-by-N matrix A.  On exit, A has been overwrit-
                 ten.


       LDA (input)
                 The leading dimension of the array A.  LDA >= max(1,N).


       WR (output)
                 WR and WI contain the real and imaginary parts, respectively,
                 of the computed eigenvalues.  Complex conjugate pairs of  ei-
                 genvalues appear consecutively with the eigenvalue having the
                 positive imaginary part first.


       WI (output)
                 See the description for WR.


       VL (output)
                 If JOBVL = 'V', the left eigenvectors  u(j)  are  stored  one
                 after  another  in  the  columns  of VL, in the same order as
                 their eigenvalues.  If JOBVL = 'N', VL is not referenced.  If
                 the  j-th  eigenvalue  is real, then u(j) = VL(:,j), the j-th
                 column of VL.  If the j-th and (j+1)-st  eigenvalues  form  a
                 complex conjugate pair, then u(j) = VL(:,j) + i*VL(:,j+1) and
                 u(j+1) = VL(:,j) - i*VL(:,j+1).


       LDVL (input)
                 The leading dimension of the array VL.  LDVL >= 1; if JOBVL =
                 'V', LDVL >= N.


       VR (output)
                 If  JOBVR  =  'V', the right eigenvectors v(j) are stored one
                 after another in the columns of VR,  in  the  same  order  as
                 their eigenvalues.  If JOBVR = 'N', VR is not referenced.  If
                 the j-th eigenvalue is real, then v(j) =  VR(:,j),  the  j-th
                 column  of  VR.   If the j-th and (j+1)-st eigenvalues form a
                 complex conjugate pair, then v(j) = VR(:,j) + i*VR(:,j+1) and
                 v(j+1) = VR(:,j) - i*VR(:,j+1).


       LDVR (input)
                 The leading dimension of the array VR.  LDVR >= 1; if JOBVR =
                 'V', LDVR >= N.


       WORK (workspace)
                 On exit, if INFO = 0, WORK(1) returns the optimal LDWORK.


       LDWORK (input)
                 The dimension of the array WORK.  LDWORK >=  max(1,3*N),  and
                 if  JOBVL = 'V' or JOBVR = 'V', LDWORK >= 4*N.  For good per-
                 formance, LDWORK must generally be larger.

                 If LDWORK = -1, then a workspace query is assumed;  the  rou-
                 tine  only  calculates  the  optimal  size of the WORK array,
                 returns this value as the first entry of the WORK array,  and
                 no error message related to LDWORK is issued by XERBLA.


       INFO (output)
                 = 0:  successful exit
                 < 0:  if INFO = -i, the i-th argument had an illegal value.
                 > 0:  if INFO = i, the QR algorithm failed to compute all the
                 eigenvalues, and no eigenvectors have been computed; elements
                 i+1:N  of WR and WI contain eigenvalues which have converged.




                                  7 Nov 2015                         dgeev(3P)