derrst.f

来自「famous linear algebra library (LAPACK) p」· F 代码 · 共 889 行 · 第 1/3 页

F
889
字号
*        DSTERF
*
         SRNAMT = 'DSTERF'
         INFOT = 1
         CALL DSTERF( -1, D, E, INFO )
         CALL CHKXER( 'DSTERF', INFOT, NOUT, LERR, OK )
         NT = NT + 1
*
*        DSTEDC
*
         SRNAMT = 'DSTEDC'
         INFOT = 1
         CALL DSTEDC( '/', 0, D, E, Z, 1, W, 1, IW, 1, INFO )
         CALL CHKXER( 'DSTEDC', INFOT, NOUT, LERR, OK )
         INFOT = 2
         CALL DSTEDC( 'N', -1, D, E, Z, 1, W, 1, IW, 1, INFO )
         CALL CHKXER( 'DSTEDC', INFOT, NOUT, LERR, OK )
         INFOT = 6
         CALL DSTEDC( 'V', 2, D, E, Z, 1, W, 23, IW, 28, INFO )
         CALL CHKXER( 'DSTEDC', INFOT, NOUT, LERR, OK )
         INFOT = 8
         CALL DSTEDC( 'N', 1, D, E, Z, 1, W, 0, IW, 1, INFO )
         CALL CHKXER( 'DSTEDC', INFOT, NOUT, LERR, OK )
         INFOT = 8
         CALL DSTEDC( 'I', 2, D, E, Z, 2, W, 0, IW, 12, INFO )
         CALL CHKXER( 'DSTEDC', INFOT, NOUT, LERR, OK )
         INFOT = 8
         CALL DSTEDC( 'V', 2, D, E, Z, 2, W, 0, IW, 28, INFO )
         CALL CHKXER( 'DSTEDC', INFOT, NOUT, LERR, OK )
         INFOT = 10
         CALL DSTEDC( 'N', 1, D, E, Z, 1, W, 1, IW, 0, INFO )
         CALL CHKXER( 'DSTEDC', INFOT, NOUT, LERR, OK )
         INFOT = 10
         CALL DSTEDC( 'I', 2, D, E, Z, 2, W, 19, IW, 0, INFO )
         CALL CHKXER( 'DSTEDC', INFOT, NOUT, LERR, OK )
         INFOT = 10
         CALL DSTEDC( 'V', 2, D, E, Z, 2, W, 23, IW, 0, INFO )
         CALL CHKXER( 'DSTEDC', INFOT, NOUT, LERR, OK )
         NT = NT + 9
*
*        DSTEVD
*
         SRNAMT = 'DSTEVD'
         INFOT = 1
         CALL DSTEVD( '/', 0, D, E, Z, 1, W, 1, IW, 1, INFO )
         CALL CHKXER( 'DSTEVD', INFOT, NOUT, LERR, OK )
         INFOT = 2
         CALL DSTEVD( 'N', -1, D, E, Z, 1, W, 1, IW, 1, INFO )
         CALL CHKXER( 'DSTEVD', INFOT, NOUT, LERR, OK )
         INFOT = 6
         CALL DSTEVD( 'V', 2, D, E, Z, 1, W, 19, IW, 12, INFO )
         CALL CHKXER( 'DSTEVD', INFOT, NOUT, LERR, OK )
         INFOT = 8
         CALL DSTEVD( 'N', 1, D, E, Z, 1, W, 0, IW, 1, INFO )
         CALL CHKXER( 'DSTEVD', INFOT, NOUT, LERR, OK )
         INFOT = 8
         CALL DSTEVD( 'V', 2, D, E, Z, 2, W, 12, IW, 12, INFO )
         CALL CHKXER( 'DSTEVD', INFOT, NOUT, LERR, OK )
         INFOT = 10
         CALL DSTEVD( 'N', 0, D, E, Z, 1, W, 1, IW, 0, INFO )
         CALL CHKXER( 'DSTEVD', INFOT, NOUT, LERR, OK )
         INFOT = 10
         CALL DSTEVD( 'V', 2, D, E, Z, 2, W, 19, IW, 11, INFO )
         CALL CHKXER( 'DSTEVD', INFOT, NOUT, LERR, OK )
         NT = NT + 7
