Go to main content
Oracle Developer Studio 12.5 Man Pages

Exit Print View

Updated: June 2017
 
 

slasq2 (3p)

Name

slasq2 - nite tridiagonal matrix (high relative accuracy)

Synopsis

SUBROUTINE SLASQ2( N, Z, INFO )


INTEGER INFO, N

REAL Z(*)


SUBROUTINE SLASQ2_64( N, Z, INFO )


INTEGER*8 INFO, N

REAL Z(*)


F95 INTERFACE
SUBROUTINE LASQ2( N, Z, INFO )


INTEGER :: N, INFO

REAL, DIMENSION(:) :: Z


SUBROUTINE LASQ2_64( N, Z, INFO )


INTEGER(8) :: N, INFO

REAL, DIMENSION(:) :: Z


C INTERFACE
#include <sunperf.h>

void slasq2 (int n, float *z, int *info);


void slasq2_64 (long n, float *z, long *info);

Description

Oracle Solaris Studio Performance Library                           slasq2(3P)



NAME
       slasq2 - compute all the eigenvalues of a real symmetric positive defi-
       nite tridiagonal matrix (high relative accuracy)


SYNOPSIS
       SUBROUTINE SLASQ2( N, Z, INFO )


       INTEGER INFO, N

       REAL Z(*)


       SUBROUTINE SLASQ2_64( N, Z, INFO )


       INTEGER*8 INFO, N

       REAL Z(*)


   F95 INTERFACE
       SUBROUTINE LASQ2( N, Z, INFO )


       INTEGER :: N, INFO

       REAL, DIMENSION(:) :: Z


       SUBROUTINE LASQ2_64( N, Z, INFO )


       INTEGER(8) :: N, INFO

       REAL, DIMENSION(:) :: Z


   C INTERFACE
       #include <sunperf.h>

       void slasq2 (int n, float *z, int *info);


       void slasq2_64 (long n, float *z, long *info);


PURPOSE
       slasq2 computes all the eigenvalues of the symmetric positive  definite
       tridiagonal  matrix  associated  with  the  qd array Z to high relative
       accuracy are computed to high relative  accuracy,  in  the  absence  of
       denormalization, underflow and overflow.

       To  see  the  relation  of Z to the tridiagonal matrix, let L be a unit
       lower bidiagonal matrix with subdiagonals Z(2,4,6,,..) and let U be  an
       upper  bidiagonal  matrix with 1's above and diagonal Z(1,3,5,,..). The
       tridiagonal is L*U or, if you  prefer,  the  symmetric  tridiagonal  to
       which it is similar.

       Note  :  SLASQ2  defines  a  logical  variable,  IEEE, which is true on
       machines which follow ieee-754 floating-point standard  in  their  han-
       dling  of  infinities  and  NaNs, and false otherwise. This variable is
       passed to SLASQ3.


ARGUMENTS
       N (input)
                 N is INTEGER
                 The number of rows and columns in the matrix. N >= 0.


       Z (input/output)
                 Z is REAL array, dimension ( 4*N )
                 On entry Z holds the qd array. On exit, entries 1 to  N  hold
                 the  eigenvalues  in  decreasing  order, Z( 2*N+1 ) holds the
                 trace, and Z( 2*N+2 ) holds the sum of the eigenvalues. If  N
                 >  2,  then  Z( 2*N+3 ) holds the iteration count, Z( 2*N+4 )
                 holds NDIVS/NIN^2, and Z( 2*N+5 )  holds  the  percentage  of
                 shifts that failed.


       INFO (output)
                 INFO is INTEGER
                 = 0: successful exit
                 <  0:  if  the  i-th  argument is a scalar and had an illegal
                 value, then INFO = -i, if the i-th argument is an  array  and
                 the j-entry had an illegal value, then INFO = -(i*100+j).
                 > 0: the algorithm failed.
                 = 1, a split was marked by a positive value in E.
                 =  2,  current block of Z not diagonalized after 100*N itera-
                 tions (in inner while loop).  On exit Z holds a qd array with
                 the same eigenvalues as the given Z.
                 =  3, termination criterion of outer while loop not met (pro-
                 gram created more than N unreduced blocks).




                                  7 Nov 2015                        slasq2(3P)