~mmach/netext73/lapack

« back to all changes in this revision

Viewing changes to SRC/zsytrs_aa_2stage.f

  • Committer: mmach
  • Date: 2019-11-24 13:54:54 UTC
  • Revision ID: netbit73@gmail.com-20191124135454-h2kzt23dekf5ib5q
3.9.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
36
36
*> \verbatim
37
37
*>
38
38
*> ZSYTRS_AA_2STAGE solves a system of linear equations A*X = B with a complex
39
 
*> symmetric matrix A using the factorization A = U*T*U**T or
 
39
*> symmetric matrix A using the factorization A = U**T*T*U or
40
40
*> A = L*T*L**T computed by ZSYTRF_AA_2STAGE.
41
41
*> \endverbatim
42
42
*
48
48
*>          UPLO is CHARACTER*1
49
49
*>          Specifies whether the details of the factorization are stored
50
50
*>          as an upper or lower triangular matrix.
51
 
*>          = 'U':  Upper triangular, form is A = U*T*U**T;
 
51
*>          = 'U':  Upper triangular, form is A = U**T*T*U;
52
52
*>          = 'L':  Lower triangular, form is A = L*T*L**T.
53
53
*> \endverbatim
54
54
*>
85
85
*>
86
86
*> \param[in] LTB
87
87
*> \verbatim
 
88
*>          LTB is INTEGER
88
89
*>          The size of the array TB. LTB >= 4*N.
89
90
*> \endverbatim
90
91
*>
207
208
*
208
209
      IF( UPPER ) THEN
209
210
*
210
 
*        Solve A*X = B, where A = U*T*U**T.
 
211
*        Solve A*X = B, where A = U**T*T*U.
211
212
*
212
213
         IF( N.GT.NB ) THEN
213
214
*
214
 
*           Pivot, P**T * B
 
215
*           Pivot, P**T * B -> B
215
216
*
216
217
            CALL ZLASWP( NRHS, B, LDB, NB+1, N, IPIV, 1 )
217
218
*
218
 
*           Compute (U**T \P**T * B) -> B    [ (U**T \P**T * B) ]
 
219
*           Compute (U**T \ B) -> B    [ (U**T \P**T * B) ]
219
220
*
220
221
            CALL ZTRSM( 'L', 'U', 'T', 'U', N-NB, NRHS, ONE, A(1, NB+1),
221
222
     $                 LDA, B(NB+1, 1), LDB)
233
234
            CALL ZTRSM( 'L', 'U', 'N', 'U', N-NB, NRHS, ONE, A(1, NB+1),
234
235
     $                  LDA, B(NB+1, 1), LDB)
235
236
*
236
 
*           Pivot, P * B  [ P * (U \ (T \ (U**T \P**T * B) )) ]
 
237
*           Pivot, P * B -> B  [ P * (U \ (T \ (U**T \P**T * B) )) ]
237
238
*
238
239
            CALL ZLASWP( NRHS, B, LDB, NB+1, N, IPIV, -1 )
239
240
*
245
246
*
246
247
         IF( N.GT.NB ) THEN
247
248
*
248
 
*           Pivot, P**T * B
 
249
*           Pivot, P**T * B -> B
249
250
*
250
251
            CALL ZLASWP( NRHS, B, LDB, NB+1, N, IPIV, 1 )
251
252
*
252
 
*           Compute (L \P**T * B) -> B    [ (L \P**T * B) ]
 
253
*           Compute (L \ B) -> B    [ (L \P**T * B) ]
253
254
*
254
255
            CALL ZTRSM( 'L', 'L', 'N', 'U', N-NB, NRHS, ONE, A(NB+1, 1),
255
256
     $                 LDA, B(NB+1, 1), LDB)
267
268
            CALL ZTRSM( 'L', 'L', 'T', 'U', N-NB, NRHS, ONE, A(NB+1, 1),
268
269
     $                  LDA, B(NB+1, 1), LDB)
269
270
*
270
 
*           Pivot, P * B  [ P * (L**T \ (T \ (L \P**T * B) )) ]
 
271
*           Pivot, P * B -> B  [ P * (L**T \ (T \ (L \P**T * B) )) ]
271
272
*
272
273
            CALL ZLASWP( NRHS, B, LDB, NB+1, N, IPIV, -1 )
273
274
*