158 SUBROUTINE zunbdb6( M1, M2, N, X1, INCX1, X2, INCX2, Q1, LDQ1, Q2,
159 $ LDQ2, WORK, LWORK, INFO )
166 INTEGER INCX1, INCX2, INFO, LDQ1, LDQ2, LWORK, M1, M2,
170 COMPLEX*16 Q1(ldq1,*), Q2(ldq2,*), WORK(*), X1(*), X2(*)
176 DOUBLE PRECISION ALPHA, REALONE, REALZERO
177 parameter( alpha = 0.01d0, realone = 1.0d0,
179 COMPLEX*16 NEGONE, ONE, ZERO
180 parameter( negone = (-1.0d0,0.0d0), one = (1.0d0,0.0d0),
181 $ zero = (0.0d0,0.0d0) )
185 DOUBLE PRECISION EPS, NORM, NORM_NEW, SCL, SSQ
188 DOUBLE PRECISION DLAMCH
203 ELSE IF( m2 .LT. 0 )
THEN 205 ELSE IF( n .LT. 0 )
THEN 207 ELSE IF( incx1 .LT. 1 )
THEN 209 ELSE IF( incx2 .LT. 1 )
THEN 211 ELSE IF( ldq1 .LT. max( 1, m1 ) )
THEN 213 ELSE IF( ldq2 .LT. max( 1, m2 ) )
THEN 215 ELSE IF( lwork .LT. n )
THEN 219 IF( info .NE. 0 )
THEN 220 CALL xerbla(
'ZUNBDB6', -info )
224 eps = dlamch(
'Precision' )
240 CALL zgemv(
'C', m1, n, one, q1, ldq1, x1, incx1, zero, work,
244 CALL zgemv(
'C', m2, n, one, q2, ldq2, x2, incx2, one, work, 1 )
246 CALL zgemv(
'N', m1, n, negone, q1, ldq1, work, 1, one, x1,
248 CALL zgemv(
'N', m2, n, negone, q2, ldq2, work, 1, one, x2,
253 CALL zlassq( m1, x1, incx1, scl, ssq )
254 CALL zlassq( m2, x2, incx2, scl, ssq )
255 norm_new = scl * sqrt(ssq)
261 IF( norm_new .GE. alpha * norm )
THEN 265 IF( norm_new .LE. n * eps * norm )
THEN 266 DO ix = 1, 1 + (m1-1)*incx1, incx1
269 DO ix = 1, 1 + (m2-1)*incx2, incx2
286 CALL zgemv(
'C', m1, n, one, q1, ldq1, x1, incx1, zero, work,
290 CALL zgemv(
'C', m2, n, one, q2, ldq2, x2, incx2, one, work, 1 )
292 CALL zgemv(
'N', m1, n, negone, q1, ldq1, work, 1, one, x1,
294 CALL zgemv(
'N', m2, n, negone, q2, ldq2, work, 1, one, x2,
299 CALL zlassq( m1, x1, incx1, scl, ssq )
300 CALL zlassq( m2, x2, incx2, scl, ssq )
301 norm_new = scl * sqrt(ssq)
307 IF( norm_new .LT. alpha * norm )
THEN 308 DO ix = 1, 1 + (m1-1)*incx1, incx1
311 DO ix = 1, 1 + (m2-1)*incx2, incx2
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine zunbdb6(M1, M2, N, X1, INCX1, X2, INCX2, Q1, LDQ1, Q2, LDQ2, WORK, LWORK, INFO)
ZUNBDB6
subroutine zgemv(TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
ZGEMV