Skip to content

Commit f97e867

Browse files
authored
Merge pull request #421 from thijssteel/multishift-aed-QZ
Multishift QZ with AED
2 parents 7002eb5 + 3bbb3e8 commit f97e867

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+8773
-79
lines changed

SRC/CMakeLists.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ set(SLASRC
9292
sggglm.f sgghrd.f sgghd3.f sgglse.f sggqrf.f
9393
sggrqf.f sggsvd3.f sggsvp3.f sgtcon.f sgtrfs.f sgtsv.f
9494
sgtsvx.f sgttrf.f sgttrs.f sgtts2.f shgeqz.f
95+
slaqz0.f slaqz1.f slaqz2.f slaqz3.f slaqz4.f
9596
shsein.f shseqr.f slabrd.f slacon.f slacn2.f
9697
slaein.f slaexc.f slag2.f slags2.f slagtm.f slagv2.f slahqr.f
9798
slahr2.f slaic1.f slaln2.f slals0.f slalsa.f slalsd.f
@@ -195,6 +196,7 @@ set(CLASRC
195196
chesv_aa.f chetrf_aa.f chetrs_aa.f
196197
chesv_aa_2stage.f chetrf_aa_2stage.f chetrs_aa_2stage.f
197198
chgeqz.f chpcon.f chpev.f chpevd.f
199+
claqz0.f claqz1.f claqz2.f claqz3.f
198200
chpevx.f chpgst.f chpgv.f chpgvd.f chpgvx.f chprfs.f chpsv.f
199201
chpsvx.f
200202
chptrd.f chptrf.f chptri.f chptrs.f chsein.f chseqr.f clabrd.f
@@ -285,6 +287,7 @@ set(DLASRC
285287
dggglm.f dgghrd.f dgghd3.f dgglse.f dggqrf.f
286288
dggrqf.f dggsvd3.f dggsvp3.f dgtcon.f dgtrfs.f dgtsv.f
287289
dgtsvx.f dgttrf.f dgttrs.f dgtts2.f dhgeqz.f
290+
dlaqz0.f dlaqz1.f dlaqz2.f dlaqz3.f dlaqz4.f
288291
dhsein.f dhseqr.f dlabrd.f dlacon.f dlacn2.f
289292
dlaein.f dlaexc.f dlag2.f dlags2.f dlagtm.f dlagv2.f dlahqr.f
290293
dlahr2.f dlaic1.f dlaln2.f dlals0.f dlalsa.f dlalsd.f
@@ -388,6 +391,7 @@ set(ZLASRC
388391
zhesv_aa.f zhetrf_aa.f zhetrs_aa.f
389392
zhesv_aa_2stage.f zhetrf_aa_2stage.f zhetrs_aa_2stage.f
390393
zhgeqz.f zhpcon.f zhpev.f zhpevd.f
394+
zlaqz0.f zlaqz1.f zlaqz2.f zlaqz3.f
391395
zhpevx.f zhpgst.f zhpgv.f zhpgvd.f zhpgvx.f zhprfs.f zhpsv.f
392396
zhpsvx.f
393397
zhptrd.f zhptrf.f zhptri.f zhptrs.f zhsein.f zhseqr.f zlabrd.f

SRC/Makefile

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ SLASRC = \
127127
sggglm.o sgghrd.o sgghd3.o sgglse.o sggqrf.o \
128128
sggrqf.o sggsvd3.o sggsvp3.o sgtcon.o sgtrfs.o sgtsv.o \
129129
sgtsvx.o sgttrf.o sgttrs.o sgtts2.o shgeqz.o \
130+
slaqz0.o slaqz1.o slaqz2.o slaqz3.o slaqz4.o \
130131
shsein.o shseqr.o slabrd.o slacon.o slacn2.o \
131132
slaein.o slaexc.o slag2.o slags2.o slagtm.o slagv2.o slahqr.o \
132133
slahr2.o slaic1.o slaln2.o slals0.o slalsa.o slalsd.o \
@@ -233,6 +234,7 @@ CLASRC = \
233234
chesv_aa.o chetrf_aa.o chetrs_aa.o clahef_aa.o \
234235
chesv_aa_2stage.o chetrf_aa_2stage.o chetrs_aa_2stage.o \
235236
chgeqz.o chpcon.o chpev.o chpevd.o \
237+
claqz0.o claqz1.o claqz2.o claqz3.o \
236238
chpevx.o chpgst.o chpgv.o chpgvd.o chpgvx.o chprfs.o chpsv.o \
237239
chpsvx.o \
238240
chptrd.o chptrf.o chptri.o chptrs.o chsein.o chseqr.o clabrd.o \
@@ -327,6 +329,7 @@ DLASRC = \
327329
dggglm.o dgghrd.o dgghd3.o dgglse.o dggqrf.o \
328330
dggrqf.o dggsvd3.o dggsvp3.o dgtcon.o dgtrfs.o dgtsv.o \
329331
dgtsvx.o dgttrf.o dgttrs.o dgtts2.o dhgeqz.o \
332+
dlaqz0.o dlaqz1.o dlaqz2.o dlaqz3.o dlaqz4.o \
330333
dhsein.o dhseqr.o dlabrd.o dlacon.o dlacn2.o \
331334
dlaein.o dlaexc.o dlag2.o dlags2.o dlagtm.o dlagv2.o dlahqr.o \
332335
dlahr2.o dlaic1.o dlaln2.o dlals0.o dlalsa.o dlalsd.o \
@@ -433,6 +436,7 @@ ZLASRC = \
433436
zhesv_aa.o zhetrf_aa.o zhetrs_aa.o zlahef_aa.o \
434437
zhesv_aa_2stage.o zhetrf_aa_2stage.o zhetrs_aa_2stage.o \
435438
zhgeqz.o zhpcon.o zhpev.o zhpevd.o \
439+
zlaqz0.o zlaqz1.o zlaqz2.o zlaqz3.o \
436440
zhpevx.o zhpgst.o zhpgv.o zhpgvd.o zhpgvx.o zhprfs.o zhpsv.o \
437441
zhpsvx.o \
438442
zhptrd.o zhptrf.o zhptri.o zhptrs.o zhsein.o zhseqr.o zlabrd.o \

SRC/cgges3.f

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,7 @@
243243
*> The QZ iteration failed. (A,B) are not in Schur
244244
*> form, but ALPHA(j) and BETA(j) should be correct for
245245
*> j=INFO+1,...,N.
246-
*> > N: =N+1: other than QZ iteration failed in CHGEQZ
246+
*> > N: =N+1: other than QZ iteration failed in CLAQZ0
247247
*> =N+2: after reordering, roundoff changed values of
248248
*> some complex eigenvalues so that leading
249249
*> eigenvalues in the Generalized Schur form no
@@ -309,7 +309,7 @@ SUBROUTINE CGGES3( JOBVSL, JOBVSR, SORT, SELCTG, N, A, LDA, B,
309309
REAL DIF( 2 )
310310
* ..
311311
* .. External Subroutines ..
312-
EXTERNAL CGEQRF, CGGBAK, CGGBAL, CGGHD3, CHGEQZ, CLACPY,
312+
EXTERNAL CGEQRF, CGGBAK, CGGBAL, CGGHD3, CLAQZ0, CLACPY,
313313
$ CLASCL, CLASET, CTGSEN, CUNGQR, CUNMQR, SLABAD,
314314
$ XERBLA
315315
* ..
@@ -389,9 +389,9 @@ SUBROUTINE CGGES3( JOBVSL, JOBVSR, SORT, SELCTG, N, A, LDA, B,
389389
CALL CGGHD3( JOBVSL, JOBVSR, N, 1, N, A, LDA, B, LDB, VSL,
390390
$ LDVSL, VSR, LDVSR, WORK, -1, IERR )
391391
LWKOPT = MAX( LWKOPT, N + INT ( WORK( 1 ) ) )
392-
CALL CHGEQZ( 'S', JOBVSL, JOBVSR, N, 1, N, A, LDA, B, LDB,
392+
CALL CLAQZ0( 'S', JOBVSL, JOBVSR, N, 1, N, A, LDA, B, LDB,
393393
$ ALPHA, BETA, VSL, LDVSL, VSR, LDVSR, WORK, -1,
394-
$ RWORK, IERR )
394+
$ RWORK, 0, IERR )
395395
LWKOPT = MAX( LWKOPT, INT ( WORK( 1 ) ) )
396396
IF( WANTST ) THEN
397397
CALL CTGSEN( 0, ILVSL, ILVSR, BWORK, N, A, LDA, B, LDB,
@@ -506,9 +506,9 @@ SUBROUTINE CGGES3( JOBVSL, JOBVSR, SORT, SELCTG, N, A, LDA, B,
506506
* Perform QZ algorithm, computing Schur vectors if desired
507507
*
508508
IWRK = ITAU
509-
CALL CHGEQZ( 'S', JOBVSL, JOBVSR, N, ILO, IHI, A, LDA, B, LDB,
509+
CALL CLAQZ0( 'S', JOBVSL, JOBVSR, N, ILO, IHI, A, LDA, B, LDB,
510510
$ ALPHA, BETA, VSL, LDVSL, VSR, LDVSR, WORK( IWRK ),
511-
$ LWORK+1-IWRK, RWORK( IRWRK ), IERR )
511+
$ LWORK+1-IWRK, RWORK( IRWRK ), 0, IERR )
512512
IF( IERR.NE.0 ) THEN
513513
IF( IERR.GT.0 .AND. IERR.LE.N ) THEN
514514
INFO = IERR

SRC/cggev3.f

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,7 @@ SUBROUTINE CGGEV3( JOBVL, JOBVR, N, A, LDA, B, LDB, ALPHA, BETA,
252252
LOGICAL LDUMMA( 1 )
253253
* ..
254254
* .. External Subroutines ..
255-
EXTERNAL CGEQRF, CGGBAK, CGGBAL, CGGHD3, CHGEQZ, CLACPY,
255+
EXTERNAL CGEQRF, CGGBAK, CGGBAL, CGGHD3, CLAQZ0, CLACPY,
256256
$ CLASCL, CLASET, CTGEVC, CUNGQR, CUNMQR, SLABAD,
257257
$ XERBLA
258258
* ..
@@ -335,17 +335,17 @@ SUBROUTINE CGGEV3( JOBVL, JOBVR, N, A, LDA, B, LDB, ALPHA, BETA,
335335
CALL CGGHD3( JOBVL, JOBVR, N, 1, N, A, LDA, B, LDB, VL,
336336
$ LDVL, VR, LDVR, WORK, -1, IERR )
337337
LWKOPT = MAX( LWKOPT, N+INT( WORK( 1 ) ) )
338-
CALL CHGEQZ( 'S', JOBVL, JOBVR, N, 1, N, A, LDA, B, LDB,
338+
CALL CLAQZ0( 'S', JOBVL, JOBVR, N, 1, N, A, LDA, B, LDB,
339339
$ ALPHA, BETA, VL, LDVL, VR, LDVR, WORK, -1,
340-
$ RWORK, IERR )
340+
$ RWORK, 0, IERR )
341341
LWKOPT = MAX( LWKOPT, N+INT( WORK( 1 ) ) )
342342
ELSE
343343
CALL CGGHD3( 'N', 'N', N, 1, N, A, LDA, B, LDB, VL, LDVL,
344344
$ VR, LDVR, WORK, -1, IERR )
345345
LWKOPT = MAX( LWKOPT, N+INT( WORK( 1 ) ) )
346-
CALL CHGEQZ( 'E', JOBVL, JOBVR, N, 1, N, A, LDA, B, LDB,
346+
CALL CLAQZ0( 'E', JOBVL, JOBVR, N, 1, N, A, LDA, B, LDB,
347347
$ ALPHA, BETA, VL, LDVL, VR, LDVR, WORK, -1,
348-
$ RWORK, IERR )
348+
$ RWORK, 0, IERR )
349349
LWKOPT = MAX( LWKOPT, N+INT( WORK( 1 ) ) )
350350
END IF
351351
WORK( 1 ) = CMPLX( LWKOPT )
@@ -468,9 +468,9 @@ SUBROUTINE CGGEV3( JOBVL, JOBVR, N, A, LDA, B, LDB, ALPHA, BETA,
468468
ELSE
469469
CHTEMP = 'E'
470470
END IF
471-
CALL CHGEQZ( CHTEMP, JOBVL, JOBVR, N, ILO, IHI, A, LDA, B, LDB,
471+
CALL CLAQZ0( CHTEMP, JOBVL, JOBVR, N, ILO, IHI, A, LDA, B, LDB,
472472
$ ALPHA, BETA, VL, LDVL, VR, LDVR, WORK( IWRK ),
473-
$ LWORK+1-IWRK, RWORK( IRWRK ), IERR )
473+
$ LWORK+1-IWRK, RWORK( IRWRK ), 0, IERR )
474474
IF( IERR.NE.0 ) THEN
475475
IF( IERR.GT.0 .AND. IERR.LE.N ) THEN
476476
INFO = IERR

0 commit comments

Comments
 (0)