Skip to content

Commit 0e99a05

Browse files
committed
refactor: updates x vector index to increment with loop pointer directly
--- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown status: na - task: lint_package_json status: na - task: lint_repl_help status: na - task: lint_javascript_src status: passed - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: na - task: lint_javascript_benchmarks status: na - task: lint_python status: na - task: lint_r status: na - task: lint_c_src status: na - task: lint_c_examples status: na - task: lint_c_benchmarks status: na - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: passed - task: lint_typescript_tests status: na - task: lint_license_headers status: passed ---
1 parent febb477 commit 0e99a05

1 file changed

Lines changed: 8 additions & 16 deletions

File tree

  • lib/node_modules/@stdlib/blas/base/ctrsv/lib

lib/node_modules/@stdlib/blas/base/ctrsv/lib/base.js

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -118,8 +118,8 @@ function ctrsv( uplo, trans, diag, N, A, strideA1, strideA2, offsetA, x, strideX
118118
( !isrm && uplo === 'upper' && trans === 'no-transpose' ) ||
119119
( isrm && uplo === 'lower' && trans !== 'no-transpose' )
120120
) {
121-
ix1 = ox + ( ( N - 1 ) * sx );
122121
for ( i1 = N - 1; i1 >= 0; i1-- ) {
122+
ix1 = ox + ( i1 * sx );
123123
rex = viewX[ ix1 ];
124124
imx = viewX[ ix1 + 1 ];
125125
if ( rex !== 0.0 || imx !== 0.0 ) {
@@ -137,9 +137,8 @@ function ctrsv( uplo, trans, diag, N, A, strideA1, strideA2, offsetA, x, strideX
137137
retmp = rex;
138138
imtmp = imx;
139139
}
140-
ix0 = ix1;
141140
for ( i0 = i1 - 1; i0 >= 0; i0-- ) {
142-
ix0 -= sx;
141+
ix0 = ox + ( i0 * sx );
143142
ia = oa2 + ( sa0 * i0 );
144143
rea = viewA[ ia ];
145144
ima = sign * viewA[ ia + 1 ];
@@ -151,16 +150,15 @@ function ctrsv( uplo, trans, diag, N, A, strideA1, strideA2, offsetA, x, strideX
151150
viewX[ ix0 + 1 ] = f32( imx - immul );
152151
}
153152
}
154-
ix1 -= sx;
155153
}
156154
return x;
157155
}
158156
if (
159157
( !isrm && uplo === 'lower' && trans === 'no-transpose' ) ||
160158
( isrm && uplo === 'upper' && trans !== 'no-transpose' )
161159
) {
162-
ix1 = ox;
163160
for ( i1 = 0; i1 < N; i1++ ) {
161+
ix1 = ox + ( i1 * sx );
164162
rex = viewX[ ix1 ];
165163
imx = viewX[ ix1 + 1 ];
166164
if ( rex !== 0.0 || imx !== 0.0 ) {
@@ -178,9 +176,8 @@ function ctrsv( uplo, trans, diag, N, A, strideA1, strideA2, offsetA, x, strideX
178176
retmp = rex;
179177
imtmp = imx;
180178
}
181-
ix0 = ix1;
182179
for ( i0 = i1 + 1; i0 < N; i0++ ) {
183-
ix0 += sx;
180+
ix0 = ox + ( i0 * sx );
184181
ia = oa2 + ( sa0 * i0 );
185182
rea = viewA[ ia ];
186183
ima = sign * viewA[ ia + 1 ];
@@ -192,31 +189,29 @@ function ctrsv( uplo, trans, diag, N, A, strideA1, strideA2, offsetA, x, strideX
192189
viewX[ ix0 + 1 ] = f32( imx - immul );
193190
}
194191
}
195-
ix1 += sx;
196192
}
197193
return x;
198194
}
199195
if (
200196
( !isrm && uplo === 'upper' && trans !== 'no-transpose' ) ||
201197
( isrm && uplo === 'lower' && trans === 'no-transpose' )
202198
) {
203-
ix1 = ox;
204199
for ( i1 = 0; i1 < N; i1++ ) {
200+
ix1 = ox + ( i1 * sx );
205201
oa2 = oa + ( sa1 * i1 );
206202
rex = viewX[ ix1 ];
207203
imx = viewX[ ix1 + 1 ];
208204
retmp = rex;
209205
imtmp = imx;
210-
ix0 = ox;
211206
for ( i0 = 0; i0 < i1; i0++ ) {
207+
ix0 = ox + ( i0 * sx );
212208
ia = oa2 + ( sa0 * i0 );
213209
rea = viewA[ ia ];
214210
ima = sign * viewA[ ia + 1 ];
215211
rex = viewX[ ix0 ];
216212
imx = viewX[ ix0 + 1 ];
217213
retmp -= f32( ( rex * rea ) - ( imx * ima ) );
218214
imtmp -= f32( ( rex * ima ) + ( imx * rea ) );
219-
ix0 += sx;
220215
}
221216
if ( nonunit ) {
222217
ia = oa2 + ( sa0 * i1 );
@@ -230,28 +225,26 @@ function ctrsv( uplo, trans, diag, N, A, strideA1, strideA2, offsetA, x, strideX
230225
}
231226
viewX[ ix1 ] = retmp;
232227
viewX[ ix1 + 1 ] = imtmp;
233-
ix1 += sx;
234228
}
235229
return x;
236230
}
237231
// ( !isrm && uplo === 'lower' && trans !== 'no-transpose' ) || ( isrm && uplo === 'upper' && trans === 'no-transpose' )
238-
ix1 = ox + ( ( N - 1 ) * sx );
239232
for ( i1 = N - 1; i1 >= 0; i1-- ) {
233+
ix1 = ox + ( i1 * sx );
240234
oa2 = oa + ( sa1 * i1 );
241235
rex = viewX[ ix1 ];
242236
imx = viewX[ ix1 + 1 ];
243237
retmp = rex;
244238
imtmp = imx;
245-
ix0 = ox + ( ( N - 1 ) * sx );
246239
for ( i0 = N - 1; i0 > i1; i0-- ) {
240+
ix0 = ox + ( i0 * sx );
247241
ia = oa2 + ( sa0 * i0 );
248242
rea = viewA[ ia ];
249243
ima = sign * viewA[ ia + 1 ];
250244
rex = viewX[ ix0 ];
251245
imx = viewX[ ix0 + 1 ];
252246
retmp -= f32( ( rex * rea ) - ( imx * ima ) );
253247
imtmp -= f32( ( rex * ima ) + ( imx * rea ) );
254-
ix0 -= sx;
255248
}
256249
if ( nonunit ) {
257250
ia = oa2 + ( sa0 * i1 );
@@ -265,7 +258,6 @@ function ctrsv( uplo, trans, diag, N, A, strideA1, strideA2, offsetA, x, strideX
265258
}
266259
viewX[ ix1 ] = retmp;
267260
viewX[ ix1 + 1 ] = imtmp;
268-
ix1 -= sx;
269261
}
270262
return x;
271263
}

0 commit comments

Comments
 (0)