Go to main content
Oracle Developer Studio 12.5 Man Pages

Exit Print View

Updated: June 2017
 
 

slasq3 (3p)

Name

slasq3 - check for deflation, compute a shift and calls dqds. Used by sbdsqr

Synopsis

SUBROUTINE SLASQ3(I0, N0, Z, PP, DMIN, SIGMA, DESIG, QMAX, NFAIL, ITER,
NDIV, IEEE, TTYPE, DMIN1, DMIN2, DN, DN1, DN2, G, TAU)


LOGICAL IEEE

INTEGER I0, ITER, N0, NDIV, NFAIL, PP, TTYPE

REAL DESIG, DMIN, DMIN1, DMIN2, DN, DN1, DN2, G, QMAX, SIGMA, TAU

REAL Z(*)


SUBROUTINE  SLASQ3_64(I0,  N0,  Z, PP, DMIN, SIGMA, DESIG, QMAX, NFAIL,
ITER, NDIV, IEEE, TTYPE, DMIN1, DMIN2, DN, DN1, DN2, G, TAU)


LOGICAL*8 IEEE

INTEGER*8 I0, ITER, N0, NDIV, NFAIL, PP, TTYPE

REAL DESIG, DMIN, DMIN1, DMIN2, DN, DN1, DN2, G, QMAX, SIGMA, TAU

REAL Z(*)


F95 INTERFACE
SUBROUTINE LASQ3(I0, N0, Z, PP, DMIN, SIGMA, DESIG, QMAX, NFAIL,  ITER,
NDIV, IEEE, TTYPE, DMIN1, DMIN2, DN, DN1, DN2, G, TAU)


LOGICAL :: IEEE

INTEGER :: I0, N0, PP, NFAIL, ITER, NDIV, TTYPE

REAL, DIMENSION(:) :: Z

REAL :: DESIG, DMIN, DMIN1, DMIN2, DN, DN1, DN2, G, QMAX, SIGMA, TAU


SUBROUTINE  LASQ3_64(I0,  N0,  Z,  PP, DMIN, SIGMA, DESIG, QMAX, NFAIL,
ITER, NDIV, IEEE, TTYPE, DMIN1, DMIN2, DN, DN1, DN2, G, TAU)


LOGICAL(8) :: IEEE

INTEGER(8) :: I0, N0, PP, NFAIL, ITER, NDIV, TTYPE

REAL, DIMENSION(:) :: Z

REAL :: DESIG, DMIN, DMIN1, DMIN2, DN, DN1, DN2, G, QMAX, SIGMA, TAU




C INTERFACE
#include <sunperf.h>

void slasq3 (int i0, int n0, float *z,  int  *pp,  float  *dmin,  float
*sigma,  float *desig, float qmax, int *nfail, int *iter, int
*ndiv, int ieee, int  *ttype,  float  *dmin1,  float  *dmin2,
float *dn, float *dn1, float *dn2, float *g, float *tau);


void  slasq3_64  (long  i0,  long  n0, float *z, long *pp, float *dmin,
float *sigma, float *desig, float  qmax,  long  *nfail,  long
*iter,  long  *ndiv,  long  ieee,  long *ttype, float *dmin1,
float *dmin2, float *dn, float *dn1, float  *dn2,  float  *g,
float *tau);

Description

Oracle Solaris Studio Performance Library                           slasq3(3P)



NAME
       slasq3  -  check for deflation, compute a shift and calls dqds. Used by
       sbdsqr


