OSDN Git Service

Merge pull request #201 from Bytom/v0.1
[bytom/vapor.git] / vendor / gonum.org / v1 / gonum / lapack / internal / testdata / dlasqtest / dlasq6.f
diff --git a/vendor/gonum.org/v1/gonum/lapack/internal/testdata/dlasqtest/dlasq6.f b/vendor/gonum.org/v1/gonum/lapack/internal/testdata/dlasqtest/dlasq6.f
deleted file mode 100644 (file)
index bcd61f3..0000000
+++ /dev/null
@@ -1,258 +0,0 @@
-*> \brief \b DLASQ6 computes one dqd transform in ping-pong form. Used by sbdsqr and sstegr.
-*
-*  =========== DOCUMENTATION ===========
-*
-* Online html documentation available at 
-*            http://www.netlib.org/lapack/explore-html/ 
-*
-*> \htmlonly
-*> Download DLASQ6 + dependencies 
-*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dlasq6.f"> 
-*> [TGZ]</a> 
-*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dlasq6.f"> 
-*> [ZIP]</a> 
-*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlasq6.f"> 
-*> [TXT]</a>
-*> \endhtmlonly 
-*
-*  Definition:
-*  ===========
-*
-*       SUBROUTINE DLASQ6( I0, N0, Z, PP, DMIN, DMIN1, DMIN2, DN,
-*                          DNM1, DNM2 )
-* 
-*       .. Scalar Arguments ..
-*       INTEGER            I0, N0, PP
-*       DOUBLE PRECISION   DMIN, DMIN1, DMIN2, DN, DNM1, DNM2
-*       ..
-*       .. Array Arguments ..
-*       DOUBLE PRECISION   Z( * )
-*       ..
-*  
-*
-*> \par Purpose:
-*  =============
-*>
-*> \verbatim
-*>
-*> DLASQ6 computes one dqd (shift equal to zero) transform in
-*> ping-pong form, with protection against underflow and overflow.
-*> \endverbatim
-*
-*  Arguments:
-*  ==========
-*
-*> \param[in] I0
-*> \verbatim
-*>          I0 is INTEGER
-*>        First index.
-*> \endverbatim
-*>
-*> \param[in] N0
-*> \verbatim
-*>          N0 is INTEGER
-*>        Last index.
-*> \endverbatim
-*>
-*> \param[in] Z
-*> \verbatim
-*>          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.
-*> \endverbatim
-*>
-*> \param[in] PP
-*> \verbatim
-*>          PP is INTEGER
-*>        PP=0 for ping, PP=1 for pong.
-*> \endverbatim
-*>
-*> \param[out] DMIN
-*> \verbatim
-*>          DMIN is DOUBLE PRECISION
-*>        Minimum value of d.
-*> \endverbatim
-*>
-*> \param[out] DMIN1
-*> \verbatim
-*>          DMIN1 is DOUBLE PRECISION
-*>        Minimum value of d, excluding D( N0 ).
-*> \endverbatim
-*>
-*> \param[out] DMIN2
-*> \verbatim
-*>          DMIN2 is DOUBLE PRECISION
-*>        Minimum value of d, excluding D( N0 ) and D( N0-1 ).
-*> \endverbatim
-*>
-*> \param[out] DN
-*> \verbatim
-*>          DN is DOUBLE PRECISION
-*>        d(N0), the last value of d.
-*> \endverbatim
-*>
-*> \param[out] DNM1
-*> \verbatim
-*>          DNM1 is DOUBLE PRECISION
-*>        d(N0-1).
-*> \endverbatim
-*>
-*> \param[out] DNM2
-*> \verbatim
-*>          DNM2 is DOUBLE PRECISION
-*>        d(N0-2).
-*> \endverbatim
-*
-*  Authors:
-*  ========
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date September 2012
-*
-*> \ingroup auxOTHERcomputational
-*
-*  =====================================================================
-      SUBROUTINE DLASQ6( I0, N0, Z, PP, DMIN, DMIN1, DMIN2, DN,
-     $                   DNM1, DNM2 )
-*
-*  -- LAPACK computational routine (version 3.4.2) --
-*  -- LAPACK is a software package provided by Univ. of Tennessee,    --
-*  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-*     September 2012
-*
-*     .. Scalar Arguments ..
-      INTEGER            I0, N0, PP
-      DOUBLE PRECISION   DMIN, DMIN1, DMIN2, DN, DNM1, DNM2
-*     ..
-*     .. Array Arguments ..
-      DOUBLE PRECISION   Z( * )
-*     ..
-*
-*  =====================================================================
-*
-*     .. Parameter ..
-      DOUBLE PRECISION   ZERO
-      PARAMETER          ( ZERO = 0.0D0 )
-*     ..
-*     .. Local Scalars ..
-      INTEGER            J4, J4P2
-      DOUBLE PRECISION   D, EMIN, SAFMIN, TEMP
-*     ..
-*     .. External Function ..
-      DOUBLE PRECISION   DLAMCH
-      EXTERNAL           DLAMCH
-*     ..
-*     .. Intrinsic Functions ..
-      INTRINSIC          MIN
-*     ..
-*     .. Executable Statements ..
-*
-      IF( ( N0-I0-1 ).LE.0 )
-     $   RETURN
-*
-
-      print *, "In dlasq6"
-      STOP
-
-      SAFMIN = DLAMCH( 'Safe minimum' )
-      J4 = 4*I0 + PP - 3
-      EMIN = Z( J4+4 ) 
-      D = Z( J4 )
-      DMIN = D
-*
-      IF( PP.EQ.0 ) THEN
-         DO 10 J4 = 4*I0, 4*( N0-3 ), 4
-            Z( J4-2 ) = D + Z( J4-1 ) 
-            IF( Z( J4-2 ).EQ.ZERO ) THEN
-               Z( J4 ) = ZERO
-               D = Z( J4+1 )
-               DMIN = D
-               EMIN = ZERO
-            ELSE IF( SAFMIN*Z( J4+1 ).LT.Z( J4-2 ) .AND.
-     $               SAFMIN*Z( J4-2 ).LT.Z( J4+1 ) ) THEN
-               TEMP = Z( J4+1 ) / Z( J4-2 )
-               Z( J4 ) = Z( J4-1 )*TEMP
-               D = D*TEMP
-            ELSE 
-               Z( J4 ) = Z( J4+1 )*( Z( J4-1 ) / Z( J4-2 ) )
-               D = Z( J4+1 )*( D / Z( J4-2 ) )
-            END IF
-            DMIN = MIN( DMIN, D )
-            EMIN = MIN( EMIN, Z( J4 ) )
-   10    CONTINUE
-      ELSE
-         DO 20 J4 = 4*I0, 4*( N0-3 ), 4
-            Z( J4-3 ) = D + Z( J4 ) 
-            IF( Z( J4-3 ).EQ.ZERO ) THEN
-               Z( J4-1 ) = ZERO
-               D = Z( J4+2 )
-               DMIN = D
-               EMIN = ZERO
-            ELSE IF( SAFMIN*Z( J4+2 ).LT.Z( J4-3 ) .AND.
-     $               SAFMIN*Z( J4-3 ).LT.Z( J4+2 ) ) THEN
-               TEMP = Z( J4+2 ) / Z( J4-3 )
-               Z( J4-1 ) = Z( J4 )*TEMP
-               D = D*TEMP
-            ELSE 
-               Z( J4-1 ) = Z( J4+2 )*( Z( J4 ) / Z( J4-3 ) )
-               D = Z( J4+2 )*( D / Z( J4-3 ) )
-            END IF
-            DMIN = MIN( DMIN, D )
-            EMIN = MIN( EMIN, Z( J4-1 ) )
-   20    CONTINUE
-      END IF
-*
-*     Unroll last two steps. 
-*
-      DNM2 = D
-      DMIN2 = DMIN
-      J4 = 4*( N0-2 ) - PP
-      J4P2 = J4 + 2*PP - 1
-      Z( J4-2 ) = DNM2 + Z( J4P2 )
-      IF( Z( J4-2 ).EQ.ZERO ) THEN
-         Z( J4 ) = ZERO
-         DNM1 = Z( J4P2+2 )
-         DMIN = DNM1
-         EMIN = ZERO
-      ELSE IF( SAFMIN*Z( J4P2+2 ).LT.Z( J4-2 ) .AND.
-     $         SAFMIN*Z( J4-2 ).LT.Z( J4P2+2 ) ) THEN
-         TEMP = Z( J4P2+2 ) / Z( J4-2 )
-         Z( J4 ) = Z( J4P2 )*TEMP
-         DNM1 = DNM2*TEMP
-      ELSE
-         Z( J4 ) = Z( J4P2+2 )*( Z( J4P2 ) / Z( J4-2 ) )
-         DNM1 = Z( J4P2+2 )*( DNM2 / Z( J4-2 ) )
-      END IF
-      DMIN = MIN( DMIN, DNM1 )
-*
-      DMIN1 = DMIN
-      J4 = J4 + 4
-      J4P2 = J4 + 2*PP - 1
-      Z( J4-2 ) = DNM1 + Z( J4P2 )
-      IF( Z( J4-2 ).EQ.ZERO ) THEN
-         Z( J4 ) = ZERO
-         DN = Z( J4P2+2 )
-         DMIN = DN
-         EMIN = ZERO
-      ELSE IF( SAFMIN*Z( J4P2+2 ).LT.Z( J4-2 ) .AND.
-     $         SAFMIN*Z( J4-2 ).LT.Z( J4P2+2 ) ) THEN
-         TEMP = Z( J4P2+2 ) / Z( J4-2 )
-         Z( J4 ) = Z( J4P2 )*TEMP
-         DN = DNM1*TEMP
-      ELSE
-         Z( J4 ) = Z( J4P2+2 )*( Z( J4P2 ) / Z( J4-2 ) )
-         DN = Z( J4P2+2 )*( DNM1 / Z( J4-2 ) )
-      END IF
-      DMIN = MIN( DMIN, DN )
-*
-      Z( J4+2 ) = DN
-      Z( 4*N0-PP ) = EMIN
-      RETURN
-*
-*     End of DLASQ6
-*
-      END