Skip to content

Commit 3d59edd

Browse files
committed
fix: preserve sign of zero
--- 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: passed - 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 0ad60b9 commit 3d59edd

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

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

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,11 @@ function dcusumpw( N, sum, x, strideX, offsetX, y, strideY, offsetY ) {
7474
ix = offsetX;
7575
iy = offsetY;
7676
if ( N <= BLOCKSIZE ) {
77-
s = 0.0;
78-
for ( i = 0; i < N; i++ ) {
77+
s = x[ ix ];
78+
y[ iy ] = sum + s;
79+
ix += strideX;
80+
iy += strideY;
81+
for ( i = 1; i < N; i++ ) {
7982
s += x[ ix ];
8083
y[ iy ] = sum + s;
8184
ix += strideX;

lib/node_modules/@stdlib/blas/ext/base/dcusumpw/src/main.c

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,10 +68,14 @@ void API_SUFFIX(stdlib_strided_dcusumpw_ndarray)( const CBLAS_INT N, const doubl
6868
}
6969
ix = offsetX;
7070
iy = offsetY;
71+
7172
// Blocksize for pairwise summation...
7273
if ( N <= 128 ) {
73-
s = 0.0;
74-
for ( i = 0; i < N; i++ ) {
74+
s = X[ ix ];
75+
Y[ iy ] = sum + s;
76+
ix += strideX;
77+
iy += strideY;
78+
for ( i = 1; i < N; i++ ) {
7579
s += X[ ix ];
7680
Y[ iy ] = sum + s;
7781
ix += strideX;

0 commit comments

Comments
 (0)