|
|
| |
| # lines: |
356 | | # code: |
356 | | # comment: | 0 | |
# blank: | 0 |
| # Variables: | 47 |
| # Callers: | 1 |
| # Callings: | 0 |
| # Words: | 209 |
| # Keywords: | 148 |
|
|
|
|
|
..
.. Array Arguments ..
..
Purpose
=======
PSLAED3 finds the roots of the secular equation, as defined by the
values in D, W, and RHO, between 1 and K. It makes the
appropriate calls to SLAED4
This code makes very mild assumptions about floating point
arithmetic. It will work on machines with a guard digit in
add/subtract, or on those binary machines without guard digits
which subtract like the Cray X-MP, Cray Y-MP, Cray C-90, or Cray-2.
It could conceivably fail on hexadecimal or decimal machines
without guard digits, but we know of none.
Arguments
=========
ICTXT (global input) INTEGER
The BLACS context handle, indicating the global context of
the operation on the matrix. The context itself is global.
K (output) INTEGER
The number of non-deflated eigenvalues, and the order of the
related secular equation. 0 <= K <=N.
N (input) INTEGER
The dimension of the symmetric tridiagonal matrix. N >= 0.
NB (global input) INTEGER
The blocking factor used to distribute the columns of the
matrix. NB >= 1.
D (input/output) REAL array, dimension (N)
On entry, D contains the eigenvalues of the two submatrices to
be combined.
On exit, D contains the trailing (N-K) updated eigenvalues
(those which were deflated) sorted into increasing order.
DROW (global input) INTEGER
The process row over which the first row of the matrix D is
distributed. 0 <= DROW < NPROW.
DCOL (global input) INTEGER
The process column over which the first column of the
matrix D is distributed. 0 <= DCOL < NPCOL.
Q (input/output) REAL array, dimension (LDQ, N)
On entry, Q contains the eigenvectors of two submatrices in
the two square blocks with corners at (1,1), (N1,N1)
and (N1+1, N1+1), (N,N).
On exit, Q contains the trailing (N-K) updated eigenvectors
(those which were deflated) in its last N-K columns.
LDQ (input) INTEGER
The leading dimension of the array Q. LDQ >= max(1,NQ).
RHO (global input/output) REAL
On entry, the off-diagonal element associated with the rank-1
cut which originally split the two submatrices which are now
being recombined.
On exit, RHO has been modified to the value required by
PSLAED3.
DLAMDA (global output) REAL array, dimension (N)
A copy of the first K eigenvalues which will be used by
SLAED3 to form the secular equation.
W (global output) REAL array, dimension (N)
The first k values of the final deflation-altered z-vector
which will be passed to SLAED3.
Z (global input) REAL array, dimension (N)
On entry, Z contains the updating vector (the last
row of the first sub-eigenvector matrix and the first row of
the second sub-eigenvector matrix).
On exit, the contents of Z have been destroyed by the updating
process.
U (global output) REAL array
global dimension (N, N), local dimension (LDU, NQ).
Q contains the orthonormal eigenvectors of the symmetric
tridiagonal matrix.
LDU (input) INTEGER
The leading dimension of the array U.
QBUF (workspace) REAL array, dimension 3*N
INDX (workspace) INTEGER array, dimension (N)
The permutation used to sort the contents of DLAMDA into
ascending order.
INDCOL (workspace) INTEGER array, dimension (N)
INDROW (workspace) INTEGER array, dimension (N)
INDXR (workspace) INTEGER array, dimension (N)
INDXC (workspace) INTEGER array, dimension (N)
CTOT (workspace) INTEGER array, dimension( NPCOL, 4)
NPCOL (global input) INTEGER
The total number of columns over which the distributed
submatrix is distributed.
INFO (output) INTEGER
= 0: successful exit.
< 0: if INFO = -i, the i-th argument had an illegal value.
> 0: The algorithm failed to compute the ith eigenvalue.
=====================================================================
.. Parameters ..
|
|
|
|
001 SUBROUTINE PSLAED3( ICTXT , K , N , NB , D , DROW , DCOL , RHO , DLAMDA ,
002 $W , Z , U , LDU , BUF , INDX , INDCOL , INDROW ,
003 $INDXR , INDXC , CTOT , NPCOL , INFO )
004
005 * -- ScaLAPACK auxiliary routine(version 1.7) --
006 * University of Tennessee , Knoxville , Oak Ridge National Laboratory ,
007 * and University of California , Berkeley.
008 * December 31 , 1998
009
010 * .. Scalar Arguments ..
011 INTEGER DCOL , DROW , ICTXT , INFO , K , LDU , N , NB , NPCOL
012 REAL RHO
013 REAL ONE
014 PARAMETER( ONE = 1.0E0 )
015 * ..
016 * .. Local Scalars ..
017 INTEGER COL , GI , I , IINFO , IIU , IPD , IU , J , JJU , JU ,
018 $KK , KL , KLC , KLR , MYCOL , MYKL , MYKLR , MYROW ,
019 $NPROW , PDC , PDR , ROW
020 REAL AUX , TEMP
021 * ..
022 * .. External Functions ..
023 INTEGER INDXG2L
024 REAL SLAMC3 , SNRM2
025 EXTERNAL INDXG2L , SLAMC3 , SNRM2
026 * ..
027 * .. External Subroutines ..
028 EXTERNAL BLACS_GRIDINFO , SCOPY , SGEBR2D , SGEBS2D ,
029 $SGERV2D , SGESD2D , SLAED4
030 * ..
031 * .. Intrinsic Functions ..
032 INTRINSIC MOD , SIGN , SQRT
033 * ..
034 * .. Executable Statements ..
035
036 * Test the input parameters.
037
038 IINFO = 0
039
040 * Quick return if possible
041
042 IF( K.EQ.0 )
042
043 $ RETURN
044
045 CALL BLACS_GRIDINFO( ICTXT , NPROW , NPCOL , MYROW , MYCOL )
046
047 ROW = DROW
048 COL = DCOL
049 DO 20 I = 1 , N , NB
049
050 DO 10 J = 0 , NB - 1
050
051 INDROW( I + J ) = ROW
052 INDCOL( I + J ) = COL
053 10 CONTINUE
053
054 ROW = MOD( ROW + 1 , NPROW )
055 COL = MOD( COL + 1 , NPCOL )
056 20 CONTINUE
057
057
058 MYKL = CTOT( MYCOL , 1 ) + CTOT( MYCOL , 2 ) + CTOT( MYCOL , 3 )
059 KLR = MYKL / NPROW
060 IF( MYROW.EQ.DROW ) THEN
060
061 MYKLR = KLR + MOD( MYKL , NPROW )
062 ELSE
062
063 MYKLR = KLR
064 END IF
065 PDC = 1
066 COL = DCOL
067 30 CONTINUE
068 IF( MYCOL.NE.COL ) THEN
068
069 PDC = PDC + CTOT( COL , 1 ) + CTOT( COL , 2 ) + CTOT( COL , 3 )
070 COL = MOD( COL + 1 , NPCOL )
071 GO TO 30
072 END IF
073 PDR = PDC
074 KL = KLR + MOD( MYKL , NPROW )
075 ROW = DROW
076 40 CONTINUE
077 IF( MYROW.NE.ROW ) THEN
077
078 PDR = PDR + KL
079 KL = KLR
080 ROW = MOD( ROW + 1 , NPROW )
081 GO TO 40
082 END IF
083
084 DO 50 I = 1 , K
084
085 DLAMDA( I ) = SLAMC3( DLAMDA( I ) , DLAMDA( I ) ) - DLAMDA( I )
086 Z( I ) = ONE
087 50 CONTINUE
088 IF( MYKLR.GT.0 ) THEN
088
089 KK = PDR
090 DO 80 I = 1 , MYKLR
090
091 CALL SLAED4( K , KK , DLAMDA , W , BUF , RHO , BUF( K + I ) , IINFO )
092 IF( IINFO.NE.0 ) THEN
092
093 INFO = KK
094 END IF
095
096 * ..Compute part of z
097
098 DO 60 J = 1 , KK - 1
098
099 Z( J ) = Z( J )*( BUF( J ) /
100 $( DLAMDA( J ) - DLAMDA( KK ) ) )
101 60 CONTINUE
101
102 Z( KK ) = Z( KK )*BUF( KK )
103 DO 70 J = KK + 1 , K
103
104 Z( J ) = Z( J )*( BUF( J ) /
105 $( DLAMDA( J ) - DLAMDA( KK ) ) )
106 70 CONTINUE
106
107 KK = KK + 1
108 80 CONTINUE
109
109
110 IF( MYROW.NE.DROW ) THEN
110
111 CALL SCOPY( K , Z , 1 , BUF , 1 )
112 CALL SGESD2D( ICTXT , K + MYKLR , 1 , BUF , K + MYKLR , DROW , MYCOL )
113 ELSE
113
114 IPD = 2*K + 1
115 CALL SCOPY( MYKLR , BUF( K + 1 ) , 1 , BUF( IPD ) , 1 )
116 IF( KLR.GT.0 ) THEN
116
117 IPD = MYKLR + IPD
118 ROW = MOD( DROW + 1 , NPROW )
119 DO 100 I = 1 , NPROW - 1
119
120 CALL SGERV2D( ICTXT , K + KLR , 1 , BUF , K + KLR , ROW ,
121 $ MYCOL )
122 CALL SCOPY( KLR , BUF( K + 1 ) , 1 , BUF( IPD ) , 1 )
123 DO 90 J = 1 , K
123
124 Z( J ) = Z( J )*BUF( J )
125 90 CONTINUE
125
126 IPD = IPD + KLR
127 ROW = MOD( ROW + 1 , NPROW )
128 100 CONTINUE
128
129 END IF
130 END IF
131 END IF
132
133 IF( MYROW.EQ.DROW ) THEN
133
134 IF( MYCOL.NE.DCOL .AND. MYKL.NE.0 ) THEN
134
135 CALL SCOPY( K , Z , 1 , BUF , 1 )
136 CALL SCOPY( MYKL , BUF( 2*K + 1 ) , 1 , BUF( K + 1 ) , 1 )
137 CALL SGESD2D( ICTXT , K + MYKL , 1 , BUF , K + MYKL , MYROW , DCOL )
138 ELSE IF( MYCOL.EQ.DCOL ) THEN
138
139 IPD = 2*K + 1
140 COL = DCOL
141 KL = MYKL
142 DO 120 I = 1 , NPCOL - 1
142
143 IPD = IPD + KL
144 COL = MOD( COL + 1 , NPCOL )
145 KL = CTOT( COL , 1 ) + CTOT( COL , 2 ) + CTOT( COL , 3 )
146 IF( KL.NE.0 ) THEN
146
147 CALL SGERV2D( ICTXT , K + KL , 1 , BUF , K + KL , MYROW , COL )
148 CALL SCOPY( KL , BUF( K + 1 ) , 1 , BUF( IPD ) , 1 )
149 DO 110 J = 1 , K
149
150 Z( J ) = Z( J )*BUF( J )
151 110 CONTINUE
151
152 END IF
153 120 CONTINUE
153
154 DO 130 I = 1 , K
154
155 Z( I ) = SIGN( SQRT( - Z( I ) ) , W( I ) )
156 130 CONTINUE
157
157
158 END IF
159 END IF
160
161 * Diffusion
162
163 IF( MYROW.EQ.DROW .AND. MYCOL.EQ.DCOL ) THEN
163
164 CALL SCOPY( K , Z , 1 , BUF , 1 )
165 CALL SCOPY( K , BUF( 2*K + 1 ) , 1 , BUF( K + 1 ) , 1 )
166 CALL SGEBS2D( ICTXT , 'All' , ' ' , 2*K , 1 , BUF , 2*K )
167 ELSE
167
168 CALL SGEBR2D( ICTXT , 'All' , ' ' , 2*K , 1 , BUF , 2*K , DROW , DCOL )
169 CALL SCOPY( K , BUF , 1 , Z , 1 )
170 END IF
171
172 * Copy of D at the good place
173
174 KLC = 0
175 KLR = 0
176 DO 140 I = 1 , K
176
177 GI = INDX( I )
178 D( GI ) = BUF( K + I )
179 COL = INDCOL( GI )
180 ROW = INDROW( GI )
181 IF( COL.EQ.MYCOL ) THEN
181
182 KLC = KLC + 1
183 INDXC( KLC ) = I
184 END IF
185 IF( ROW.EQ.MYROW ) THEN
185
186 KLR = KLR + 1
187 INDXR( KLR ) = I
188 END IF
189 140 CONTINUE
190
191 * Compute eigenvectors of the modified rank - 1 modification.
192
193 IF( MYKL.NE.0 ) THEN
193
194 DO 180 J = 1 , MYKL
194
195 KK = INDXC( J )
196 JU = INDX( KK )
197 JJU = INDXG2L( JU , NB , J , J , NPCOL )
198 CALL SLAED4( K , KK , DLAMDA , W , BUF , RHO , AUX , IINFO )
199 IF( IINFO.NE.0 ) THEN
199
200 INFO = KK
201 END IF
202 IF( K.EQ.1 .OR. K.EQ.2 ) THEN
202
203 DO 150 I = 1 , KLR
203
204 KK = INDXR( I )
205 IU = INDX( KK )
206 IIU = INDXG2L( IU , NB , J , J , NPROW )
207 U( IIU , JJU ) = BUF( KK )
208 150 CONTINUE
208
209 GO TO 180
210 END IF
211
212 DO 160 I = 1 , K
212
213 BUF( I ) = Z( I ) / BUF( I )
214 160 CONTINUE
214
215 TEMP = SNRM2( K , BUF , 1 )
216 DO 170 I = 1 , KLR
216
217 KK = INDXR( I )
218 IU = INDX( KK )
219 IIU = INDXG2L( IU , NB , J , J , NPROW )
220 U( IIU , JJU ) = BUF( KK ) / TEMP
221 170 CONTINUE
222 180 CONTINUE
223 END IF
224
225 190 CONTINUE
226 RETURN
227
228 * End of PSLAED3
229
230 END25
49
|
|
Variables in Routine PSLAED3()
| Summary Report |
| Data Type | Quantity | Size(byte) |
| INTEGER | 36 | 144 |
| REAL | 11 | 44 |
| TOTAL | 47 | 188 |
List of Variables
INTEGER
| COL | DCOL | DROW | GI | I |
| ICTXT | IINFO | IIU | INDCOL | INDROW |
| INDXC | INDXG2L | INDXR | INFO | IPD |
| IU | J | JJU | JU | K |
| KK | KL | KLC | KLR | LDU |
| MYCOL | MYKL | MYKLR | MYROW | N |
| NB | NPCOL | NPROW | PDC | PDR |
| ROW | | | | |
REAL
| AUX | BUF | D | DLAMDA | ONE |
| RHO | SLAMC3 | SNRM2 | TEMP | U |
| Z | | | | |
Variables Dependence Graph Put the mouse over a right hand side variable to display the corresponding line of the dependence | | - | | - | - | | BUF | <--- | BUFBUF( I ) = Z( I ) / BUF( I ), ZBUF( I ) = Z( I ) / BUF( I ), IBUF( I ) = Z( I ) / BUF( I ) |
| COL | <--- | INDCOLCOL = INDCOL( GI ), COLCOL = MOD( COL+1, NPCOL ){2COL = MOD( COL+1, NPCOL ), 3COL = MOD( COL+1, NPCOL )}, NPCOLCOL = MOD( COL+1, NPCOL ){2COL = MOD( COL+1, NPCOL ), 3COL = MOD( COL+1, NPCOL )}, DCOLCOL = DCOL{2COL = DCOL, 3COL = DCOL}, GICOL = INDCOL( GI ) |
| D | <--- | BUFD( GI ) = BUF( K+I ), KD( GI ) = BUF( K+I ), ID( GI ) = BUF( K+I ) |
| DLAMDA | <--- | SLAMC3DLAMDA( I ) = SLAMC3( DLAMDA( I ), DLAMDA( I ) ) - DLAMDA( I ), DLAMDADLAMDA( I ) = SLAMC3( DLAMDA( I ), DLAMDA( I ) ) - DLAMDA( I ), IDLAMDA( I ) = SLAMC3( DLAMDA( I ), DLAMDA( I ) ) - DLAMDA( I ) |
| GI | <--- | IGI = INDX( I ) |
| I | <--- | KDO 130 I = 1, K{2DO 140 I = 1, K, 3DO 160 I = 1, K, 4DO 50 I = 1, K}, KLRDO 150 I = 1, KLR{2DO 170 I = 1, KLR}, MYKLRDO 80 I = 1, MYKLR, NDO 20 I = 1, N, NB, NBDO 20 I = 1, N, NB, NPCOLDO 120 I = 1, NPCOL - 1, NPROWDO 100 I = 1, NPROW - 1 |
| IIU | <--- | INDXG2LIIU = INDXG2L( IU, NB, J, J, NPROW ){2IIU = INDXG2L( IU, NB, J, J, NPROW )}, IUIIU = INDXG2L( IU, NB, J, J, NPROW ){2IIU = INDXG2L( IU, NB, J, J, NPROW )}, JIIU = INDXG2L( IU, NB, J, J, NPROW ){2IIU = INDXG2L( IU, NB, J, J, NPROW )}, NBIIU = INDXG2L( IU, NB, J, J, NPROW ){2IIU = INDXG2L( IU, NB, J, J, NPROW )}, NPROWIIU = INDXG2L( IU, NB, J, J, NPROW ){2IIU = INDXG2L( IU, NB, J, J, NPROW )} |
| INDCOL | <--- | COLINDCOL( I+J ) = COL |
| INDROW | <--- | ROWINDROW( I+J ) = ROW |
| INDXC | <--- | IINDXC( KLC ) = I |
| INDXR | <--- | IINDXR( KLR ) = I |
| INFO | <--- | KKINFO = KK{2INFO = KK} |
| IPD | <--- | IPDIPD = MYKLR + IPD{2IPD = IPD + KLR, 3IPD = IPD + KL}, KIPD = 2*K + 1{2IPD = 2*K + 1}, KLIPD = IPD + KL, KLRIPD = IPD + KLR, MYKLRIPD = MYKLR + IPD |
| IU | <--- | KKIU = INDX( KK ){2IU = INDX( KK )} |
| J | <--- | KDO 70 J = KK + 1, K{2DO 90 J = 1, K, 3DO 110 J = 1, K}, KKDO 70 J = KK + 1, K{2DO 60 J = 1, KK - 1}, MYKLDO 180 J = 1, MYKL, NBDO 10 J = 0, NB - 1 |
| JJU | <--- | INDXG2LJJU = INDXG2L( JU, NB, J, J, NPCOL ), JJJU = INDXG2L( JU, NB, J, J, NPCOL ), JUJJU = INDXG2L( JU, NB, J, J, NPCOL ), NBJJU = INDXG2L( JU, NB, J, J, NPCOL ), NPCOLJJU = INDXG2L( JU, NB, J, J, NPCOL ) |
| JU | <--- | KKJU = INDX( KK ) |
| KK | <--- | INDXCKK = INDXC( J ), INDXRKK = INDXR( I ){2KK = INDXR( I )}, JKK = INDXC( J ), KKKK = KK + 1, PDRKK = PDR, IKK = INDXR( I ){2KK = INDXR( I )} |
| KL | <--- | KLRKL = KLR + MOD( MYKL, NPROW ){2KL = KLR}, COLKL = CTOT( COL, 1 ) + CTOT( COL, 2 ) + CTOT( COL, 3 ), MYKLKL = MYKL{2KL = KLR + MOD( MYKL, NPROW )}, NPROWKL = KLR + MOD( MYKL, NPROW ) |
| KLC | <--- | KLCKLC = KLC + 1 |
| KLR | <--- | KLRKLR = KLR + 1, MYKLKLR = MYKL / NPROW, NPROWKLR = MYKL / NPROW |
| MYKL | <--- | MYCOLMYKL = CTOT( MYCOL, 1 ) + CTOT( MYCOL, 2 ) + CTOT( MYCOL, 3 ) |
| MYKLR | <--- | KLRMYKLR = KLR + MOD( MYKL, NPROW ){2MYKLR = KLR}, MYKLMYKLR = KLR + MOD( MYKL, NPROW ), NPROWMYKLR = KLR + MOD( MYKL, NPROW ) |
| PDC | <--- | COLPDC = PDC + CTOT( COL, 1 ) + CTOT( COL, 2 ) + CTOT( COL, 3 ), PDCPDC = PDC + CTOT( COL, 1 ) + CTOT( COL, 2 ) + CTOT( COL, 3 ) |
| PDR | <--- | KLPDR = PDR + KL, PDCPDR = PDC, PDRPDR = PDR + KL |
| ROW | <--- | INDROWROW = INDROW( GI ), NPROWROW = MOD( DROW+1, NPROW ){2ROW = MOD( ROW+1, NPROW ), 3ROW = MOD( ROW+1, NPROW ), 4ROW = MOD( ROW+1, NPROW )}, ROWROW = MOD( ROW+1, NPROW ){2ROW = MOD( ROW+1, NPROW ), 3ROW = MOD( ROW+1, NPROW )}, DROWROW = MOD( DROW+1, NPROW ){2ROW = DROW, 3ROW = DROW}, GIROW = INDROW( GI ) |
| TEMP | <--- | BUFTEMP = SNRM2( K, BUF, 1 ), KTEMP = SNRM2( K, BUF, 1 ), SNRM2TEMP = SNRM2( K, BUF, 1 ) |
| U | <--- | BUFU( IIU, JJU ) = BUF( KK ){2U( IIU, JJU ) = BUF( KK ) / TEMP}, KKU( IIU, JJU ) = BUF( KK ){2U( IIU, JJU ) = BUF( KK ) / TEMP}, TEMPU( IIU, JJU ) = BUF( KK ) / TEMP |
| Z | <--- | BUFZ( KK ) = Z( KK )*BUF( KK ){2Z( J ) = Z( J )*( BUF( J ) /, 3Z( J ) = Z( J )*BUF( J ), 4Z( J ) = Z( J )*BUF( J ), 5Z( J ) = Z( J )*( BUF( J ) /}, JZ( J ) = Z( J )*( BUF( J ) /{2Z( J ) = Z( J )*BUF( J ), 3Z( J ) = Z( J )*BUF( J ), 4Z( J ) = Z( J )*( BUF( J ) /}, KKZ( KK ) = Z( KK )*BUF( KK ){2Z( J ) = Z( J )*( BUF( J ) /, 3Z( J ) = Z( J )*( BUF( J ) /}, ONEZ( I ) = ONE, ZZ( KK ) = Z( KK )*BUF( KK ){2Z( J ) = Z( J )*( BUF( J ) /, 3Z( J ) = Z( J )*BUF( J ), 4Z( J ) = Z( J )*BUF( J ), 5Z( I ) = SIGN( SQRT( -Z( I ) ), W( I ) ), 6Z( J ) = Z( J )*( BUF( J ) /}, DLAMDAZ( J ) = Z( J )*( BUF( J ) /{2Z( J ) = Z( J )*( BUF( J ) /}, IZ( I ) = SIGN( SQRT( -Z( I ) ), W( I ) ) |
|
|
Analysis elements of the routine PSLAED3() Put the mouse over each element to display detailed matching information
Assigned variables |
| | | COL , GI , I , IINFO , IIU , INFO , IPD , IU , J , JJU , JU , KK , KL , KLC , KLR , MYKL , MYKLR , ONE , PDC , PDR , ROW , TEMP |
|
Active variables |
| | | AUX , BUF , COL , CTOT , D , DCOL , DLAMDA , DROW , GI , I , ICTXT , IINFO , IIU , INDCOL , INDROW , INDX , INDXC , INDXG2L , INDXR , INFO , IPD , IU , J , JJU , JU , K , KK , KL , KLC , KLR , LDU , MYCOL , MYKL , MYKLR , MYROW , N , NB , NPCOL , NPROW , ONE , PDC , PDR , RHO , ROW , SLAMC3 , SNRM2 , TEMP , U , W , Z |
|
Accessed arrays [ array name : associated index ] |
| | BUF | : 2*K+1 , 2*K+1 , I , IPD , IPD , IPD , J , J , J , J , K+1 , K+1 , K+1 , K+1 , K+1 , K+I , K+I , KK , KK , KK |
| | CTOT | : COL, 1 , COL, 1 , COL, 2 , COL, 2 , COL, 3 , COL, 3 , MYCOL, 1 , MYCOL, 2 , MYCOL, 3 |
| | D | : GI |
| | DLAMDA | : I , J , J , KK , KK |
| | INDCOL | : GI , I+J |
| | INDROW | : GI , I+J |
| | INDX | : I , KK , KK , KK |
| | INDXC | : J , KLC |
| | INDXG2L | : IU, NB, J, J, NPROW , IU, NB, J, J, NPROW , JU, NB, J, J, NPCOL |
| | INDXR | : I , I , KLR |
| | SLAMC3 | : DLAMDA( I ), DLAMDA( I ) |
| | SNRM2 | : K, BUF, 1 |
| | U | : IIU, JJU , IIU, JJU |
| | W | : I |
| | Z | : I , I , I , J , J , J , J , KK |
|
Conditional statements [ statement : associated predicate ] |
| | do | : ( 20 I = 1 , N , NB ) , ( 10 J = 0 , NB - 1 ) , ( 50 I = 1 , K ) , ( 80 I = 1 , MYKLR ) , ( 60 J = 1 , KK - 1 ) , ( 70 J = KK + 1 , K ) , ( 100 I = 1 , NPROW - 1 ) , ( 90 J = 1 , K ) , ( 120 I = 1 , NPCOL - 1 ) , ( 110 J = 1 , K ) , ( 130 I = 1 , K ) , ( 140 I = 1 , K ) , ( 180 J = 1 , MYKL ) , ( 150 I = 1 , KLR ) , ( 160 I = 1 , K ) , ( 170 I = 1 , KLR ) |
| | if | : ( possible ) , ( K.EQ.0 ) , ( MYROW.EQ.DROW ) , ( MYCOL.NE.COL ) , ( MYROW.NE.ROW ) , ( MYKLR.GT.0 ) , ( IINFO.NE.0 ) , ( MYROW.NE.DROW ) , ( KLR.GT.0 ) , ( MYROW.EQ.DROW ) , ( MYCOL.NE.DCOL .AND. MYKL.NE.0 ) , ( MYCOL.EQ.DCOL ) , ( KL.NE.0 ) , ( MYROW.EQ.DROW .AND. MYCOL.EQ.DCOL ) , ( COL.EQ.MYCOL ) , ( ROW.EQ.MYROW ) , ( MYKL.NE.0 ) , ( IINFO.NE.0 ) , ( K.EQ.1 .OR. K.EQ.2 ) |
|
| List of variables | AUX BUF COL D DCOL DLAMDA DROW
| GI I ICTXT IINFO IIU INDCOL INDROW INDXC
| INDXG2L INDXR INFO IPD IU J JJU JU
| K KK KL KLC KLR LDU MYCOL MYKL
| MYKLR MYROW N NB NPCOL NPROW ONE PDC
| PDR RHO ROW SLAMC3 SNRM2 TEMP U Z | | close
| |
AUX
BUF
COL
D
DCOL
DLAMDA
DROW
GI
I
ICTXT
IINFO
IIU
INDCOL
INDROW
INDXC
INDXG2L
INDXR
INFO
IPD
IU
J
JJU
JU
K
KK
KL
KLC
KLR
LDU
MYCOL
MYKL
MYKLR
MYROW
N
NB
NPCOL
NPROW
ONE
PDC
PDR
RHO
ROW
SLAMC3
SNRM2
TEMP
U
Z
| |