Skip to content

Commit 89c3b1c

Browse files
committed
refactor: pointer arithmetic
--- 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: na - task: lint_typescript_tests status: na - task: lint_license_headers status: passed ---
1 parent 021712f commit 89c3b1c

File tree

1 file changed

+17
-3
lines changed
  • lib/node_modules/@stdlib/lapack/base/dgebal/lib

1 file changed

+17
-3
lines changed

lib/node_modules/@stdlib/lapack/base/dgebal/lib/base.js

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,10 @@ function dgebal( job, N, A, strideA1, strideA2, offsetA, out, strideOut, offsetO
9999
var sfmax2;
100100
var ica;
101101
var ira;
102+
var ia1;
103+
var ia2;
104+
var ia3;
105+
var ia4;
102106
var ca;
103107
var ra;
104108
var is;
@@ -141,7 +145,13 @@ function dgebal( job, N, A, strideA1, strideA2, offsetA, out, strideOut, offsetO
141145
while ( noconv ) {
142146
// Search for rows isolating an eigenvalue and push them down
143147
noconv = false;
144-
is = offsetScale + ( l * strideScale );
148+
149+
is = offsetScale + ( l * strideScale ); // Follows `scale`
150+
ia1 = offsetA + ( l * strideA2 ); // Follows `i`th column
151+
ia2 = offsetA + ( l * strideA2 ); // Follows `l`th column
152+
ia3 = offsetA + (l*strideA1) + (k*strideA2); // Follows `i`th row
153+
ia4 = offsetA + (l*strideA1) + (k*strideA2); // Follows `l`th row
154+
145155
for ( i = l; i >= 0; i-- ) {
146156
canSwap = true;
147157
for ( j = 0; j <= l; j++ ) {
@@ -154,8 +164,8 @@ function dgebal( job, N, A, strideA1, strideA2, offsetA, out, strideOut, offsetO
154164
if ( canSwap ) {
155165
scale[ is ] = i;
156166
if ( i !== l ) {
157-
dswap( l+1, A, strideA1, offsetA + (i*strideA2), A, strideA1, offsetA + (l*strideA2) );
158-
dswap( N - k, A, strideA2, offsetA + (i*strideA1) + (k*strideA2), A, strideA2, offsetA + (l*strideA1) + (k*strideA2) );
167+
dswap( l+1, A, strideA1, ia1, A, strideA1, ia2 );
168+
dswap( N - k, A, strideA2, ia3, A, strideA2, ia4 );
159169
}
160170
noconv = true;
161171

@@ -167,7 +177,11 @@ function dgebal( job, N, A, strideA1, strideA2, offsetA, out, strideOut, offsetO
167177
}
168178
l -= 1;
169179
is -= strideScale;
180+
ia2 -= strideA2;
181+
ia4 -= strideA1;
170182
}
183+
ia1 -= strideA2;
184+
ia3 -= strideA1;
171185
}
172186
}
173187

0 commit comments

Comments
 (0)