Go to main content
Oracle Developer Studio 12.5 Man Pages

Exit Print View

Updated: June 2017
 
 

cpoequb (3p)

Name

cpoequb - compute row and column scalings intended to equilibrate a symmetric positive definite matrix A and reduce its condition number with respect to the two-norm

Synopsis

SUBROUTINE CPOEQUB(N, A, LDA, S, SCOND, AMAX, INFO)


INTEGER INFO, LDA, N

REAL AMAX, SCOND

COMPLEX A(LDA,*)

REAL S(*)


SUBROUTINE CPOEQUB_64(N, A, LDA, S, SCOND, AMAX, INFO)


INTEGER*8 INFO, LDA, N

REAL AMAX, SCOND

COMPLEX A(LDA,*)

REAL S(*)


F95 INTERFACE
SUBROUTINE POEQUB(N, A, LDA, S, SCOND, AMAX, INFO)


INTEGER :: N, LDA, INFO

REAL, DIMENSION(:) :: S

COMPLEX, DIMENSION(:,:) :: A

REAL :: SCOND, AMAX


SUBROUTINE POEQUB_64(N, A, LDA, S, SCOND, AMAX, INFO)


INTEGER(8) :: N, LDA, INFO

REAL, DIMENSION(:) :: S

COMPLEX, DIMENSION(:,:) :: A

REAL :: SCOND, AMAX


C INTERFACE
#include <sunperf.h>

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


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

Description

Oracle Solaris Studio Performance Library                          cpoequb(3P)



NAME
       cpoequb  -  compute  row  and column scalings intended to equilibrate a
       symmetric positive definite matrix A and reduce  its  condition  number
       with respect to the two-norm


SYNOPSIS
       SUBROUTINE CPOEQUB(N, A, LDA, S, SCOND, AMAX, INFO)


       INTEGER INFO, LDA, N

       REAL AMAX, SCOND

       COMPLEX A(LDA,*)

       REAL S(*)


       SUBROUTINE CPOEQUB_64(N, A, LDA, S, SCOND, AMAX, INFO)


       INTEGER*8 INFO, LDA, N

       REAL AMAX, SCOND

       COMPLEX A(LDA,*)

       REAL S(*)


   F95 INTERFACE
       SUBROUTINE POEQUB(N, A, LDA, S, SCOND, AMAX, INFO)


       INTEGER :: N, LDA, INFO

       REAL, DIMENSION(:) :: S

       COMPLEX, DIMENSION(:,:) :: A

       REAL :: SCOND, AMAX


       SUBROUTINE POEQUB_64(N, A, LDA, S, SCOND, AMAX, INFO)


       INTEGER(8) :: N, LDA, INFO

       REAL, DIMENSION(:) :: S

       COMPLEX, DIMENSION(:,:) :: A

       REAL :: SCOND, AMAX


   C INTERFACE
       #include <sunperf.h>

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


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


PURPOSE
       cpoequb computes row and column scalings intended to equilibrate a sym-
       metric positive definite 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 condi-
       tion number over all possible diagonal scalings.


ARGUMENTS
       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  symmetric positive definite 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.


       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                       cpoequb(3P)