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)