Go to main content
Oracle Developer Studio 12.5 Man Pages

Exit Print View

Updated: June 2017
 
 

cheequb (3p)

Name

cheequb - 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 CHEEQUB(UPLO, N, A, LDA, S, SCOND, AMAX, WORK, INFO)


INTEGER INFO, LDA, N

REAL AMAX, SCOND

CHARACTER*1 UPLO

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

REAL S(*)


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


INTEGER*8 INFO, LDA, N

REAL AMAX, SCOND

CHARACTER*1 UPLO

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

REAL S(*)


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


INTEGER :: N, LDA, INFO

CHARACTER(LEN=1) :: UPLO

REAL, DIMENSION(:) :: S

COMPLEX, DIMENSION(:,:) :: A

COMPLEX, DIMENSION(:) :: WORK

REAL :: SCOND, AMAX


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


INTEGER(8) :: N, LDA, INFO

CHARACTER(LEN=1) :: UPLO

REAL, DIMENSION(:) :: S

COMPLEX, DIMENSION(:,:) :: A

COMPLEX, DIMENSION(:) :: WORK

REAL :: SCOND, AMAX


C INTERFACE
#include <sunperf.h>

void  cheequb  (char  uplo,  int n, floatcomplex *a, int lda, float *s,
float *scond, float *amax, int *info);


void cheequb_64 (char uplo, long n, floatcomplex *a,  long  lda,  float
*s, float *scond, float *amax, long *info);

Description

Oracle Solaris Studio Performance Library                          cheequb(3P)



NAME
       cheequb  -  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 CHEEQUB(UPLO, N, A, LDA, S, SCOND, AMAX, WORK, INFO)


       INTEGER INFO, LDA, N

       REAL AMAX, SCOND

       CHARACTER*1 UPLO

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

       REAL S(*)


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


       INTEGER*8 INFO, LDA, N

       REAL AMAX, SCOND

       CHARACTER*1 UPLO

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

       REAL S(*)


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


       INTEGER :: N, LDA, INFO

       CHARACTER(LEN=1) :: UPLO

       REAL, DIMENSION(:) :: S

       COMPLEX, DIMENSION(:,:) :: A

       COMPLEX, DIMENSION(:) :: WORK

       REAL :: SCOND, AMAX


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


       INTEGER(8) :: N, LDA, INFO

       CHARACTER(LEN=1) :: UPLO

       REAL, DIMENSION(:) :: S

       COMPLEX, DIMENSION(:,:) :: A

       COMPLEX, DIMENSION(:) :: WORK

       REAL :: SCOND, AMAX


   C INTERFACE
       #include <sunperf.h>

       void  cheequb  (char  uplo,  int n, floatcomplex *a, int lda, float *s,
                 float *scond, float *amax, int *info);


       void cheequb_64 (char uplo, long n, floatcomplex *a,  long  lda,  float
                 *s, float *scond, float *amax, long *info);


PURPOSE
       cheequb 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 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 REAL array, dimension (N)
                 If INFO = 0, S contains the scale factors for A.


       SCOND (output)
                 SCOND is REAL
                 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 REAL
                 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 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                       cheequb(3P)