*
*        DSTEV
*
         SRNAMT = 'DSTEV '
         INFOT = 1
         CALL DSTEV( '/', 0, D, E, Z, 1, W, INFO )
         CALL CHKXER( 'DSTEV ', INFOT, NOUT, LERR, OK )
         INFOT = 2
         CALL DSTEV( 'N', -1, D, E, Z, 1, W, INFO )
         CALL CHKXER( 'DSTEV ', INFOT, NOUT, LERR, OK )
         INFOT = 6
         CALL DSTEV( 'V', 2, D, E, Z, 1, W, INFO )
         CALL CHKXER( 'DSTEV ', INFOT, NOUT, LERR, OK )
         NT = NT + 3
*
*        DSTEVX
*
         SRNAMT = 'DSTEVX'
         INFOT = 1
         CALL DSTEVX( '/', 'A', 0, D, E, 0.0D0, 0.0D0, 0, 0, 0.0D0, M,
     $                X, Z, 1, W, IW, I3, INFO )
         CALL CHKXER( 'DSTEVX', INFOT, NOUT, LERR, OK )
         INFOT = 2
         CALL DSTEVX( 'N', '/', 0, D, E, 0.0D0, 1.0D0, 1, 0, 0.0D0, M,
     $                X, Z, 1, W, IW, I3, INFO )
         CALL CHKXER( 'DSTEVX', INFOT, NOUT, LERR, OK )
         INFOT = 3
         CALL DSTEVX( 'N', 'A', -1, D, E, 0.0D0, 0.0D0, 0, 0, 0.0D0, M,
     $                X, Z, 1, W, IW, I3, INFO )
         CALL CHKXER( 'DSTEVX', INFOT, NOUT, LERR, OK )
         INFOT = 7
         CALL DSTEVX( 'N', 'V', 1, D, E, 0.0D0, 0.0D0, 0, 0, 0.0D0, M,
     $                X, Z, 1, W, IW, I3, INFO )
         CALL CHKXER( 'DSTEVX', INFOT, NOUT, LERR, OK )
         INFOT = 8
         CALL DSTEVX( 'N', 'I', 1, D, E, 0.0D0, 0.0D0, 0, 0, 0.0D0, M,
     $                X, Z, 1, W, IW, I3, INFO )
         CALL CHKXER( 'DSTEVX', INFOT, NOUT, LERR, OK )
         INFOT = 8
         CALL DSTEVX( 'N', 'I', 1, D, E, 0.0D0, 0.0D0, 2, 1, 0.0D0, M,
     $                X, Z, 1, W, IW, I3, INFO )
         CALL CHKXER( 'DSTEVX', INFOT, NOUT, LERR, OK )
         INFOT = 9
         CALL DSTEVX( 'N', 'I', 2, D, E, 0.0D0, 0.0D0, 2, 1, 0.0D0, M,
     $                X, Z, 1, W, IW, I3, INFO )
         CALL CHKXER( 'DSTEVX', INFOT, NOUT, LERR, OK )
         INFOT = 9
         CALL DSTEVX( 'N', 'I', 1, D, E, 0.0D0, 0.0D0, 1, 2, 0.0D0, M,
     $                X, Z, 1, W, IW, I3, INFO )
         CALL CHKXER( 'DSTEVX', INFOT, NOUT, LERR, OK )
         INFOT = 14
         CALL DSTEVX( 'V', 'A', 2, D, E, 0.0D0, 0.0D0, 0, 0, 0.0D0, M,
     $                X, Z, 1, W, IW, I3, INFO )
         CALL CHKXER( 'DSTEVX', INFOT, NOUT, LERR, OK )
         NT = NT + 9
