|
16 | 16 | * limitations under the License.
|
17 | 17 | */
|
18 | 18 |
|
19 |
| -/* eslint-disable max-len, max-params, max-statements */ |
| 19 | +/* eslint-disable max-len, max-params, max-statements, max-lines-per-function */ |
20 | 20 |
|
21 | 21 | 'use strict';
|
22 | 22 |
|
@@ -104,9 +104,14 @@ function dgebal( job, N, A, strideA1, strideA2, offsetA, out, strideOut, offsetO
|
104 | 104 | var ia2;
|
105 | 105 | var ia3;
|
106 | 106 | var ia4;
|
| 107 | + var oa1; |
| 108 | + var oa2; |
| 109 | + var oa3; |
| 110 | + var oa4; |
107 | 111 | var ca;
|
108 | 112 | var ra;
|
109 | 113 | var is;
|
| 114 | + var os; |
110 | 115 | var c;
|
111 | 116 | var r;
|
112 | 117 | var k;
|
@@ -184,15 +189,21 @@ function dgebal( job, N, A, strideA1, strideA2, offsetA, out, strideOut, offsetO
|
184 | 189 | }
|
185 | 190 | }
|
186 | 191 |
|
| 192 | + os = offsetScale + ( k * strideScale ); |
| 193 | + oa1 = offsetA + ( k * strideA2 ); |
| 194 | + oa2 = offsetA + ( k * strideA2 ); |
| 195 | + oa3 = offsetA + ( k * strideA1 ); |
| 196 | + oa4 = offsetA + ( k * strideA1 ); |
| 197 | + |
187 | 198 | noconv = true;
|
188 | 199 | while ( noconv ) {
|
189 | 200 | // Search for columns isolating an eigenvalue and push them left
|
190 | 201 | noconv = false;
|
191 |
| - is = offsetScale + ( k * strideScale ); // Follows scale |
192 |
| - ia1 = offsetA + ( k * strideA2 ); // Follows `j`th column of A |
193 |
| - ia2 = offsetA + ( k * strideA2 ); // Follows `k`th column of A |
194 |
| - ia3 = offsetA + ( k * strideA1 ); // Follows `j`th row of A |
195 |
| - ia4 = offsetA + ( k * strideA1 ); // Follows `k`th row of A |
| 202 | + is = os; // Follows scale |
| 203 | + ia1 = oa1; // Follows `j`th column of A |
| 204 | + ia2 = oa2; // Follows `k`th column of A |
| 205 | + ia3 = oa3; // Follows `j`th row of A |
| 206 | + ia4 = oa4; // Follows `k`th row of A |
196 | 207 |
|
197 | 208 | for ( j = k; j <= l; j++ ) {
|
198 | 209 | canSwap = true;
|
@@ -232,13 +243,18 @@ function dgebal( job, N, A, strideA1, strideA2, offsetA, out, strideOut, offsetO
|
232 | 243 | return 0;
|
233 | 244 | }
|
234 | 245 |
|
| 246 | + os = offsetScale + ( k * strideScale ); |
| 247 | + oa1 = offsetA + ( k * strideA1 ) + ( k * strideA2 ); |
| 248 | + oa2 = offsetA + ( k * strideA1 ) + ( k * strideA2 ); |
| 249 | + oa3 = offsetA + ( k * strideA2 ); |
| 250 | + |
235 | 251 | // Balance the submatrix in rows K to L, iterative loop for norm reduction (job = 'B')
|
236 | 252 | noconv = true;
|
237 | 253 | while ( noconv ) {
|
238 |
| - is = offsetScale + ( k * strideScale ); // Follows scale |
239 |
| - ia1 = offsetA + ( k * strideA1 ) + ( k * strideA2 ); // Follows A[ k, i ] |
240 |
| - ia2 = offsetA + ( k * strideA1 ) + ( k * strideA2 ); // Follows A[ i, k ] |
241 |
| - ia3 = offsetA + ( k * strideA2 ); // follows `i`th column of A |
| 254 | + is = os; // Follows scale |
| 255 | + ia1 = oa1; // Follows A[ k, i ] |
| 256 | + ia2 = oa2; // Follows A[ i, k ] |
| 257 | + ia3 = oa3; // follows `i`th column of A |
242 | 258 |
|
243 | 259 | noconv = false;
|
244 | 260 | for ( i = k; i <= l; i++ ) {
|
|
0 commit comments