Skip to content

Commit 09daf3d

Browse files
committed
fix: update implementation to preserve signed zeros
--- 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 7a85a80 commit 09daf3d

File tree

2 files changed

+9
-7
lines changed

2 files changed

+9
-7
lines changed

lib/node_modules/@stdlib/blas/ext/base/gsumors/lib/accessors.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,9 @@ function gsumors( N, x, strideX, offsetX ) {
5858
if ( strideX === 0 ) {
5959
return N * get( xbuf, ix );
6060
}
61-
s = 0.0;
62-
for ( i = 0; i < N; i++ ) {
61+
s = get( xbuf, ix );
62+
ix += strideX;
63+
for ( i = 1; i < N; i++ ) {
6364
s += get( xbuf, ix );
6465
ix += strideX;
6566
}

lib/node_modules/@stdlib/blas/ext/base/gsumors/lib/ndarray.js

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,8 @@ function gsumors( N, x, strideX, offsetX ) {
5353
var o;
5454
var i;
5555

56-
s = 0.0;
5756
if ( N <= 0 ) {
58-
return s;
57+
return 0.0;
5958
}
6059
o = arraylike2object( x );
6160
if ( o.accessorProtocol ) {
@@ -65,10 +64,12 @@ function gsumors( N, x, strideX, offsetX ) {
6564
if ( strideX === 0 ) {
6665
return N * x[ ix ];
6766
}
67+
s = x[ ix ];
68+
ix += strideX;
6869

6970
// If the stride is equal to `1`, use unrolled loops...
7071
if ( strideX === 1 ) {
71-
m = N % M;
72+
m = (N-1) % M;
7273

7374
// If we have a remainder, run a clean-up loop...
7475
if ( m > 0 ) {
@@ -80,13 +81,13 @@ function gsumors( N, x, strideX, offsetX ) {
8081
if ( N < M ) {
8182
return s;
8283
}
83-
for ( i = m; i < N; i += M ) {
84+
for ( i = m; i < N-1; i += M ) {
8485
s += x[ix] + x[ix+1] + x[ix+2] + x[ix+3] + x[ix+4] + x[ix+5];
8586
ix += M;
8687
}
8788
return s;
8889
}
89-
for ( i = 0; i < N; i++ ) {
90+
for ( i = 1; i < N; i++ ) {
9091
s += x[ ix ];
9192
ix += strideX;
9293
}

0 commit comments

Comments
 (0)