alahd.f
来自「famous linear algebra library (LAPACK) p」· F 代码 · 共 730 行 · 第 1/2 页
F
730 行
WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
WRITE( IOUNIT, FMT = 9940 )1
WRITE( IOUNIT, FMT = 9939 )2
WRITE( IOUNIT, FMT = 9938 )3
WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
*
ELSE IF( LSAMEN( 2, P2, 'TZ' ) ) THEN
*
* TZ: Trapezoidal
*
WRITE( IOUNIT, FMT = 9985 )PATH
WRITE( IOUNIT, FMT = 9968 )
WRITE( IOUNIT, FMT = 9929 )C1, C1
WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
WRITE( IOUNIT, FMT = 9940 )1
WRITE( IOUNIT, FMT = 9937 )2
WRITE( IOUNIT, FMT = 9938 )3
WRITE( IOUNIT, FMT = 9940 )4
WRITE( IOUNIT, FMT = 9937 )5
WRITE( IOUNIT, FMT = 9938 )6
WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
*
ELSE IF( LSAMEN( 2, P2, 'LS' ) ) THEN
*
* LS: Least Squares driver routines for
* LS, LSD, LSS, LSX and LSY.
*
WRITE( IOUNIT, FMT = 9984 )PATH
WRITE( IOUNIT, FMT = 9967 )
WRITE( IOUNIT, FMT = 9921 )C1, C1, C1, C1, C1
WRITE( IOUNIT, FMT = 9935 )1
WRITE( IOUNIT, FMT = 9931 )2
WRITE( IOUNIT, FMT = 9933 )3
WRITE( IOUNIT, FMT = 9935 )4
WRITE( IOUNIT, FMT = 9934 )5
WRITE( IOUNIT, FMT = 9932 )6
WRITE( IOUNIT, FMT = 9920 )
WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
*
ELSE IF( LSAMEN( 2, P2, 'LU' ) ) THEN
*
* LU factorization variants
*
WRITE( IOUNIT, FMT = 9983 )PATH
WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
WRITE( IOUNIT, FMT = 9979 )
WRITE( IOUNIT, FMT = '( '' Test ratio:'' )' )
WRITE( IOUNIT, FMT = 9962 )1
WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
*
ELSE IF( LSAMEN( 2, P2, 'CH' ) ) THEN
*
* Cholesky factorization variants
*
WRITE( IOUNIT, FMT = 9982 )PATH
WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
WRITE( IOUNIT, FMT = 9974 )
WRITE( IOUNIT, FMT = '( '' Test ratio:'' )' )
WRITE( IOUNIT, FMT = 9954 )1
WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
*
ELSE IF( LSAMEN( 2, P2, 'QS' ) ) THEN
*
* QR factorization variants
*
WRITE( IOUNIT, FMT = 9981 )PATH
WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
WRITE( IOUNIT, FMT = 9970 )
WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
*
ELSE
*
* Print error message if no header is available.
*
WRITE( IOUNIT, FMT = 9980 )PATH
END IF
*
* First line of header
*
9999 FORMAT( / 1X, A3, ': General dense matrices' )
9998 FORMAT( / 1X, A3, ': General band matrices' )
9997 FORMAT( / 1X, A3, ': General tridiagonal' )
9996 FORMAT( / 1X, A3, ': ', A9, ' positive definite matrices' )
9995 FORMAT( / 1X, A3, ': ', A9, ' positive definite packed matrices'
$ )
9994 FORMAT( / 1X, A3, ': ', A9, ' positive definite band matrices' )
9993 FORMAT( / 1X, A3, ': ', A9, ' positive definite tridiagonal' )
9992 FORMAT( / 1X, A3, ': ', A9, ' indefinite matrices' )
9991 FORMAT( / 1X, A3, ': ', A9, ' indefinite packed matrices' )
9990 FORMAT( / 1X, A3, ': Triangular matrices' )
9989 FORMAT( / 1X, A3, ': Triangular packed matrices' )
9988 FORMAT( / 1X, A3, ': Triangular band matrices' )
9987 FORMAT( / 1X, A3, ': ', A2, ' factorization of general matrices'
$ )
9986 FORMAT( / 1X, A3, ': QR factorization with column pivoting' )
9985 FORMAT( / 1X, A3, ': RQ factorization of trapezoidal matrix' )
9984 FORMAT( / 1X, A3, ': Least squares driver routines' )
9983 FORMAT( / 1X, A3, ': LU factorization variants' )
9982 FORMAT( / 1X, A3, ': Cholesky factorization variants' )
9981 FORMAT( / 1X, A3, ': QR factorization variants' )
9980 FORMAT( / 1X, A3, ': No header available' )
*
* GE matrix types
*
9979 FORMAT( 4X, '1. Diagonal', 24X, '7. Last n/2 columns zero', / 4X,
$ '2. Upper triangular', 16X,
$ '8. Random, CNDNUM = sqrt(0.1/EPS)', / 4X,
$ '3. Lower triangular', 16X, '9. Random, CNDNUM = 0.1/EPS',
$ / 4X, '4. Random, CNDNUM = 2', 13X,
$ '10. Scaled near underflow', / 4X, '5. First column zero',
$ 14X, '11. Scaled near overflow', / 4X,
$ '6. Last column zero' )
*
* GB matrix types
*
9978 FORMAT( 4X, '1. Random, CNDNUM = 2', 14X,
$ '5. Random, CNDNUM = sqrt(0.1/EPS)', / 4X,
$ '2. First column zero', 15X, '6. Random, CNDNUM = .01/EPS',
$ / 4X, '3. Last column zero', 16X,
$ '7. Scaled near underflow', / 4X,
$ '4. Last n/2 columns zero', 11X, '8. Scaled near overflow' )
*
* GT matrix types
*
9977 FORMAT( ' Matrix types (1-6 have specified condition numbers):',
$ / 4X, '1. Diagonal', 24X, '7. Random, unspecified CNDNUM',
$ / 4X, '2. Random, CNDNUM = 2', 14X, '8. First column zero',
$ / 4X, '3. Random, CNDNUM = sqrt(0.1/EPS)', 2X,
$ '9. Last column zero', / 4X, '4. Random, CNDNUM = 0.1/EPS',
$ 7X, '10. Last n/2 columns zero', / 4X,
$ '5. Scaled near underflow', 10X,
$ '11. Scaled near underflow', / 4X,
$ '6. Scaled near overflow', 11X, '12. Scaled near overflow' )
*
* PT matrix types
*
9976 FORMAT( ' Matrix types (1-6 have specified condition numbers):',
$ / 4X, '1. Diagonal', 24X, '7. Random, unspecified CNDNUM',
$ / 4X, '2. Random, CNDNUM = 2', 14X,
$ '8. First row and column zero', / 4X,
$ '3. Random, CNDNUM = sqrt(0.1/EPS)', 2X,
$ '9. Last row and column zero', / 4X,
$ '4. Random, CNDNUM = 0.1/EPS', 7X,
$ '10. Middle row and column zero', / 4X,
$ '5. Scaled near underflow', 10X,
$ '11. Scaled near underflow', / 4X,
$ '6. Scaled near overflow', 11X, '12. Scaled near overflow' )
*
* PO, PP matrix types
*
9975 FORMAT( 4X, '1. Diagonal', 24X,
$ '6. Random, CNDNUM = sqrt(0.1/EPS)', / 4X,
$ '2. Random, CNDNUM = 2', 14X, '7. Random, CNDNUM = 0.1/EPS',
$ / 3X, '*3. First row and column zero', 7X,
$ '8. Scaled near underflow', / 3X,
$ '*4. Last row and column zero', 8X,
$ '9. Scaled near overflow', / 3X,
$ '*5. Middle row and column zero', / 3X,
$ '(* - tests error exits from ', A3,
$ 'TRF, no test ratios are computed)' )
*
* CH matrix types
*
9974 FORMAT( 4X, '1. Diagonal', 24X,
$ '6. Random, CNDNUM = sqrt(0.1/EPS)', / 4X,
$ '2. Random, CNDNUM = 2', 14X, '7. Random, CNDNUM = 0.1/EPS',
$ / 3X, '*3. First row and column zero', 7X,
$ '8. Scaled near underflow', / 3X,
$ '*4. Last row and column zero', 8X,
$ '9. Scaled near overflow', / 3X,
$ '*5. Middle row and column zero', / 3X,
$ '(* - tests error exits, no test ratios are computed)' )
*
* PB matrix types
*
9973 FORMAT( 4X, '1. Random, CNDNUM = 2', 14X,
$ '5. Random, CNDNUM = sqrt(0.1/EPS)', / 3X,
$ '*2. First row and column zero', 7X,
$ '6. Random, CNDNUM = 0.1/EPS', / 3X,
$ '*3. Last row and column zero', 8X,
$ '7. Scaled near underflow', / 3X,
$ '*4. Middle row and column zero', 6X,
$ '8. Scaled near overflow', / 3X,
$ '(* - tests error exits from ', A3,
$ 'TRF, no test ratios are computed)' )
*
* SSY, SSP, CHE, CHP matrix types
*
9972 FORMAT( 4X, '1. Diagonal', 24X,
$ '6. Last n/2 rows and columns zero', / 4X,
$ '2. Random, CNDNUM = 2', 14X,
$ '7. Random, CNDNUM = sqrt(0.1/EPS)', / 4X,
$ '3. First row and column zero', 7X,
$ '8. Random, CNDNUM = 0.1/EPS', / 4X,
$ '4. Last row and column zero', 8X,
$ '9. Scaled near underflow', / 4X,
$ '5. Middle row and column zero', 5X,
$ '10. Scaled near overflow' )
*
* CSY, CSP matrix types
*
9971 FORMAT( 4X, '1. Diagonal', 24X,
$ '7. Random, CNDNUM = sqrt(0.1/EPS)', / 4X,
$ '2. Random, CNDNUM = 2', 14X, '8. Random, CNDNUM = 0.1/EPS',
$ / 4X, '3. First row and column zero', 7X,
$ '9. Scaled near underflow', / 4X,
$ '4. Last row and column zero', 7X,
$ '10. Scaled near overflow', / 4X,
$ '5. Middle row and column zero', 5X,
$ '11. Block diagonal matrix', / 4X,
$ '6. Last n/2 rows and columns zero' )
*
* QR matrix types
*
9970 FORMAT( 4X, '1. Diagonal', 24X,
$ '5. Random, CNDNUM = sqrt(0.1/EPS)', / 4X,
$ '2. Upper triangular', 16X, '6. Random, CNDNUM = 0.1/EPS',
$ / 4X, '3. Lower triangular', 16X,
$ '7. Scaled near underflow', / 4X, '4. Random, CNDNUM = 2',
$ 14X, '8. Scaled near overflow' )
*
* QP matrix types
*
9969 FORMAT( ' Matrix types (2-6 have condition 1/EPS):', / 4X,
$ '1. Zero matrix', 21X, '4. First n/2 columns fixed', / 4X,
$ '2. One small eigenvalue', 12X, '5. Last n/2 columns fixed',
$ / 4X, '3. Geometric distribution', 10X,
$ '6. Every second column fixed' )
*
* TZ matrix types
*
9968 FORMAT( ' Matrix types (2-3 have condition 1/EPS):', / 4X,
$ '1. Zero matrix', / 4X, '2. One small eigenvalue', / 4X,
$ '3. Geometric distribution' )
*
* LS matrix types
*
9967 FORMAT( ' Matrix types (1-3: full rank, 4-6: rank deficient):',
$ / 4X, '1 and 4. Normal scaling', / 4X,
$ '2 and 5. Scaled near overflow', / 4X,
$ '3 and 6. Scaled near underflow' )
*
* TR, TP matrix types
*
9966 FORMAT( ' Matrix types for ', A3, ' routines:', / 4X,
$ '1. Diagonal', 24X, '6. Scaled near overflow', / 4X,
$ '2. Random, CNDNUM = 2', 14X, '7. Identity', / 4X,
$ '3. Random, CNDNUM = sqrt(0.1/EPS) ',
$ '8. Unit triangular, CNDNUM = 2', / 4X,
$ '4. Random, CNDNUM = 0.1/EPS', 8X,
$ '9. Unit, CNDNUM = sqrt(0.1/EPS)', / 4X,
$ '5. Scaled near underflow', 10X,
$ '10. Unit, CNDNUM = 0.1/EPS' )
9965 FORMAT( ' Special types for testing ', A6, ':', / 3X,
$ '11. Matrix elements are O(1), large right hand side', / 3X,
$ '12. First diagonal causes overflow,',
$ ' offdiagonal column norms < 1', / 3X,
$ '13. First diagonal causes overflow,',
$ ' offdiagonal column norms > 1', / 3X,
$ '14. Growth factor underflows, solution does not overflow',
$ / 3X, '15. Small diagonal causes gradual overflow', / 3X,
$ '16. One zero diagonal element', / 3X,
$ '17. Large offdiagonals cause overflow when adding a column'
$ , / 3X, '18. Unit triangular with large right hand side' )
*
* TB matrix types
*
9964 FORMAT( ' Matrix types for ', A3, ' routines:', / 4X,
$ '1. Random, CNDNUM = 2', 14X, '6. Identity', / 4X,
$ '2. Random, CNDNUM = sqrt(0.1/EPS) ',
$ '7. Unit triangular, CNDNUM = 2', / 4X,
$ '3. Random, CNDNUM = 0.1/EPS', 8X,
$ '8. Unit, CNDNUM = sqrt(0.1/EPS)', / 4X,
$ '4. Scaled near underflow', 11X,
$ '9. Unit, CNDNUM = 0.1/EPS', / 4X,
$ '5. Scaled near overflow' )
9963 FORMAT( ' Special types for testing ', A6, ':', / 3X,
$ '10. Matrix elements are O(1), large right hand side', / 3X,
$ '11. First diagonal causes overflow,',
$ ' offdiagonal column norms < 1', / 3X,
$ '12. First diagonal causes overflow,',
$ ' offdiagonal column norms > 1', / 3X,
$ '13. Growth factor underflows, solution does not overflow',
$ / 3X, '14. Small diagonal causes gradual overflow', / 3X,
$ '15. One zero diagonal element', / 3X,
$ '16. Large offdiagonals cause overflow when adding a column'
$ , / 3X, '17. Unit triangular with large right hand side' )
*
* Test ratios
*
9962 FORMAT( 3X, I2, ': norm( L * U - A ) / ( N * norm(A) * EPS )' )
9961 FORMAT( 3X, I2, ': norm( I - A*AINV ) / ',
$ '( N * norm(A) * norm(AINV) * EPS )' )
9960 FORMAT( 3X, I2, ': norm( B - A * X ) / ',
$ '( norm(A) * norm(X) * EPS )' )
9959 FORMAT( 3X, I2, ': norm( X - XACT ) / ',
$ '( norm(XACT) * CNDNUM * EPS )' )
9958 FORMAT( 3X, I2, ': norm( X - XACT ) / ',
$ '( norm(XACT) * CNDNUM * EPS ), refined' )
9957 FORMAT( 3X, I2, ': norm( X - XACT ) / ',
$ '( norm(XACT) * (error bound) )' )
9956 FORMAT( 3X, I2, ': (backward error) / EPS' )
9955 FORMAT( 3X, I2, ': RCOND * CNDNUM - 1.0' )
9954 FORMAT( 3X, I2, ': norm( U'' * U - A ) / ( N * norm(A) * EPS )',
$ ', or', / 7X, 'norm( L * L'' - A ) / ( N * norm(A) * EPS )'
$ )
9953 FORMAT( 3X, I2, ': norm( U*D*U'' - A ) / ( N * norm(A) * EPS )',
$ ', or', / 7X, 'norm( L*D*L'' - A ) / ( N * norm(A) * EPS )'
$ )
9952 FORMAT( 3X, I2, ': norm( U''*D*U - A ) / ( N * norm(A) * EPS )',
$ ', or', / 7X, 'norm( L*D*L'' - A ) / ( N * norm(A) * EPS )'
$ )
9951 FORMAT( ' Test ratio for ', A6, ':', / 3X, I2,
$ ': norm( s*b - A*x ) / ( norm(A) * norm(x) * EPS )' )
9950 FORMAT( 3X, I2, ': norm( R - Q'' * A ) / ( M * norm(A) * EPS )' )
9949 FORMAT( 3X, I2, ': norm( L - A * Q'' ) / ( N * norm(A) * EPS )' )
9948 FORMAT( 3X, I2, ': norm( L - Q'' * A ) / ( M * norm(A) * EPS )' )
9947 FORMAT( 3X, I2, ': norm( R - A * Q'' ) / ( N * norm(A) * EPS )' )
9946 FORMAT( 3X, I2, ': norm( I - Q''*Q ) / ( M * EPS )' )
9945 FORMAT( 3X, I2, ': norm( I - Q*Q'' ) / ( N * EPS )' )
9944 FORMAT( 3X, I2, ': norm( Q*C - Q*C ) / ', '( ', A1,
$ ' * norm(C) * EPS )' )
9943 FORMAT( 3X, I2, ': norm( C*Q - C*Q ) / ', '( ', A1,
$ ' * norm(C) * EPS )' )
9942 FORMAT( 3X, I2, ': norm( Q''*C - Q''*C )/ ', '( ', A1,
$ ' * norm(C) * EPS )' )
9941 FORMAT( 3X, I2, ': norm( C*Q'' - C*Q'' )/ ', '( ', A1,
$ ' * norm(C) * EPS )' )
9940 FORMAT( 3X, I2, ': norm(svd(A) - svd(R)) / ',
$ '( M * norm(svd(R)) * EPS )' )
9939 FORMAT( 3X, I2, ': norm( A*P - Q*R ) / ( M * norm(A) * EPS )'
$ )
9938 FORMAT( 3X, I2, ': norm( I - Q''*Q ) / ( M * EPS )' )
9937 FORMAT( 3X, I2, ': norm( A - R*Q ) / ( M * norm(A) * EPS )'
$ )
9936 FORMAT( ' Test ratios (1-2: ', A1, 'GELS, 3-6: ', A1,
$ 'GELSS, 7-10: ', A1, 'GELSX):' )
9935 FORMAT( 3X, I2, ': norm( B - A * X ) / ',
$ '( max(M,N) * norm(A) * norm(X) * EPS )' )
9934 FORMAT( 3X, I2, ': norm( (A*X-B)'' *A ) / ',
$ '( max(M,N,NRHS) * norm(A) * norm(B) * EPS )' )
9933 FORMAT( 3X, I2, ': norm(svd(A)-svd(R)) / ',
$ '( min(M,N) * norm(svd(R)) * EPS )' )
9932 FORMAT( 3X, I2, ': Check if X is in the row space of A or A''' )
9931 FORMAT( 3X, I2, ': norm( (A*X-B)'' *A ) / ',
$ '( max(M,N,NRHS) * norm(A) * norm(B) * EPS )', / 7X,
$ 'if TRANS=''N'' and M.GE.N or TRANS=''T'' and M.LT.N, ',
$ 'otherwise', / 7X,
$ 'check if X is in the row space of A or A'' ',
$ '(overdetermined case)' )
9930 FORMAT( 3X, ' 7-10: same as 3-6' )
9929 FORMAT( ' Test ratios (1-3: ', A1, 'TZRQF, 4-6: ', A1,
$ 'TZRZF):' )
9920 FORMAT( 3X, ' 7-10: same as 3-6', 3X, ' 11-14: same as 3-6',
$ 3X, ' 15-18: same as 3-6' )
9921 FORMAT( ' Test ratios:', / ' (1-2: ', A1, 'GELS, 3-6: ', A1,
$ 'GELSX, 7-10: ', A1, 'GELSY, 11-14: ', A1, 'GELSS, 15-18: ',
$ A1, 'GELSD)' )
*
RETURN
*
* End of ALAHD
*
END
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?