Go to main content
Oracle Developer Studio 12.5 Man Pages

Exit Print View

Updated: June 2017
 
 

zheequb (3p)

Name

zheequb - compute row and column scalings intended to equilibrate a Hermitian matrix A and reduce its condition number (with respect to the two-norm)

Synopsis

SUBROUTINE ZHEEQUB(UPLO, N, A, LDA, S, SCOND, AMAX, WORK, INFO)


INTEGER INFO, LDA, N

DOUBLE PRECISION AMAX, SCOND

CHARACTER*1 UPLO

DOUBLE COMPLEX A(LDA,*), WORK(*)

DOUBLE PRECISION S(*)


SUBROUTINE ZHEEQUB_64(UPLO, N, A, LDA, S, SCOND, AMAX, WORK, INFO)


INTEGER*8 INFO, LDA, N

DOUBLE PRECISION AMAX, SCOND

CHARACTER*1 UPLO

DOUBLE COMPLEX A(LDA,*), WORK(*)

DOUBLE PRECISION S(*)


F95 INTERFACE
SUBROUTINE HEEQUB(UPLO, N, A, LDA, S, SCOND, AMAX, WORK, INFO)


INTEGER :: N, LDA, INFO

CHARACTER(LEN=1) :: UPLO

REAL(8), DIMENSION(:) :: S

COMPLEX(8), DIMENSION(:,:) :: A

COMPLEX(8), DIMENSION(:) :: WORK

REAL(8) :: SCOND, AMAX


SUBROUTINE HEEQUB_64(UPLO, N, A, LDA, S, SCOND, AMAX, WORK, INFO)


INTEGER(8) :: N, LDA, INFO

CHARACTER(LEN=1) :: UPLO

REAL(8), DIMENSION(:) :: S

COMPLEX(8), DIMENSION(:,:) :: A

COMPLEX(8), DIMENSION(:) :: WORK

REAL(8) :: SCOND, AMAX


C INTERFACE
#include <sunperf.h>

void  zheequb  (char uplo, int n, doublecomplex *a, int lda, double *s,
double *scond, double *amax, int *info);


void zheequb_64 (char uplo, long n, doublecomplex *a, long lda,  double
*s, double *scond, double *amax, long *info);

Description

Oracle Solaris Studio Performance Library                          zheequb(3P)



NAME
       zheequb  -  compute  row  and column scalings intended to equilibrate a
       Hermitian matrix A and reduce its condition number (with respect to the
       two-norm)


SYNOPSIS
       SUBROUTINE ZHEEQUB(UPLO, N, A, LDA, S, SCOND, AMAX, WORK, INFO)


       INTEGER INFO, LDA, N

       DOUBLE PRECISION AMAX, SCOND

       CHARACTER*1 UPLO

       DOUBLE COMPLEX A(LDA,*), WORK(*)

       DOUBLE PRECISION S(*)


       SUBROUTINE ZHEEQUB_64(UPLO, N, A, LDA, S, SCOND, AMAX, WORK, INFO)


       INTEGER*8 INFO, LDA, N

       DOUBLE PRECISION AMAX, SCOND

       CHARACTER*1 UPLO

       DOUBLE COMPLEX A(LDA,*), WORK(*)

       DOUBLE PRECISION S(*)


   F95 INTERFACE
       SUBROUTINE HEEQUB(UPLO, N, A, LDA, S, SCOND, AMAX, WORK, INFO)


       INTEGER :: N, LDA, INFO

       CHARACTER(LEN=1) :: UPLO

       REAL(8), DIMENSION(:) :: S

       COMPLEX(8), DIMENSION(:,:) :: A

       COMPLEX(8), DIMENSION(:) :: WORK

       REAL(8) :: SCOND, AMAX


       SUBROUTINE HEEQUB_64(UPLO, N, A, LDA, S, SCOND, AMAX, WORK, INFO)


       INTEGER(8) :: N, LDA, INFO

       CHARACTER(LEN=1) :: UPLO

       REAL(8), DIMENSION(:) :: S

       COMPLEX(8), DIMENSION(:,:) :: A

       COMPLEX(8), DIMENSION(:) :: WORK

       REAL(8) :: SCOND, AMAX


   C INTERFACE
       #include <sunperf.h>

       void  zheequb  (char uplo, int n, doublecomplex *a, int lda, double *s,
                 double *scond, double *amax, int *info);


       void zheequb_64 (char uplo, long n, doublecomplex *a, long lda,  double
                 *s, double *scond, double *amax, long *info);


PURPOSE
       zheequb computes row and column scalings intended to equilibrate a Her-
       mitian matrix A and reduce its condition number (with  respect  to  the
       two-norm).  S contains the scale factors, S(i) = 1/sqrt(A(i,i)), chosen
       so that the scaled matrix B with elements B(i,j) = S(i)*A(i,j)*S(j) has
       ones  on the diagonal.  This choice of S puts the condition number of B
       within a factor N of the smallest possible condition  number  over  all
       possible diagonal scalings.


ARGUMENTS
       UPLO (input)
                 UPLO is CHARACTER*1
                 = 'U':  Upper triangles of A and B are stored;
                 = 'L':  Lower triangles of A and B are stored.


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


       A (input)
                 A is COMPLEX*16 array, dimension (LDA,N)
                 The  N-by-N  Hermitian matrix whose scaling factors are to be
                 computed.  Only the diagonal elements of A are referenced.


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


       S (output)
                 S is DOUBLE PRECISION array, dimension (N)
                 If INFO = 0, S contains the scale factors for A.


       SCOND (output)
                 SCOND is DOUBLE PRECISION
                 If INFO = 0, S contains the ratio of the smallest S(i) to the
                 largest  S(i).  If SCOND >= 0.1 and AMAX is neither too large
                 nor too small, it is not worth scaling by S.


       AMAX (output)
                 AMAX is DOUBLE PRECISION
                 Absolute value of largest matrix element.  If  AMAX  is  very
                 close  to  overflow  or  very  close to underflow, the matrix
                 should be scaled.


       WORK (output)
                 WORK is COMPLEX*16 array, dimension (3*N)


       INFO (output)
                 INFO is INTEGER
                 = 0:  successful exit
                 < 0:  if INFO = -i, the i-th argument had an illegal value
                 > 0:  if INFO = i, the i-th diagonal element is  nonpositive.



                                  7 Nov 2015                       zheequb(3P)