dlasq6 - pong form. Used by sbdsqr and sstegr
SUBROUTINE DLASQ6( I0, N0, Z, PP, DMIN, DMIN1, DMIN2, DN, DNM1, DNM2 ) INTEGER I0, N0, PP DOUBLE PRECISION DMIN, DMIN1, DMIN2, DN, DNM1, DNM2 DOUBLE PRECISION Z(*) SUBROUTINE DLASQ6_64( I0, N0, Z, PP, DMIN, DMIN1, DMIN2, DN, DNM1, DNM2 ) INTEGER*8 I0, N0, PP DOUBLE PRECISION DMIN, DMIN1, DMIN2, DN, DNM1, DNM2 DOUBLE PRECISION Z(*) F95 INTERFACE SUBROUTINE LASQ6( I0, N0, Z, PP, DMIN, DMIN1, DMIN2, DN, DNM1, DNM2 ) INTEGER :: I0, N0, PP REAL(8), DIMENSION(:) :: Z REAL(8) :: DMIN, DMIN1, DMIN2, DN, DNM1, DNM2 SUBROUTINE LASQ6_64( I0, N0, Z, PP, DMIN, DMIN1, DMIN2, DN, DNM1, DNM2 ) INTEGER(8) :: I0, N0, PP REAL(8), DIMENSION(:) :: Z REAL(8) :: DMIN, DMIN1, DMIN2, DN, DNM1, DNM2 C INTERFACE #include <sunperf.h> void dlasq6 (int i0, int n0, double *z, int pp, double *dmin, double *dmin1, double *dmin2, double *dn, double *dnm1, double *dnm2); void dlasq6_64 (long i0, long n0, double *z, long pp, double *dmin, double *dmin1, double *dmin2, double *dn, double *dnm1, dou- ble *dnm2);
Oracle Solaris Studio Performance Library dlasq6(3P)
NAME
dlasq6 - compute one dqd transform in ping-pong form. Used by sbdsqr
and sstegr
SYNOPSIS
SUBROUTINE DLASQ6( I0, N0, Z, PP, DMIN, DMIN1, DMIN2, DN, DNM1, DNM2 )
INTEGER I0, N0, PP
DOUBLE PRECISION DMIN, DMIN1, DMIN2, DN, DNM1, DNM2
DOUBLE PRECISION Z(*)
SUBROUTINE DLASQ6_64( I0, N0, Z, PP, DMIN, DMIN1, DMIN2, DN, DNM1, DNM2
)
INTEGER*8 I0, N0, PP
DOUBLE PRECISION DMIN, DMIN1, DMIN2, DN, DNM1, DNM2
DOUBLE PRECISION Z(*)
F95 INTERFACE
SUBROUTINE LASQ6( I0, N0, Z, PP, DMIN, DMIN1, DMIN2, DN, DNM1, DNM2 )
INTEGER :: I0, N0, PP
REAL(8), DIMENSION(:) :: Z
REAL(8) :: DMIN, DMIN1, DMIN2, DN, DNM1, DNM2
SUBROUTINE LASQ6_64( I0, N0, Z, PP, DMIN, DMIN1, DMIN2, DN, DNM1, DNM2
)
INTEGER(8) :: I0, N0, PP
REAL(8), DIMENSION(:) :: Z
REAL(8) :: DMIN, DMIN1, DMIN2, DN, DNM1, DNM2
C INTERFACE
#include <sunperf.h>
void dlasq6 (int i0, int n0, double *z, int pp, double *dmin, double
*dmin1, double *dmin2, double *dn, double *dnm1, double
*dnm2);
void dlasq6_64 (long i0, long n0, double *z, long pp, double *dmin,
double *dmin1, double *dmin2, double *dn, double *dnm1, dou-
ble *dnm2);
PURPOSE
dlasq6 computes one dqd (shift equal to zero) transform in ping-pong
form, with protection against underflow and overflow.
ARGUMENTS
I0 (input)
I0 is INTEGER
First index.
N0 (input)
N0 is INTEGER
Last index.
Z (input)
Z is DOUBLE PRECISION array, dimension ( 4*N )
Z holds the qd array. EMIN is stored in Z(4*N0) to avoid an
extra argument.
PP (input)
PP is INTEGER
PP=0 for ping, PP=1 for pong.
DMIN (output)
DMIN is DOUBLE PRECISION
Minimum value of d.
DMIN1 (output)
DMIN1 is DOUBLE PRECISION
Minimum value of d, excluding D( N0 ).
DMIN2 (output)
DMIN2 is DOUBLE PRECISION
Minimum value of d, excluding D( N0 ) and D( N0-1 ).
DN (output)
DN is DOUBLE PRECISION
d(N0), the last value of d.
DNM1 (output)
DNM1 is DOUBLE PRECISION
d(N0-1).
DNM2 (output)
DNM2 is DOUBLE PRECISION
d(N0-2).
7 Nov 2015 dlasq6(3P)