1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
! { dg-do compile }
! { dg-options "-O3 -ffast-math" }
SUBROUTINE ZUNG2L( M, N, K, A, LDA, TAU, WORK, INFO )
COMPLEX*16 A( LDA, * ), TAU( * ), WORK( * )
IF( M.LT.0 ) THEN
END IF
CALL ZLARF( 'LEFT', M-N+II, II-1, A( 1, II ), 1, TAU( I ), A,
$ LDA, WORK )
CALL ZSCAL( M-N+II-1, -TAU( I ), A( 1, II ), 1 )
A( M-N+II, II ) = ONE - TAU( I )
END
SUBROUTINE ZLARF( SIDE, M, N, V, INCV, TAU, C, LDC, WORK )
CHARACTER SIDE(*)
LOGICAL LSAME
COMPLEX*16 C( LDC, * ), V(*), WORK(*), TAU
IF( LSAME( SIDE, 'L' ) ) THEN
IF( TAU.NE.ZERO ) THEN
CALL ZGEMV( 'CONJUGATE TRANSPOSE', M, N, ONE, C, LDC, V,
$ INCV, ZERO, WORK, 1 )
END IF
END IF
END
LOGICAL FUNCTION LSAME( CA, CB )
CHARACTER CA(*), CB(*)
END
SUBROUTINE ZGEMV ( TRANS, M, N, ALPHA, A, LDA, X, INCX,
$ BETA, Y, INCY )
COMPLEX*16 A( LDA, * ), X( * ), Y( * )
CHARACTER TRANS(*)
LOGICAL LSAME
IF( LSAME( TRANS, 'N' ) )THEN
IF( INCY.EQ.1 )THEN
IF( X( JX ).NE.ZERO )THEN
Y( I ) = Y( I ) + TEMP*A( I, J )
END IF
END IF
END IF
END
SUBROUTINE ZSCAL(N,ZA,ZX,INCX)
COMPLEX*16 ZA,ZX(1)
IF( N.LE.0 .OR. INCX.LE.0 )RETURN
20 DO 30 I = 1,N
ZX(I) = ZA*ZX(I)
30 CONTINUE
END
|