@@ -25,28 +25,28 @@ <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 '> 35/35 </ span >
28+ < span class ='fraction '> 59/59 </ 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 '> 1/1 </ span >
35+ < span class ='fraction '> 2/2 </ span >
3636 </ div >
3737
3838
3939 < div class ='fl pad1y space-right2 '>
4040 < span class ="strong "> 100% </ span >
4141 < span class ="quiet "> Functions</ span >
42- < span class ='fraction '> 0/0 </ span >
42+ < span class ='fraction '> 1/1 </ span >
4343 </ div >
4444
4545
4646 < div class ='fl pad1y space-right2 '>
4747 < span class ="strong "> 100% </ span >
4848 < span class ="quiet "> Lines</ span >
49- < span class ='fraction '> 35/35 </ span >
49+ < span class ='fraction '> 59/59 </ span >
5050 </ div >
5151
5252
@@ -98,41 +98,89 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">stats/
9898< a name ='L33 '> </ a > < a href ='#L33 '> 33</ a >
9999< a name ='L34 '> </ a > < a href ='#L34 '> 34</ a >
100100< a name ='L35 '> </ a > < a href ='#L35 '> 35</ a >
101- < a name ='L36 '> </ a > < a href ='#L36 '> 36</ a > </ td > < td class ="line-coverage quiet "> < span class ="cline-any cline-yes "> 1x</ span >
102- < span class ="cline-any cline-yes "> 1x</ span >
103- < span class ="cline-any cline-yes "> 1x</ span >
104- < span class ="cline-any cline-yes "> 1x</ span >
105- < span class ="cline-any cline-yes "> 1x</ span >
106- < span class ="cline-any cline-yes "> 1x</ span >
107- < span class ="cline-any cline-yes "> 1x</ span >
108- < span class ="cline-any cline-yes "> 1x</ span >
109- < span class ="cline-any cline-yes "> 1x</ span >
110- < span class ="cline-any cline-yes "> 1x</ span >
111- < span class ="cline-any cline-yes "> 1x</ span >
112- < span class ="cline-any cline-yes "> 1x</ span >
113- < span class ="cline-any cline-yes "> 1x</ span >
114- < span class ="cline-any cline-yes "> 1x</ span >
115- < span class ="cline-any cline-yes "> 1x</ span >
116- < span class ="cline-any cline-yes "> 1x</ span >
117- < span class ="cline-any cline-yes "> 1x</ span >
118- < span class ="cline-any cline-yes "> 1x</ span >
119- < span class ="cline-any cline-yes "> 1x</ span >
120- < span class ="cline-any cline-yes "> 1x</ span >
121- < span class ="cline-any cline-yes "> 1x</ span >
122- < span class ="cline-any cline-yes "> 1x</ span >
123- < span class ="cline-any cline-yes "> 1x</ span >
124- < span class ="cline-any cline-yes "> 1x</ span >
125- < span class ="cline-any cline-yes "> 1x</ span >
126- < span class ="cline-any cline-yes "> 1x</ span >
127- < span class ="cline-any cline-yes "> 1x</ span >
128- < span class ="cline-any cline-yes "> 1x</ span >
129- < span class ="cline-any cline-yes "> 1x</ span >
130- < span class ="cline-any cline-yes "> 1x</ span >
131- < span class ="cline-any cline-yes "> 1x</ span >
132- < span class ="cline-any cline-yes "> 1x</ span >
133- < span class ="cline-any cline-yes "> 1x</ span >
134- < span class ="cline-any cline-yes "> 1x</ span >
135- < span class ="cline-any cline-yes "> 1x</ span >
101+ < a name ='L36 '> </ a > < a href ='#L36 '> 36</ a >
102+ < a name ='L37 '> </ a > < a href ='#L37 '> 37</ a >
103+ < a name ='L38 '> </ a > < a href ='#L38 '> 38</ a >
104+ < a name ='L39 '> </ a > < a href ='#L39 '> 39</ a >
105+ < a name ='L40 '> </ a > < a href ='#L40 '> 40</ a >
106+ < a name ='L41 '> </ a > < a href ='#L41 '> 41</ a >
107+ < a name ='L42 '> </ a > < a href ='#L42 '> 42</ a >
108+ < a name ='L43 '> </ a > < a href ='#L43 '> 43</ a >
109+ < a name ='L44 '> </ a > < a href ='#L44 '> 44</ a >
110+ < a name ='L45 '> </ a > < a href ='#L45 '> 45</ a >
111+ < a name ='L46 '> </ a > < a href ='#L46 '> 46</ a >
112+ < a name ='L47 '> </ a > < a href ='#L47 '> 47</ a >
113+ < a name ='L48 '> </ a > < a href ='#L48 '> 48</ a >
114+ < a name ='L49 '> </ a > < a href ='#L49 '> 49</ a >
115+ < a name ='L50 '> </ a > < a href ='#L50 '> 50</ a >
116+ < a name ='L51 '> </ a > < a href ='#L51 '> 51</ a >
117+ < a name ='L52 '> </ a > < a href ='#L52 '> 52</ a >
118+ < a name ='L53 '> </ a > < a href ='#L53 '> 53</ a >
119+ < a name ='L54 '> </ a > < a href ='#L54 '> 54</ a >
120+ < a name ='L55 '> </ a > < a href ='#L55 '> 55</ a >
121+ < a name ='L56 '> </ a > < a href ='#L56 '> 56</ a >
122+ < a name ='L57 '> </ a > < a href ='#L57 '> 57</ a >
123+ < a name ='L58 '> </ a > < a href ='#L58 '> 58</ a >
124+ < a name ='L59 '> </ a > < a href ='#L59 '> 59</ a >
125+ < a name ='L60 '> </ a > < a href ='#L60 '> 60</ a > </ td > < td class ="line-coverage quiet "> < span class ="cline-any cline-yes "> 2x</ span >
126+ < span class ="cline-any cline-yes "> 2x</ span >
127+ < span class ="cline-any cline-yes "> 2x</ span >
128+ < span class ="cline-any cline-yes "> 2x</ span >
129+ < span class ="cline-any cline-yes "> 2x</ span >
130+ < span class ="cline-any cline-yes "> 2x</ span >
131+ < span class ="cline-any cline-yes "> 2x</ span >
132+ < span class ="cline-any cline-yes "> 2x</ span >
133+ < span class ="cline-any cline-yes "> 2x</ span >
134+ < span class ="cline-any cline-yes "> 2x</ span >
135+ < span class ="cline-any cline-yes "> 2x</ span >
136+ < span class ="cline-any cline-yes "> 2x</ span >
137+ < span class ="cline-any cline-yes "> 2x</ span >
138+ < span class ="cline-any cline-yes "> 2x</ span >
139+ < span class ="cline-any cline-yes "> 2x</ span >
140+ < span class ="cline-any cline-yes "> 2x</ span >
141+ < span class ="cline-any cline-yes "> 2x</ span >
142+ < span class ="cline-any cline-yes "> 2x</ span >
143+ < span class ="cline-any cline-yes "> 2x</ span >
144+ < span class ="cline-any cline-yes "> 2x</ span >
145+ < span class ="cline-any cline-yes "> 2x</ span >
146+ < span class ="cline-any cline-yes "> 2x</ span >
147+ < span class ="cline-any cline-yes "> 2x</ span >
148+ < span class ="cline-any cline-yes "> 2x</ span >
149+ < span class ="cline-any cline-yes "> 2x</ span >
150+ < span class ="cline-any cline-yes "> 2x</ span >
151+ < span class ="cline-any cline-yes "> 2x</ span >
152+ < span class ="cline-any cline-yes "> 2x</ span >
153+ < span class ="cline-any cline-yes "> 2x</ span >
154+ < span class ="cline-any cline-yes "> 2x</ span >
155+ < span class ="cline-any cline-yes "> 2x</ span >
156+ < span class ="cline-any cline-yes "> 2x</ span >
157+ < span class ="cline-any cline-yes "> 2x</ span >
158+ < span class ="cline-any cline-yes "> 2x</ span >
159+ < span class ="cline-any cline-yes "> 2x</ span >
160+ < span class ="cline-any cline-yes "> 2x</ span >
161+ < span class ="cline-any cline-yes "> 2x</ span >
162+ < span class ="cline-any cline-yes "> 2x</ span >
163+ < span class ="cline-any cline-yes "> 2x</ span >
164+ < span class ="cline-any cline-yes "> 2x</ span >
165+ < span class ="cline-any cline-yes "> 2x</ span >
166+ < span class ="cline-any cline-yes "> 2x</ span >
167+ < span class ="cline-any cline-yes "> 2x</ span >
168+ < span class ="cline-any cline-yes "> 2x</ span >
169+ < span class ="cline-any cline-yes "> 2x</ span >
170+ < span class ="cline-any cline-yes "> 2x</ span >
171+ < span class ="cline-any cline-yes "> 2x</ span >
172+ < span class ="cline-any cline-yes "> 2x</ span >
173+ < span class ="cline-any cline-yes "> 2x</ span >
174+ < span class ="cline-any cline-yes "> 2x</ span >
175+ < span class ="cline-any cline-yes "> 2x</ span >
176+ < span class ="cline-any cline-yes "> 55x</ span >
177+ < span class ="cline-any cline-yes "> 55x</ span >
178+ < span class ="cline-any cline-yes "> 55x</ span >
179+ < span class ="cline-any cline-yes "> 2x</ span >
180+ < span class ="cline-any cline-yes "> 2x</ span >
181+ < span class ="cline-any cline-yes "> 2x</ span >
182+ < span class ="cline-any cline-yes "> 2x</ span >
183+ < span class ="cline-any cline-yes "> 2x</ span >
136184< span class ="cline-any cline-neutral "> </ span > </ td > < td class ="text "> < pre class ="prettyprint lang-js "> /**
137185* @license Apache-2.0
138186*
@@ -155,14 +203,38 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">stats/
155203
156204// MODULES //
157205
158- var setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );
159- var nanvarianceyc = require( './nanvarianceyc.js' );
206+ var stride2offset = require( '@stdlib/strided/base/stride2offset' );
160207var ndarray = require( './ndarray.js' );
161208
162209
163210// MAIN //
164211
165- setReadOnly( nanvarianceyc, 'ndarray', ndarray );
212+ /**
213+ * Computes the variance of a strided array ignoring `NaN` values and using a one-pass algorithm proposed by Youngs and Cramer.
214+ *
215+ * ## Method
216+ *
217+ * - This implementation uses a one-pass algorithm, as proposed by Youngs and Cramer (1971).
218+ *
219+ * ## References
220+ *
221+ * - Youngs, Edward A., and Elliot M. Cramer. 1971. "Some Results Relevant to Choice of Sum and Sum-of-Product Algorithms." _Technometrics_ 13 (3): 657–65. doi:[10.1080/00401706.1971.10488826](https://doi.org/10.1080/00401706.1971.10488826).
222+ *
223+ * @param {PositiveInteger} N - number of indexed elements
224+ * @param {number} correction - degrees of freedom adjustment
225+ * @param {NumericArray} x - input array
226+ * @param {integer} strideX - stride length
227+ * @returns {number} variance
228+ *
229+ * @example
230+ * var x = [ 1.0, -2.0, NaN, 2.0 ];
231+ *
232+ * var v = nanvarianceyc( 4, 1.0, x, 1 );
233+ * // returns ~4.3333
234+ */
235+ function nanvarianceyc( N, correction, x, strideX ) {
236+ return ndarray( N, correction, x, strideX, stride2offset( N, strideX ) );
237+ }
166238
167239
168240// EXPORTS //
@@ -175,7 +247,7 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">stats/
175247 < div class ='footer quiet pad2 space-top1 center small '>
176248 Code coverage generated by
177249 < a href ="https://istanbul.js.org/ " target ="_blank " rel ="noopener noreferrer "> istanbul</ a >
178- at 2025-03-29T19:25 :10.203Z
250+ at 2025-04-10T07:23 :10.038Z
179251 </ div >
180252 < script src ="../../../../prettify.js "> </ script >
181253 < script >
0 commit comments