Skip to content

Commit 494adae

Browse files
committed
Update artifacts
1 parent 1d06e57 commit 494adae

File tree

7 files changed

+156
-346
lines changed

7 files changed

+156
-346
lines changed

stats/base/nanvariancech/accessors.js.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -436,7 +436,7 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">stats/
436436
<div class='footer quiet pad2 space-top1 center small'>
437437
Code coverage generated by
438438
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
439-
at 2025-04-04T07:18:54.166Z
439+
at 2025-04-06T17:45:23.730Z
440440
</div>
441441
<script src="../../../../prettify.js"></script>
442442
<script>
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
[396,396,100,46,46,100,3,3,100,396,396,100,"da0f9d55588f4d90bfba299bfca41efac173f779","2025-04-04 06:16:19 +0000"]
1+
[366,366,100,45,45,100,3,3,100,366,366,100,"418d3ecabd72a6594ab42eeb6baeb44ef82d211d","2025-04-06 17:35:06 +0000"]

stats/base/nanvariancech/index.html

Lines changed: 6 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,14 @@ <h1><a href="../../../../index.html">All files</a> stats/base/nanvariancech/lib<
2525
<div class='fl pad1y space-right2'>
2626
<span class="strong">100% </span>
2727
<span class="quiet">Statements</span>
28-
<span class='fraction'>396/396</span>
28+
<span class='fraction'>366/366</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'>46/46</span>
35+
<span class='fraction'>45/45</span>
3636
</div>
3737

3838

@@ -46,7 +46,7 @@ <h1><a href="../../../../index.html">All files</a> stats/base/nanvariancech/lib<
4646
<div class='fl pad1y space-right2'>
4747
<span class="strong">100% </span>
4848
<span class="quiet">Lines</span>
49-
<span class='fraction'>396/396</span>
49+
<span class='fraction'>366/366</span>
5050
</div>
5151

5252

@@ -99,13 +99,13 @@ <h1><a href="../../../../index.html">All files</a> stats/base/nanvariancech/lib<
9999
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
100100
</td>
101101
<td data-value="100" class="pct high">100%</td>
102-
<td data-value="54" class="abs high">54/54</td>
102+
<td data-value="59" class="abs high">59/59</td>
103103
<td data-value="100" class="pct high">100%</td>
104104
<td data-value="1" class="abs high">1/1</td>
105105
<td data-value="100" class="pct high">100%</td>
106106
<td data-value="0" class="abs high">0/0</td>
107107
<td data-value="100" class="pct high">100%</td>
108-
<td data-value="54" class="abs high">54/54</td>
108+
<td data-value="59" class="abs high">59/59</td>
109109
</tr>
110110

111111
<tr>
@@ -114,21 +114,6 @@ <h1><a href="../../../../index.html">All files</a> stats/base/nanvariancech/lib<
114114
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
115115
</td>
116116
<td data-value="100" class="pct high">100%</td>
117-
<td data-value="35" class="abs high">35/35</td>
118-
<td data-value="100" class="pct high">100%</td>
119-
<td data-value="1" class="abs high">1/1</td>
120-
<td data-value="100" class="pct high">100%</td>
121-
<td data-value="0" class="abs high">0/0</td>
122-
<td data-value="100" class="pct high">100%</td>
123-
<td data-value="35" class="abs high">35/35</td>
124-
</tr>
125-
126-
<tr>
127-
<td class="file high" data-value="nanvariancech.js"><a href="nanvariancech.js.html">nanvariancech.js</a></td>
128-
<td data-value="100" class="pic high">
129-
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
130-
</td>
131-
<td data-value="100" class="pct high">100%</td>
132117
<td data-value="62" class="abs high">62/62</td>
133118
<td data-value="100" class="pct high">100%</td>
134119
<td data-value="2" class="abs high">2/2</td>
@@ -161,7 +146,7 @@ <h1><a href="../../../../index.html">All files</a> stats/base/nanvariancech/lib<
161146
<div class='footer quiet pad2 space-top1 center small'>
162147
Code coverage generated by
163148
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
164-
at 2025-04-04T07:18:54.166Z
149+
at 2025-04-06T17:45:23.730Z
165150
</div>
166151
<script src="../../../../prettify.js"></script>
167152
<script>

stats/base/nanvariancech/index.js.html

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ <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'>54/54</span>
28+
<span class='fraction'>59/59</span>
2929
</div>
3030

3131

@@ -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'>54/54</span>
49+
<span class='fraction'>59/59</span>
5050
</div>
5151

5252

