ssxt1.f
来自「famous linear algebra library (LAPACK) p」· F 代码 · 共 102 行
F
102 行
REAL FUNCTION SSXT1( IJOB, D1, N1, D2, N2, ABSTOL,
$ ULP, UNFL )
*
* -- LAPACK test routine (version 3.1) --
* Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
* November 2006
*
* .. Scalar Arguments ..
INTEGER IJOB, N1, N2
REAL ABSTOL, ULP, UNFL
* ..
* .. Array Arguments ..
REAL D1( * ), D2( * )
* ..
*
* Purpose
* =======
*
* SSXT1 computes the difference between a set of eigenvalues.
* The result is returned as the function value.
*
* IJOB = 1: Computes max { min | D1(i)-D2(j) | }
* i j
*
* IJOB = 2: Computes max { min | D1(i)-D2(j) | /
* i j
* ( ABSTOL + |D1(i)|*ULP ) }
*
* Arguments
* =========
*
* ITYPE (input) INTEGER
* Specifies the type of tests to be performed. (See above.)
*
* D1 (input) REAL array, dimension (N1)
* The first array. D1 should be in increasing order, i.e.,
* D1(j) <= D1(j+1).
*
* N1 (input) INTEGER
* The length of D1.
*
* D2 (input) REAL array, dimension (N2)
* The second array. D2 should be in increasing order, i.e.,
* D2(j) <= D2(j+1).
*
* N2 (input) INTEGER
* The length of D2.
*
* ABSTOL (input) REAL
* The absolute tolerance, used as a measure of the error.
*
* ULP (input) REAL
* Machine precision.
*
* UNFL (input) REAL
* The smallest positive number whose reciprocal does not
* overflow.
*
* =====================================================================
*
* .. Parameters ..
REAL ZERO
PARAMETER ( ZERO = 0.0E0 )
* ..
* .. Local Scalars ..
INTEGER I, J
REAL TEMP1, TEMP2
* ..
* .. Intrinsic Functions ..
INTRINSIC ABS, MAX, MIN
* ..
* .. Executable Statements ..
*
TEMP1 = ZERO
*
J = 1
DO 20 I = 1, N1
10 CONTINUE
IF( D2( J ).LT.D1( I ) .AND. J.LT.N2 ) THEN
J = J + 1
GO TO 10
END IF
IF( J.EQ.1 ) THEN
TEMP2 = ABS( D2( J )-D1( I ) )
IF( IJOB.EQ.2 )
$ TEMP2 = TEMP2 / MAX( UNFL, ABSTOL+ULP*ABS( D1( I ) ) )
ELSE
TEMP2 = MIN( ABS( D2( J )-D1( I ) ),
$ ABS( D1( I )-D2( J-1 ) ) )
IF( IJOB.EQ.2 )
$ TEMP2 = TEMP2 / MAX( UNFL, ABSTOL+ULP*ABS( D1( I ) ) )
END IF
TEMP1 = MAX( TEMP1, TEMP2 )
20 CONTINUE
*
SSXT1 = TEMP1
RETURN
*
* End of SSXT1
*
END
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?