151 SUBROUTINE sgemlqt( SIDE, TRANS, M, N, K, MB, V, LDV, T, LDT,
152 $ C, LDC, WORK, INFO )
160 CHARACTER SIDE, TRANS
161 INTEGER INFO, K, LDV, LDC, M, N, MB, LDT
164 REAL V( ldv, * ), C( ldc, * ), T( ldt, * ), WORK( * )
171 LOGICAL LEFT, RIGHT, TRAN, NOTRAN
172 INTEGER I, IB, LDWORK, KF, Q
189 left = lsame( side,
'L' )
190 right = lsame( side,
'R' )
191 tran = lsame( trans,
'T' )
192 notran = lsame( trans,
'N' )
196 ELSE IF ( right )
THEN 199 IF( .NOT.left .AND. .NOT.right )
THEN 201 ELSE IF( .NOT.tran .AND. .NOT.notran )
THEN 203 ELSE IF( m.LT.0 )
THEN 205 ELSE IF( n.LT.0 )
THEN 207 ELSE IF( k.LT.0)
THEN 209 ELSE IF( mb.LT.1 .OR. (mb.GT.k .AND. k.GT.0))
THEN 211 ELSE IF( ldv.LT.max( 1, k ) )
THEN 213 ELSE IF( ldt.LT.mb )
THEN 215 ELSE IF( ldc.LT.max( 1, m ) )
THEN 220 CALL xerbla(
'SGEMLQT', -info )
226 IF( m.EQ.0 .OR. n.EQ.0 .OR. k.EQ.0 )
RETURN 228 IF( left .AND. notran )
THEN 231 ib = min( mb, k-i+1 )
232 CALL slarfb(
'L',
'T',
'F',
'R', m-i+1, n, ib,
233 $ v( i, i ), ldv, t( 1, i ), ldt,
234 $ c( i, 1 ), ldc, work, ldwork )
237 ELSE IF( right .AND. tran )
THEN 240 ib = min( mb, k-i+1 )
241 CALL slarfb(
'R',
'N',
'F',
'R', m, n-i+1, ib,
242 $ v( i, i ), ldv, t( 1, i ), ldt,
243 $ c( 1, i ), ldc, work, ldwork )
246 ELSE IF( left .AND. tran )
THEN 250 ib = min( mb, k-i+1 )
251 CALL slarfb(
'L',
'N',
'F',
'R', m-i+1, n, ib,
252 $ v( i, i ), ldv, t( 1, i ), ldt,
253 $ c( i, 1 ), ldc, work, ldwork )
256 ELSE IF( right .AND. notran )
THEN 260 ib = min( mb, k-i+1 )
261 CALL slarfb(
'R',
'T',
'F',
'R', m, n-i+1, ib,
262 $ v( i, i ), ldv, t( 1, i ), ldt,
263 $ c( 1, i ), ldc, work, ldwork )
subroutine sgemlqt(SIDE, TRANS, M, N, K, MB, V, LDV, T, LDT, C, LDC, WORK, INFO)
subroutine slarfb(SIDE, TRANS, DIRECT, STOREV, M, N, K, V, LDV, T, LDT, C, LDC, WORK, LDWORK)
SLARFB applies a block reflector or its transpose to a general rectangular matrix.
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine dlarfb(SIDE, TRANS, DIRECT, STOREV, M, N, K, V, LDV, T, LDT, C, LDC, WORK, LDWORK)
DLARFB applies a block reflector or its transpose to a general rectangular matrix.