152 SUBROUTINE zunbdb5( M1, M2, N, X1, INCX1, X2, INCX2, Q1, LDQ1,
154 $ LDQ2, WORK, LWORK, INFO )
161 INTEGER INCX1, INCX2, INFO, LDQ1, LDQ2, LWORK, M1, M2,
165 COMPLEX*16 Q1(LDQ1,*), Q2(LDQ2,*), WORK(*), X1(*), X2(*)
171 DOUBLE PRECISION REALZERO
172 PARAMETER ( REALZERO = 0.0d0 )
174 parameter( one = (1.0d0,0.0d0), zero = (0.0d0,0.0d0) )
177 INTEGER CHILDINFO, I, J
178 DOUBLE PRECISION EPS, NORM, SCL, SSQ
184 DOUBLE PRECISION DLAMCH, DZNRM2
185 EXTERNAL DLAMCH, DZNRM2
197 ELSE IF( m2 .LT. 0 )
THEN
199 ELSE IF( n .LT. 0 )
THEN
201 ELSE IF( incx1 .LT. 1 )
THEN
203 ELSE IF( incx2 .LT. 1 )
THEN
205 ELSE IF( ldq1 .LT. max( 1, m1 ) )
THEN
207 ELSE IF( ldq2 .LT. max( 1, m2 ) )
THEN
209 ELSE IF( lwork .LT. n )
THEN
213 IF( info .NE. 0 )
THEN
214 CALL xerbla(
'ZUNBDB5', -info )
218 eps = dlamch(
'Precision' )
224 CALL zlassq( m1, x1, incx1, scl, ssq )
225 CALL zlassq( m2, x2, incx2, scl, ssq )
226 norm = scl * sqrt( ssq )
228 IF( norm .GT. n * eps )
THEN
234 CALL zscal( m1, one / norm, x1, incx1 )
235 CALL zscal( m2, one / norm, x2, incx2 )
236 CALL zunbdb6( m1, m2, n, x1, incx1, x2, incx2, q1, ldq1, q2,
237 $ ldq2, work, lwork, childinfo )
241 IF( dznrm2(m1,x1,incx1) .NE. realzero
242 $ .OR. dznrm2(m2,x2,incx2) .NE. realzero )
THEN
258 CALL zunbdb6( m1, m2, n, x1, incx1, x2, incx2, q1, ldq1, q2,
259 $ ldq2, work, lwork, childinfo )
260 IF( dznrm2(m1,x1,incx1) .NE. realzero
261 $ .OR. dznrm2(m2,x2,incx2) .NE. realzero )
THEN
277 CALL zunbdb6( m1, m2, n, x1, incx1, x2, incx2, q1, ldq1, q2,
278 $ ldq2, work, lwork, childinfo )
279 IF( dznrm2(m1,x1,incx1) .NE. realzero
280 $ .OR. dznrm2(m2,x2,incx2) .NE. realzero )
THEN
subroutine zunbdb5(m1, m2, n, x1, incx1, x2, incx2, q1, ldq1, q2, ldq2, work, lwork, info)
ZUNBDB5
subroutine zunbdb6(m1, m2, n, x1, incx1, x2, incx2, q1, ldq1, q2, ldq2, work, lwork, info)
ZUNBDB6