Skip to content

Commit 231c04c

Browse files
committed
Refactor to wrap specific implementation
1 parent 10c4d58 commit 231c04c

14 files changed

+9
-1025
lines changed

lib/node_modules/@stdlib/blas/ext/base/dapxsum/README.md

-8
Original file line numberDiff line numberDiff line change
@@ -160,14 +160,8 @@ console.log( v );
160160

161161
<!-- /.examples -->
162162

163-
* * *
164-
165163
<section class="references">
166164

167-
## References
168-
169-
- Neumaier, Arnold. 1974. "Rounding Error Analysis of Some Methods for Summing Finite Sums." _Zeitschrift Für Angewandte Mathematik Und Mechanik_ 54 (1): 39–51. doi:[10.1002/zamm.19740540106][@neumaier:1974a].
170-
171165
</section>
172166

173167
<!-- /.references -->
@@ -178,8 +172,6 @@ console.log( v );
178172

179173
[mdn-typed-array]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray
180174

181-
[@neumaier:1974a]: https://doi.org/10.1002/zamm.19740540106
182-
183175
</section>
184176

185177
<!-- /.links -->

lib/node_modules/@stdlib/blas/ext/base/dapxsum/benchmark/benchmark.native.js

-105
This file was deleted.

lib/node_modules/@stdlib/blas/ext/base/dapxsum/benchmark/benchmark.ndarray.native.js

-105
This file was deleted.

lib/node_modules/@stdlib/blas/ext/base/dapxsum/lib/dapxsum.js

+2-41
Original file line numberDiff line numberDiff line change
@@ -20,22 +20,14 @@
2020

2121
// MODULES //
2222

23-
var abs = require( '@stdlib/math/base/special/abs' );
23+
var dapxsumkbn = require( '@stdlib/blas/ext/base/dapxsumkbn' );
2424

2525

2626
// MAIN //
2727

2828
/**
2929
* Adds a constant to each double-precision floating-point strided array element and computes the sum.
3030
*
31-
* ## Method
32-
*
33-
* - This implementation uses an "improved Kahan–Babuška algorithm", as described by Neumaier (1974).
34-
*
35-
* ## References
36-
*
37-
* - Neumaier, Arnold. 1974. "Rounding Error Analysis of Some Methods for Summing Finite Sums." _Zeitschrift Für Angewandte Mathematik Und Mechanik_ 54 (1): 39–51. doi:[10.1002/zamm.19740540106](https://doi.org/10.1002/zamm.19740540106).
38-
*
3931
* @param {PositiveInteger} N - number of indexed elements
4032
* @param {number} alpha - constant
4133
* @param {Float64Array} x - input array
@@ -52,38 +44,7 @@ var abs = require( '@stdlib/math/base/special/abs' );
5244
* // returns 16.0
5345
*/
5446
function dapxsum( N, alpha, x, stride ) {
55-
var sum;
56-
var ix;
57-
var v;
58-
var t;
59-
var c;
60-
var i;
61-
62-
if ( N <= 0 ) {
63-
return 0.0;
64-
}
65-
if ( N === 1 || stride === 0 ) {
66-
return alpha + x[ 0 ];
67-
}
68-
if ( stride < 0 ) {
69-
ix = (1-N) * stride;
70-
} else {
71-
ix = 0;
72-
}
73-
sum = 0.0;
74-
c = 0.0;
75-
for ( i = 0; i < N; i++ ) {
76-
v = alpha + x[ ix ];
77-
t = sum + v;
78-
if ( abs( sum ) >= abs( v ) ) {
79-
c += (sum-t) + v;
80-
} else {
81-
c += (v-t) + sum;
82-
}
83-
sum = t;
84-
ix += stride;
85-
}
86-
return sum + c;
47+
return dapxsumkbn( N, alpha, x, stride );
8748
}
8849

8950

lib/node_modules/@stdlib/blas/ext/base/dapxsum/lib/dapxsum.native.js

-53
This file was deleted.

lib/node_modules/@stdlib/blas/ext/base/dapxsum/lib/index.js

-10
Original file line numberDiff line numberDiff line change
@@ -47,19 +47,9 @@
4747

4848
// MODULES //
4949

50-
var join = require( 'path' ).join;
51-
var tryRequire = require( '@stdlib/utils/try-require' );
5250
var dapxsum = require( './main.js' );
5351

5452

55-
// MAIN //
56-
57-
var tmp = tryRequire( join( __dirname, './native.js' ) );
58-
if ( !(tmp instanceof Error) ) {
59-
dapxsum = tmp;
60-
}
61-
62-
6353
// EXPORTS //
6454

6555
module.exports = dapxsum;

0 commit comments

Comments
 (0)