Go to main content
Oracle Developer Studio 12.5 Man Pages

Exit Print View

Updated: June 2017
 
 

dlasq3 (3p)

Name

dlasq3 - check for deflation, computes a shift and calls dqds. Used by dbdsqr

Synopsis

SUBROUTINE DLASQ3(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

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

DOUBLE PRECISION Z(*)


SUBROUTINE DLASQ3_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

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

DOUBLE PRECISION 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(8), DIMENSION(:) :: Z

REAL(8) :: 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(8), DIMENSION(:) :: Z

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




C INTERFACE
#include <sunperf.h>

void dlasq3 (int i0, int n0, double *z, int *pp, double  *dmin,  double
*sigma,  double  *desig,  double qmax, int *nfail, int *iter,
int *ndiv,  int  ieee,  int  *ttype,  double  *dmin1,  double
*dmin2, double *dn, double *dn1, double *dn2, double *g, dou-
ble *tau);


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

Description

Oracle Solaris Studio Performance Library                           dlasq3(3P)



NAME
       dlasq3  - check for deflation, computes a shift and calls dqds. Used by
       dbdsqr


SYNOPSIS
       SUBROUTINE DLASQ3(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

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

       DOUBLE PRECISION Z(*)


       SUBROUTINE DLASQ3_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

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

       DOUBLE PRECISION 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(8), DIMENSION(:) :: Z

       REAL(8) :: 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(8), DIMENSION(:) :: Z

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




   C INTERFACE
       #include <sunperf.h>

       void dlasq3 (int i0, int n0, double *z, int *pp, double  *dmin,  double
                 *sigma,  double  *desig,  double qmax, int *nfail, int *iter,
                 int *ndiv,  int  ieee,  int  *ttype,  double  *dmin1,  double
                 *dmin2, double *dn, double *dn1, double *dn2, double *g, dou-
                 ble *tau);


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


PURPOSE
       dlasq3 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 DOUBLE PRECISION 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 DOUBLE PRECISION
                 Minimum value of d.


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


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


       QMAX (input)
                 QMAX is DOUBLE PRECISION
                 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 DLASQ5).


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


       DMIN1 (input/output)
                 DMIN1 is DOUBLE PRECISION


       DMIN2 (input/output)
                 DMIN2 is DOUBLE PRECISION


       DN (input/output)
                 DN is DOUBLE PRECISION


       DN1 (input/output)
                 DN1 is DOUBLE PRECISION


       DN2 (input/output)
                 DN2 is DOUBLE PRECISION


       G (input/output)
                 G is DOUBLE PRECISION


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




                                  7 Nov 2015                        dlasq3(3P)