@@ -25,14 +25,14 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">stats/
2525 < div class ='fl pad1y space-right2 '>
2626 < span class ="strong "> 100% </ span >
2727 < span class ="quiet "> Statements</ span >
28- < span class ='fraction '> 103/103 </ span >
28+ < span class ='fraction '> 61/61 </ 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 '> 18/18 </ 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">stats/
4646 < div class ='fl pad1y space-right2 '>
4747 < span class ="strong "> 100% </ span >
4848 < span class ="quiet "> Lines</ span >
49- < span class ='fraction '> 103/103 </ span >
49+ < span class ='fraction '> 61/61 </ span >
5050 </ div >
5151
5252
@@ -124,49 +124,8 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">stats/
124124< a name ='L59 '> </ a > < a href ='#L59 '> 59</ a >
125125< a name ='L60 '> </ a > < a href ='#L60 '> 60</ a >
126126< 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 >
164- < a name ='L99 '> </ a > < a href ='#L99 '> 99</ a >
165- < a name ='L100 '> </ a > < a href ='#L100 '> 100</ a >
166- < a name ='L101 '> </ a > < a href ='#L101 '> 101</ a >
167- < a name ='L102 '> </ a > < a href ='#L102 '> 102</ a >
168- < a name ='L103 '> </ a > < a href ='#L103 '> 103</ a >
169- < a name ='L104 '> </ a > < a href ='#L104 '> 104</ a > </ td > < td class ="line-coverage quiet "> < span class ="cline-any cline-yes "> 2x</ span >
127+ < a name ='L62 '> </ a > < a href ='#L62 '> 62</ a > </ td > < td class ="line-coverage quiet "> < span class ="cline-any cline-yes "> 2x</ span >
128+ < span class ="cline-any cline-yes "> 2x</ span >
170129< span class ="cline-any cline-yes "> 2x</ span >
171130< span class ="cline-any cline-yes "> 2x</ span >
172131< span class ="cline-any cline-yes "> 2x</ span >
@@ -214,55 +173,12 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">stats/
214173< span class ="cline-any cline-yes "> 2x</ span >
215174< span class ="cline-any cline-yes "> 2x</ span >
216175< span class ="cline-any cline-yes "> 2x</ span >
217- < span class ="cline-any cline-yes "> 10x</ span >
218- < span class ="cline-any cline-yes "> 10x</ span >
219- < span class ="cline-any cline-yes "> 10x</ span >
220- < span class ="cline-any cline-yes "> 10x</ span >
221- < span class ="cline-any cline-yes "> 10x</ span >
222- < span class ="cline-any cline-yes "> 10x</ span >
223- < span class ="cline-any cline-yes "> 10x</ span >
224- < span class ="cline-any cline-yes "> 10x</ span >
225- < span class ="cline-any cline-yes "> 10x</ span >
226- < span class ="cline-any cline-yes "> 10x</ span >
227176< span class ="cline-any cline-yes "> 2x</ span >
228177< span class ="cline-any cline-yes "> 2x</ span >
229- < span class ="cline-any cline-yes "> 10x</ span >
230178< span class ="cline-any cline-yes "> 2x</ span >
231179< span class ="cline-any cline-yes "> 2x</ span >
232180< span class ="cline-any cline-yes "> 10x</ span >
233- < span class ="cline-any cline-yes "> 1x</ span >
234- < span class ="cline-any cline-yes "> 10x</ span >
235- < span class ="cline-any cline-yes "> 5x</ span >
236- < span class ="cline-any cline-yes "> 5x</ span >
237- < span class ="cline-any cline-yes "> 6x</ span >
238- < span class ="cline-any cline-yes "> 6x</ span >
239- < span class ="cline-any cline-yes "> 6x</ span >
240- < span class ="cline-any cline-yes "> 6x</ span >
241- < span class ="cline-any cline-yes "> 6x</ span >
242- < span class ="cline-any cline-yes "> 10x</ span >
243- < span class ="cline-any cline-yes "> 23x</ span >
244- < span class ="cline-any cline-yes "> 23x</ span >
245- < span class ="cline-any cline-yes "> 19x</ span >
246- < span class ="cline-any cline-yes "> 19x</ span >
247- < span class ="cline-any cline-yes "> 19x</ span >
248- < span class ="cline-any cline-yes "> 23x</ span >
249- < span class ="cline-any cline-yes "> 23x</ span >
250- < span class ="cline-any cline-yes "> 10x</ span >
251- < span class ="cline-any cline-yes "> 1x</ span >
252- < span class ="cline-any cline-yes "> 1x</ span >
253- < span class ="cline-any cline-yes "> 5x</ span >
254- < span class ="cline-any cline-yes "> 5x</ span >
255- < span class ="cline-any cline-yes "> 5x</ span >
256- < span class ="cline-any cline-yes "> 5x</ span >
257- < span class ="cline-any cline-yes "> 5x</ span >
258181< span class ="cline-any cline-yes "> 10x</ span >
259- < span class ="cline-any cline-yes "> 21x</ span >
260- < span class ="cline-any cline-yes "> 21x</ span >
261- < span class ="cline-any cline-yes "> 19x</ span >
262- < span class ="cline-any cline-yes "> 19x</ span >
263- < span class ="cline-any cline-yes "> 21x</ span >
264- < span class ="cline-any cline-yes "> 21x</ span >
265- < span class ="cline-any cline-yes "> 5x</ span >
266182< span class ="cline-any cline-yes "> 10x</ span >
267183< span class ="cline-any cline-yes "> 2x</ span >
268184< span class ="cline-any cline-yes "> 2x</ span >
@@ -289,6 +205,12 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">stats/
289205
290206'use strict';
291207
208+ // MODULES //
209+
210+ var stride2offset = require( '@stdlib/strided/base/stride2offset' );
211+ var ndarray = require( './ndarray.js' );
212+
213+
292214// MAIN //
293215
294216/**
@@ -305,67 +227,19 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">stats/
305227*
306228* @param {PositiveInteger} N - number of indexed elements
307229* @param {Float64Array} x - input array
308- * @param {integer} stride - stride length
230+ * @param {integer} strideX - stride length
309231* @returns {number} arithmetic mean
310232*
311233* @example
312234* var Float64Array = require( '@stdlib/array/float64' );
313235*
314236* var x = new Float64Array( [ 1.0, -2.0, NaN, 2.0 ] );
315- * var N = x.length;
316237*
317- * var v = dnanmeanpn( N , x, 1 );
238+ * var v = dnanmeanpn( x.length , x, 1 );
318239* // returns ~0.3333
319240*/
320- function dnanmeanpn( N, x, stride ) {
321- var ix;
322- var v;
323- var s;
324- var t;
325- var n;
326- var i;
327- var o;
328-
329- if ( N <= 0 ) {
330- return NaN;
331- }
332- if ( N === 1 || stride === 0 ) {
333- return x[ 0 ];
334- }
335- if ( stride < 0 ) {
336- ix = (1-N) * stride;
337- } else {
338- ix = 0;
339- }
340- o = ix;
341-
342- // Compute an estimate for the mean...
343- s = 0.0;
344- n = 0;
345- for ( i = 0; i < N; i++ ) {
346- v = x[ ix ];
347- if ( v === v ) {
348- n += 1;
349- s += v;
350- }
351- ix += stride;
352- }
353- if ( n === 0 ) {
354- return NaN;
355- }
356- s /= n;
357-
358- // Compute an error term...
359- t = 0.0;
360- ix = o;
361- for ( i = 0; i < N; i++ ) {
362- v = x[ ix ];
363- if ( v === v ) {
364- t += v - s;
365- }
366- ix += stride;
367- }
368- return s + (t/n);
241+ function dnanmeanpn( N, x, strideX ) {
242+ return ndarray( N, x, strideX, stride2offset( N, strideX ) );
369243}
370244
371245
@@ -379,7 +253,7 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">stats/
379253 < div class ='footer quiet pad2 space-top1 center small '>
380254 Code coverage generated by
381255 < a href ="https://istanbul.js.org/ " target ="_blank " rel ="noopener noreferrer "> istanbul</ a >
382- at 2024-12-27T09:02:29.688Z
256+ at 2025-02-14T02:50:06.798Z
383257 </ div >
384258 < script src ="../../../../prettify.js "> </ script >
385259 < script >
0 commit comments