Go to main content
Oracle Developer Studio 12.5 Man Pages

Exit Print View

Updated: June 2017
 
 

ddisna (3p)

Name

ddisna - compute the reciprocal condition numbers for the eigenvectors of a real symmetric or complex Hermitian matrix or for the left or right singular vectors of a general m-by-n matrix

Synopsis

SUBROUTINE DDISNA(JOB, M, N, D, SEP, INFO)

CHARACTER*1 JOB
INTEGER M, N, INFO
DOUBLE PRECISION D(*), SEP(*)

SUBROUTINE DDISNA_64(JOB, M, N, D, SEP, INFO)

CHARACTER*1 JOB
INTEGER*8 M, N, INFO
DOUBLE PRECISION D(*), SEP(*)




F95 INTERFACE
SUBROUTINE DISNA(JOB, M, N, D, SEP, INFO)

CHARACTER(LEN=1) :: JOB
INTEGER :: M, N, INFO
REAL(8), DIMENSION(:) :: D, SEP

SUBROUTINE DISNA_64(JOB, M, N, D, SEP, INFO)

CHARACTER(LEN=1) :: JOB
INTEGER(8) :: M, N, INFO
REAL(8), DIMENSION(:) :: D, SEP




C INTERFACE
#include <sunperf.h>

void ddisna(char job, int m, int n, double *d, double *sep, int *info);

void ddisna_64(char job, long m, long n, double *d, double  *sep,  long
*info);

Description

Oracle Solaris Studio Performance Library                           ddisna(3P)



NAME
       ddisna  - compute the reciprocal condition numbers for the eigenvectors
       of a real symmetric or complex Hermitian matrix  or  for  the  left  or
       right singular vectors of a general m-by-n matrix


SYNOPSIS
       SUBROUTINE DDISNA(JOB, M, N, D, SEP, INFO)

       CHARACTER*1 JOB
       INTEGER M, N, INFO
       DOUBLE PRECISION D(*), SEP(*)

       SUBROUTINE DDISNA_64(JOB, M, N, D, SEP, INFO)

       CHARACTER*1 JOB
       INTEGER*8 M, N, INFO
       DOUBLE PRECISION D(*), SEP(*)




   F95 INTERFACE
       SUBROUTINE DISNA(JOB, M, N, D, SEP, INFO)

       CHARACTER(LEN=1) :: JOB
       INTEGER :: M, N, INFO
       REAL(8), DIMENSION(:) :: D, SEP

       SUBROUTINE DISNA_64(JOB, M, N, D, SEP, INFO)

       CHARACTER(LEN=1) :: JOB
       INTEGER(8) :: M, N, INFO
       REAL(8), DIMENSION(:) :: D, SEP




   C INTERFACE
       #include <sunperf.h>

       void ddisna(char job, int m, int n, double *d, double *sep, int *info);

       void ddisna_64(char job, long m, long n, double *d, double  *sep,  long
                 *info);



PURPOSE
       ddisna  computes  the reciprocal condition numbers for the eigenvectors
       of a real symmetric or complex Hermitian matrix  or  for  the  left  or
       right  singular vectors of a general m-by-n matrix. The reciprocal con-
       dition number is the 'gap' between the corresponding eigenvalue or sin-
       gular value and the nearest other one.

       The  bound on the error, measured by angle in radians, in the I-th com-
       puted vector is given by

              DLAMCH( 'E' ) * ( ANORM / SEP( I ) )

       where ANORM = 2-norm(A) = max( abs( D(j) ) ).  SEP(I) is not allowed to
       be  smaller  than DLAMCH( 'E' )*ANORM in order to limit the size of the
       error bound.

       SDISNA may also be used to compute error bounds for eigenvectors of the
       generalized symmetric definite eigenproblem.


ARGUMENTS
       JOB (input)
                 Specifies  for which problem the reciprocal condition numbers
                 should be computed:
                 = 'E':  the eigenvectors of a symmetric/Hermitian matrix;
                 = 'L':  the left singular vectors of a general matrix;
                 = 'R':  the right singular vectors of a general matrix.


       M (input) The number of rows of the matrix. M >= 0.


       N (input) If JOB = 'L' or 'R', the number of columns of the matrix,  in
                 which case N >= 0. Ignored if JOB = 'E'.


       D (input) dimension  (min(M,N)) if JOB = 'L' or 'R' The eigenvalues (if
                 JOB = 'E') or singular values (if JOB = 'L' or  'R')  of  the
                 matrix, in either increasing or decreasing order. If singular
                 values, they must be non-negative.


       SEP (output)
                 dimension (min(M,N)) if JOB = 'L' or 'R' The reciprocal  con-
                 dition numbers of the vectors.


       INFO (output)
                 = 0:  successful exit.
                 < 0:  if INFO = -i, the i-th argument had an illegal value.




                                  7 Nov 2015                        ddisna(3P)