@@ -23,16 +23,16 @@ <h1><a href="../../../../../index.html">All files</a> / <a href="index.html">bla
2323 < div class ='clearfix '>
2424
2525 < div class ='fl pad1y space-right2 '>
26- < span class ="strong "> 100 % </ span >
26+ < span class ="strong "> 97.79 % </ span >
2727 < span class ="quiet "> Statements</ span >
28- < span class ='fraction '> 105/105 </ span >
28+ < span class ='fraction '> 133/136 </ span >
2929 </ div >
3030
3131
3232 < div class ='fl pad1y space-right2 '>
33- < span class ="strong "> 100 % </ span >
33+ < span class ="strong "> 96.42 % </ span >
3434 < span class ="quiet "> Branches</ span >
35- < span class ='fraction '> 14/14 </ span >
35+ < span class ='fraction '> 27/28 </ span >
3636 </ div >
3737
3838
@@ -44,9 +44,9 @@ <h1><a href="../../../../../index.html">All files</a> / <a href="index.html">bla
4444
4545
4646 < div class ='fl pad1y space-right2 '>
47- < span class ="strong "> 100 % </ span >
47+ < span class ="strong "> 97.79 % </ span >
4848 < span class ="quiet "> Lines</ span >
49- < span class ='fraction '> 105/105 </ span >
49+ < span class ='fraction '> 133/136 </ span >
5050 </ div >
5151
5252
@@ -168,7 +168,38 @@ <h1><a href="../../../../../index.html">All files</a> / <a href="index.html">bla
168168< a name ='L103 '> </ a > < a href ='#L103 '> 103</ a >
169169< a name ='L104 '> </ a > < a href ='#L104 '> 104</ a >
170170< a name ='L105 '> </ a > < a href ='#L105 '> 105</ a >
171- < a name ='L106 '> </ a > < a href ='#L106 '> 106</ a > </ td > < td class ="line-coverage quiet "> < span class ="cline-any cline-yes "> 3x</ span >
171+ < a name ='L106 '> </ a > < a href ='#L106 '> 106</ a >
172+ < a name ='L107 '> </ a > < a href ='#L107 '> 107</ a >
173+ < a name ='L108 '> </ a > < a href ='#L108 '> 108</ a >
174+ < a name ='L109 '> </ a > < a href ='#L109 '> 109</ a >
175+ < a name ='L110 '> </ a > < a href ='#L110 '> 110</ a >
176+ < a name ='L111 '> </ a > < a href ='#L111 '> 111</ a >
177+ < a name ='L112 '> </ a > < a href ='#L112 '> 112</ a >
178+ < a name ='L113 '> </ a > < a href ='#L113 '> 113</ a >
179+ < a name ='L114 '> </ a > < a href ='#L114 '> 114</ a >
180+ < a name ='L115 '> </ a > < a href ='#L115 '> 115</ a >
181+ < a name ='L116 '> </ a > < a href ='#L116 '> 116</ a >
182+ < a name ='L117 '> </ a > < a href ='#L117 '> 117</ a >
183+ < a name ='L118 '> </ a > < a href ='#L118 '> 118</ a >
184+ < a name ='L119 '> </ a > < a href ='#L119 '> 119</ a >
185+ < a name ='L120 '> </ a > < a href ='#L120 '> 120</ a >
186+ < a name ='L121 '> </ a > < a href ='#L121 '> 121</ a >
187+ < a name ='L122 '> </ a > < a href ='#L122 '> 122</ a >
188+ < a name ='L123 '> </ a > < a href ='#L123 '> 123</ a >
189+ < a name ='L124 '> </ a > < a href ='#L124 '> 124</ a >
190+ < a name ='L125 '> </ a > < a href ='#L125 '> 125</ a >
191+ < a name ='L126 '> </ a > < a href ='#L126 '> 126</ a >
192+ < a name ='L127 '> </ a > < a href ='#L127 '> 127</ a >
193+ < a name ='L128 '> </ a > < a href ='#L128 '> 128</ a >
194+ < a name ='L129 '> </ a > < a href ='#L129 '> 129</ a >
195+ < a name ='L130 '> </ a > < a href ='#L130 '> 130</ a >
196+ < a name ='L131 '> </ a > < a href ='#L131 '> 131</ a >
197+ < a name ='L132 '> </ a > < a href ='#L132 '> 132</ a >
198+ < a name ='L133 '> </ a > < a href ='#L133 '> 133</ a >
199+ < a name ='L134 '> </ a > < a href ='#L134 '> 134</ a >
200+ < a name ='L135 '> </ a > < a href ='#L135 '> 135</ a >
201+ < a name ='L136 '> </ a > < a href ='#L136 '> 136</ a >
202+ < a name ='L137 '> </ a > < a href ='#L137 '> 137</ a > </ td > < td class ="line-coverage quiet "> < span class ="cline-any cline-yes "> 3x</ span >
172203< span class ="cline-any cline-yes "> 3x</ span >
173204< span class ="cline-any cline-yes "> 3x</ span >
174205< span class ="cline-any cline-yes "> 3x</ span >
@@ -244,29 +275,60 @@ <h1><a href="../../../../../index.html">All files</a> / <a href="index.html">bla
244275< span class ="cline-any cline-yes "> 2x</ span >
245276< span class ="cline-any cline-yes "> 2x</ span >
246277< span class ="cline-any cline-yes "> 26x</ span >
247- < span class ="cline-any cline-yes "> 26x</ span >
248278< span class ="cline-any cline-yes "> 34x</ span >
249- < span class ="cline-any cline-yes "> 99x</ span >
250- < span class ="cline-any cline-yes "> 99x</ span >
251- < span class ="cline-any cline-yes "> 78x</ span >
252- < span class ="cline-any cline-yes "> 78x</ span >
253- < span class ="cline-any cline-yes "> 32x</ span >
254- < span class ="cline-any cline-yes "> 78x</ span >
255- < span class ="cline-any cline-yes "> 46x</ span >
256- < span class ="cline-any cline-yes "> 46x</ span >
257- < span class ="cline-any cline-yes "> 78x</ span >
258- < span class ="cline-any cline-yes "> 78x</ span >
259- < span class ="cline-any cline-yes "> 78x</ span >
260- < span class ="cline-any cline-yes "> 76x</ span >
261- < span class ="cline-any cline-yes "> 78x</ span >
262- < span class ="cline-any cline-yes "> 2x</ span >
279+ < span class ="cline-any cline-yes "> 30x</ span >
280+ < span class ="cline-any cline-yes "> 30x</ span >
281+ < span class ="cline-any cline-yes "> 22x</ span >
282+ < span class ="cline-any cline-yes "> 22x</ span >
283+ < span class ="cline-any cline-yes "> 8x</ span >
284+ < span class ="cline-any cline-yes "> 8x</ span >
285+ < span class ="cline-any cline-yes "> 34x</ span >
286+ < span class ="cline-any cline-yes "> 4x</ span >
287+ < span class ="cline-any cline-yes "> 4x</ span >
288+ < span class ="cline-any cline-yes "> 22x</ span >
289+ < span class ="cline-any cline-yes "> 22x</ span >
290+ < span class ="cline-any cline-yes "> 22x</ span >
291+ < span class ="cline-any cline-yes "> 22x</ span >
292+ < span class ="cline-any cline-yes "> 22x</ span >
293+ < span class ="cline-any cline-yes "> 34x</ span >
263294< span class ="cline-any cline-yes "> 2x</ span >
264- < span class ="cline-any cline-yes "> 78x</ span >
265- < span class ="cline-any cline-yes "> 78x</ span >
266- < span class ="cline-any cline-yes "> 78x</ span >
267- < span class ="cline-any cline-yes "> 99x</ span >
268- < span class ="cline-any cline-yes "> 99x</ span >
295+ < span class ="cline-any cline-yes "> 4x</ span >
296+ < span class ="cline-any cline-yes "> 4x</ span >
297+ < span class ="cline-any cline-yes "> 4x</ span >
298+ < span class ="cline-any cline-no "> </ span >
299+ < span class ="cline-any cline-no "> </ span >
300+ < span class ="cline-any cline-no "> </ span >
301+ < span class ="cline-any cline-yes "> 4x</ span >
302+ < span class ="cline-any cline-yes "> 4x</ span >
303+ < span class ="cline-any cline-yes "> 4x</ span >
304+ < span class ="cline-any cline-yes "> 4x</ span >
305+ < span class ="cline-any cline-yes "> 34x</ span >
306+ < span class ="cline-any cline-yes "> 20x</ span >
307+ < span class ="cline-any cline-yes "> 20x</ span >
308+ < span class ="cline-any cline-yes "> 22x</ span >
309+ < span class ="cline-any cline-yes "> 22x</ span >
310+ < span class ="cline-any cline-yes "> 34x</ span >
311+ < span class ="cline-any cline-yes "> 65x</ span >
312+ < span class ="cline-any cline-yes "> 65x</ span >
313+ < span class ="cline-any cline-yes "> 52x</ span >
314+ < span class ="cline-any cline-yes "> 52x</ span >
315+ < span class ="cline-any cline-yes "> 26x</ span >
316+ < span class ="cline-any cline-yes "> 26x</ span >
269317< span class ="cline-any cline-yes "> 26x</ span >
318+ < span class ="cline-any cline-yes "> 26x</ span >
319+ < span class ="cline-any cline-yes "> 52x</ span >
320+ < span class ="cline-any cline-yes "> 52x</ span >
321+ < span class ="cline-any cline-yes "> 52x</ span >
322+ < span class ="cline-any cline-yes "> 50x</ span >
323+ < span class ="cline-any cline-yes "> 52x</ span >
324+ < span class ="cline-any cline-yes "> 2x</ span >
325+ < span class ="cline-any cline-yes "> 2x</ span >
326+ < span class ="cline-any cline-yes "> 52x</ span >
327+ < span class ="cline-any cline-yes "> 52x</ span >
328+ < span class ="cline-any cline-yes "> 52x</ span >
329+ < span class ="cline-any cline-yes "> 65x</ span >
330+ < span class ="cline-any cline-yes "> 65x</ span >
331+ < span class ="cline-any cline-yes "> 34x</ span >
270332< span class ="cline-any cline-yes "> 34x</ span >
271333< span class ="cline-any cline-yes "> 3x</ span >
272334< span class ="cline-any cline-yes "> 3x</ span >
@@ -329,6 +391,7 @@ <h1><a href="../../../../../index.html">All files</a> / <a href="index.html">bla
329391function dnansumkbn2( N, x, strideX, offsetX ) {
330392 var sum;
331393 var ccs;
394+ var flg;
332395 var ix;
333396 var cs;
334397 var cc;
@@ -337,20 +400,50 @@ <h1><a href="../../../../../index.html">All files</a> / <a href="index.html">bla
337400 var c;
338401 var i;
339402
340- sum = 0.0;
341403 if ( N <= 0 ) {
342- return sum ;
404+ return 0.0 ;
343405 }
344406 ix = offsetX;
345407 if ( strideX === 0 ) {
346408 if ( isnan( x[ ix ] ) ) {
347- return sum ;
409+ return 0.0 ;
348410 }
349411 return x[ ix ] * N;
350412 }
413+ // Find the first non-NaN element...
414+ for ( i = 0; i < N; i++ ) {
415+ v = x[ ix ];
416+ if ( isnan( v ) === false ) {
417+ break;
418+ }
419+ ix += strideX;
420+ }
421+ if ( i === N ) {
422+ return 0.0;
423+ }
424+ sum = v;
425+ ix += strideX;
426+ i += 1;
427+
428+ // In order to preserve the sign of zero which can be lost during compensated summation below, find the first non-zero element...
429+ if ( sum === 0.0 ) {
430+ for ( ; i < N; i++ ) {
431+ v = x[ ix ];
432+ if ( isnan( v ) === false ) {
433+ if ( v !== 0.0 ) < span class ="branch-0 cbranch-no " title ="branch not covered " > {</ span >
434+ < span class ="cstat-no " title ="statement not covered " > flg = true;</ span >
435+ < span class ="cstat-no " title ="statement not covered " > break;</ span >
436+ < span class ="cstat-no " title ="statement not covered " > }</ span >
437+ sum += v;
438+ }
439+ ix += strideX;
440+ }
441+ } else {
442+ flg = true;
443+ }
351444 ccs = 0.0; // second order correction term for lost low order bits
352445 cs = 0.0; // first order correction term for lost low order bits
353- for ( i = 0 ; i < N; i++ ) {
446+ for ( ; i < N; i++ ) {
354447 v = x[ ix ];
355448 if ( isnan( v ) === false ) {
356449 t = sum + v;
@@ -371,7 +464,7 @@ <h1><a href="../../../../../index.html">All files</a> / <a href="index.html">bla
371464 }
372465 ix += strideX;
373466 }
374- return sum + cs + ccs;
467+ return ( flg ) ? sum+cs+ ccs : sum ;
375468}
376469
377470
@@ -385,7 +478,7 @@ <h1><a href="../../../../../index.html">All files</a> / <a href="index.html">bla
385478 < div class ='footer quiet pad2 space-top1 center small '>
386479 Code coverage generated by
387480 < a href ="https://istanbul.js.org/ " target ="_blank " rel ="noopener noreferrer "> istanbul</ a >
388- at 2025-04-25T04:28:06.277Z
481+ at 2025-07-11T07:47:00.295Z
389482 </ div >
390483 < script src ="../../../../../prettify.js "> </ script >
391484 < script >
0 commit comments