*
*        DSTEVR
*
         N = 1
         SRNAMT = 'DSTEVR'
         INFOT = 1
         CALL DSTEVR( '/', 'A', 0, D, E, 0.0D0, 0.0D0, 1, 1, 0.0D0, M,
     $                R, Z, 1, IW, X, 20*N, IW( 2*N+1 ), 10*N, INFO )
         CALL CHKXER( 'DSTEVR', INFOT, NOUT, LERR, OK )
         INFOT = 2
         CALL DSTEVR( 'V', '/', 0, D, E, 0.0D0, 0.0D0, 1, 1, 0.0D0, M,
     $                R, Z, 1, IW, X, 20*N, IW( 2*N+1 ), 10*N, INFO )
         CALL CHKXER( 'DSTEVR', INFOT, NOUT, LERR, OK )
         INFOT = 3
         CALL DSTEVR( 'V', 'A', -1, D, E, 0.0D0, 0.0D0, 1, 1, 0.0D0, M,
     $                R, Z, 1, IW, X, 20*N, IW( 2*N+1 ), 10*N, INFO )
         CALL CHKXER( 'DSTEVR', INFOT, NOUT, LERR, OK )
         INFOT = 7
         CALL DSTEVR( 'V', 'V', 1, D, E, 0.0D0, 0.0D0, 1, 1, 0.0D0, M,
     $                R, Z, 1, IW, X, 20*N, IW( 2*N+1 ), 10*N, INFO )
         CALL CHKXER( 'DSTEVR', INFOT, NOUT, LERR, OK )
         INFOT = 8
         CALL DSTEVR( 'V', 'I', 1, D, E, 0.0D0, 0.0D0, 0, 1, 0.0D0, M,
     $                W, Z, 1, IW, X, 20*N, IW( 2*N+1 ), 10*N, INFO )
         CALL CHKXER( 'DSTEVR', INFOT, NOUT, LERR, OK )
         INFOT = 9
         N = 2
         CALL DSTEVR( 'V', 'I', 2, D, E, 0.0D0, 0.0D0, 2, 1, 0.0D0, M,
     $                W, Z, 1, IW, X, 20*N, IW( 2*N+1 ), 10*N, INFO )
         CALL CHKXER( 'DSTEVR', INFOT, NOUT, LERR, OK )
         INFOT = 14
         N = 1
         CALL DSTEVR( 'V', 'I', 1, D, E, 0.0D0, 0.0D0, 1, 1, 0.0D0, M,
     $                W, Z, 0, IW, X, 20*N, IW( 2*N+1 ), 10*N, INFO )
         CALL CHKXER( 'DSTEVR', INFOT, NOUT, LERR, OK )
         INFOT = 17
         CALL DSTEVR( 'V', 'I', 1, D, E, 0.0D0, 0.0D0, 1, 1, 0.0D0, M,
     $                W, Z, 1, IW, X, 20*N-1, IW( 2*N+1 ), 10*N, INFO )
         CALL CHKXER( 'DSTEVR', INFOT, NOUT, LERR, OK )
         INFOT = 19
         CALL DSTEVR( 'V', 'I', 1, D, E, 0.0D0, 0.0D0, 1, 1, 0.0D0, M,
     $                W, Z, 1, IW, X, 20*N, IW( 2*N+1 ), 10*N-1, INFO )
         CALL CHKXER( 'DSTEVR', INFOT, NOUT, LERR, OK )
         NT = NT + 9
*
*        DSYEVD
*
         SRNAMT = 'DSYEVD'
         INFOT = 1
         CALL DSYEVD( '/', 'U', 0, A, 1, X, W, 1, IW, 1, INFO )
         CALL CHKXER( 'DSYEVD', INFOT, NOUT, LERR, OK )
         INFOT = 2
         CALL DSYEVD( 'N', '/', 0, A, 1, X, W, 1, IW, 1, INFO )
         CALL CHKXER( 'DSYEVD', INFOT, NOUT, LERR, OK )
         INFOT = 3
         CALL DSYEVD( 'N', 'U', -1, A, 1, X, W, 1, IW, 1, INFO )
         CALL CHKXER( 'DSYEVD', INFOT, NOUT, LERR, OK )
         INFOT = 5
         CALL DSYEVD( 'N', 'U', 2, A, 1, X, W, 3, IW, 1, INFO )
         CALL CHKXER( 'DSYEVD', INFOT, NOUT, LERR, OK )
         INFOT = 8
         CALL DSYEVD( 'N', 'U', 1, A, 1, X, W, 0, IW, 1, INFO )
         CALL CHKXER( 'DSYEVD', INFOT, NOUT, LERR, OK )
         INFOT = 8
         CALL DSYEVD( 'N', 'U', 2, A, 2, X, W, 4, IW, 1, INFO )
         CALL CHKXER( 'DSYEVD', INFOT, NOUT, LERR, OK )
         INFOT = 8
         CALL DSYEVD( 'V', 'U', 2, A, 2, X, W, 20, IW, 12, INFO )
         CALL CHKXER( 'DSYEVD', INFOT, NOUT, LERR, OK )
         INFOT = 10
         CALL DSYEVD( 'N', 'U', 1, A, 1, X, W, 1, IW, 0, INFO )
         CALL CHKXER( 'DSYEVD', INFOT, NOUT, LERR, OK )
         INFOT = 10
         CALL DSYEVD( 'N', 'U', 2, A, 2, X, W, 5, IW, 0, INFO )
         CALL CHKXER( 'DSYEVD', INFOT, NOUT, LERR, OK )
         INFOT = 10
         CALL DSYEVD( 'V', 'U', 2, A, 2, X, W, 27, IW, 11, INFO )
         CALL CHKXER( 'DSYEVD', INFOT, NOUT, LERR, OK )
         NT = NT + 10