@@ -117,7 +117,17 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">stats/
117117
<a name='L52'></a><a href='#L52'>52</a>
118118
<a name='L53'></a><a href='#L53'>53</a>
119119
<a name='L54'></a><a href='#L54'>54</a>
120-
<a name='L55'></a><a href='#L55'>55</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
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">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>
121131
<span class="cline-any cline-yes">1x</span>
122132
<span class="cline-any cline-yes">1x</span>
123133
<span class="cline-any cline-yes">1x</span>
@@ -201,23 +211,28 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">stats/
201211
*
202212
* var x = [ 1.0, -2.0, NaN, 2.0 ];
203213
*
204-
* var v = nanvariancech( x.length, 1, x, 1 );
214+
* var v = nanvariancech( 4, 1, x, 1 );
205215
* // returns ~4.3333
206216
*
207217
* @example
208-
* var floor = require( '@stdlib/math/base/special/floor' );
209218
* var nanvariancech = require( '@stdlib/stats/base/nanvariancech' );
210219
*
211220
* var x = [ 2.0, 1.0, 2.0, -2.0, -2.0, 2.0, 3.0, 4.0, NaN, NaN ];
212-
* var N = floor( x.length / 2 );
213221
*
214-
* var v = nanvariancech.ndarray( N, 1, x, 2, 1 );
222+
* var v = nanvariancech.ndarray( 5, 1, x, 2, 1 );
215223
* // returns 6.25
216224
*/
217225
&nbsp;
218226
// MODULES //
219227
&nbsp;
228+
var setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );
220229
var main = require( './main.js' );
230+
var ndarray = require( './ndarray.js' );
231+
&nbsp;
232+
&nbsp;
233+
// MAIN //
234+
&nbsp;
235+
setReadOnly( main, 'ndarray', ndarray );
221236
&nbsp;
222237
&nbsp;
223238
// EXPORTS //
@@ -232,7 +247,7 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">stats/
232247
<div class='footer quiet pad2 space-top1 center small'>
233248
Code coverage generated by
234249
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
235-
at 2025-04-04T07:18:54.166Z
250+
at 2025-04-06T17:45:23.730Z
236251
</div>
237252
<script src="../../../../prettify.js"></script>
238253
<script>

stats/base/nanvariancech/main.js.html

Lines changed: 124 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -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'>62/62</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'>62/62</span>
5050
</div>
5151

5252

@@ -98,41 +98,95 @@ <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>
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></td><td class="line-coverage quiet"><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">2x</span>
177+
<span class="cline-any cline-yes">2x</span>
178+
<span class="cline-any cline-yes">2x</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">56x</span>
183+
<span class="cline-any cline-yes">56x</span>
184+
<span class="cline-any cline-yes">56x</span>
185+
<span class="cline-any cline-yes">2x</span>
186+
<span class="cline-any cline-yes">2x</span>
187+
<span class="cline-any cline-yes">2x</span>
188+
<span class="cline-any cline-yes">2x</span>
189+
<span class="cline-any cline-yes">2x</span>
136190
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">/**
137191
* @license Apache-2.0
138192
*
@@ -155,14 +209,41 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">stats/
155209
&nbsp;
156210
// MODULES //
157211
&nbsp;
158-
var setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );
159-
var nanvariancech = require( './nanvariancech.js' );
212+
var stride2offset = require( '@stdlib/strided/base/stride2offset' );
160213
var ndarray = require( './ndarray.js' );
161214
&nbsp;
162215
&nbsp;
163216
// MAIN //
164217
&nbsp;
165-
setReadOnly( nanvariancech, 'ndarray', ndarray );
218+
/**
219+
* Computes the variance of a strided array ignoring `NaN` values and using a one-pass trial mean algorithm.
220+
*
221+
* ## Method
222+
*
223+
* - This implementation uses a one-pass trial mean approach, as suggested by Chan et al (1983).
224+
*
225+
* ## References
226+
*
227+
* - Neely, Peter M. 1966. "Comparison of Several Algorithms for Computation of Means, Standard Deviations and Correlation Coefficients." _Communications of the ACM_ 9 (7). Association for Computing Machinery: 496–99. doi:[10.1145/365719.365958](https://doi.org/10.1145/365719.365958).
228+
* - Ling, Robert F. 1974. "Comparison of Several Algorithms for Computing Sample Means and Variances." _Journal of the American Statistical Association_ 69 (348). American Statistical Association, Taylor &amp; Francis, Ltd.: 859–66. doi:[10.2307/2286154](https://doi.org/10.2307/2286154).
229+
* - Chan, Tony F., Gene H. Golub, and Randall J. LeVeque. 1983. "Algorithms for Computing the Sample Variance: Analysis and Recommendations." _The American Statistician_ 37 (3). American Statistical Association, Taylor &amp; Francis, Ltd.: 242–47. doi:[10.1080/00031305.1983.10483115](https://doi.org/10.1080/00031305.1983.10483115).
230+
* - Schubert, Erich, and Michael Gertz. 2018. "Numerically Stable Parallel Computation of (Co-)Variance." In _Proceedings of the 30th International Conference on Scientific and Statistical Database Management_. New York, NY, USA: Association for Computing Machinery. doi:[10.1145/3221269.3223036](https://doi.org/10.1145/3221269.3223036).
231+
*
232+
* @param {PositiveInteger} N - number of indexed elements
233+
* @param {number} correction - degrees of freedom adjustment
234+
* @param {NumericArray} x - input array
235+
* @param {integer} strideX - stride length
236+
* @returns {number} variance
237+
*
238+
* @example
239+
* var x = [ 1.0, -2.0, NaN, 2.0 ];
240+
*
241+
* var v = nanvariancech( 4, 1, x, 1 );
242+
* // returns ~4.3333
243+
*/
244+
function nanvariancech( N, correction, x, strideX ) {
245+
return ndarray( N, correction, x, strideX, stride2offset( N, strideX) );
246+
}
166247
&nbsp;
167248
&nbsp;
168249
// EXPORTS //
@@ -175,7 +256,7 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">stats/
175256
<div class='footer quiet pad2 space-top1 center small'>
176257
Code coverage generated by
177258
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
178-
at 2025-04-04T07:18:54.166Z
259+
at 2025-04-06T17:45:23.730Z
179260
</div>
180261
<script src="../../../../prettify.js"></script>
181262
<script>

0 commit comments

Comments
 (0)