cerrgg.f
来自「famous linear algebra library (LAPACK) p」· F 代码 · 共 957 行 · 第 1/3 页
F
957 行
CALL CHKXER( 'CGGSVP', INFOT, NOUT, LERR, OK )
INFOT = 20
CALL CGGSVP( 'N', 'N', 'Q', 2, 2, 2, A, 2, B, 2, TOLA, TOLB,
$ DUMMYK, DUMMYL, U, 2, V, 2, Q, 1, IW, RW, TAU, W,
$ INFO )
CALL CHKXER( 'CGGSVP', INFOT, NOUT, LERR, OK )
NT = NT + 11
*
* CTGSJA
*
SRNAMT = 'CTGSJA'
INFOT = 1
CALL CTGSJA( '/', 'N', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
$ 1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W,
$ NCYCLE, INFO )
CALL CHKXER( 'CTGSJA', INFOT, NOUT, LERR, OK )
INFOT = 2
CALL CTGSJA( 'N', '/', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
$ 1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W,
$ NCYCLE, INFO )
CALL CHKXER( 'CTGSJA', INFOT, NOUT, LERR, OK )
INFOT = 3
CALL CTGSJA( 'N', 'N', '/', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
$ 1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W,
$ NCYCLE, INFO )
CALL CHKXER( 'CTGSJA', INFOT, NOUT, LERR, OK )
INFOT = 4
CALL CTGSJA( 'N', 'N', 'N', -1, 0, 0, DUMMYK, DUMMYL, A, 1, B,
$ 1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W,
$ NCYCLE, INFO )
CALL CHKXER( 'CTGSJA', INFOT, NOUT, LERR, OK )
INFOT = 5
CALL CTGSJA( 'N', 'N', 'N', 0, -1, 0, DUMMYK, DUMMYL, A, 1, B,
$ 1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W,
$ NCYCLE, INFO )
CALL CHKXER( 'CTGSJA', INFOT, NOUT, LERR, OK )
INFOT = 6
CALL CTGSJA( 'N', 'N', 'N', 0, 0, -1, DUMMYK, DUMMYL, A, 1, B,
$ 1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W,
$ NCYCLE, INFO )
CALL CHKXER( 'CTGSJA', INFOT, NOUT, LERR, OK )
INFOT = 10
CALL CTGSJA( 'N', 'N', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 0, B,
$ 1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W,
$ NCYCLE, INFO )
CALL CHKXER( 'CTGSJA', INFOT, NOUT, LERR, OK )
INFOT = 12
CALL CTGSJA( 'N', 'N', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
$ 0, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W,
$ NCYCLE, INFO )
CALL CHKXER( 'CTGSJA', INFOT, NOUT, LERR, OK )
INFOT = 18
CALL CTGSJA( 'U', 'N', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
$ 1, TOLA, TOLB, R1, R2, U, 0, V, 1, Q, 1, W,
$ NCYCLE, INFO )
CALL CHKXER( 'CTGSJA', INFOT, NOUT, LERR, OK )
INFOT = 20
CALL CTGSJA( 'N', 'V', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
$ 1, TOLA, TOLB, R1, R2, U, 1, V, 0, Q, 1, W,
$ NCYCLE, INFO )
CALL CHKXER( 'CTGSJA', INFOT, NOUT, LERR, OK )
INFOT = 22
CALL CTGSJA( 'N', 'N', 'Q', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
$ 1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 0, W,
$ NCYCLE, INFO )
CALL CHKXER( 'CTGSJA', INFOT, NOUT, LERR, OK )
NT = NT + 11
*
* Test error exits for the GLM path.
*
ELSE IF( LSAMEN( 3, PATH, 'GLM' ) ) THEN
*
* CGGGLM
*
SRNAMT = 'CGGGLM'
INFOT = 1
CALL CGGGLM( -1, 0, 0, A, 1, B, 1, TAU, ALPHA, BETA, W, LW,
$ INFO )
CALL CHKXER( 'CGGGLM', INFOT, NOUT, LERR, OK )
INFOT = 2
CALL CGGGLM( 0, -1, 0, A, 1, B, 1, TAU, ALPHA, BETA, W, LW,
$ INFO )
CALL CHKXER( 'CGGGLM', INFOT, NOUT, LERR, OK )
INFOT = 2
CALL CGGGLM( 0, 1, 0, A, 1, B, 1, TAU, ALPHA, BETA, W, LW,
$ INFO )
CALL CHKXER( 'CGGGLM', INFOT, NOUT, LERR, OK )
INFOT = 3
CALL CGGGLM( 0, 0, -1, A, 1, B, 1, TAU, ALPHA, BETA, W, LW,
$ INFO )
CALL CHKXER( 'CGGGLM', INFOT, NOUT, LERR, OK )
INFOT = 3
CALL CGGGLM( 1, 0, 0, A, 1, B, 1, TAU, ALPHA, BETA, W, LW,
$ INFO )
CALL CHKXER( 'CGGGLM', INFOT, NOUT, LERR, OK )
INFOT = 5
CALL CGGGLM( 0, 0, 0, A, 0, B, 1, TAU, ALPHA, BETA, W, LW,
$ INFO )
CALL CHKXER( 'CGGGLM', INFOT, NOUT, LERR, OK )
INFOT = 7
CALL CGGGLM( 0, 0, 0, A, 1, B, 0, TAU, ALPHA, BETA, W, LW,
$ INFO )
CALL CHKXER( 'CGGGLM', INFOT, NOUT, LERR, OK )
INFOT = 12
CALL CGGGLM( 1, 1, 1, A, 1, B, 1, TAU, ALPHA, BETA, W, 1,
$ INFO )
CALL CHKXER( 'CGGGLM', INFOT, NOUT, LERR, OK )
NT = NT + 8
*
* Test error exits for the LSE path.
*
ELSE IF( LSAMEN( 3, PATH, 'LSE' ) ) THEN
*
* CGGLSE
*
SRNAMT = 'CGGLSE'
INFOT = 1
CALL CGGLSE( -1, 0, 0, A, 1, B, 1, TAU, ALPHA, BETA, W, LW,
$ INFO )
CALL CHKXER( 'CGGLSE', INFOT, NOUT, LERR, OK )
INFOT = 2
CALL CGGLSE( 0, -1, 0, A, 1, B, 1, TAU, ALPHA, BETA, W, LW,
$ INFO )
CALL CHKXER( 'CGGLSE', INFOT, NOUT, LERR, OK )
INFOT = 3
CALL CGGLSE( 0, 0, -1, A, 1, B, 1, TAU, ALPHA, BETA, W, LW,
$ INFO )
CALL CHKXER( 'CGGLSE', INFOT, NOUT, LERR, OK )
INFOT = 3
CALL CGGLSE( 0, 0, 1, A, 1, B, 1, TAU, ALPHA, BETA, W, LW,
$ INFO )
CALL CHKXER( 'CGGLSE', INFOT, NOUT, LERR, OK )
INFOT = 3
CALL CGGLSE( 0, 1, 0, A, 1, B, 1, TAU, ALPHA, BETA, W, LW,
$ INFO )
CALL CHKXER( 'CGGLSE', INFOT, NOUT, LERR, OK )
INFOT = 5
CALL CGGLSE( 0, 0, 0, A, 0, B, 1, TAU, ALPHA, BETA, W, LW,
$ INFO )
CALL CHKXER( 'CGGLSE', INFOT, NOUT, LERR, OK )
INFOT = 7
CALL CGGLSE( 0, 0, 0, A, 1, B, 0, TAU, ALPHA, BETA, W, LW,
$ INFO )
CALL CHKXER( 'CGGLSE', INFOT, NOUT, LERR, OK )
INFOT = 12
CALL CGGLSE( 1, 1, 1, A, 1, B, 1, TAU, ALPHA, BETA, W, 1,
$ INFO )
CALL CHKXER( 'CGGLSE', INFOT, NOUT, LERR, OK )
NT = NT + 8
*
* Test error exits for the GQR path.
*
ELSE IF( LSAMEN( 3, PATH, 'GQR' ) ) THEN
*
* CGGQRF
*
SRNAMT = 'CGGQRF'
INFOT = 1
CALL CGGQRF( -1, 0, 0, A, 1, ALPHA, B, 1, BETA, W, LW, INFO )
CALL CHKXER( 'CGGQRF', INFOT, NOUT, LERR, OK )
INFOT = 2
CALL CGGQRF( 0, -1, 0, A, 1, ALPHA, B, 1, BETA, W, LW, INFO )
CALL CHKXER( 'CGGQRF', INFOT, NOUT, LERR, OK )
INFOT = 3
CALL CGGQRF( 0, 0, -1, A, 1, ALPHA, B, 1, BETA, W, LW, INFO )
CALL CHKXER( 'CGGQRF', INFOT, NOUT, LERR, OK )
INFOT = 5
CALL CGGQRF( 0, 0, 0, A, 0, ALPHA, B, 1, BETA, W, LW, INFO )
CALL CHKXER( 'CGGQRF', INFOT, NOUT, LERR, OK )
INFOT = 8
CALL CGGQRF( 0, 0, 0, A, 1, ALPHA, B, 0, BETA, W, LW, INFO )
CALL CHKXER( 'CGGQRF', INFOT, NOUT, LERR, OK )
INFOT = 11
CALL CGGQRF( 1, 1, 2, A, 1, ALPHA, B, 1, BETA, W, 1, INFO )
CALL CHKXER( 'CGGQRF', INFOT, NOUT, LERR, OK )
NT = NT + 6
*
* CGGRQF
*
SRNAMT = 'CGGRQF'
INFOT = 1
CALL CGGRQF( -1, 0, 0, A, 1, ALPHA, B, 1, BETA, W, LW, INFO )
CALL CHKXER( 'CGGRQF', INFOT, NOUT, LERR, OK )
INFOT = 2
CALL CGGRQF( 0, -1, 0, A, 1, ALPHA, B, 1, BETA, W, LW, INFO )
CALL CHKXER( 'CGGRQF', INFOT, NOUT, LERR, OK )
INFOT = 3
CALL CGGRQF( 0, 0, -1, A, 1, ALPHA, B, 1, BETA, W, LW, INFO )
CALL CHKXER( 'CGGRQF', INFOT, NOUT, LERR, OK )
INFOT = 5
CALL CGGRQF( 0, 0, 0, A, 0, ALPHA, B, 1, BETA, W, LW, INFO )
CALL CHKXER( 'CGGRQF', INFOT, NOUT, LERR, OK )
INFOT = 8
CALL CGGRQF( 0, 0, 0, A, 1, ALPHA, B, 0, BETA, W, LW, INFO )
CALL CHKXER( 'CGGRQF', INFOT, NOUT, LERR, OK )
INFOT = 11
CALL CGGRQF( 1, 1, 2, A, 1, ALPHA, B, 1, BETA, W, 1, INFO )
CALL CHKXER( 'CGGRQF', INFOT, NOUT, LERR, OK )
NT = NT + 6
*
* Test error exits for the CGS, CGV, CGX, and CXV paths.
*
ELSE IF( LSAMEN( 3, PATH, 'CGS' ) .OR.
$ LSAMEN( 3, PATH, 'CGV' ) .OR.
$ LSAMEN( 3, PATH, 'CGX' ) .OR. LSAMEN( 3, PATH, 'CXV' ) )
$ THEN
*
* CGGES
*
SRNAMT = 'CGGES '
INFOT = 1
CALL CGGES( '/', 'N', 'S', CLCTES, 1, A, 1, B, 1, SDIM, ALPHA,
$ BETA, Q, 1, U, 1, W, 1, RW, BW, INFO )
CALL CHKXER( 'CGGES ', INFOT, NOUT, LERR, OK )
INFOT = 2
CALL CGGES( 'N', '/', 'S', CLCTES, 1, A, 1, B, 1, SDIM, ALPHA,
$ BETA, Q, 1, U, 1, W, 1, RW, BW, INFO )
CALL CHKXER( 'CGGES ', INFOT, NOUT, LERR, OK )
INFOT = 3
CALL CGGES( 'N', 'V', '/', CLCTES, 1, A, 1, B, 1, SDIM, ALPHA,
$ BETA, Q, 1, U, 1, W, 1, RW, BW, INFO )
CALL CHKXER( 'CGGES ', INFOT, NOUT, LERR, OK )
INFOT = 5
CALL CGGES( 'N', 'V', 'S', CLCTES, -1, A, 1, B, 1, SDIM, ALPHA,
$ BETA, Q, 1, U, 1, W, 1, RW, BW, INFO )
CALL CHKXER( 'CGGES ', INFOT, NOUT, LERR, OK )
INFOT = 7
CALL CGGES( 'N', 'V', 'S', CLCTES, 1, A, 0, B, 1, SDIM, ALPHA,
$ BETA, Q, 1, U, 1, W, 1, RW, BW, INFO )
CALL CHKXER( 'CGGES ', INFOT, NOUT, LERR, OK )
INFOT = 9
CALL CGGES( 'N', 'V', 'S', CLCTES, 1, A, 1, B, 0, SDIM, ALPHA,
$ BETA, Q, 1, U, 1, W, 1, RW, BW, INFO )
CALL CHKXER( 'CGGES ', INFOT, NOUT, LERR, OK )
INFOT = 14
CALL CGGES( 'N', 'V', 'S', CLCTES, 1, A, 1, B, 1, SDIM, ALPHA,
$ BETA, Q, 0, U, 1, W, 1, RW, BW, INFO )
CALL CHKXER( 'CGGES ', INFOT, NOUT, LERR, OK )
INFOT = 14
CALL CGGES( 'V', 'V', 'S', CLCTES, 2, A, 2, B, 2, SDIM, ALPHA,
$ BETA, Q, 1, U, 2, W, 1, RW, BW, INFO )
CALL CHKXER( 'CGGES ', INFOT, NOUT, LERR, OK )
INFOT = 16
CALL CGGES( 'N', 'V', 'S', CLCTES, 1, A, 1, B, 1, SDIM, ALPHA,
$ BETA, Q, 1, U, 0, W, 1, RW, BW, INFO )
CALL CHKXER( 'CGGES ', INFOT, NOUT, LERR, OK )
INFOT = 16
CALL CGGES( 'V', 'V', 'S', CLCTES, 2, A, 2, B, 2, SDIM, ALPHA,
$ BETA, Q, 2, U, 1, W, 1, RW, BW, INFO )
CALL CHKXER( 'CGGES ', INFOT, NOUT, LERR, OK )
INFOT = 18
CALL CGGES( 'V', 'V', 'S', CLCTES, 2, A, 2, B, 2, SDIM, ALPHA,
$ BETA, Q, 2, U, 2, W, 1, RW, BW, INFO )
CALL CHKXER( 'CGGES ', INFOT, NOUT, LERR, OK )
NT = NT + 11
*
* CGGESX
*
SRNAMT = 'CGGESX'
INFOT = 1
CALL CGGESX( '/', 'N', 'S', CLCTSX, 'N', 1, A, 1, B, 1, SDIM,
$ ALPHA, BETA, Q, 1, U, 1, RCE, RCV, W, 1, RW, IW,
$ 1, BW, INFO )
CALL CHKXER( 'CGGESX', INFOT, NOUT, LERR, OK )
INFOT = 2
CALL CGGESX( 'N', '/', 'S', CLCTSX, 'N', 1, A, 1, B, 1, SDIM,
$ ALPHA, BETA, Q, 1, U, 1, RCE, RCV, W, 1, RW, IW,
$ 1, BW, INFO )
CALL CHKXER( 'CGGESX', INFOT, NOUT, LERR, OK )
INFOT = 3
CALL CGGESX( 'V', 'V', '/', CLCTSX, 'N', 1, A, 1, B, 1, SDIM,
$ ALPHA, BETA, Q, 1, U, 1, RCE, RCV, W, 1, RW, IW,
$ 1, BW, INFO )
CALL CHKXER( 'CGGESX', INFOT, NOUT, LERR, OK )
INFOT = 5
CALL CGGESX( 'V', 'V', 'S', CLCTSX, '/', 1, A, 1, B, 1, SDIM,
$ ALPHA, BETA, Q, 1, U, 1, RCE, RCV, W, 1, RW, IW,
$ 1, BW, INFO )
CALL CHKXER( 'CGGESX', INFOT, NOUT, LERR, OK )
INFOT = 6
CALL CGGESX( 'V', 'V', 'S', CLCTSX, 'B', -1, A, 1, B, 1, SDIM,
$ ALPHA, BETA, Q, 1, U, 1, RCE, RCV, W, 1, RW, IW,
$ 1, BW, INFO )
CALL CHKXER( 'CGGESX', INFOT, NOUT, LERR, OK )
INFOT = 8
CALL CGGESX( 'V', 'V', 'S', CLCTSX, 'B', 1, A, 0, B, 1, SDIM,
$ ALPHA, BETA, Q, 1, U, 1, RCE, RCV, W, 1, RW, IW,
$ 1, BW, INFO )
CALL CHKXER( 'CGGESX', INFOT, NOUT, LERR, OK )
INFOT = 10
CALL CGGESX( 'V', 'V', 'S', CLCTSX, 'B', 1, A, 1, B, 0, SDIM,
$ ALPHA, BETA, Q, 1, U, 1, RCE, RCV, W, 1, RW, IW,
$ 1, BW, INFO )
CALL CHKXER( 'CGGESX', INFOT, NOUT, LERR, OK )
INFOT = 15
CALL CGGESX( 'V', 'V', 'S', CLCTSX, 'B', 1, A, 1, B, 1, SDIM,
$ ALPHA, BETA, Q, 0, U, 1, RCE, RCV, W, 1, RW, IW,
$ 1, BW, INFO )
CALL CHKXER( 'CGGESX', INFOT, NOUT, LERR, OK )
INFOT = 15
CALL CGGESX( 'V', 'V', 'S', CLCTSX, 'B', 2, A, 2, B, 2, SDIM,
$ ALPHA, BETA, Q, 1, U, 1, RCE, RCV, W, 1, RW, IW,
$ 1, BW, INFO )
CALL CHKXER( 'CGGESX', INFOT, NOUT, LERR, OK )
INFOT = 17
CALL CGGESX( 'V', 'V', 'S', CLCTSX, 'B', 1, A, 1, B, 1, SDIM,
$ ALPHA, BETA, Q, 1, U, 0, RCE, RCV, W, 1, RW, IW,
$ 1, BW, INFO )
CALL CHKXER( 'CGGESX', INFOT, NOUT, LERR, OK )
INFOT = 17
CALL CGGESX( 'V', 'V', 'S', CLCTSX, 'B', 2, A, 2, B, 2, SDIM,
$ ALPHA, BETA, Q, 2, U, 1, RCE, RCV, W, 1, RW, IW,
$ 1, BW, INFO )
CALL CHKXER( 'CGGESX', INFOT, NOUT, LERR, OK )
INFOT = 21
CALL CGGESX( 'V', 'V', 'S', CLCTSX, 'B', 2, A, 2, B, 2, SDIM,
$ ALPHA, BETA, Q, 2, U, 2, RCE, RCV, W, 1, RW, IW,
$ 1, BW, INFO )
CALL CHKXER( 'CGGESX', INFOT, NOUT, LERR, OK )
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?