@@ -25,14 +25,14 @@ <h1><a href="../../../../../index.html">All files</a> / <a href="index.html">bla
2525 < div class ='fl pad1y space-right2 '>
2626 < span class ="strong "> 100% </ span >
2727 < span class ="quiet "> Statements</ span >
28- < span class ='fraction '> 97/97 </ span >
28+ < span class ='fraction '> 60/60 </ span >
2929 </ div >
3030
3131
3232 < div class ='fl pad1y space-right2 '>
3333 < span class ="strong "> 100% </ span >
3434 < span class ="quiet "> Branches</ span >
35- < span class ='fraction '> 17/17 </ span >
35+ < span class ='fraction '> 2/2 </ span >
3636 </ div >
3737
3838
@@ -46,7 +46,7 @@ <h1><a href="../../../../../index.html">All files</a> / <a href="index.html">bla
4646 < div class ='fl pad1y space-right2 '>
4747 < span class ="strong "> 100% </ span >
4848 < span class ="quiet "> Lines</ span >
49- < span class ='fraction '> 97/97 </ span >
49+ < span class ='fraction '> 60/60 </ span >
5050 </ div >
5151
5252
@@ -123,44 +123,7 @@ <h1><a href="../../../../../index.html">All files</a> / <a href="index.html">bla
123123< a name ='L58 '> </ a > < a href ='#L58 '> 58</ a >
124124< a name ='L59 '> </ a > < a href ='#L59 '> 59</ a >
125125< a name ='L60 '> </ a > < a href ='#L60 '> 60</ a >
126- < a name ='L61 '> </ a > < a href ='#L61 '> 61</ a >
127- < a name ='L62 '> </ a > < a href ='#L62 '> 62</ a >
128- < a name ='L63 '> </ a > < a href ='#L63 '> 63</ a >
129- < a name ='L64 '> </ a > < a href ='#L64 '> 64</ a >
130- < a name ='L65 '> </ a > < a href ='#L65 '> 65</ a >
131- < a name ='L66 '> </ a > < a href ='#L66 '> 66</ a >
132- < a name ='L67 '> </ a > < a href ='#L67 '> 67</ a >
133- < a name ='L68 '> </ a > < a href ='#L68 '> 68</ a >
134- < a name ='L69 '> </ a > < a href ='#L69 '> 69</ a >
135- < a name ='L70 '> </ a > < a href ='#L70 '> 70</ a >
136- < a name ='L71 '> </ a > < a href ='#L71 '> 71</ a >
137- < a name ='L72 '> </ a > < a href ='#L72 '> 72</ a >
138- < a name ='L73 '> </ a > < a href ='#L73 '> 73</ a >
139- < a name ='L74 '> </ a > < a href ='#L74 '> 74</ a >
140- < a name ='L75 '> </ a > < a href ='#L75 '> 75</ a >
141- < a name ='L76 '> </ a > < a href ='#L76 '> 76</ a >
142- < a name ='L77 '> </ a > < a href ='#L77 '> 77</ a >
143- < a name ='L78 '> </ a > < a href ='#L78 '> 78</ a >
144- < a name ='L79 '> </ a > < a href ='#L79 '> 79</ a >
145- < a name ='L80 '> </ a > < a href ='#L80 '> 80</ a >
146- < a name ='L81 '> </ a > < a href ='#L81 '> 81</ a >
147- < a name ='L82 '> </ a > < a href ='#L82 '> 82</ a >
148- < a name ='L83 '> </ a > < a href ='#L83 '> 83</ a >
149- < a name ='L84 '> </ a > < a href ='#L84 '> 84</ a >
150- < a name ='L85 '> </ a > < a href ='#L85 '> 85</ a >
151- < a name ='L86 '> </ a > < a href ='#L86 '> 86</ a >
152- < a name ='L87 '> </ a > < a href ='#L87 '> 87</ a >
153- < a name ='L88 '> </ a > < a href ='#L88 '> 88</ a >
154- < a name ='L89 '> </ a > < a href ='#L89 '> 89</ a >
155- < a name ='L90 '> </ a > < a href ='#L90 '> 90</ a >
156- < a name ='L91 '> </ a > < a href ='#L91 '> 91</ a >
157- < a name ='L92 '> </ a > < a href ='#L92 '> 92</ a >
158- < a name ='L93 '> </ a > < a href ='#L93 '> 93</ a >
159- < a name ='L94 '> </ a > < a href ='#L94 '> 94</ a >
160- < a name ='L95 '> </ a > < a href ='#L95 '> 95</ a >
161- < a name ='L96 '> </ a > < a href ='#L96 '> 96</ a >
162- < a name ='L97 '> </ a > < a href ='#L97 '> 97</ a >
163- < a name ='L98 '> </ a > < a href ='#L98 '> 98</ a > </ td > < td class ="line-coverage quiet "> < span class ="cline-any cline-yes "> 2x</ span >
126+ < a name ='L61 '> </ a > < a href ='#L61 '> 61</ a > </ td > < td class ="line-coverage quiet "> < span class ="cline-any cline-yes "> 2x</ span >
164127< span class ="cline-any cline-yes "> 2x</ span >
165128< span class ="cline-any cline-yes "> 2x</ span >
166129< span class ="cline-any cline-yes "> 2x</ span >
@@ -212,48 +175,11 @@ <h1><a href="../../../../../index.html">All files</a> / <a href="index.html">bla
212175< span class ="cline-any cline-yes "> 2x</ span >
213176< span class ="cline-any cline-yes "> 2x</ span >
214177< span class ="cline-any cline-yes "> 2x</ span >
215- < span class ="cline-any cline-yes "> 2x</ span >
216- < span class ="cline-any cline-yes "> 15x</ span >
217- < span class ="cline-any cline-yes "> 15x</ span >
218- < span class ="cline-any cline-yes "> 15x</ span >
219- < span class ="cline-any cline-yes "> 15x</ span >
220- < span class ="cline-any cline-yes "> 15x</ span >
221- < span class ="cline-any cline-yes "> 15x</ span >
222178< span class ="cline-any cline-yes "> 15x</ span >
223179< span class ="cline-any cline-yes "> 15x</ span >
224180< span class ="cline-any cline-yes "> 15x</ span >
225181< span class ="cline-any cline-yes "> 2x</ span >
226182< span class ="cline-any cline-yes "> 2x</ span >
227- < span class ="cline-any cline-yes "> 15x</ span >
228- < span class ="cline-any cline-yes "> 4x</ span >
229- < span class ="cline-any cline-yes "> 1x</ span >
230- < span class ="cline-any cline-yes "> 1x</ span >
231- < span class ="cline-any cline-yes "> 3x</ span >
232- < span class ="cline-any cline-yes "> 3x</ span >
233- < span class ="cline-any cline-yes "> 15x</ span >
234- < span class ="cline-any cline-yes "> 1x</ span >
235- < span class ="cline-any cline-yes "> 15x</ span >
236- < span class ="cline-any cline-yes "> 8x</ span >
237- < span class ="cline-any cline-yes "> 8x</ span >
238- < span class ="cline-any cline-yes "> 9x</ span >
239- < span class ="cline-any cline-yes "> 9x</ span >
240- < span class ="cline-any cline-yes "> 15x</ span >
241- < span class ="cline-any cline-yes "> 45x</ span >
242- < span class ="cline-any cline-yes "> 45x</ span >
243- < span class ="cline-any cline-yes "> 34x</ span >
244- < span class ="cline-any cline-yes "> 34x</ span >
245- < span class ="cline-any cline-yes "> 13x</ span >
246- < span class ="cline-any cline-yes "> 34x</ span >
247- < span class ="cline-any cline-yes "> 21x</ span >
248- < span class ="cline-any cline-yes "> 21x</ span >
249- < span class ="cline-any cline-yes "> 34x</ span >
250- < span class ="cline-any cline-yes "> 34x</ span >
251- < span class ="cline-any cline-yes "> 45x</ span >
252- < span class ="cline-any cline-yes "> 45x</ span >
253- < span class ="cline-any cline-yes "> 9x</ span >
254- < span class ="cline-any cline-yes "> 15x</ span >
255- < span class ="cline-any cline-yes "> 2x</ span >
256- < span class ="cline-any cline-yes "> 2x</ span >
257183< span class ="cline-any cline-yes "> 2x</ span >
258184< span class ="cline-any cline-yes "> 2x</ span >
259185< span class ="cline-any cline-yes "> 2x</ span >
@@ -279,8 +205,8 @@ <h1><a href="../../../../../index.html">All files</a> / <a href="index.html">bla
279205
280206// MODULES //
281207
282- var isnan = require( '@stdlib/math /base/assert/is-nan ' );
283- var abs = require( '@stdlib/math/base/special/abs ' );
208+ var stride2offset = require( '@stdlib/strided /base/stride2offset ' );
209+ var ndarray = require( './ndarray.js ' );
284210
285211
286212// MAIN //
@@ -298,56 +224,19 @@ <h1><a href="../../../../../index.html">All files</a> / <a href="index.html">bla
298224*
299225* @param {PositiveInteger} N - number of indexed elements
300226* @param {Float64Array} x - input array
301- * @param {integer} stride - stride length
227+ * @param {integer} strideX - stride length
302228* @returns {number} sum
303229*
304230* @example
305231* var Float64Array = require( '@stdlib/array/float64' );
306232*
307233* var x = new Float64Array( [ 1.0, -2.0, NaN, 2.0 ] );
308- * var N = x.length;
309234*
310- * var v = dnansumkbn( N , x, 1 );
235+ * var v = dnansumkbn( x.length , x, 1 );
311236* // returns 1.0
312237*/
313- function dnansumkbn( N, x, stride ) {
314- var sum;
315- var ix;
316- var v;
317- var t;
318- var c;
319- var i;
320-
321- if ( N <= 0 ) {
322- return 0.0;
323- }
324- if ( N === 1 || stride === 0 ) {
325- if ( isnan( x[ 0 ] ) ) {
326- return 0.0;
327- }
328- return x[ 0 ];
329- }
330- if ( stride < 0 ) {
331- ix = (1-N) * stride;
332- } else {
333- ix = 0;
334- }
335- sum = 0.0;
336- c = 0.0;
337- for ( i = 0; i < N; i++ ) {
338- v = x[ ix ];
339- if ( isnan( v ) === false ) {
340- t = sum + v;
341- if ( abs( sum ) >= abs( v ) ) {
342- c += (sum-t) + v;
343- } else {
344- c += (v-t) + sum;
345- }
346- sum = t;
347- }
348- ix += stride;
349- }
350- return sum + c;
238+ function dnansumkbn( N, x, strideX ) {
239+ return ndarray( N, x, strideX, stride2offset( N, strideX ) );
351240}
352241
353242
@@ -361,7 +250,7 @@ <h1><a href="../../../../../index.html">All files</a> / <a href="index.html">bla
361250 < div class ='footer quiet pad2 space-top1 center small '>
362251 Code coverage generated by
363252 < a href ="https://istanbul.js.org/ " target ="_blank " rel ="noopener noreferrer "> istanbul</ a >
364- at 2024-03-29T15:51:36.540Z
253+ at 2024-10-30T00:53:16.129Z
365254 </ div >
366255 < script src ="../../../../../prettify.js "> </ script >
367256 < script >
0 commit comments