@@ -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 '> 157/157 </ span >
28+ < span class ='fraction '> 156/156 </ 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 '> 50/50 </ span >
35+ < span class ='fraction '> 48/48 </ 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 '> 157/157 </ span >
49+ < span class ='fraction '> 156/156 </ span >
5050 </ div >
5151
5252
@@ -219,8 +219,7 @@ <h1><a href="../../../../../index.html">All files</a> / <a href="index.html">bla
219219< a name ='L154 '> </ a > < a href ='#L154 '> 154</ a >
220220< a name ='L155 '> </ a > < a href ='#L155 '> 155</ a >
221221< a name ='L156 '> </ a > < a href ='#L156 '> 156</ a >
222- < a name ='L157 '> </ a > < a href ='#L157 '> 157</ a >
223- < a name ='L158 '> </ a > < a href ='#L158 '> 158</ a > </ td > < td class ="line-coverage quiet "> < span class ="cline-any cline-yes "> 3x</ span >
222+ < a name ='L157 '> </ a > < a href ='#L157 '> 157</ a > </ td > < td class ="line-coverage quiet "> < span class ="cline-any cline-yes "> 3x</ span >
224223< span class ="cline-any cline-yes "> 3x</ span >
225224< span class ="cline-any cline-yes "> 3x</ span >
226225< span class ="cline-any cline-yes "> 3x</ span >
@@ -280,44 +279,43 @@ <h1><a href="../../../../../index.html">All files</a> / <a href="index.html">bla
280279< span class ="cline-any cline-yes "> 3x</ span >
281280< span class ="cline-any cline-yes "> 3x</ span >
282281< span class ="cline-any cline-yes "> 3x</ span >
283- < span class ="cline-any cline-yes "> 3x</ span >
284- < span class ="cline-any cline-yes "> 109x</ span >
285- < span class ="cline-any cline-yes "> 109x</ span >
286- < span class ="cline-any cline-yes "> 109x</ span >
287- < span class ="cline-any cline-yes "> 109x</ span >
288- < span class ="cline-any cline-yes "> 109x</ span >
289- < span class ="cline-any cline-yes "> 109x</ span >
290- < span class ="cline-any cline-yes "> 109x</ span >
291- < span class ="cline-any cline-yes "> 109x</ span >
292- < span class ="cline-any cline-yes "> 109x</ span >
293- < span class ="cline-any cline-yes "> 109x</ span >
294- < span class ="cline-any cline-yes "> 109x</ span >
295- < span class ="cline-any cline-yes "> 109x</ span >
296- < span class ="cline-any cline-yes "> 109x</ span >
297- < span class ="cline-any cline-yes "> 109x</ span >
298- < span class ="cline-any cline-yes "> 109x</ span >
299- < span class ="cline-any cline-yes "> 109x</ span >
282+ < span class ="cline-any cline-yes "> 124x</ span >
283+ < span class ="cline-any cline-yes "> 124x</ span >
284+ < span class ="cline-any cline-yes "> 124x</ span >
285+ < span class ="cline-any cline-yes "> 124x</ span >
286+ < span class ="cline-any cline-yes "> 124x</ span >
287+ < span class ="cline-any cline-yes "> 124x</ span >
288+ < span class ="cline-any cline-yes "> 124x</ span >
289+ < span class ="cline-any cline-yes "> 124x</ span >
290+ < span class ="cline-any cline-yes "> 124x</ span >
291+ < span class ="cline-any cline-yes "> 124x</ span >
292+ < span class ="cline-any cline-yes "> 124x</ span >
293+ < span class ="cline-any cline-yes "> 124x</ span >
294+ < span class ="cline-any cline-yes "> 124x</ span >
295+ < span class ="cline-any cline-yes "> 124x</ span >
296+ < span class ="cline-any cline-yes "> 124x</ span >
297+ < span class ="cline-any cline-yes "> 124x</ span >
298+ < span class ="cline-any cline-yes "> 4x</ span >
299+ < span class ="cline-any cline-yes "> 4x</ span >
300+ < span class ="cline-any cline-yes "> 120x</ span >
301+ < span class ="cline-any cline-yes "> 124x</ span >
302+ < span class ="cline-any cline-yes "> 4x</ span >
300303< span class ="cline-any cline-yes "> 2x</ span >
301304< span class ="cline-any cline-yes "> 2x</ span >
302- < span class ="cline-any cline-yes "> 109x</ span >
303- < span class ="cline-any cline-yes "> 4x</ span >
304- < span class ="cline-any cline-yes "> 1x</ span >
305- < span class ="cline-any cline-yes "> 1x</ span >
306- < span class ="cline-any cline-yes "> 3x</ span >
307- < span class ="cline-any cline-yes "> 3x</ span >
308- < span class ="cline-any cline-yes "> 103x</ span >
309- < span class ="cline-any cline-yes "> 109x</ span >
310- < span class ="cline-any cline-yes "> 8x</ span >
311- < span class ="cline-any cline-yes "> 8x</ span >
312- < span class ="cline-any cline-yes "> 8x</ span >
313- < span class ="cline-any cline-yes "> 32x</ span >
314- < span class ="cline-any cline-yes "> 25x</ span >
315- < span class ="cline-any cline-yes "> 25x</ span >
316- < span class ="cline-any cline-yes "> 32x</ span >
317- < span class ="cline-any cline-yes "> 32x</ span >
318- < span class ="cline-any cline-yes "> 8x</ span >
319- < span class ="cline-any cline-yes "> 8x</ span >
320- < span class ="cline-any cline-yes "> 109x</ span >
305+ < span class ="cline-any cline-yes "> 2x</ span >
306+ < span class ="cline-any cline-yes "> 2x</ span >
307+ < span class ="cline-any cline-yes "> 124x</ span >
308+ < span class ="cline-any cline-yes "> 21x</ span >
309+ < span class ="cline-any cline-yes "> 21x</ span >
310+ < span class ="cline-any cline-yes "> 21x</ span >
311+ < span class ="cline-any cline-yes "> 64x</ span >
312+ < span class ="cline-any cline-yes "> 48x</ span >
313+ < span class ="cline-any cline-yes "> 48x</ span >
314+ < span class ="cline-any cline-yes "> 64x</ span >
315+ < span class ="cline-any cline-yes "> 64x</ span >
316+ < span class ="cline-any cline-yes "> 21x</ span >
317+ < span class ="cline-any cline-yes "> 21x</ span >
318+ < span class ="cline-any cline-yes "> 124x</ span >
321319< span class ="cline-any cline-yes "> 53x</ span >
322320< span class ="cline-any cline-yes "> 53x</ span >
323321< span class ="cline-any cline-yes "> 53x</ span >
@@ -371,7 +369,7 @@ <h1><a href="../../../../../index.html">All files</a> / <a href="index.html">bla
371369< span class ="cline-any cline-yes "> 42x</ span >
372370< span class ="cline-any cline-yes "> 42x</ span >
373371< span class ="cline-any cline-yes "> 42x</ span >
374- < span class ="cline-any cline-yes "> 109x </ span >
372+ < span class ="cline-any cline-yes "> 124x </ span >
375373< span class ="cline-any cline-yes "> 3x</ span >
376374< span class ="cline-any cline-yes "> 3x</ span >
377375< span class ="cline-any cline-yes "> 3x</ span >
@@ -425,20 +423,19 @@ <h1><a href="../../../../../index.html">All files</a> / <a href="index.html">bla
425423*
426424* @param {PositiveInteger} N - number of indexed elements
427425* @param {Float32Array} x - input array
428- * @param {integer} stride - stride length
429- * @param {NonNegativeInteger} offset - starting index
426+ * @param {integer} strideX - stride length
427+ * @param {NonNegativeInteger} offsetX - starting index
430428* @returns {number} sum
431429*
432430* @example
433431* var Float32Array = require( '@stdlib/array/float32' );
434- * var floor = require( '@stdlib/math/base/special/floor' );
435432*
436433* var x = new Float32Array( [ 2.0, 1.0, 2.0, -2.0, -2.0, 2.0, 3.0, 4.0, NaN, NaN ] );
437434*
438435* var v = sdsnansumpw( 5, x, 2, 1 );
439436* // returns 5.0
440437*/
441- function sdsnansumpw( N, x, stride, offset ) {
438+ function sdsnansumpw( N, x, strideX, offsetX ) {
442439 var ix;
443440 var s0;
444441 var s1;
@@ -456,78 +453,78 @@ <h1><a href="../../../../../index.html">All files</a> / <a href="index.html">bla
456453 if ( N <= 0 ) {
457454 return 0.0;
458455 }
459- if ( N === 1 || stride === 0 ) {
460- if ( isnanf( x[ offset ] ) ) {
456+ ix = offsetX;
457+ if ( strideX === 0 ) {
458+ if ( isnanf( x[ ix ] ) ) {
461459 return 0.0;
462460 }
463- return x[ offset ] ;
461+ return float64ToFloat32( N * x[ ix ] ) ;
464462 }
465- ix = offset;
466463 if ( N < 8 ) {
467464 // Use simple summation...
468465 s = 0.0;
469466 for ( i = 0; i < N; i++ ) {
470467 if ( isnanf( x[ ix ] ) === false ) {
471468 s += x[ ix ];
472469 }
473- ix += stride ;
470+ ix += strideX ;
474471 }
475472 return float64ToFloat32( s );
476473 }
477474 if ( N <= BLOCKSIZE ) {
478475 // Sum a block with 8 accumulators (by loop unrolling, we lower the effective blocksize to 16)...
479476 s0 = ( isnanf( x[ ix ] ) ) ? 0.0 : x[ ix ];
480- ix += stride ;
477+ ix += strideX ;
481478 s1 = ( isnanf( x[ ix ] ) ) ? 0.0 : x[ ix ];
482- ix += stride ;
479+ ix += strideX ;
483480 s2 = ( isnanf( x[ ix ] ) ) ? 0.0 : x[ ix ];
484- ix += stride ;
481+ ix += strideX ;
485482 s3 = ( isnanf( x[ ix ] ) ) ? 0.0 : x[ ix ];
486- ix += stride ;
483+ ix += strideX ;
487484 s4 = ( isnanf( x[ ix ] ) ) ? 0.0 : x[ ix ];
488- ix += stride ;
485+ ix += strideX ;
489486 s5 = ( isnanf( x[ ix ] ) ) ? 0.0 : x[ ix ];
490- ix += stride ;
487+ ix += strideX ;
491488 s6 = ( isnanf( x[ ix ] ) ) ? 0.0 : x[ ix ];
492- ix += stride ;
489+ ix += strideX ;
493490 s7 = ( isnanf( x[ ix ] ) ) ? 0.0 : x[ ix ];
494- ix += stride ;
491+ ix += strideX ;
495492
496493 M = N % 8;
497494 for ( i = 8; i < N-M; i += 8 ) {
498495 s0 += ( isnanf( x[ ix ] ) ) ? 0.0 : x[ ix ];
499- ix += stride ;
496+ ix += strideX ;
500497 s1 += ( isnanf( x[ ix ] ) ) ? 0.0 : x[ ix ];
501- ix += stride ;
498+ ix += strideX ;
502499 s2 += ( isnanf( x[ ix ] ) ) ? 0.0 : x[ ix ];
503- ix += stride ;
500+ ix += strideX ;
504501 s3 += ( isnanf( x[ ix ] ) ) ? 0.0 : x[ ix ];
505- ix += stride ;
502+ ix += strideX ;
506503 s4 += ( isnanf( x[ ix ] ) ) ? 0.0 : x[ ix ];
507- ix += stride ;
504+ ix += strideX ;
508505 s5 += ( isnanf( x[ ix ] ) ) ? 0.0 : x[ ix ];
509- ix += stride ;
506+ ix += strideX ;
510507 s6 += ( isnanf( x[ ix ] ) ) ? 0.0 : x[ ix ];
511- ix += stride ;
508+ ix += strideX ;
512509 s7 += ( isnanf( x[ ix ] ) ) ? 0.0 : x[ ix ];
513- ix += stride ;
510+ ix += strideX ;
514511 }
515512 // Pairwise sum the accumulators:
516- s = ((s0+s1) + (s2+s3)) + ((s4+s5) + (s6+s7));
513+ s = ( (s0+s1) + (s2+s3) ) + ( (s4+s5) + (s6+s7) );
517514
518515 // Clean-up loop...
519516 for ( i; i < N; i++ ) {
520517 if ( isnanf( x[ ix ] ) === false ) {
521518 s += x[ ix ];
522519 }
523- ix += stride ;
520+ ix += strideX ;
524521 }
525522 return float64ToFloat32( s );
526523 }
527524 // Recurse by dividing by two, but avoiding non-multiples of unroll factor...
528525 n = floor( N/2 );
529526 n -= n % 8;
530- return float64ToFloat32( sdsnansumpw( n, x, stride , ix ) + sdsnansumpw( N-n, x, stride , ix+(n*stride ) ) ); // eslint-disable-line max-len
527+ return float64ToFloat32( sdsnansumpw( n, x, strideX , ix ) + sdsnansumpw( N-n, x, strideX , ix+(n*strideX ) ) ); // eslint-disable-line max-len
531528}
532529
533530
@@ -541,7 +538,7 @@ <h1><a href="../../../../../index.html">All files</a> / <a href="index.html">bla
541538 < div class ='footer quiet pad2 space-top1 center small '>
542539 Code coverage generated by
543540 < a href ="https://istanbul.js.org/ " target ="_blank " rel ="noopener noreferrer "> istanbul</ a >
544- at 2024-09-03T22:02:54.874Z
541+ at 2025-01-23T05:17:49.895Z
545542 </ div >
546543 < script src ="../../../../../prettify.js "> </ script >
547544 < script >
0 commit comments