OSDN Git Service

Merge pull request #201 from Bytom/v0.1
[bytom/vapor.git] / vendor / gonum.org / v1 / gonum / lapack / internal / testdata / dlasqtest / dlas2.f
diff --git a/vendor/gonum.org/v1/gonum/lapack/internal/testdata/dlasqtest/dlas2.f b/vendor/gonum.org/v1/gonum/lapack/internal/testdata/dlasqtest/dlas2.f
deleted file mode 100644 (file)
index 81077f9..0000000
+++ /dev/null
@@ -1,183 +0,0 @@
-*> \brief \b DLAS2 computes singular values of a 2-by-2 triangular matrix.
-*
-*  =========== DOCUMENTATION ===========
-*
-* Online html documentation available at 
-*            http://www.netlib.org/lapack/explore-html/ 
-*
-*> \htmlonly
-*> Download DLAS2 + dependencies 
-*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dlas2.f"> 
-*> [TGZ]</a> 
-*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dlas2.f"> 
-*> [ZIP]</a> 
-*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlas2.f"> 
-*> [TXT]</a>
-*> \endhtmlonly 
-*
-*  Definition:
-*  ===========
-*
-*       SUBROUTINE DLAS2( F, G, H, SSMIN, SSMAX )
-* 
-*       .. Scalar Arguments ..
-*       DOUBLE PRECISION   F, G, H, SSMAX, SSMIN
-*       ..
-*  
-*
-*> \par Purpose:
-*  =============
-*>
-*> \verbatim
-*>
-*> DLAS2  computes the singular values of the 2-by-2 matrix
-*>    [  F   G  ]
-*>    [  0   H  ].
-*> On return, SSMIN is the smaller singular value and SSMAX is the
-*> larger singular value.
-*> \endverbatim
-*
-*  Arguments:
-*  ==========
-*
-*> \param[in] F
-*> \verbatim
-*>          F is DOUBLE PRECISION
-*>          The (1,1) element of the 2-by-2 matrix.
-*> \endverbatim
-*>
-*> \param[in] G
-*> \verbatim
-*>          G is DOUBLE PRECISION
-*>          The (1,2) element of the 2-by-2 matrix.
-*> \endverbatim
-*>
-*> \param[in] H
-*> \verbatim
-*>          H is DOUBLE PRECISION
-*>          The (2,2) element of the 2-by-2 matrix.
-*> \endverbatim
-*>
-*> \param[out] SSMIN
-*> \verbatim
-*>          SSMIN is DOUBLE PRECISION
-*>          The smaller singular value.
-*> \endverbatim
-*>
-*> \param[out] SSMAX
-*> \verbatim
-*>          SSMAX is DOUBLE PRECISION
-*>          The larger singular value.
-*> \endverbatim
-*
-*  Authors:
-*  ========
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date September 2012
-*
-*> \ingroup auxOTHERauxiliary
-*
-*> \par Further Details:
-*  =====================
-*>
-*> \verbatim
-*>
-*>  Barring over/underflow, all output quantities are correct to within
-*>  a few units in the last place (ulps), even in the absence of a guard
-*>  digit in addition/subtraction.
-*>
-*>  In IEEE arithmetic, the code works correctly if one matrix element is
-*>  infinite.
-*>
-*>  Overflow will not occur unless the largest singular value itself
-*>  overflows, or is within a few ulps of overflow. (On machines with
-*>  partial overflow, like the Cray, overflow may occur if the largest
-*>  singular value is within a factor of 2 of overflow.)
-*>
-*>  Underflow is harmless if underflow is gradual. Otherwise, results
-*>  may correspond to a matrix modified by perturbations of size near
-*>  the underflow threshold.
-*> \endverbatim
-*>
-*  =====================================================================
-      SUBROUTINE DLAS2( F, G, H, SSMIN, SSMAX )
-*
-*  -- LAPACK auxiliary 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 ..
-      DOUBLE PRECISION   F, G, H, SSMAX, SSMIN
-*     ..
-*
-*  ====================================================================
-*
-*     .. Parameters ..
-      DOUBLE PRECISION   ZERO
-      PARAMETER          ( ZERO = 0.0D0 )
-      DOUBLE PRECISION   ONE
-      PARAMETER          ( ONE = 1.0D0 )
-      DOUBLE PRECISION   TWO
-      PARAMETER          ( TWO = 2.0D0 )
-*     ..
-*     .. Local Scalars ..
-      DOUBLE PRECISION   AS, AT, AU, C, FA, FHMN, FHMX, GA, HA
-*     ..
-*     .. Intrinsic Functions ..
-      INTRINSIC          ABS, MAX, MIN, SQRT
-*     ..
-*     .. Executable Statements ..
-*
-      FA = ABS( F )
-      GA = ABS( G )
-      HA = ABS( H )
-      FHMN = MIN( FA, HA )
-      FHMX = MAX( FA, HA )
-      IF( FHMN.EQ.ZERO ) THEN
-         SSMIN = ZERO
-         IF( FHMX.EQ.ZERO ) THEN
-            SSMAX = GA
-         ELSE
-            SSMAX = MAX( FHMX, GA )*SQRT( ONE+
-     $              ( MIN( FHMX, GA ) / MAX( FHMX, GA ) )**2 )
-         END IF
-      ELSE
-         IF( GA.LT.FHMX ) THEN
-            AS = ONE + FHMN / FHMX
-            AT = ( FHMX-FHMN ) / FHMX
-            AU = ( GA / FHMX )**2
-            C = TWO / ( SQRT( AS*AS+AU )+SQRT( AT*AT+AU ) )
-            SSMIN = FHMN*C
-            SSMAX = FHMX / C
-         ELSE
-            AU = FHMX / GA
-            IF( AU.EQ.ZERO ) THEN
-*
-*              Avoid possible harmful underflow if exponent range
-*              asymmetric (true SSMIN may not underflow even if
-*              AU underflows)
-*
-               SSMIN = ( FHMN*FHMX ) / GA
-               SSMAX = GA
-            ELSE
-               AS = ONE + FHMN / FHMX
-               AT = ( FHMX-FHMN ) / FHMX
-               C = ONE / ( SQRT( ONE+( AS*AU )**2 )+
-     $             SQRT( ONE+( AT*AU )**2 ) )
-               SSMIN = ( FHMN*C )*AU
-               SSMIN = SSMIN + SSMIN
-               SSMAX = GA / ( C+C )
-            END IF
-         END IF
-      END IF
-      RETURN
-*
-*     End of DLAS2
-*
-      END