*
*        DSYEVR
*
         SRNAMT = 'DSYEVR'
         N = 1
         INFOT = 1
         CALL DSYEVR( '/', 'A', 'U', 0, A, 1, 0.0D0, 0.0D0, 1, 1, 0.0D0,
     $                M, R, Z, 1, IW, Q, 26*N, IW( 2*N+1 ), 10*N, INFO )
         CALL CHKXER( 'DSYEVR', INFOT, NOUT, LERR, OK )
         INFOT = 2
         CALL DSYEVR( 'V', '/', 'U', 0, A, 1, 0.0D0, 0.0D0, 1, 1, 0.0D0,
     $                M, R, Z, 1, IW, Q, 26*N, IW( 2*N+1 ), 10*N, INFO )
         CALL CHKXER( 'DSYEVR', INFOT, NOUT, LERR, OK )
         INFOT = 3
         CALL DSYEVR( 'V', 'A', '/', -1, A, 1, 0.0D0, 0.0D0, 1, 1,
     $                0.0D0, M, R, Z, 1, IW, Q, 26*N, IW( 2*N+1 ), 10*N,
     $                INFO )
         CALL CHKXER( 'DSYEVR', INFOT, NOUT, LERR, OK )
         INFOT = 4
         CALL DSYEVR( 'V', 'A', 'U', -1, A, 1, 0.0D0, 0.0D0, 1, 1,
     $                0.0D0, M, R, Z, 1, IW, Q, 26*N, IW( 2*N+1 ), 10*N,
     $                INFO )
         CALL CHKXER( 'DSYEVR', INFOT, NOUT, LERR, OK )
         INFOT = 6
         CALL DSYEVR( 'V', 'A', 'U', 2, A, 1, 0.0D0, 0.0D0, 1, 1, 0.0D0,
     $                M, R, Z, 1, IW, Q, 26*N, IW( 2*N+1 ), 10*N, INFO )
         CALL CHKXER( 'DSYEVR', INFOT, NOUT, LERR, OK )
         INFOT = 8
         CALL DSYEVR( 'V', 'V', 'U', 1, A, 1, 0.0D0, 0.0D0, 1, 1, 0.0D0,
     $                M, R, Z, 1, IW, Q, 26*N, IW( 2*N+1 ), 10*N, INFO )
         CALL CHKXER( 'DSYEVR', INFOT, NOUT, LERR, OK )
         INFOT = 9
         CALL DSYEVR( 'V', 'I', 'U', 1, A, 1, 0.0D0, 0.0D0, 0, 1, 0.0D0,
     $                M, R, Z, 1, IW, Q, 26*N, IW( 2*N+1 ), 10*N, INFO )
         CALL CHKXER( 'DSYEVR', INFOT, NOUT, LERR, OK )
         INFOT = 10