SYNOPSIS
       SUBROUTINE SLASQ3(I0, N0, Z, PP, DMIN, SIGMA, DESIG, QMAX, NFAIL, ITER,
                 NDIV, IEEE, TTYPE, DMIN1, DMIN2, DN, DN1, DN2, G, TAU)


       LOGICAL IEEE

       INTEGER I0, ITER, N0, NDIV, NFAIL, PP, TTYPE

       REAL DESIG, DMIN, DMIN1, DMIN2, DN, DN1, DN2, G, QMAX, SIGMA, TAU

       REAL Z(*)


       SUBROUTINE  SLASQ3_64(I0,  N0,  Z, PP, DMIN, SIGMA, DESIG, QMAX, NFAIL,
                 ITER, NDIV, IEEE, TTYPE, DMIN1, DMIN2, DN, DN1, DN2, G, TAU)


       LOGICAL*8 IEEE

       INTEGER*8 I0, ITER, N0, NDIV, NFAIL, PP, TTYPE

       REAL DESIG, DMIN, DMIN1, DMIN2, DN, DN1, DN2, G, QMAX, SIGMA, TAU

       REAL Z(*)


   F95 INTERFACE
       SUBROUTINE LASQ3(I0, N0, Z, PP, DMIN, SIGMA, DESIG, QMAX, NFAIL,  ITER,
                 NDIV, IEEE, TTYPE, DMIN1, DMIN2, DN, DN1, DN2, G, TAU)


       LOGICAL :: IEEE

       INTEGER :: I0, N0, PP, NFAIL, ITER, NDIV, TTYPE

       REAL, DIMENSION(:) :: Z

       REAL :: DESIG, DMIN, DMIN1, DMIN2, DN, DN1, DN2, G, QMAX, SIGMA, TAU


       SUBROUTINE  LASQ3_64(I0,  N0,  Z,  PP, DMIN, SIGMA, DESIG, QMAX, NFAIL,
                 ITER, NDIV, IEEE, TTYPE, DMIN1, DMIN2, DN, DN1, DN2, G, TAU)


       LOGICAL(8) :: IEEE

       INTEGER(8) :: I0, N0, PP, NFAIL, ITER, NDIV, TTYPE

       REAL, DIMENSION(:) :: Z

       REAL :: DESIG, DMIN, DMIN1, DMIN2, DN, DN1, DN2, G, QMAX, SIGMA, TAU




   C INTERFACE
       #include <sunperf.h>

       void slasq3 (int i0, int n0, float *z,  int  *pp,  float  *dmin,  float
                 *sigma,  float *desig, float qmax, int *nfail, int *iter, int
                 *ndiv, int ieee, int  *ttype,  float  *dmin1,  float  *dmin2,
                 float *dn, float *dn1, float *dn2, float *g, float *tau);


       void  slasq3_64  (long  i0,  long  n0, float *z, long *pp, float *dmin,
                 float *sigma, float *desig, float  qmax,  long  *nfail,  long
                 *iter,  long  *ndiv,  long  ieee,  long *ttype, float *dmin1,
                 float *dmin2, float *dn, float *dn1, float  *dn2,  float  *g,
                 float *tau);


PURPOSE
       slasq3 checks for deflation, computes a shift (TAU) and calls dqds.  In
       case of failure it changes shifts, and tries again until output is pos-
       itive.


ARGUMENTS
       I0 (input)
                 I0 is INTEGER
                 First index.


       N0 (input/output)
                 N0 is INTEGER
                 Last index.


       Z (input/output)
                 Z is REAL array, dimension (4*N)
                 Z holds the qd array.


       PP (input/output)
                 PP is INTEGER
                 PP=0 for ping, PP=1 for pong.
                 PP=2  indicates  that flipping was applied to the Z array and
                 that the initial tests for deflation should not be performed.


       DMIN (output)
                 DMIN is REAL
                 Minimum value of d.


       SIGMA (output)
                 SIGMA is REAL
                 Sum of shifts used in current segment.


       DESIG (input/output)
                 DESIG is REAL
                 Lower order part of SIGMA.


       QMAX (input)
                 QMAX is REAL
                 Maximum value of q.


       NFAIL (output)
                 NFAIL is INTEGER
                 Number of times shift was too big.


       ITER (output)
                 ITER is INTEGER
                 Number of iterations.


       NDIV (output)
                 NDIV is INTEGER
                 Number of divisions.


       IEEE (input)
                 IEEE is LOGICAL
                 Flag for IEEE or non IEEE arithmetic (passed to SLASQ5).


       TTYPE (input/output)
                 TTYPE is INTEGER
                 Shift type.


       DMIN1 (input/output)
                 DMIN1 is REAL


       DMIN2 (input/output)
                 DMIN2 is REAL


       DN (input/output)
                 DN is REAL


       DN1 (input/output)
                 DN1 is REAL


       DN2 (input/output)
                 DN2 is REAL


       G (input/output)
                 G is REAL


       TAU (input/output)
                 TAU is REAL
                 These  are  passed as arguments in order to save their values
                 between calls to SLASQ3.




                                  7 Nov 2015                        slasq3(3P)