*
         CALL DSYEVR( 'V', 'I', 'U', 2, A, 2, 0.0D0, 0.0D0, 2, 1, 0.0D0,
     $                M, R, Z, 1, IW, Q, 26*N, IW( 2*N+1 ), 10*N, INFO )
         CALL CHKXER( 'DSYEVR', INFOT, NOUT, LERR, OK )
         INFOT = 15
         CALL DSYEVR( 'V', 'I', 'U', 1, A, 1, 0.0D0, 0.0D0, 1, 1, 0.0D0,
     $                M, R, Z, 0, IW, Q, 26*N, IW( 2*N+1 ), 10*N, INFO )
         CALL CHKXER( 'DSYEVR', INFOT, NOUT, LERR, OK )
         INFOT = 18
         CALL DSYEVR( 'V', 'I', 'U', 1, A, 1, 0.0D0, 0.0D0, 1, 1, 0.0D0,
     $                M, R, Z, 1, IW, Q, 26*N-1, IW( 2*N+1 ), 10*N,
     $                INFO )
         CALL CHKXER( 'DSYEVR', INFOT, NOUT, LERR, OK )
         INFOT = 20
         CALL DSYEVR( 'V', 'I', 'U', 1, A, 1, 0.0D0, 0.0D0, 1, 1, 0.0D0,
     $                M, R, Z, 1, IW, Q, 26*N, IW( 2*N+1 ), 10*N-1,
     $                INFO )
         CALL CHKXER( 'DSYEVR', INFOT, NOUT, LERR, OK )
         NT = NT + 11
*
*        DSYEV
*
         SRNAMT = 'DSYEV '
         INFOT = 1
         CALL DSYEV( '/', 'U', 0, A, 1, X, W, 1, INFO )
         CALL CHKXER( 'DSYEV ', INFOT, NOUT, LERR, OK )
         INFOT = 2
         CALL DSYEV( 'N', '/', 0, A, 1, X, W, 1, INFO )
         CALL CHKXER( 'DSYEV ', INFOT, NOUT, LERR, OK )
         INFOT = 3
         CALL DSYEV( 'N', 'U', -1, A, 1, X, W, 1, INFO )
         CALL CHKXER( 'DSYEV ', INFOT, NOUT, LERR, OK )
         INFOT = 5
         CALL DSYEV( 'N', 'U', 2, A, 1, X, W, 3, INFO )
         CALL CHKXER( 'DSYEV ', INFOT, NOUT, LERR, OK )
         INFOT = 8
         CALL DSYEV( 'N', 'U', 1, A, 1, X, W, 1, INFO )
         CALL CHKXER( 'DSYEV ', INFOT, NOUT, LERR, OK )
         NT = NT + 5
*
*        DSYEVX
*
         SRNAMT = 'DSYEVX'
         INFOT = 1
         CALL DSYEVX( '/', 'A', 'U', 0, A, 1, 0.0D0, 0.0D0, 0, 0, 0.0D0,
     $                M, X, Z, 1, W, 1, IW, I3, INFO )
         CALL CHKXER( 'DSYEVX', INFOT, NOUT, LERR, OK )
         INFOT = 2
         CALL DSYEVX( 'N', '/', 'U', 0, A, 1, 0.0D0, 1.0D0, 1, 0, 0.0D0,
     $                M, X, Z, 1, W, 1, IW, I3, INFO )
         CALL CHKXER( 'DSYEVX', INFOT, NOUT, LERR, OK )
         INFOT = 3
         CALL DSYEVX( 'N', 'A', '/', 0, A, 1, 0.0D0, 0.0D0, 0, 0, 0.0D0,
     $                M, X, Z, 1, W, 1, IW, I3, INFO )
         INFOT = 4
         CALL DSYEVX( 'N', 'A', 'U', -1, A, 1, 0.0D0, 0.0D0, 0, 0,
     $                0.0D0, M, X, Z, 1, W, 1, IW, I3, INFO )
         CALL CHKXER( 'DSYEVX', INFOT, NOUT, LERR, OK )
         INFOT = 6
         CALL DSYEVX( 'N', 'A', 'U', 2, A, 1, 0.0D0, 0.0D0, 0, 0, 0.0D0,
     $                M, X, Z, 1, W, 16, IW, I3, INFO )
         CALL CHKXER( 'DSYEVX', INFOT, NOUT, LERR, OK )

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?